What more a Business Service can do?
Posted
by Rajesh Sharma
on Oracle Blogs
See other posts from Oracle Blogs
or by Rajesh Sharma
Published on Fri, 28 May 2010 21:56:32 +0000
Indexed on
2010/05/28
22:23 UTC
Read the original article
Hit count: 417
Business services can be accessed from outside the application via XAI inbound service, or from within the application via scripting, Java, or info zones. Below is an example to what you can do with a business service wrapping an info zone.
Generally, a business service is specific to a page service program which references a maintenance object, that means one business service = one service program = one maintenance object.
There have been quite a few threads in the forum around this topic where the business service is misconstrued to perform services only on a single object, for e.g. only for CILCSVAP - SA Page Maintenance, CILCPRMP - Premise Page Maintenance, CILCACCP - Account Page Maintenance, etc.
So what do you do when you want to retrieve some "non-persistent" field or information associated with some object/entity? Consider few business requirements:
· Retrieve all the field activities associated to an account.
· Retrieve the last bill date for an account.
· Retrieve next bill date for an account.
It can be as simple as described below, for this post, we'll use the first scenario - Retrieve all the field activities associated to an account. To achieve this we'll have to do the following:
Step 1: Define an info zone
(A basic Zone of type F1-DE-SINGLE - Info Data Explorer - Single SQL has been used; you can use F1-DE - Info Data Explorer - Multiple SQLs for more complex scenarios)
Parameter Description |
Value To Enter |
User Filter 1 |
F1 |
Initial Display Columns |
C1 C2 C3 |
SQL Condition |
F1 |
SQL Statement |
SELECT FA_ID, FA_STATUS_FLG, CRE_DTTM FROM CI_FA WHERE SP_ID IN (SELECT SP_ID FROM CI_SA_SP WHERE SA_ID IN (SELECT SA_ID FROM CI_SA WHERE ACCT_ID = :F1)) |
Column 1 |
source=SQLCOL sqlcol=FA_ID |
Column 2 |
source=SQLCOL sqlcol=FA_STATUS_FLG |
Column 3 |
type=TIME source=SQLCOL sqlcol=CRE_DTTM order=DESC |
Step 2: Define a business service
Create a business service linked to 'Service Name' FWLZDEXP - Data Explorer.
Schema will look like this:
<schema>
<zoneCd mapField="ZONE_CD" default="CM_ACCTFA"/>
<accountId mapField="F1_VALUE"/>
<rowCount mapField="ROW_CNT"/>
<result type="group">
<selectList type="list" mapList="DE">
<faId mapField="COL_VALUE">
<row mapList="DE_VAL">
<SEQNO is="1"/>
</row>
</faId>
<status mapField="COL_VALUE">
<row mapList="DE_VAL">
<SEQNO is="2"/>
</row>
</status>
<createdDateTime mapField="COL_VALUE">
<row mapList="DE_VAL">
<SEQNO is="3"/>
</row>
</createdDateTime>
</selectList>
</result>
</schema>
Step 3: Create a XAI inbound service for above created business service
Step 4: Test the inbound service
Go to XAI Submission and test the newly created service
<RXS_AccountFA>
<accountId>5922116763</accountId>
</RXS_AccountFA>
© Oracle Blogs or respective owner