My understanding is that this is the standard approach to Siebel Integration Objects, Siebel won't output any System fields, if you want the field to be sent to OPA, you need to change its data type to "Data".
This is the same problem described in the Tips and Tricks section of the Developers' Guide
Use the Id field as the "Integration Object ID Field"
Most Business Components have an Id field. For the root Integration Component, this is an ideal field to use as the Integration Object ID field. If you don't want to use this field, you must choose another single field unique key on the root Integration Component to use as the Integration Object ID field for a mapping,
When an Integration Object is created, the Id field is marked with Data Type equals to "System", which means that it will not be added to the XML and not appear in Oracle Policy Automation. If you want any system field to appear in Oracle Policy Automation, you can change the Data Type to "Data".
As mentioned in my post, the Type of both the fields 'Id' and 'Created' are changed to 'Data' in the IO.
But still no value is passed for the 'Created' field whereas the value of 'Id' is passed properly to OPA.
1 person found this helpful
Sorry Swati, I missed that in your original post.
I can think of 2 possibilities:
1. For some reason Siebel is never adding the Created field to the IO.
To check if the problem is Siebel, you need to see what the integration object coming out of Siebel looks like. To do this, you should turn up you siebel debugging, this should dump and outbound XML in the siebel log directory and you should be able to see what is coming out of siebel.
2. The attribute that you expect to be receiving the Created field is not mapped correctly.
* Make sure that you restart the web applications after you change the Integration object. For performance reasons, the IO meta-data is cached after the first call.
* Check to see that the attribute that you expect the Created field to go to is on the right entity and if the mapping is implicit, has the name "Created"
* Create and explicit mapping on the Integration object for that Field by adding the custom property OPAAttribute equal to the attribute public name (be sure to restart the web applications so the IO meta-data is reloaded.
* Change the log4j settings of the web application if you change the log level to "info", the first time a request is run (and the IO meta-data is loaded) you should get a message like "Attribute <att> of entity <entity> does not exist in the rulebase, skipping exporter" if the attribute that created is supposed to be mapped to could not be found.
Hope one of these approaches works for you
Thanks for the suggested approaches and sorry for the delayed response.
Had checked that the value for the 'Created' field was passed properly from Siebel.
The IO mappings for the field were also correct.
Was able to see the web application log by changing the log4j settings.
Here it was showing that for this field, the type of the field was considered as 'Text' and ignored.
12:17:33,667 INFO [http-8080-1] INFO com.oracle.determinations.engine.Session - Renaming entity instance activity, instance 2, session 1 from 0x77f01528e2041981 to 1-2OLQX
12:17:33,667 INFO [http-8080-1] INFO com.oracle.determinations.server.plugins.IOModelUtils - Ignoring attribute activity_created_date of entityactivity due to type mismatch - expected datetime but was text
12:17:33,667 INFO [http-8080-1] INFO com.oracle.determinations.engine.Session - User setting attribute activity_creator, entity activity, instance name 1-2OLQX, session 1 to value 0-1
12:17:33,682 INFO [http-8080-1] INFO com.oracle.determinations.engine.Session - User setting attribute activity_type, entity activity, instance name 1-2OLQX, session 1 to value Fax
On further digging found that it was due to the 'External Data Type' property on the IC field which had no value for the system field 'Created'.
For all system fields this property is blank. So it was considered as default Text, hence the mismatch.
On changing the 'External Data Type' property of 'Created' in the IO to DTYPE_DATETIME, it started working !
Thanks again for the troubleshooting steps. Issue is resolved now.
Glad to hear you were able to solve this.