BusinessObjects Board

Change Select statement in Universe

I have been beating my head against the wall for 2 days now on something I would think would be a simple thing.

We are making major changes to our DW and I need to change the Select statement on almost every single object in the universe.

So here is what I did, I copied the current universe and added all the nwe tables and save the universe. Then I wrote a VBA script which modifies the obj.Select and the obj.Tables references for each object to the new values and saves the new universe.

Now I try to parse on of the changed fields and get "Parse Failed: Invalid definition (UNV0023).

If I simply click on the “Select” window and press and parse again, it works.

I must be missing something else I need to change.

Help please.

BO XI R2 FP3.4


tphillip33 (BOB member since 2008-05-01)

I’m running into the same issue, it seems like Business Objects doesn’t detect the change, without first manually modifying that text area as you suggest. It’s almost like it needs an isChanged method to fire in order to update the object definition. Anyone found a work around for this?


RufusLancaster :us: (BOB member since 2005-11-02)

Did you delete the old tables when you added the new ones?


darcstorm :philippines: (BOB member since 2008-07-22)

I updated the objects first with the new definition, then deleted the old tables.


RufusLancaster :us: (BOB member since 2005-11-02)

I think the problem might be that the object is holding onto the old table.
If you leave the old table and update the object to the new table do you still get the parsing error?


darcstorm :philippines: (BOB member since 2008-07-22)

I think darcstorm is correct, it looks like it was still holding onto the original table. I added the following code to remove the table from the object definition and the object successfully parses:


Dim origTable as String  'Table to be removed from object definition
Dim TableNum as Integer  'Index of table in Tables collection

origTable = "MyTable"
TableNum = 0

'Update object if origTable exists in Tables collection
For Each Table In Object.Tables
    TableNum = TableNum + 1
    'If table exists, then remove table
    If (Table.Name = origTable) Then
         Object.Tables.Item(TableNum).Delete
    End If
Next Table

Thanks for all your help.


RufusLancaster :us: (BOB member since 2005-11-02)

I am about to start a similar task.
Where should I execute this query. Can you please give me some headsup?

Thanks…


JohnJustus :us: (BOB member since 2007-06-25)

What query? Are you getting this error?


RufusLancaster :us: (BOB member since 2005-11-02)

I mean the VBA script. We are considering migrating to different database, so the existing classes and objects in the existing universe has to be now pointed to new databse.
So I am thinking of using this VBA script to automate the select statement (if I am correct). So where should I execute the VBA script. I am basically new to this task.
Thanks…


JohnJustus :us: (BOB member since 2007-06-25)

I use the VBA in a module attached to an Excel document. See the download section for the ‘Document a Universe’ excel document. You can use that as a base for making your changes.


RufusLancaster :us: (BOB member since 2005-11-02)