Wednesday, March 21, 2012

Extending BI studio

Hi,
I need to add a custom menu option say under the Tools menu in the BI studio for SSIS projects. Is it possible to extend BU studio using Visual studio addins, or Visual Studio SDK (VSIP).

The Visual studio addin works fine; however I want my custom menu option to show up only when I have a SSIS project open so that I can perfom my custom step whenever the user selects the menu option

Thanks,
-SuriYou can extend BIDS with standard Visual Studio 2005 add-ins, because it is Visual Studio 2005. If you look at the Help menu, About, you will see it is the full VS IDE. The "Installed Products" list just shows different items depending on if you have installed through SQL Server tools only, VS only, or both SQL & VS together.|||Hi Darren,
The real problem I am facing is that the Visual Studio 2005 addin wizard allows you to specify the contextGUIDS which are defined in the vsContextGuids class. This class has guids defined only for Visual Basic, C# and J# type projects. I am not sure how I can specify a SSIS project using the vsContextGuids class.

-Suri|||Sorry, haven't got that far myself yet, but I look forward to someone else answering as I'm sure I'll need to know.

Just out of interest what does your SSIS specific add-in do?|||In the custom action, I need to load the package, parse it for some specific information, and write that information to a xml file (basically filtered package information) which can be then read and processed by another app we have.

Thanks|||

I'm not positive if this is what you're after, but I have an SSIS deployment add-in that we use to allow developers to deploy packages to a server. We use the following code to determine what packages are in the current solution, it may help? This sample builds nodes on a treeview for each project/package found in the current solution.

Private Const ssisProjectKind As String = "{d183a3d8-5fd8-494b-b014-37f57b35e655}"

If _applicationObject.Solution.Count = 0 Then
Return "Not valid without an open solution"
End If

Dim prjCount As Integer = 0
Dim pkgCount As Integer = 0

For Each proj As Project In _applicationObject.Solution.Projects
If Not proj.Kind = ssisProjectKind Then
Continue For
End If
prjCount += 1
Dim prjNode As TreeNode = Me.tvPackages.Nodes.Add(proj.Name)
For Each pi As ProjectItem In proj.ProjectItems
If pi.Name.EndsWith(".dtsx") Then
Dim pkgNode As TreeNode = prjNode.Nodes.Add(pi.Name)
pkgNode.Tag = pi.FileNames(0)
pkgCount += 1
End If
Next
Next

If prjCount = 0 Then
Return "No SSIS Projects were found in this solution"
End If

If pkgCount = 0 Then
Return "No SSIS Packages were found in this solution"
End If

Thanks!
Harry

No comments:

Post a Comment