Paul Chase
|
|
Group: Forum Members
Posts: 414,
Visits: 2.8K
|
I wrote this add-in to save myself some time while working on a project I am doing that has lots of lookup tables and views. It took me a bit longer that I thought but it was interesting.I think it's a useful utility and add-in example to share with all of you. Hope it helps I put this together LATE last night and finshed tonight so beware there might be a mosquito just waiting to sting. I added a few screenshots, a zip with the source andv a zip containing the addin and the .dll you can just unzip to your C:\Documents and Settings\[username]\My Documents\Visual Studio 2008\Addins or wherever you addins directory is. Gotta go Enjoy Paul Currently to set up a bo 1.Add each business object(s) to VisualStudio--- for 10 Bo's do this step 10 times 2.Launch the business object mapper 3.Configure the project 4.Configure the each Business Object--- for 10 Bo's do this step 10 times 5. Build the partial class(s). You would select the table and views you wich to create With Add In 1. Launch BoGenerator 2.Configure project (Same as step 3 above) 3.Select multiple Table(s) and View(s) from list. 4.Generate Business Object --- for 10 bo's it add's all 10 bo's to project and also configures the business object 5.Auto Launches the bo mapper then Build Partial Classes (Same as step 5)
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
I will have to take a look, Paul. Thanks for the contribution!
|
|
|
Edhy Rijo
|
|
Group: StrataFrame Users
Posts: 2.4K,
Visits: 23K
|
Hi Paul, Thanks a lot for this contribution, this is a major tool specially for new SF developers. Trent L. Taylor (04/12/2008) I will have to take a look, Paul. Thanks for the contribution!Trent, have you look at this yet? I see a lot of benefits in adding this kind of automation to SF.
Edhy Rijo
|
|
|
Alex Luyando
|
|
Group: StrataFrame Users
Posts: 112,
Visits: 1.2K
|
Paul -
Awesome... Was just discussing yesterday how semi-tedious it can be to build multiple business objects, and how an add-in could save the day. Wish I had seen this posting about eight business objects ago!! LOL
Thanks a bunch!
________________ _____/ Regards, ____/ al
|
|
|
Alex Luyando
|
|
Group: StrataFrame Users
Posts: 112,
Visits: 1.2K
|
Ugh.... what a tease! LOL Add-in installed and fires up nicely. Select the tables I want BOs for then click Generate Business Objects, hear a bong and see a Wait Window flash in upper right (too fast to even see text) and get the problem asking if I want to run the BOM. Looking at the solution and the BOM none of the business objects were built. Any ideas? Thanks.
________________ _____/ Regards, ____/ al
|
|
|
Paul Chase
|
|
Group: Forum Members
Posts: 414,
Visits: 2.8K
|
Hi Alex, It has been awhile since I made the add-in I mainly made it for a project that had a lot of existing lookup tables and such. I think what is happening to you is you don't have a project selected in the solution, when the addin goes to create the business object it creates it in the project that is selected in soultion explorer. I had a look at the code and that is probably the problem.I checked for the possibility that the project wasnt selected but did not show the error and exit the sub like a I should have. To verify make sure you have the project you want to create the business objects in selected in solution explorer prior to generating business objects and it should work ok. I will fix the code and repost it if I get a chance later today or you can make the change it is in the following method. Private Sub CreateAndAddBusinessObjects() Paul
|
|
|
Paul Chase
|
|
Group: Forum Members
Posts: 414,
Visits: 2.8K
|
Actually here is the Corrected Code, figured might as well do it while i had it open Private Sub CreateAndAddBusinessObjects()'VariablesDim LcTableName, Lcfilename As StringIf Me.ListView_Views.CheckedItems.Count + Me.ListView1.CheckedItems.Count = 0 Then'nothing selectedExit SubEnd If'Make sure we have a project TryIf Not _Project Is Nothing Then' I could probably make this a bit more dynamic but it works For Each loitem As ListViewItem In Me.ListView1.CheckedItemsLcTableName = loitem.Text Me.SqlTableSchema.NavigateToPrimaryKey(LcTableName)Lcfilename = Me.TxtPreFix.Text & LcTableName & TxtSuffix.Text & ".vb"If GenerateBusinessObject(Lcfilename) ThenMe.WaitWindow1.ShowWaitWindow("Adding Table " & Lcfilename)CreateDTE_ProjectItems(SqlTableSchema) ElseMe.WaitWindow1.ShowWaitWindow("Failed to Add " & Lcfilename)End IfMe.WaitWindow1.HideWaitWindow()NextFor Each loitem As ListViewItem In Me.ListView_Views.CheckedItemsLcTableName = loitem.Text Lcfilename = Me.TxtPreFix.Text & LcTableName & TxtSuffix.Text & ".vb"Me.SqlViewSchema.NavigateToPrimaryKey(LcTableName)If GenerateBusinessObject(Me.TxtPreFix.Text & LcTableName & TxtSuffix.Text & ".vb") ThenMe.WaitWindow1.ShowWaitWindow("Adding View " & Lcfilename)CreateDTE_ProjectItems(SqlViewSchema) ElseEnd IfMe.WaitWindow1.HideWaitWindow()NextElse'Warn UserMessageBox.Show( "You must Select a Project in the Solution Explorer!!", "", MessageBoxButtons.OK, MessageBoxIcon.Error)'Make sure wait window is hiddenMe.WaitWindow1.HideWaitWindow()'get outta hereExit SubEnd IfIf MessageBox.Show("All Business Objects have been created " & vbCrLf & vbCrLf & "Would you like to run the business object mapper now?", "Business Object Generator", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) = System.Windows.Forms.DialogResult.Yes ThenMe.ShowBOMapper()End IfMe.Close()Catch ex As ExceptionFinallyMe.WaitWindow1.HideWaitWindow()End TryEnd Sub
|
|
|
Alex Luyando
|
|
Group: StrataFrame Users
Posts: 112,
Visits: 1.2K
|
Hi Paul -
Thanks for the updated code. I rebuilt the Add-in but am getting the same error.
I started debugging the Add-in and I think the issue is inside GenerateBusinessObject(). An exception is being thrown by the loProjectItem = _Project.DTE.ItemOperations.AddNewItem("Common Items\SF Business Object", FileName) line. The exception message is:
Template 'Common Items\SF Business Object' is not valid for the selected project.
I am relatively new to .Net, so I'm not exactly sure where to go with this. I should, however, disclose the following though, just in case it's germane to this issue.
1.) My project is a C#.
2.) Due to the above I assumed (am I correct) that I needed to change the ".vb"s to ".cs"s in the Add-in. I did this before you provided the updated code, and again afterward.
3.) I do have a custom template (subclass of the StrataFrame business object class) that I am using for my business objects. I tried replacing the "Common Items\SF Business Object" reference with a fully-qualified path to my customized business object template, but that didn't work either.
Any help you can provide is much appreciated. I can see this Add-in being useful when dealing with new databases and projects where there are tons of tables and views to hit against.
Thanks!
________________ _____/ Regards, ____/ al
|
|
|
Paul Chase
|
|
Group: Forum Members
Posts: 414,
Visits: 2.8K
|
Hi Alex, Here is a screenshot of the template that I am referencing in the line of code you mentioned, maybe it is named something different is C# ?
|
|
|
Alex Luyando
|
|
Group: StrataFrame Users
Posts: 112,
Visits: 1.2K
|
Paul -
Good Morning!
Thanks... that was the clue I needed. I've got it working, after making a few additional adjustments to deal with VB v. C# differences (e.g., change to Inheritance).
Really appreciate your efforts in creating this BOB and in helping me get it operational in our environment. This baby will get some real use here, I anticipate.
Have a great weekend.
________________
_____/ Regards,
____/ al
________________ _____/ Regards, ____/ al
|
|
|