Skip to Content
0
Former Member
Feb 21, 2009 at 07:32 PM

No selective or conditional update of DSO data items?

34 Views

I am working on a BW application that maintains the current state of a particular type of business document in a standard DSO. The document data record includes some items that must maintain their original values throughout the lifecycle of the business document, such as the date and time that the document initially entered certain lifecycle states and the names of the users that made those specific state changes. This approach consolidates the current document status in a single data record, versus incurring the overhead of querying a delta record data store and assembling the required information from a series of records at query time.

At DSO activitation time, the standard BW delta record processing model simply inserts new records that don't already exist (based on the PK), or replaces existing records in their entirety. Apparently, noo selective or conditional update logic is supported.

Due to this limitation, at present, the application saves the historical information in a separate "change history" DSO, and then does lookups in that DSO from the DTP Start routine every time the main DSO is loaded, in order to insert the historical values to be retained into the source data package records. This seems like a total kludge to me.

There is apparently no straightforward way to do the following:

1. Specify item-specific, conditional update rules that execute based on the value of a data item in the data source structure and/or in the existing record the target DSO. (i.e., why have a lookup on a separate "change history" DSO when the data values required to implement the required update logic are available in either the source or target?)

2. Specify certain DSO characteristics or key figures for update, or exempt certain DSO characteristics or key figures that should be left unchanged by subsequent record updates.

Is there a better, more elegant way to retain the values of the data items that shouldn't be overwritten than the way it is currently being done?