Root and Child Pagination

The EAI UI Data Adapter supports pagination for both root and child components. To support root and child pagination, the EAI UI Data Adapter requires that you set the attributes listed in the following table as part of the integration component instance.

Note: Pagination over root components benefits performance because, as long as the search specification, sort specification, and view mode remain the same, the business component is not re-executed with each invocation of QueryPage. However, for pagination over child components, the component is reexecuted every time you call QueryPage.
Attribute Description

pagesize

The number of records to be returned for a component. The default page size is 10. Note that there is a server parameter that controls the maximum page size (MaximumPageSize). If the pagesize attribute is greater than the maximum pagesize defined in the server parameter, then an error occurs.

startrownum

Determines the starting point for record retrieval. The 0-based index of the record within the recordset.

lastpage

Indicates whether the record being returned is the last record in the record set. The value is set by the EAI UI Data Adapter. Valid values are true or false.

recordcountneeded

When set to true, indicates that a record count is needed for this component. Valid values are true or false.

recordcount

Value set by the EAI UI Data Adapter indicating the approximate record count provided by the object manager based on the search specification.

child pagination

When set to true, enables pagination of child records. Valid values are true or false.

Example of QueryPage on Parent and Child Components

This example demonstrates querying on both parent and child components. In this example, the query is for accounts that begin with ‘A’ and any associated contacts (First Name and Last Name). Note that pagesize is 10 and an approximate record count is requested and returned in the response.

Request

<SiebelMessage MessageType="Integration Object" IntObjectName="Account" 
IntObjectFormat="Siebel Hierarchical">
   <ListOfAccount pagesize="10" startrownum="0" recordcountneeded = "true">
      <Account>
         <Name>='A'</Name>
            <ListOfContact>
            <Contact>
               <FirstName></FirstName>
               <LastName></LastName>
            </Contact>
         </ListOfContact>
      </Account>
   </ListOfAccount>
</SiebelMessage>

Response

SiebelMessage MessageType="Integration Object" IntObjectName="Account" 
IntObjectFormat="Siebel Hierarchical">
   <ListOfAccount recordcount="2" lastpage="true">
      <Account>
         <Name>Adams Tech</Name>
         <ListOfContact lastpage="true">
         <Contact>
            <FirstName>Sally</FirstName>
            <LastName>Brown</LastName>
         </Contact>
            <Contact>
               <FirstName>Terry</FirstName>
               <LastName>Smith</LastName>
            </Contact>
         </ListOfContact>
      </Account>
      <Account>
         <Name>Aleph Inc.</Name>
            <ListOfContact lastpage="true">
            <Contact>
               <FirstName>Bill</FirstName>
               <LastName>Jones</LastName>
            <Contact>
            <Contact>
               <FirstName>Roland</FirstName>
               <LastName>Smith</LastName>
            </Contact>
         </ListOfContact>
     </Account>
   </ListOfAccount>
</SiebelMessage>

Example of QueryPage Using Child Pagination

This example demonstrates querying using child pagination. In this example, the query is for account with name as ABC Mart #18 and any associated contacts (First Name and Last Name). Note that only 10 records are retrieved though there are 4999 records. This is because the page size is 10 and child pagination parameters is also set.

Request

<SiebelMessage MessageId="" IntObjectName="EAI Account" MessageType="Integration 
Object" IntObjectFormat="Siebel Hierarchical">
      <ListOfEAI_spcAccount>
          <Account Name="ABC Mart #18">
               <ListOfContact recordcountneeded="true" startrownum="0" 
ChildPagination="true" pagesize="10">
                <Contact>
                </Contact>
               </ListOfContact>
          </Account>
      <ListOfEAI_spcAccount>
</SiebelMessage>

Response

<SiebelMessage MessageId="" MessageType="Integration Object" IntObjectName="EAI 
Account" IntObjectFormat="Siebel Hierarchical">
      <ListOfEAI_spcAccount lastpage="true">
         <Account Name="ABC Mart #18">
             <ListOfContact recordcount="4999" lastpage="false">
                <Contact First_spcName="M*" Last_spcName="A*"></Contact>
                <Contact First_spcName="MAYA" Last_spcName="ANDERSON"></Contact>
                <Contact First_spcName="ABS_ADMIN_EMP1" 
Last_spcName="ABS_ADMIN_EMP1"></Contact>
                <Contact First_spcName="ABS_ADMIN_EMP2" 
Last_spcName="ABS_ADMIN_EMP2"></Contact>
                <Contact First_spcName="ABS_ADMIN_EMP3" 
Last_spcName="ABS_ADMIN_EMP3"></Contact>
               <Contact First_spcName="ABS_ADMIN_EMP4" 
Last_spcName="ABS_ADMIN_EMP4"></Contact> 
<Contact First_spcName="HARRY" Last_spcName="ADAMS"></Contact>
                <Contact First_spcName="VERNON" Last_spcName="AJAX" ></Contact>
                <Contact First_spcName="THOMAS" Last_spcName="ALEX" ></Contact>
                <Contact First_spcName="MAY" Last_spcName="ALLISON" ></Contact>
             </ListOfContact>
         </Account>
      </ListOfEAI_spcAccount>
</SiebelMessage>