You’re quite welcome. The utility is rather bare bones though, and doesn’t have a “move” function, or any ability to create new objects. It could be done … kinda. The “move” would have to be an add / delete, and that would mess up any existing reports … I think.
This is great!! It worked for BO XI R1. All I had to change was - In VB -> Tools -> References, remove MISSING BO Designer 5.x Object Library and check the box for Business Objects Designer 11.0 Object Library. And as suggested replace .loginAs with .LoginDialog at two places; save the changes.
Here is the sequence that I had to follow
Open the Designer, sign in
Run GetInfo macro. It prompts you to login again.
Opens a dialog box to select/open .unv file; it then opens selected universe and populates the excel with object names
For testing, you may want to copy the object names into description and save the excel
If Designer is closed; relaunch and sign-in
Run MakeChanges macro from Excel
Designer login dialog prompts you to sign-in and select/open the .unv
It makes changes to description and asks whether you want to save he changes - say yes.
I’m running BO XI R1… tried the code with the minor adjustments suggested yet I get a run time error ‘30’ basically highlighting ‘DesignerApp.Visible = True’
I am using XI Rel2 . I tried to use the excel workbook to mass update the object descriptions. Even though it is working on one of our machines which has BO 6.5 , it is not working on the machine where we have BO XI Rel2.
I have changed the following : Removed MISSING BO Designer 5.x Object Library and check the box for Business Objects Designer 11.5 Object Library
It throws an error when i try to run the macro: “The LoginAs method has been deprecated. Please use one of the new login methods”.
Any suggestions ? Attached is the download for you reference.
Sanjit
Got the answer of my own question : change Call DesignerApp.Login to
Call DesignerApp.LogonDialog
which means that you need to change the macro in your version. Replace all lines where it says DesignerApp.Login with DesignerApp.LogonDialog
I don’t have XI R2 but according to the docs that should be all that is required.
There is a later version of the macro here which has more functionality:
I have patched my version and will submit it to BOB Uploads today to replace my updated version. for the moment I have attached a copy but the latest version will always be avaiable via BOB downloads.
This is a great utility, but have anybody’s clients raised concerns about security issues of using macros on one of their servers? Is there any clever way to restrict people from ever editing the existing macros or creating new ones? What are some ways, other than just password-protecting the worksheet, that security can be increased without limiting the functionality of this utility? Thanks.
I use the tool internally so I don’t have clients but there are several things to remember:
I don’t think it is possible to prevent people from using macros outside of BO like this one. The problem is that the object model is open to any application that can use VBA. If you want to restrict people from using Excel then I think MS Office has controls to say that people can’t write macros.
I suspect that someone could manipulate the object model using Windows Shell Script if they wanted to.
The utility requires someone to have access to Designer rather than an ordinary Reporting account. If you trust people to use Designer then you are implicitly saying that you trust them to change the universe. This utility doesn’t allow changes that you can’t make through the front-end it just allows you to make them a lot quicker.
The macro itself only works on the client PC. The user still needs to export the universe to the live environment. In my company only the BO administrators are allowed to put the universes live so there is an extra level of checks.
Macros in reports can be controlled using Supervisor but I don’t think that is what you meant.
I think what we may end up doing is importing the universe to my computer, which has a local BO install (I normally work on their servers’ installs), update the definitions on my laptop, and export them back to the client’s development server. Kind of a pre-development environment.
…and nobody that uses my laptop is smart enough to hack the macros in the ways you described.
I just wrote this macro to import universe, do LOV refresh, export universe. But i am firing that through an Excel sheet. Could any one help me to trigger this code on server (remote machine) with just one click.
Thanks
Sub DoLOVRefresh()
Dim RowNum As Long
Dim RowNum1 As Long
Dim Cls As Designer.Class
Dim Obj As Designer.Object
Set DesignerApp = New Designer.Application
DesignerApp.Visible = True
Call DesignerApp.LoginAs
Call DesignerApp.Universes.Import("DomainName", "UniverseName")
MsgBox ("Imported Universe Successfully")
Set Univ = DesignerApp.Universes.Open
For RowNum = 1 To Univ.Classes.Count
Set Cls = Univ.Classes.Item(RowNum)
For RowNum1 = 1 To Cls.Objects.Count
Set Obj = Cls.Objects.Item(RowNum1)
If Obj.HasListOfValues = True Then
If Obj.ExportLovWithUniverse = True Then
Obj.ListOfValues.Refresh
MsgBox ("Done LOV Refresh for " & Obj.Name)
End If
End If
Next RowNum1
Next RowNum
MsgBox ("Completed LOV Refresh for All Objects")
Univ.Save
Univ.Close
Call DesignerApp.Universes.Export("DomainName", "Groups", "UniverseName")
DesignerApp.Quit
Set DesignerApp = Nothing
End Sub
I’m not sure I understand your question.
Are asking how to add a button/command to Excel to automatically start the macro or start it when the macro is loaded? If so then have a look at the Excel VBA and using a Command Button to run the maco or use an AutoOpen (not a recommended solution ) to do it.
In its most basic form->Drop a command box on the excel sheet. Change the properties and add something like the following code:
Private Sub GetInfoBut_Click()
DoLOVRefresh
End Sub
N.B. you would need to add extra error handling.
BTW you are likely to get more replies if you put this in a seperate post rather than reply to this one as people will read this one for details about updating the universe en-mass.
is there any way we can change this macro to add this functionality.
Compare Current Select and Current Object Name to another excel file assume the name of the file is (“METADATA”) and
If the current select is matching to the select column in METADATA sheet but CURRENT Object Name is not matching …update the object name by adding it to the NEW OBJECT NAME
Pleaseeeeeeeeeeeeeeeeeee !!! help I have not done any macro work yet :(((