There are situations when due to some
business requirements you make changes in the existing Products/Promotions (configured
in Administration – Products screen), may be you add a simple product at the
second level hierarchy with a minimal cardinality as 1 or add some attribute
with some pre-default value and so on.
So, in these kind of situations, while you
are working on Asset based ordering (ABO) processes, on the existing Assets (which
are based on such Promotions/Products where structure got changed), system
doesn’t bring newly added product (in the hierarchy with min cardinality as 1)
in the Quote/Order line item automatically, unless you open the Product
Configurator window manually by clicking Customize button and then you will see
a warning message there. Then you click on Accept button and after that click
on Done button so that system fixes the Line items structure for you.
(Please note
that we are just talking about fixing the “Default” structure of the complex
product here)
So, bottom line is you have to open Product
Configurator window to get it fixed. But what about the scenarios where ABO
operations are performed by third party systems with the help of some
web-services and no manual intervention would be there. How to get the
Promotion/Product structure fixed in such situations?
And the answer is you can make use of
headless configuration and achieve this using RCOIS business
service: Remote Complex Object Instance Service (RCOIS)
So, here below are the steps that you can
call as part of a sub-process:
(Let’s assume
we are working on some Quote, and the quote line items structure would be fixed)
·
Load EAI
BS Name : ISS
Copy Service
BS Method : LoadEAI
Input Arguments
Input Argument
|
Type
|
Value/Property Name
|
IntegrationObjectName
|
Literal
|
7.7 Quote Integration Object
(IO to query Quote)
|
ParentObjectId
|
Process Property
|
ActiveDocumentId
(Row Id of the Quote)
|
RootId
|
Process Property
|
RootId
(RowId of the Root quote line item)
|
SearchSpec
|
Expression
|
"[Header.Id] = '" + [&ActiveDocumentId] + "' AND
[Line Item.Root Id] = '" + [&RootId] + "'"
|
Output Arguments
Property Name
|
Type
|
Output Argument/Value
|
|
|
|
·
Load Instance
BS Name : Remote
Complex Object Instance Service
BS Method : LoadInstance
Input Arguments
Input Argument
|
Type
|
Value/Property Name
|
IntObjName
|
Literal
|
7.7 Quote Integration Object
|
ObjId
|
Process Property
|
ActiveDocumentId
|
RootId
|
Process Property
|
RootId
|
ExternalScript
|
Literal
|
Y
|
Output Arguments
Property Name
|
Type
|
Output Argument/Value
|
|
|
|
·
Get Instance
BS Name : Remote
Complex Object Instance Service
BS Method : GetInstance
Input Arguments
Input Argument
|
Type
|
Value/Property Name
|
IntObjName
|
Literal
|
7.7 Quote Integration Object
|
ObjId
|
Process Property
|
ActiveDocumentId
|
RootId
|
Process Property
|
RootId
|
Output Arguments
Property Name
|
Type
|
Output Argument/Value
|
|
|
|
·
Sync Instance
BS Name : Remote
Complex Object Instance Service
BS Method : SyncInstance
Input Arguments
Input Argument
|
Type
|
Value/Property Name
|
IntObjName
|
Literal
|
7.7 Quote Integration Object
|
ObjId
|
Process Property
|
ActiveDocumentId
|
RootId
|
Process Property
|
RootId
|
TriggerEvent
|
Literal
|
Y
|
Output Arguments
Property Name
|
Type
|
Output Argument/Value
|
|
|
|
·
Unload Instance
BS Name : Remote
Complex Object Instance Service
BS Method : UnloadInstance
Input Arguments
Input Argument
|
Type
|
Value/Property Name
|
IntObjName
|
Literal
|
7.7 Quote Integration Object
|
ObjId
|
Process Property
|
ActiveDocumentId
|
RootId
|
Process Property
|
RootId
|
Output Arguments
Property Name
|
Type
|
Output Argument/Value
|
|
|
|
So, these
small set of steps will help in achieving the same end result that you would achieve
by manually clicking the “Customize” button on the UI, then “accept” the
warning displayed in the Product Configurator window and then click “Done”
button.