5 Replies Latest reply: Aug 27, 2014 5:46 PM by Frank.Hampshire-Oracle RSS

    Siebel system field 'Created' in IO Mapping not populated

    930442

      Hi Experts

       

      I am trying to pass the system field 'Created' from a entity in Siebel through IO Mapping to OPA.

      I have changed the Type of the field to 'Data' from 'System' in the IO.

      The OPAAttribute user property is also created for this field and is mapped to the public name of the field in OPM.

      The corresponding field in OPM is created as 'Date and Time'.

       

      But the result xml shows that no value is being passed in this field to OPA.

      The other system field 'Id' is passed properly from Siebel in above manner and OPA is able to use it.

       

      Please suggest.

       

      Thanks

      Swati

        • 1. Re: Siebel system field 'Created' in IO Mapping not populated
          Frank.Hampshire-Oracle

          Swati,

           

          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".

           

          Frank

          • 2. Re: Siebel system field 'Created' in IO Mapping not populated
            930442

            Hi Frank

             

            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.

             

            Thanks

            Swati

            • 3. Re: Siebel system field 'Created' in IO Mapping not populated
              Frank.Hampshire-Oracle

              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

               

              Cheers

              Frank

              • 4. Re: Siebel system field 'Created' in IO Mapping not populated
                930442

                Hi Frank

                 

                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.

                Swati

                • 5. Re: Siebel system field 'Created' in IO Mapping not populated
                  Frank.Hampshire-Oracle

                  Swati,

                   

                  Glad to hear you were able to solve this.

                   

                  Cheers

                  Frank