EAI Siebel Adapter QueryPage method skipping / duplicates queried records (Doc ID 1673625.1)

Last updated on MARCH 02, 2017

Applies to:

Siebel CRM Marketing, SPE - Version 8.1.1.11 [IP2013] and later
Siebel CRM - Version 8.1.1.11 [IP2013] and later
Information in this document applies to any platform.

Symptoms

FUNCTIONALITY:
------------------
QueryPage method of the EAI Siebel Adapter returns duplicate rows (root component) and skips some rows in the output data

EXPECTED:
------------
Data rows cannot be paged correctly - no duplicates, no missed rows

* * *

Consider the specific case below:

Workflow process was defined to invoke the "QueryPage" method of the "EAI Siebel Adapter" had to page around 10.000 records by 1000
The data were obtained custom Integration Object / Business Object with the root component "Campaign List Contact" (base table: "S_CAMP_CON").
This "Campaign List Contact" Business Component is available as root component of the standard Business Object: "List Mgmt".

The business purpose of the query was find and proceed  contacts of the marketing campaign (its wave).

The "SearchSpec" parameter was provided to specify selection criteria.
The "SortSpec" was not provided.

The essential part of the SOL-statement generated by Business Component layer to fulfill the data query request of "EAI Siebel Adapter" was (MS-SQL example):
"
SELECT ...
...
  FROM
      dbo.S_CAMP_CON T1
         INNER JOIN dbo.S_SRC T2 ON T1.SRC_ID = T2.ROW_ID
         LEFT OUTER JOIN dbo.S_CAMP_LD_WAVE T3 ON T1.CAMP_LD_WAVE_ID = T3.ROW_ID
         LEFT OUTER JOIN dbo.S_SRC T4 ON T2.MKTG_PLAN_ID = T4.ROW_ID
         LEFT OUTER JOIN dbo.S_SRC T5 ON T2.ULT_PAR_SRC_ID = T5.ROW_ID
         LEFT OUTER JOIN dbo.S_LOY_MEMBER T6 ON T1.CON_PER_ID = T6.PR_CON_ID
         LEFT OUTER JOIN dbo.S_CONTACT T7 ON T1.CON_PER_ID = T7.PAR_ROW_ID
         LEFT OUTER JOIN dbo.S_ORG_EXT T8 ON T1.CON_PR_DEPT_OU_ID = T8.PAR_ROW_ID
         LEFT OUTER JOIN dbo.S_BU T9 ON T1.BU_ID = T9.ROW_ID
         LEFT OUTER JOIN dbo.S_POSTN T10 ON T1.POSTN_ID = T10.ROW_ID
  WHERE
     (T1.CAMP_LD_WAVE_ID = ?)
  ORDER BY.
    T1.TARGET_NUM, T1.LOAD_NUM
...
ObjMgrSqlLog Detail  4  Bind variable 2: 1-ABC
..."

The output rows of all pages, confirmed appearance of the same record (ROW_ID) from the root component base table ("S_CAMP_CON")
 and also missing of some data rows from that table which should however match the search specification.

 

Cause

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