Sunday, August 22, 2010

Completely rebuilding the tables used by the Cross Reference Facility application in EnterpriseOne is a large, complex process that can take a long time to run. There is a way to shorten the run time of the rebuild but selecting only those objects changed since the last run.

The Cross Reference Facility application (P980011) in EnterpriseOne gives developers and administrators information about how E1 objects are related to each other - what objects are used by another object. Every possible connection from every possible perspective is detailed in Cross Reference. Tables used by an Interactive Application, Forms using a Data Item, Everywhere a Business Function or NER is Used, Named Event Rules Using an Index....everything used or using everything, it's there.

Because of the number of relationships, the tables containing the relationship data are very large and the Cross Reference rebuild takes a long time to run, sometimes dozens of hours for a complete rebuild for all object types. This is to be expected when generating so much information but since most of the relationships never change - the F0101 is always going to be used by P0006 and P01012, we do not need to build those already established connections every single time.

The Cross Reference Rebuild UBE (R980011) can be run with data selection, allowing finer grained control over the rebuild. One can choose to only rebuild APPL's or just the BSVW's, but more importantly you can run the rebuild over only those objects that have changed since a certain date. Here's how:

Copy the "All Objects" version of R980011 and add a condition for BC Date - Update (F9861) (UPMJ) is greater than or equal to [Date you last ran the rebuild]. This will cause the R980011 to check the UPMJ field in Object Librarian and only process those records with a date more recent than the date specified.

The run times for the Cross Reference rebuild will be greatly decreased since it may only have to process a couple of changed records instead of every single object in the system. If you have added a custom object that is referenced by another, or if you have changed an existing object so that is uses a different table or form, etc. the partial Cross Reference rebuild will catch that.

It is a good idea to run the R980011 periodically (monthly, quarterly, etc), changing data selection each time to the date of the last run to cause it to only rebuild relationships established since then. It would be really nice if Oracle would code the UBE so that it would know when it was last run and do a partial rebuild without having to set new data selection each time.