How to make "GetInstance" method of the "Remote Complex Object Instance Service" BS return "Product Type" field (for items added by the "AddItem" method)? (Doc ID 1671198.1)

Last updated on MARCH 02, 2017

Applies to:

Siebel CRM - Version 7.8 [19021] and later
Information in this document applies to any platform.

Goal

QUESTION:
--------------
How one can make the "GetInstance" method of the "Remote Complex Object Instance Service" (RCOIS) standard Business Service (BS=
 to return the "Product Type" field of an in-memory instance for a product item added by the "AddItem" method.

Background:
- - - - - - - - -
The custom Business Service is written tot invoke "AddItem" and "GetInstance" methods of RCOIS BS as extra step in the "SIS OM Edit Complex Asset Workflow" workflow process
(after the standard step: "Set Requested Product Instance" - calls the "Set Product Instance" method of the "SIS OM PMT Service" standard BS).

* * *

Following is code snippet of custom (eScript) Business Service ("ITO Product Configuration Service"),
that represents the mentioned combination of RCOIS methods usage:
 - "AddItem" - adds new order item with a product id
 - "GetInstance" - obtains Order items list with not-populated product type for items, added by the "AddItem".
"...
function UpgradePackage( Inputs, Outputs )
{
...
platformId = platformPS.GetProperty("Id");
platfromProductId = platformPS.GetProperty("Product Id");
platformPath = platformPS.GetProperty("Integration Id");

ips = TheApplication().NewPropertySet();
ops = TheApplication().NewPropertySet();

bsRCOIS = TheApplication().GetService( "Remote Complex Object Instance Service" );

ips.SetProperty( "Product Id", platfromProductId );
ips.SetProperty( "GetPortDomain", "Y" );

bsRCOIS.InvokeMethod( "GetAllPorts", ips, pckgPortsPS );
...
ips.SetProperty( "ObjId", platformId );
ips.SetProperty( "RootId", platformId );
ips.SetProperty( "Parent Path", platformPath );
ips.SetProperty( "Quantity", "1" );
ips.SetProperty( "Port Item Id", portItemId );
ips.SetProperty( "Prod Item Id", prodItemId );
ips.SetProperty( "Product Id", newPckgId );
ips.SetProperty( "Name", portObjectName );

bsRCOIS.InvokeMethod( "AddItem", ips, ops );

newPckgPath = ops.GetProperty("Integration Id1");
..
ops.Reset();
ips.Reset();
ips.SetProperty( "ObjId", platformId );
ips.SetProperty( "RootId", platformId );
bsRCOIS.InvokeMethod( "GetInstance", ips, ops );
..."


The output complex object instance (asset), returned in the "GetInstance" method
 did not include the "Product Type" field for each product item.

How one can make the "Product Type" field be populated in the "GetInstance" outputs?
 

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms