Professional Documents
Culture Documents
Campus Solutions 9.0 To EBS Financials (General Ledger) Integration Developer's Reference Guide
Campus Solutions 9.0 To EBS Financials (General Ledger) Integration Developer's Reference Guide
Campus Solutions 9.0 To EBS Financials (General Ledger) Integration Developer's Reference Guide
This document is provided for information purposes only and the contents hereof are
subject to change without notice. This document is not warranted to be error-free, nor
subject to any other warranties or conditions, whether expressed orally or implied in
law, including implied warranties and conditions of merchantability or fitness for a
particular purpose. We specifically disclaim any liability with respect to this document
and no contractual obligations are formed either directly or indirectly by this document.
This document may not be reproduced or transmitted in any form or by any means,
electronic or mechanical, for any purpose, without our prior written permission.
INTRODUCTION .......................................................................................................................................................... 5
Structure of this Developer’s Reference Guide ............................................................................................................ 5
Related Materials .......................................................................................................................................................... 5
ARCHITECTURE .......................................................................................................................................................... 8
Figure 1: Functional Illustration ................................................................................................................................. 8
Figure 2: Technical Illustration .................................................................................................................................. 9
Introduction
This Developer Reference Guide is a practical guide for technical users, installers, system administrators, and
programmers who implement, maintain, or develop applications for your PeopleSoft system. In this Developer
Guide, we would present an approach to integrate Campus Solutions (CS) with Oracle E-Business Suite Financials
(EBS GL) using Oracle BPEL.
The environment setup for the information contained in this document uses Oracle SOA Suite 10g (10.1.3.1).
However, the same approach can be implemented when using other versions or Integration Solutions.
PeopleSoft updates this document as needed so that it reflects the most current feedback we receive from the field.
Therefore, the structure, headings, content, and length of this document are likely to vary with each posted version.
To see if the document has been updated since you last downloaded it, compare the date of your version to the
date of the version posted on Customer Connection.
RELATED MATERIALS
This document is not intended to be a general introduction to environment tuning and we assume that the targeted
readers are experienced IT professionals with a good understanding of PeopleSoft’s Internet Architecture, Oracle
E-Business Suite and Integration Technologies. To take full advantage of the information covered in this document,
we recommend that the reader have a basic understanding of Internet Architecture, web services, relational
database concepts/SQL and database programming/PL SQL, and how to use PeopleSoft Application and Oracle
E-Business suite.
This document is not intended to replace the documentation delivered with PeopleTools. We recommend that
before you read this document, you read the PIA related information and the Integration Broker concepts in the
PeopleTools PeopleBooks to ensure that you have a well-rounded understanding of Integration technology.
Many of the fundamental concepts related to PIA and Integration broker are discussed in the following PeopleSoft
PeopleBooks:
Refer to http://download.oracle.com/docs/cd/E13292_01/pt849pbr0/eng/psbooks/tprt/book.htm
This PeopleBook describes the processes for using PeopleSoft Integration Broker to develop and
administer web services.
Refer to http://download.oracle.com/docs/cd/E13292_01/pt849pbr0/eng/psbooks/tibr/book.htm
Additionally, we recommend that you read the following BPEL documentation to gain a thorough understanding of
the BPEL processes explained in this document:
Refer to http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28983/toc.htm
Refer to http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/toc.htm
Refer to http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28982/toc.htm
This Developer Reference Guide has not been submitted for any formal testing process and has not undergone
rigorous review. The material here is published as is. Oracle assumes no responsibility for its accuracy or
completeness. The use of this information or the implementation of any of these techniques is a customer
responsibility and depends upon the customer's ability to evaluate and integrate these techniques into their
operational environments.
Student Financials currently integrates completely with Enterprise Financials. The chart of accounts, GL Business
Unit details all come from Enterprise Financials. The Chartfield Combinations are also validated against valid data
in Enterprise Financials (GL). There is a need to have similar full integration with Oracle Financials (GL). The
feature has functional dependencies on Oracle General Ledger Setup, PeopleSoft HCM setup and PeopleTools.
More details on the feature can be found in PeopleBooks. This integration involves the following components on
the Campus Solutions end:
• Setup to indicate usage of PeopleSoft Financials or Oracle Financials (General Ledger) or others
• Associate GL Business Unit (GLBU) to Ledger, Operating Unit (OU) and Legal Entity(LE) in Oracle GL
• Modify existing chartfield pages to support changes. Real-time validation of entered code combinations with Oracle GL
To achieve this integration with Oracle Financials there is a need to develop some web services. This guide, details
the technical details on developing web services to achieve this.
Architecture
The above diagram provides high level details of Student Financials to Oracle Financials integration.
The above diagram illustrates the Technical approach for Student Financials to Oracle Financials integration.
Integration Services
Environment Setup
The following is the Environment setup used for the purpose of this Technical Document;
Pre-Requisite Setups
A database connection has to be created in JDeveloper, which can be reused for DB adapter configuration across
the BPEL processes.
4. Click Next.
6. Click Next.
8. Click Next.
9. Leave the default for driver and provide the appropriate Host Name, JDBC port and SID for the database.
(These details can be obtained from the TNS entry of the database)
11. Click ‘Test Connection’ and verify that the status is Success, else revisit the above steps and verify the
details.
SYNCHRONIZE SEGMENTS
Overview
Source Application : EBS Financials (GL)
Target Application : Campus Solutions (CS)
Process Type : Asynchronous One-way
The Synchronize Segments BPEL process is an Asynchronous process, which can be triggered either from
Oracle Financials or BPEL console.
All Active Flexfield segments in EBS Financials (GL) are fetched into a payload and pushed to Campus Solutions.
The Notification Handler specified for the Service Operation takes care of parsing the XML payload and populating
the respective tables with segment data.
The Development of Synchronize Segment service can be divided into a 2 step process.
1. Navigate to the Create and maintain Service Operations page: Main Menu > PeopleTools >
Integration Broker > Service Operations.
3. In the General Tab activate the Service Operation by checking the Active checkbox as shown.
4. Click Save.
Activate Handlers
1. In the above Service Operation navigation, for the same service operation
SSF_GL_SEGMENT_FULLSYNC, go to the Handlers tab.
3. Click Save.
1. Navigate back to the General tab and generate the Any to Local routing by checking the Generate Any-to-
Local checkbox as shown below.
2. Click Save.
Not Required.
1. Navigate to the Maintain Queue’s page: Main Menu > PeopleTools > Integration Broker > Queues.
4. Click Save.
1. Navigate to Provide web services page: Main Menu > PeopleTools > Integration Broker > Provide
Web Service.
3. Click Next.
5. Click Next.
6. In the view WSDL step, verify the WSDL and click Next.
8. Click Finish.
9. This will complete the WSDL generation process and the WSDL URL is published.
10. Make a note of the WSDL URL, as this will be provided for the partner link creation in the Design BPEL
process step.
In this step, we will use BPEL designer available as plug-in with JDeveloper, to create the BPEL process.
Below are the steps involved in creating the BPEL process. Launch JDeveloper and follow steps given below:
1. Select an Application, right click and go to New Project > BPEL Process Project.
2. Provide Sync_GL_Segments for name and choose Asynchronous BPEL Process as type. Leave the
remaining defaults. Click Next.
3. The process is triggered asynchronously and the payload pushed to Campus Solutions (CS) by consuming
a service provided in CS, so there is no need to provide any Input or Output schemas. Leave the defaults
and press Finish.
5. Double click the client partner link and change the Partner Link name client to Sync_GL_Segments.
Verify that the Partner Role and My Role are as shown below, and click Apply, OK.
Database Adapter (DB Adapter) configuration for getting the Flexfield Segments from EBS GL
6. In the Component Palette select Services from drop list. Drag the Database Adapter and drop it onto the
right Services swim lane.
8. Provide Get_Segments as the Service Name and a suitable description (e.g. Fetch flexfield segments
from EBS GL) to the DB adapter. Click Next.
9. Select the pre configured Database connection from drop down. Leave the default for JNDI name and click
Next.
10. In the Operation Type page select Execute Custom SQL and press Next. It opens up a page to enter the
custom SQL.
NOTE: The ID_FLEX_CODE needs to be compared to ‘GL’ || Chr(35) equivalent to ‘GL#’, ‘#’ being a
reserved character for DB Adapter.
12. The input / output XSD for the DB adapter is automatically generated and displayed in the XSD section.
Click Next.
15. Under Component Palette select Invoke activity and drop it in-between the receiveInput and
callbackClient activities. Rename it as Invoke_Get_Segments.
16. Drag the right connector of the Invoke activity onto the Get_Segments DB adapter in the right swim lane.
17. In the Edit Invoke dialog box, choose to auto create Input and Output variables.
19. Select Partner Link under services from Component Palette and drop into right swim lane in the Flow
diagram.
21. Under the WSDL File, provide the WSDL URL generated in Provide Web Service and Generate WSDL
URL section of Configure PeopleSoft step.
22. Select the partner Link Type and select the Partner Role as Provider as shown:
24. Select Invoke activity and drop it in-between the Invoke_Get_Segments and callbackClient activities.
Rename it as Invoke_Publish_Segments.
25. In the Edit Invoke dialog box, choose to auto create Input variables.
Note: There will not be an output variable for this Invoke activity, as this is a one-way consume service on
BPEL side.
Output Transformation
26. The output from the DB adapter needs to be transformed into the output payload. Drag the Transform
activity from the Process Activities selection in Component Palette and drop it onto flow diagram in-
between the Invoke_Get_Segments and Invoke_Publish_Segments activities as shown.
b) Under the ‘Transformation’ tab, configure the Input and output variables as follows:
d) Click OK.
28. Select the project in the Project Navigator, right click and select to deploy as shown.
29. Once the Process is compiled and deployed without errors, it can be verified and tested from the BPEL
console.
Overview
Source Application : Campus Solutions (CS)
Target Application : EBS Financials (GL)
Process Type : Asynchronous Two-way
Synchronize Segment values is an Asynchronous BPEL process initiated from Campus Solutions, through a run
control page.
The process can be run in two modes from the run control page:
a) Full sync: Ledger Id’s for all the mapped GL Business Units, all Segment Id’s mapped to the GL Business
Unit and a Last Sync Date value of 01/01/1900 is passed to the BPEL process.
b) Partial sync: Ledger Id and Segment Id’s are selected by the user and are passed to the BPEL process.
The Last Sync Date is derived and passed for each Segment to facilitate incremental sync.
The process returns all the Segment values for the corresponding Ledger Id and the Segment Id passed. The
handler configured at the Campus Solutions parses the payload and populates the respective tables.
The data returned by the process is used to populate the underlying chartfield prompt tables, based on Chartfield to
Segment mapping.
The Development of Synchronize Segment values service can be divided into a 2 step process.
Below are the steps involved in creating the BPEL process. Launch JDeveloper and follow steps given below:
1. Select the Application right click and choose New Project > BPEL Process Project.
2. Provide Sync_GL_Segment_Values for name and choose Asynchronous BPEL Process as type. Leave
the remaining defaults. Click Next.
3. Input / Output Elements wizard opens up. Click on Browse to provide the Input and Output XSD
definitions. The steps to get the respective XSD definitions are explained:
4. Input / Output schema definitions for this BPEL process can be obtained as follows:
i) Input schema:
Navigation: Campus Solutions Portal > PeopleTools > Integration Broker > Messages
This is the schema for the Outbound request message from Campus Solutions which will be used as
Input schema for the BPEL process.
Make a local copy of the XSD and point to the XSD from the Input / Output elements wizard. After
selecting the XSD definition, the user is presented with a Type Chooser wizard. Select the
SSF_LEDGER_ID element as shown:
Click Ok.
Navigation: Campus Solutions Portal > PeopleTools > Integration Broker > Messages
Go to schema tab to obtain the schema associated with the message. Make a local copy of the XSD
and point to the XSD from the Input / Output elements wizard. After selecting the XSD definition, select
the SSF_LEDGER_ID element as shown:
Click Ok.
5. Click Finish.
Creating Variables
The following variables need to be created and will be used during the BPEL flow.
I. In the BPEL structure pane, navigate the tree to BPEL Structure > Variables > Process > Variables.
Right click on Variables and select Create Variable.
II. In the create variable dialog provide Node_Count for name and select Simple Type for variable type. Click
on Browse to choose the type from XML schema types.
7. Double click the client partner link and change the Partner Link name “client” to
Sync_GL_Segment_Values. Verify that the Partner Link type, Partner Role and My Role are as shown
below.
In PeopleSoft, the Maximum App Message Size value governs the maximum size of the payload,
Integration Broker can handle. (Main Menu > PeopleTools > Utilities > PeopleTools Options)
The Synchronize Segments Values BPEL process returns large number of Segment values and if the
payload exceeds the Maximum App Message Size, IB cannot handle it. Hence, the payload in the BPEL
process needs to be chunked and sent out to IB in batches.
However, whenever there is a response back from the callbackClient to the invoking partner link, the
connection closes after first response. If callbackClient tries to send another set of payload to the partner
link, it errors out with the connection TIMEOUT error. Hence, we need to configure the partner link to keep
the connection alive for a certain period of time.
The chunking and de-batching of the payload can be configured in a 3 step process.
a) Setting TIMEOUT property for partner link: Since the payload is chunked and sent in batches, there
will be multiple Callbacks. To keep the connection open after the first call back, we need to set the
TIMEOUT property of the partner link to a higher value (say 100000). This keeps the connection open
from the partner link for specified time.
b) Setting the chunk or batch size: Using an assign activity, we set the batch size during the BPEL flow,
which will be used to chunk the payload. Steps for creating this activity are discussed in steps below.
c) De-batching the Payload based on preset batch size: The payload is de-batched to the limit of
batch size preset in earlier step and sent through Callback. The steps to de-batch are explained in
steps down below.
9. Setting the TIMEOUT property: Double click the Sync_GL_Segment_Values partner link and go to
Property tab. Click Create and in the dropdown list for Name, select timeout property. Select Ok. In the
property value text area replace the default text with 100000. Click Apply and Ok.
10. Drag an assign activity from the list of Process Activities onto the BPEL flow diagram after the
receiveInput activity. Rename the activity to Set_Batch_Size as shown:
11. Double click the Set_Batch_Size activity and go to Copy Operation tab. Select Copy Operation from the
Create dropdown. It opens Create Copy Operation window.
12. In the From side, select Expression as type and enter 50 in the text area. In the To side, select Variable as
Type and select Batch_Size from the Variables list as shown:
14. Drag an assign activity from the list of Process Activities into the BPEL flow diagram and place it after the
Set_Batch_Size activity. Rename the activity to Initialize_loopIndex_n_nodeCount.
To (Expression /
Operation From (Expression / XPATH / XML XPATH / XML
type From type Fragment) To type Fragment)
ora:countNodes('inputVariable','payload','
/ns1:SSF_LEDGER_ID/ns1:SSF_GL_SE
Copy Expression GMENT_NAME') Variable Node_Count
16. Drag and drop a While activity onto the BPEL flow after the Initialize_loopIndex_n_nodeCount activity.
17. Provide the following conditional expression to the above while loop:
18. Add an Assign activity within the while loop and rename it as Increment_loopIndex. Add the below copy
operation to this activity:
To (Expression /
Operation From (Expression / XPATH / XML XPATH / XML
type From type Fragment) To type Fragment)
19. Drag an Assign activity before the Increment_loopIndex activity within the while loop and rename it as
Format_LASTSYNC_Date. Create the operations for this Assign activity as mentioned in the below table:
To (Expression /
Operation From (Expression / XPATH / XML XPATH / XML
type From type Fragment) To type Fragment)
/ns1:SSF_LEDGER_ID/ns1:SSF_GL_SE
GMENT_NAME[bpws:getVariableData('L
Copy Variable oop_Index')]/ns1:SSF_LASTSYNC_DT Variable Last_Sync_Date_Var
translate(substring(bpws:getVariableData
Copy Expression ('Last_Sync_Date_Var'),12,8),'.',':') Variable Date_Part_String
concat(bpws:getVariableData('Date_Part
_String'),substring(bpws:getVariableData(
Copy Expression 'Last_Sync_Date_Var'),20,4)) Variable Date_Part_String
concat(substring(bpws:getVariableData('
Last_Sync_Date_Var'),1,10),"T",bpws:get
Copy Expression VariableData('Date_Part_String')) Variable Last_Sync_Date_Var
20. Drag an Assign activity and rename it as Initialize_Get_Segment_Values_Params. Create the operations
for this Assign activity as mentioned in the below table:
/ns3:Get_Segment_ValuesInput
Copy Variable /ns1:SSF_LEDGER_ID/@value Variable /ns3:PARAM_LEDGER_ID
/ns1:SSF_LEDGER_ID/ns1:SSF_
GL_SEGMENT_NAME[bpws:getV
ariableData('Loop_Index')]/ns1:SS /ns3:Get_Segment_ValuesInput
Copy Variable F_SEGMENT_ID Variable /ns3:PARAM_SEGMENT_ID
/ns3:Get_Segment_ValuesInput
/ns3:PARAM_LAST_SYNC_DA
Copy Variable Last_Sync_Date_Var Variable TE
21. Rename the default sequence name for the While Loop to For_Each_Segment_Id as shown below:
Database Adapter (DB Adapter) configuration for getting the Flexfield Segment Values from
EBS GL
22. Choose Database adapter from the services pane and drop it into right swim lane. Configure the DB
adapter as described below:
24. Open the Get_Segment_Values.xsd definition in the Application Navigator under schemas as shown:
25. Modify the Element Name and the Complex Type Name from Get_Segment_ValuesOutput to
SSF_GL_SEGMENT_VAL as shown:
26. Select the Invoke activity from the services pane and drop it onto BPEL flow after the
Initialize_Get_Segment_Values_Params activity.
27. Rename the invoke activity as Invoke_Get_Segment_Values and associate it with the
Get_Segment_Values DB adapter. This invokes an Edit invoke dialog.
28. Use Auto Create to automatically create both Input and Output variables for the Invoke activity based on
the query provided to the associated DB adapter:
30. Add a Scope activity to the BPEL flow after the Invoke_Get_Segment_Values activity.
31. Add variables Loop_Index_SegVal and Node_Count_SegVal to the scope as shown below:
32. Add an Assign activity into the above scope and rename it as
Initialize_loopIndex_n_nodeCount_For_SegVals. Add the following operations to this activity:
Express
Copy ion 1 Variable Scope_1: Loop_Index_SegVal
ora:countNodes('Invoke_Get_Seg
Express ment_Values_Get_Segment_Valu
Copy ion es_OutputVariable','Get_Segment Variable Scope_1: Node_Count_SegVal
_ValuesOutputCollection','/ns3:Ge
t_Segment_ValuesOutputCollecti
on/ns3:SSF_GL_SEGMENT_VAL'
)
<SSF_LEDGER_ID value=""
xmlns="http://www.example.org">
<SSF_GL_SEGMENT_NAME
XML value=""/>
Fragme variable="outputVariable"
Copy nt </SSF_LEDGER_ID> Variable part="payload"
/ns1:SSF_LEDGER_ID/ns1:SSF_
GL_SEGMENT_NAME[bpws:getV /ns4:SSF_LEDGER_ID/ns4:SS
ariableData('Loop_Index')]/@valu F_GL_SEGMENT_NAME/@val
Copy Variable e Variable ue
35. Add a While activity after the Update_Ledger_Id_n_Segment_Name activity and provide the below
expression as Condition Expression:
36. Add an Assign activity within the while loop and rename it as Increment_LoopIndex_SegVals. Add the
below Copy operation to this activity:
Express bpws:getVariableData('Loop_Inde
Copy ion x_SegVal') + 1 Variable Loop_Index_SegVal
37. Add an Assign activity within the while loop before the Increment_LoopIndex_SegVals activity and
rename it as Append_Segment_Values. Add the following Append Operations to this Assign activity:
variable="Invoke_Get_Segment_
Values_Get_Segment_Values_O
utputVariable"
part="Get_Segment_ValuesOutp variable="outputVariable"
utCollection"
part="payload"
query="/ns4:Get_Segment_Value
sOutputCollection/ns4:SSF_GL_S query="/ns2:SSF_LEDGER_ID/
EGMENT_VAL[bpws:getVariable ns2:SSF_GL_SEGMENT_NAM
Append Variable Data('Loop_Index_SegVal')]” Variable E"
39. Rename the Sequence name for the activities within the while loop to Debatching_Segment_Values as
shown:
40. For the above Switch Case, provide the below expression as the Condition expression:
41. Move the callbackClient of the Asynchronous process into the Switch Case branch as detailed below:
XML
Copy Fragme <SSF_LEDGER_ID value="" Variable variable="outputVariable"
nt xmlns="http://www.example.org">
part="payload"
<SSF_GL_SEGMENT_NAME
value=""/>
</SSF_LEDGER_ID>
variable="inputVariable" variable="outputVariable"
part="payload" part="payload"
query="/ns1:SSF_LEDGER_ID/ query="/ns4:SSF_LEDGER_ID/
Copy Variable @value" Variable @value"
variable="inputVariable" variable="outputVariable"
part="payload" part="payload"
query="/ns1:SSF_LEDGER_ID/n query="/ns4:SSF_LEDGER_ID/
s1:SSF_GL_SEGMENT_NAME[b ns4:SSF_GL_SEGMENT_NAM
pws:getVariableData('Loop_Index' E/@value"
Copy Variable )]/@value" Variable
43. Rename the sequence of activities within the Switch case to Send_Batch as shown:
callbackClient configuration
44. In Campus Solutions, navigate to Main Menu > PeopleTools > Integration Broker > Service Operations
and search for SSF_GL_SEGMENT_VAL_SYNC.
47. Note the External Alias for the Inbound request which is SSF_GL_SEGMENT_VAL_SYNC.VERSION_1.
48. In the BPEL designer, open the Sync_GL_Segment_Values.wsdl WSDL file in source mode and replace
the name of onResult operation with SSF_GL_SEGMENT_VAL_SYNC.VERSION_1 as shown:
49. Save the WSDL file and open the callbackClient in the BPEL designer, and change the Operation to
SSF_GL_SEGMENT_VAL_SYNC.VERSION_1 as shown:
51. Save the BPEL process and select the project in the Project Navigator, right click and select to deploy.
52. Verify that the Process is compiled and deployed successfully without errors.
After the BPEL process is deployed, navigate to the BPEL console and obtain the Endpoint Location for the
Synchronize Segment values BPEL process as shown:
1. Navigate to the Create and maintain Service Operations page: Main Menu > PeopleTools >
Integration Broker > Service Operations.
3. In the General Tab activate the Service Operation by checking the Active checkbox as shown.
4. Click Save.
Activate Handlers
1. In the above Service Operation navigation for the same service operation
SSF_GL_SEGMENT_VAL_SYNC, go to the Handlers tab.
3. Click Save.
1. Navigate back to the General tab and generate the Any to Local routing by checking the Generate Any-to-
Local checkbox as shown below.
2. Click Save.
3. Navigate to the Routings tab and verify that the SSF_GL_SEGMENT_VAL_SYNC routing is active.
2. On the Routings page, go to Connection Properties tab. For the Primary URL field provide the Endpoint
Location URL obtained in the BPEL process Design step.
3. Click Save.
1. Navigate to the Maintain Queue’s page: Main Menu > PeopleTools > Integration Broker > Queues.
4. Click Save.
Not Required.
Overview
Source Application : Campus Solutions(CS)
Target Application : EBS Financials(GL)
Process Type : Asynchronous One-way
Currently the CS Enterprise Components Batch Publish utility is used to publish Accounting lines from Student
Financials (SF) and Contributor Relations (AV) to FDM (PSFT Enterprise Financials) database. The following two
IB messages have being used by Batch Publish.
To integrate with EBS GL, both SF_ACCTG_LN and AV_ACCTG_LN data has to be published to GL_INTERFACE
table in EBS database. The data published from the above messages has to be transformed and inserted into
GL_INTERFACE. The IB message has to be transformed and sent to a BPEL process which would insert the
transformed data into GL_INTERFACE.
See mapping details section in this document for details on mapping content from SF_ACCTG_LN and
AV_ACCTG_LN to GL_INTERFACE.
Following are the steps to create BPEL Process to insert data into GL_INTERFACE.
1. Create a new Asynchronous BPEL Process. Name the process Insert_GL_Interface. Click Next.
2. Click the Input Schema Element Browse button and provide the schema definition as indicated in the XSD
Schema reference section.
3. Upon selecting the SSF_ACCTG_LINE_TRFM_EBGL.xsd file, it shows the following Type Chooser
window. Select GL_INTERFACE_TBL type and click OK.
4. Ensure that the right Input Schema Element selected and click Finish.
5. A new Insert_GL_Interface.bpel file would be created and the design view would be shown in the BPEL
Designer (JDeveloper). Double click Client partner link to edit.
6. It opens Edit Partner Link window. Change the partner link name to Insert_GL_Interface, in the General
Tab. Click Apply and OK.
7. Select Services from drop list in the Component Palette. Drag the Database Adapter and drop it onto the
right Services swim lane. This action opens Adapter Configuration wizard.
9. Enter Service Name GL_Interface_Insert and Description “Insert into GL_INTERFACE”. Click Next.
10. Select the database connection and leave all other fields to default values. Click Next.
11. Select Perform an Operation on a Table Radio button and check the Insert Only check box. Click Next.
13. Query for GL_INTERFACE table. It retrieves the objects into Available List. Select GL_INTERFACE from
the available list and click “>” button. Click OK.
15. Select all primary keys for the GL_INTERFACE in the Define Primary Keys window. Click Next. Following
are the Primary keys for the GL_INTERFACE table.
o STATUS
o LEDGER_ID
o ACCOUNTING_DATE
o CURRENCY_CODE
o DATE_CREATED
o CREATED_BY
o ACTUAL_FLAG
o USER_JE_CATEGORY_NAME
o USER_JE_SOURCE_NAME
19. Select Process Activities from drop list in the Component Palette. Drag the Invoke activity and drop it
between receiveInput and callbackClient activities.
21. Change the name to Invoke_GLInt_Insert in General Tab. Click “Browse” button for Partner Link.
22. Choose GL_Interface_Insert Partner Link from Partner Link Chooser. Click OK.
23. Click on Automatically create Input Variable button. It opens Create Variable window.
26. Select Process Activities from drop list in the Component Palette. Drag the Transform activity and drop it
between receiveInput and Invoke_GLInt_Insert activities.
29. Navigate to Transformation Tab, select Source and Target Variables as mentioned below.
30. Change Mapper file name to Transformation_Input and Click on Create Mapping button to create
transformation file.
31. Create mapping by dragging and dropping as shown in below. It opens up Auto Map preferences window.
33. The Auto map feature maps only similar fields. Map the remaining fields by dragging and dropping the
fields.
36. Build and deploy Insert_GL_Interface BPEL Process to the default domain. After successful deployment
of the process, make a note of the “Endpoint location” of the process. This would be used to configure
routings in PeopleSoft Integration Broker.
a. STUDENT_FIN_ACCTG_LINE
b. STUDENT_ADV_ACCTG_LINE
1. Navigate to the “Create and maintain Service Operations” page: Main Menu > PeopleTools > Integration
Broker > Service Operations.
3. In the General Tab, activate the Service Operation by checking the “Active” checkbox as shown.
4. Click “Save”.
Activate Handlers
Not Required.
4. Click “Save”.
7. Provide Endpoint location URL of Insert_GL_Interface BPEL Process (Mentioned above in Design
BPEL Process section) in the value field of PRIMARYURL Property ID.
8. Click “Save”.
Not required.
Not Required.
9. Navigate to the “Create and maintain Service Operations” page: Main Menu > PeopleTools > Integration
Broker > Service Operations.
11. In the General Tab, activate the Service Operation by checking the “Active” checkbox as shown.
Activate Handlers
Not Required.
13. Navigate to the Routings Tab on the same Service Operations page.
14. Activate the Routing “SSF_AVACCTGLN_EBGL_WSDL” checking the “Selected” checkbox as shown.
19. Provide Endpoint location URL of Insert_GL_Interface BPEL Process (Mentioned above in Design
BPEL Process section) in the value field of PRIMARYURL Property ID.
21. Navigate to the maintain Queue’s page: Main Menu > PeopleTools > Integration Broker > Queues.
Not required.
Overview
Source Application : Campus Solutions(CS)
Target Application : EBS Financials(GL)
Process Type : Asynchronous One-way
The Update Journal Details BPEL process is an asynchronous process, which can be triggered either from Oracle
Financials or BPEL console.
Once journaling has been done in GL, the status of individual transactions posted from CS with additional journal
information needs to be sent back to CS. On completion of the Journaling process in EBS Financials (GL), this
process updates SF/AV Accounting lines with journal details. This BPEL process fetches the journal details,
creates a payload and pushes the xml payload to CS. The Notification Handler specified for the Service Operation
takes care of parsing the XML payload and updating the respective tables’ data.
See mapping details in mapping section of this document for details on Journal Details mapping from EBS-GL to
SF_ACCTG_LN and AV_ACCTG_LN.
The data updated from this process can be viewed in the following pages:
The Development of Update Journal Details service can be divided into a 2 step process.
1. Navigate to the “Create and maintain Service Operations” page: Main Menu > PeopleTools > Integration
Broker > Service Operations.
3. In the General Tab activate the Service Operation by checking the “Active” checkbox as shown.
4. Click Save.
Activate Handlers
1. In the above Service Operation navigation for the same service operation
“SSF_GL_ACCTG_LINE_SYNC”, go to the Handlers tab.
3. Click Save.
5. Navigate back to the General tab and generate the Any to Local routing by checking the “Generate Any-
to-Local” checkbox as shown below.
6. Click Save.
7. Navigate to Routings Tab and ensure that the Any-to-Local routing has been created and made Active.
Not Required.
1. Navigate to the maintain Queue’s page: Main Menu > PeopleTools > Integration Broker > Queues.
3. Ensure that the Queue status is set to Run as shown (If not, set to Run).
4. Click Save.
1. Navigate to “Provide web services” page: Main Menu > PeopleTools > Integration Broker > Provide Web
Service.
2. In the Select services step, search for “SSF_GL_ACCTG_LINE_SYNC” and select the service by checking
the check box as shown.
3. Click Next.
5. Click Next.
6. In the view WSDL step, verify the WSDL and click Next.
8. Click Finish.
9. This will complete the WSDL generation process and the WSDL URL is published.
10. Make a note of the WSDL URL, as this will be provided for the partner link creation in the Design BPEL
process step.
Follow the steps to create BPEL Process to update SF/AV Accounting lines with Journal Details:
1. Create a new Asynchronous BPEL Process. Name the process UPD_JournalDetails. Click Next.
2. Leave the defaults for Input and Output Schema Elements and click Finish. This process would be
triggered from the BPEL Console with Ledger ID, JE Source Name and Group ID as inputs. Hence, the
Input Schema Element has to be modified.
3. In the Applications Navigator, navigate to UPD_JournalDetails > Integration Content > Schemas. Open
UPD_JournalDetails.xsd schema file and go to source view. Copy & paste the following xsd to
UPD_JournalDetails.xsd and save.
<schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/UPD_JournalDetails"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="UPD_JournalDetailsProcessRequest">
<complexType>
<sequence>
<element name="LedgerID" type="decimal"/>
<element name="JESourceName" type="string"/>
5. The designer is presented with an empty asynchronous BPEL process. Ensure that the inputVariable got
generated correctly. (Double click on receiveInput activity and browse for input variable.) The edited
inputVariable is as shown below.
6. Double click the client partner link and change the Partner Link name “client” to “UPD_JournalDetails”.
Verify that the Partner Role and My Role are as shown below, and click Apply, OK.
Database Adapter (DB Adapter) configuration for getting Journal details from EBS
7. In the Component Palette select Services from drop list. Drag the Database Adapter and drop it onto the
right Services swim lane. It opens up the “Adapter Configuration Wizard”. Click Next.
DB
Adapter
name getJournalDetails
Descriptio
n Get Journal Details from EBS
Connectio
n <EBS Financials Database>
Operation
Type Execute Custom SQL
SELECT GL_JE_LINES.REFERENCE_10 AS RECNAME
,GL_JE_LINES.REFERENCE_4 AS RUN_DT
,GL_JE_LINES.REFERENCE_6 AS SEQNUM
,GL_JE_LINES.REFERENCE_7 AS SF_LINE_NBR
,GL_JE_LINES.JE_HEADER_ID AS JOURNAL_ID
,TO_CHAR(GL_JE_HEADERS.DATE_CREATED,'YYYY-MM-DD') AS
JOURNAL_DATE
,GL_JE_LINES.JE_LINE_NUM AS JOURNAL_LINE
,GLP.PERIOD_YEAR AS FISCAL_YEAR
,GLP.PERIOD_NUM AS ACCOUNTING_PERIOD
,GL_JE_BATCHES.GROUP_ID AS PROCESS_INSTANCE
,GL_JE_LINES.STATUS AS GL_DISTRIB_STATUS
FROM GL_JE_LINES
,GL_JE_BATCHES
SQL ,GL_JE_HEADERS
,GL_PERIODS GLP
WHERE GL_JE_BATCHES.GROUP_ID = #GROUP_ID
AND GL_JE_HEADERS.JE_BATCH_ID = GL_JE_BATCHES.JE_BATCH_ID
AND GL_JE_HEADERS.JE_HEADER_ID = GL_JE_LINES.JE_HEADER_ID
AND GL_JE_HEADERS.JE_SOURCE = (SELECT JE_SOURCE_NAME
FROM GL_JE_SOURCES
WHERE
USER_JE_SOURCE_NAME = #JE_SOURCE_NAME)
AND GL_JE_HEADERS.LEDGER_ID = #LEDGER_ID
AND GLP.PERIOD_NAME = GL_JE_LINES.PERIOD_NAME
AND GLP.PERIOD_SET_NAME = GL_JE_BATCHES.PERIOD_SET_NAME
ORDER BY JOURNAL_ID,JOURNAL_LINE
<?xml version = '1.0' encoding = 'UTF-8'?>
<xs:schema
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/getJour
nalDetails"
xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/getJournalDetails
" elementFormDefault="qualified" attributeFormDefault="qualified"
XSD xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="getJournalDetailsInput"
type="getJournalDetailsInput"/>
<xs:complexType name="getJournalDetailsInput">
<xs:sequence>
<xs:element name="GROUP_ID" type="xs:string"
nillable="true"/>
Note: In the Custom SQL window, provide the following SQL and XSD in the respective fields. Click Next.
(While providing SQL, XSD would be automatically generated. But it may vary based on the SQL
indentation. Hence, we have to edit the generated XSD.)
9. Click Finish in the final step. It generates xsd and wsdl files and opens up a Create Partner Link window.
Click Apply and OK.
10. Under Component Palette select Invoke activity and drag and drop it in-between the receiveInput and
callbackClient activities. Edit the invoke activity by double clicking on it.
11. Rename the invoke activity to “Invoke_getJournalDetails”. Select Partner Link as getJournalDetails and
Operation as getJournalDetails.
12. Create Input and Output variables for this activity by clicking Automatically Create Variable buttons.
Provide names for these variables as shown.
14. Select ‘Partner Link’ under services from Component Palette, drag and drop onto right swim lane in the
Flow diagram. This action opens up a Create Partner Link dialog.
15. Under the WSDL File, provide the WSDL URL generated at Generate WSDL URL section of Configure
PeopleSoft and tab out. It populates the partner link name automatically. (Make sure that app server and
web server are running without any issues.) Select Partner Link Type and Partner Role as shown. Click
Apply and OK.
16. Under Component Palette select Invoke activity and drag and drop it in-between the
Invoke_getJournalDetails and callbackClient activities. Edit the invoke activity by double clicking on it.
18. Create Input variable for this activity by clicking Automatically Create Variable buttons. Provide name for
this variable as shown.
Note: There will not be an output variable for this Invoke activity, as this is a one-way consume service on
BPEL side.
20. The input to the receiceInput needs to be transformed into the input to the Invoke_getJournalDetails. The
output from the getJournalDetails DB adapter needs to be transformed into the input to the
Invoke_SSF_GL_ACCTG_LINE_SYNC.
21. Drag and drop a Transform activity onto the flow diagram in-between the receiveInput and
Invoke_getJournalDetails activities.
22. Edit the transform activity by double clicking it. Change the name to Transform_Input in General Tab.
23. Navigate to Transformation Tab, select Source and Target Variables as mentioned below.
24. Change Mapper file name to Transformation_Input and Click on Create Mapping button to create
transformation file.
26. Save the Tranformation_Input.xsl and close it. Click Apply, OK in the Transform dialog.
27. Drag and drop another Transform activity onto the flow diagram in-between the Invoke_getJournalDetails
and Invoke_SSF_GL_ACCTG_LINE_SYNC activities.
28. Edit the transform activity by double clicking it. Change the name to Transform_Data in General Tab.
29. Navigate to Transformation Tab, select Source and Target Variables as mentioned below.
30. Change Mapper file name to Transformation_Data and Click on Create Mapping button to create
transformation file.
32. Save the Transformation_Data.xsl and close it. Click Apply, OK in the Transform dialog.
33. Save UPD_JournalDetails.bpel file. Build and deploy UPD_JournalDetails BPEL Process to the default
domain. This process can be triggered from the BPEL Console.
Overview
Source Application : Campus Solutions(CS)
Target Application : EBS Financials(GL)
Process Type : Synchronous Two-way
Real Time Code Combination Validation is a Synchronous BPEL process which can be triggered from any
Secondary Chartfields page in Campus Solution. It is used to validate the entered Chartfield Combination with the
combination existing in GL_CODE_COMBINATIONS table of EBS Financials, in real-time.
The Segments values (i.e. Chartfield values) combination will be validated against the combination existing in the
EBS, by invoking a PL/SQL procedure which will be developed as part of this service.
The procedure returns a Boolean value based on the validation and this will be propagated back to the Secondary
chartfields page, from where it was invoked.
For necessary setups to enable the Real Time validation on the Secondary Chartfield page, please refer
PeopleBooks.
The Development of Real-Time Code Combination validation service can be divided into a 2 step process.
1. Create PLSQL package: Create the PL/SQL package in EBS Financials which handles the validation.
The validation of the Code Combination is handled by a PL/SQL package which is created and deployed in the
EBS Financials database. Following are the details of the Package specification and the body:
FND_SSF_CF_COMBO_VALIDATION package
Package Specification
CREATE OR REPLACE PACKAGE
apps.fnd_ssf_cf_combo_validation
AS
TYPE segarray_rec
IS
RECORD
(
l_segment VARCHAR2(30),
l_segment_value VARCHAR2(30));
TYPE segarray_tbl
IS
TABLE OF SEGARRAY_REC;
TYPE segment_rec
IS
RECORD
(
segment VARCHAR2(30),
segment_num NUMBER(3));
TYPE segment_list
IS
TABLE OF SEGMENT_REC;
FUNCTION VALIDATE_SEGMENT_COMBINATION(ledger_id_param IN NUMBER,
segarray_param IN SEGARRAY_TBL,
combination_id_param OUT NOCOPY NUMBER)
RETURN BOOLEAN;
END fnd_ssf_cf_combo_validation;
/
Package Body
CREATE OR REPLACE PACKAGE
BODY apps.fnd_ssf_cf_combo_validation
AS
FUNCTION VALIDATE_SEGMENT_COMBINATION (ledger_id_param IN NUMBER,
segarray_param IN SEGARRAY_TBL,
combination_id_param OUT NOCOPY NUMBER
)
RETURN BOOLEAN AS ret_code BOOLEAN;
g_segment_list SEGMENT_LIST := SEGMENT_LIST();
g_coa_id NUMBER(15);
s_array fnd_flex_ext.segmentarray;
BEGIN
SELECT chart_of_accounts_id
INTO g_coa_id
FROM gl_ledgers_public_v gl
WHERE ledger_id = ledger_id_param;
FOR l_cur_seg_num IN
(SELECT fs.application_column_name AS segment,
fs.segment_num AS segment_num
FROM gl_ledgers_public_v gl,
fnd_id_flex_segments fs,
fnd_application fapp
WHERE fapp.application_short_name = 'SQLGL'
AND fapp.application_id = fs.application_id
AND fs.id_flex_code = 'GL#'
AND fs.id_flex_num = gl.chart_of_accounts_id
AND fs.enabled_flag = 'Y'
AND gl.mrc_ledger_type_code <> 'R'
AND gl.ledger_id = ledger_id_param
ORDER BY segment_num
)
LOOP
g_segment_list.EXTEND;
g_segment_list (g_segment_list.COUNT).segment := l_cur_seg_nu
m.segment;
g_segment_list (g_segment_list.COUNT).segment_num := l_cur_seg_nu
m.segment_num;
END LOOP;
--
populate the Segment Array variable which need to be passed as parameter to t
he get_combination_id routine
FOR i IN 1.. g_segment_list.COUNT
LOOP
FOR j IN 1.. g_segment_list.COUNT
LOOP
IF (G_SEGMENT_LIST(i).segment = SEGARRAY_PARAM(j).l_segment)
THEN
S_ARRAY(i) := SEGARRAY_PARAM(j).l_segment_v
alue;
END IF;
END LOOP;
END LOOP;
-- invoke the get_combinations_id routine
ret_code := fnd_flex_ext.GET_COMBINATION_ID(application_short_name =>
'SQLGL',key_flex_code => 'GL#', structure_number => g_coa_id,validation_date
=> SYSDATE, n_segments => g_segment_list.COUNT,segments => s_array, combinat
ion_id => combination_id_param);
RETURN ret_code;
END validate_segment_combination;
END fnd_ssf_cf_combo_validation;
/
Below are the steps involved in creating the BPEL process. Launch JDeveloper and follow steps given below:
1. Select Applications > New Application Workspace > New Project > BPEL Process Project.
3. Input / Output Elements wizard opens up. Click on Browse to provide the Input and Output XSD
definitions. The steps to get the respective XSD definitions are explained:
i) Input schema:
Navigation: Campus Solutions Portal > PeopleTools > Integration Broker > Messages
This is the schema for the Outbound request message from Campus Solutions which will be used as
Input schema for the BPEL process.
Make a local copy of the XSD and point to the XSD from the Input / Output elements wizard. After
selecting the XSD definition, the user is presented with a Type Chooser wizard. Select the
SSF_LEDGER_ID element as shown:
Click Ok.
Navigation: Campus Solutions Portal > PeopleTools > Integration Broker > Messages
Go to schema tab to obtain the schema associated with the message. Make a local copy of the XSD
and point to the XSD from the Input / Output elements wizard. After selecting the XSD definition, select
the SSF_CF_COMBO_RTVLD_ITEM element as shown:
Click Ok.
4. Click Finish.
6. Double click the client partner link and change the Partner Link name “client” to
Realtime_CF_Combo_Validation. Verify that the Partner Role and My Role are as shown below.
Database Adapter (DB Adapter) configuration for invoking the validation routine on EBS
8. Add a Database adapter from the services palette onto the right swim lane. It opens up an Adapter
configuration wizard. Click Next to proceed.
9. Provide Validate_CF_Combination as Service Name and “Validate the Chartfield Combination and return
1 and Combination Id for a valid combination else 0.” as description.
10. Select the EBS database connection from the drop down. Click Next.
11. For the Operation type select Call a Stored Procedure or Function as shown and click Next.
12. Select the schema from drop down and click on Browse to select the PL/SQL procedure.
17. Add an Invoke activity after the receiveInput activity and rename it as
Invoke_Validate_CF_Combination.
20. Add a Transform activity in-between receiveInput and Invoke_Validate_CF_Combination, and rename it
to Initialize_Params.
24. Add an Assign activity after the Invoke_Validate_CF_Combination activity and rename it to
Assign_Output.
To (Expression /
Operation From (Expression / XPATH / XML XPATH / XML
type From type Fragment) To type Fragment)
variable="outputVaria
ble"
variable="Validate_CF_Combination_Val
idate_CF_Combination_OutputVariable" part="payload"
part="OutputParameters" query="/ns4:SSF_CF
_COMBO_RTVLD_IT
query="/ns3:OutputParameters/ns3:FND EM/ns4:SSF_CF_CO
Copy Variable _SSF_CF_COMBO_VALIDATION-24V" Variable MBO_VALID"
26. Save the BPEL process and select the project in the Project Navigator, right click and select to deploy.
27. Verify that the Process is compiled and deployed successfully without errors.
28. After the BPEL process is deployed, navigate to the BPEL console and obtain the Endpoint Location for the
Synchronize Segment values BPEL process as shown:
1. Navigate to the “Create and maintain Service Operations” page: Main Menu > PeopleTools > Integration
Broker > Service Operations.
3. In the General Tab activate the Service Operation by checking the “Active” checkbox as shown.
4. Click Save.
Activate Handlers
Not Required.
1. Navigate to the Routings tab and Verify that the routing status is set to Active for the Outbound routing
SSF_CF_COMBO_RTVLD.
2. On the Routings page, go to Connection Properties tab. For the Primary URL field, provide the Endpoint
Location URL obtained in the BPEL process Design step.
3. Click Save.
Not Required.
Not Required.
References
MAPPING
Below is the mapping used by transformation program.
REFERENCE11
REFERENCE12
REFERENCE13
REFERENCE14 Should be NULL - used by
Journal Import for internal
REFERENCE15
processing
REFERENCE16
REFERENCE17
REFERENCE18
REFERENCE19
REFERENCE20
REFERENCE21 FYI data not used by GL JRNL_LN_REF
REFERENCE22
REFERENCE23
FYI data to be used to tag
REFERENCE24 journal information back to RUN_DT
CS from GL
FYI data from Cashiering,
REFERENCE25 SF_DEPOSIT_ID
not used by GL
FYI data to be used to tag
REFERENCE26 journal information back to SEQNUM
CS from GL
FYI data to be used to tag
REFERENCE27 journal information back to SF_LINE_NBR
CS from GL
REFERENCE28 FYI data not used by GL JRNL_LN_REF
REFERENCE29 FYI data not used by GL ITEM_NBR
Populate with table name -
REFERENCE30 SF_ACCTG_LN or
AV_ACCTG_LN
Should be NULL - used by
JE_BATCH_ID Journal Import for internal
processing
PERIOD_NAME
Should be NULL - used by
JE_HEADER_ID Journal Import for internal
processing
Should be NULL - used by
JE_LINE_NUM Journal Import for internal
processing
Should be NULL - used by
CHART_OF_ACCOUNTS_ID Journal Import for internal
processing
Should be NULL - used by
FUNCTIONAL_CURRENCY_CODE Journal Import for internal
processing
No stored in SF Tables
Should be NULL - used by
DATE_CREATED_IN_GL Journal Import for internal
processing
Should be NULL - used by
WARNING_CODE Journal Import for internal
processing
RUN_DT REFERENCE_4
SEQNUM REFERENCE_6
SF_LINE_NBR REFERENCE_7
No update occurs - used only for
reference and tracking
PROCESS_INSTANCE GROUP_ID
XSD SCHEMA
Following is the SSF_ACCTG_LINE_TRFM_EBGL schema definition
<?xml version="1.0"?>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com"
xmlns="http://xmlns.oracle.com"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="GL_INTERFACE_TBL" nillable="true"
type="GL_INTERFACE_TBL_TYPE"/>
<xsd:complexType name="GL_INTERFACE_TBL_TYPE">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="GL_INTERFACE_TBL_ITEM"
nillable="true"
type="GL_INTERFACE_TBL_ITEM_TYPE"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GL_INTERFACE_TBL_ITEM_TYPE">
<xsd:sequence>
<xsd:element minOccurs="0" name="STATUS" nillable="true" type="VARCHAR2"/>
<xsd:element minOccurs="0" name="LEDGER_ID" nillable="true" type="NUMBER"/>
<xsd:element minOccurs="0" name="ACCOUNTING_DATE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="CURRENCY_CODE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="DATE_CREATED" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="CREATED_BY" nillable="true" type="NUMBER"/>
<xsd:element minOccurs="0" name="ACTUAL_FLAG" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="USER_JE_CATEGORY_NAME" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="25"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="USER_JE_SOURCE_NAME" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="25"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="CURRENCY_CONVERSION_DATE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ENCUMBRANCE_TYPE_ID" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="BUDGET_VERSION_ID" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="USER_CURRENCY_CONVERSION_TYPE"
nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="CURRENCY_CONVERSION_RATE" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="SEGMENT1" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT2" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT3" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT4" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT5" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT6" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT7" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT8" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT9" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT10" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT11" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT12" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT13" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT14" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT15" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT16" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT17" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT18" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT19" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT20" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT21" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT22" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT23" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT24" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT25" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT26" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT27" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT28" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT29" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SEGMENT30" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ENTERED_DR" nillable="true" type="NUMBER"/>
<xsd:element minOccurs="0" name="ENTERED_CR" nillable="true" type="NUMBER"/>
<xsd:element minOccurs="0" name="ACCOUNTED_DR" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="ACCOUNTED_CR" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="TRANSACTION_DATE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE1" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE2" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE3" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE4" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE5" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE6" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE7" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE8" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE9" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE10" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE11" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE12" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE13" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE14" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE15" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE16" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE17" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE18" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE19" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE20" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE21" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE22" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE23" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="JE_HEADER_ID" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="JE_LINE_NUM" nillable="true" type="NUMBER"/>
<xsd:element minOccurs="0" name="CHART_OF_ACCOUNTS_ID" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="FUNCTIONAL_CURRENCY_CODE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="CODE_COMBINATION_ID" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="DATE_CREATED_IN_GL" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="WARNING_CODE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="STATUS_DESCRIPTION" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="STAT_AMOUNT" nillable="true" type="NUMBER"/>
<xsd:element minOccurs="0" name="GROUP_ID" nillable="true" type="NUMBER"/>
<xsd:element minOccurs="0" name="REQUEST_ID" nillable="true" type="NUMBER"/>
<xsd:element minOccurs="0" name="SUBLEDGER_DOC_SEQUENCE_ID" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="SUBLEDGER_DOC_SEQUENCE_VALUE"
nillable="true" type="NUMBER"/>
<xsd:element minOccurs="0" name="ATTRIBUTE1" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE2" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE3" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE4" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE5" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE6" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE7" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE8" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE9" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE10" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE11" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE12" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE13" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE14" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE15" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE16" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE17" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE18" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE19" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ATTRIBUTE20" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="CONTEXT" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="CONTEXT2" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="INVOICE_DATE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="TAX_CODE" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="INVOICE_IDENTIFIER" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="INVOICE_AMOUNT" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="CONTEXT3" nillable="true" type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="USSGL_TRANSACTION_CODE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="DESCR_FLEX_ERROR_MESSAGE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="JGZZ_RECON_REF" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="240"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="AVERAGE_JOURNAL_FLAG" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="ORIGINATING_BAL_SEG_VALUE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="25"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="GL_SL_LINK_ID" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="GL_SL_LINK_TABLE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="REFERENCE_DATE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="SET_OF_BOOKS_ID" nillable="true"
type="NUMBER"/>
<xsd:element minOccurs="0" name="BALANCING_SEGMENT_VALUE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="25"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="MANAGEMENT_SEGMENT_VALUE" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="25"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="FUNDS_RESERVED_FLAG" nillable="true"
type="VARCHAR2">
<xsd:simpleType>
<xsd:restriction base="string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="CODE_COMBINATION_ID_INTERIM" nillable="true"
type="NUMBER"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>