You are on page 1of 3

Cleanup of Versioned Related Tables

Description

In Siebel 7.8 we introduced a new data model for versioned objects which are
 Products
 Classes
 Attributes
 Signals
 Variable Maps
(please see also Siebel bookshelf, …)

Every versioned object can be locked, changes and released. This will generate a new
version and therefore new records in versioned related tables like S_VOD_VER.

Up to Siebel 7.8.2.3 we generated new versions for each Release action. This could
generate a lot of versioned records. So the question was how to cleanup versioned
related tables. This alert describes the correct actions to do this.

Expected Results:

All versioned tables are correctly cleaned up and have one versioned record.

Resolution:

Neither direct sql nor BC scripting approach is appriopriate to cleanup version related
tables. In order to address this issue we created two change requests:

1) Change Request #12-1CACFLY

Up to 7.8.2.3, when a product is imported, we will wipe out all entries in WS, and
recreate all the traits. When such a workspace gets released, a new set of traits will be
created even if only no change was made on them. So we will accumulate a large
number of records in trait tables (S_ISS_*), especially when ADM is used as it is
basically import.

With 7.8.2.4 we do not create new versions if there are no changes on the versioned
object. This is named "Smart Release".

2) Change Request #12-1CB51CV

If you already have a large number of versioned records we provide a new API method
to delete all existing versions except workspace. This allows customers to start from
scratch and re-release the workspace version.

Please note:
This feature is highly risky and should only be used with cautious and one time, only to
cleanup data accumulated. Then the application should use the smart release feature as
described in change request #12-1CACFLY and available with Siebel 7.8.2.4
Business Service: “ISS Authoring Import Export Service"

Method name: “CleanupSingleObject”

**WARNING** : Use this method with extreme caution as it will DELETE all
published versions of a product.

This helper method will perform deep delete on all published versions of an object
Version numbering will be reset to 1
Content of Workspace version will remain intact

The object's locking flag is not checked - method will clean the structures anyways
Method Arguments:
Argument Type Description
MethodName In method name:
CleanupSingleObject
SiebelMessage In information for cleaning an
object
SiebelMessage Out none

Properties of inputArgs:
Propery Value Description

RootObjectType ISS_ATTR_DEF or type of the object (LIC value


ISS_CLASS_DEF or from ISS_VOD_TYPE mlov)
ISS_PROD_DEF or
ISS_SIGNAL or
ISS_VAR_MAP
VODObjectNum id of the object S_VOD.OBJECT_NUM or
S_PROD_INT.CFG_MODEL_ID

Examples:
Create a new product under Administration Product, product Definition and release it a
few times, possibly by doing some changes with each Relase. The object is “0 Lutscher”
with object id “1-A0Q”.

Before Cleanup operation:


After Cleanup operation you will only see the Workspace record.

Please note:
After a successful run of this tool please lock and release a new version before
you start any other action!

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)


{
var obj_id = "1-1XT7XU";
var bs = TheApplication().GetService("ISS Authoring Import Export Service");
var inp = TheApplication().NewPropertySet();
var out = TheApplication().NewPropertySet();

inp.SetProperty("RootObjectType","ISS_PROD_DEF");
inp.SetProperty("VODObjectNum",obj_id);

bs.InvokeMethod("CleanupSingleObject",inp,out);
return (CancelOperation);
}

You might also like