Anda di halaman 1dari 40

Oracle Fusion Applications

Using External Data Integration Services

1 © 2012 Oracle Corporation. All Rights Reserved.


Table of Contents

INTRODUCTION ..................................................................................................................................................... 4

EXTERNAL DATA INTEGRATION SERVICES: OVERVIEW ............................................................................................................4

INTEGRATION POINTS TO CONSIDER ..................................................................................................................... 5

LOCATING FILE IMPORT TEMPLATES: EXPLAINED ..................................................................................................................5


PREPARE DATA FILES ......................................................................................................................................................6

DATA INTEGRATION USING MANUAL FLOW .......................................................................................................... 7

FILE FOR IMPORT AND EXPORT: HIGHLIGHTS........................................................................................................................7


FILE FOR IMPORT AND EXPORT: EXPLAINED .........................................................................................................................8
LOAD INTERFACE FILE FOR IMPORT PROCESS .....................................................................................................................10
IMPORTING DATA INTO APPLICATION TABLES: PROCEDURE ..................................................................................................11

FLOW AUTOMATION USING WEB SERVICE .......................................................................................................... 12

INTRODUCTION ............................................................................................................................................................12
DISCOVERING AUTOMATION SERVICE DETAILS ...................................................................................................................12
CONSTRUCTING END POINT URL ....................................................................................................................................13
WEB SERVICE OPERATIONS ............................................................................................................................................13
WEB SERVICE OPERATIONS WITH PARAMETER DETAILS ........................................................................................................13
Operation: uploadFileToUcm .............................................................................................................................. 14
Operation: submitESSJobRequest .......................................................................................................................15
Operation: getEssJobStatus ................................................................................................................................16
Operation: downloadESSJobExecutionDetails.....................................................................................................16

TROUBLESHOOTING............................................................................................................................................. 17

CORRECTING DATA UPLOAD ERRORS: EXPLAINED ...............................................................................................................17


CORRECTING IMPORT PROCESS ERRORS: EXPLAINED ...........................................................................................................17

INBOUND - END TO END AUTOMATION FLOW USE CASE: .................................................................................... 17

PRE-REQUISITES: ..........................................................................................................................................................17
FLOW STEPS: ...............................................................................................................................................................18

OUTBOUND - END TO END AUTOMATION FLOW USE CASE: ................................................................................ 21

PRE-REQUISITES: ..........................................................................................................................................................21
FLOW STEPS: ...............................................................................................................................................................21

APPENDIX 1 – SECURITY PRE-REQUISITES NEEDED FOR DOWNLOADING ESS JOB EXECUTION DETAILS ............... 23

APPENDIX 2 – SAMPLE CODE FOR PREPARING DATA FILE FOR THE INBOUND FLOW ........................................... 25

APPENDIX 3 - PREDEFINED TARGET UCM ACCOUNTS .......................................................................................... 27


APPENDIX 4 – ESS JOB EXECUTION STATUS ......................................................................................................... 29
2 © 2012 Oracle Corporation. All Rights Reserved.
APPENDIX 5 – TESTING WEB SERVICE USING CLIENT PROXY ................................................................................ 30

APPENDIX 6 – ERROR HANDLING FOR IMPORT JOBS ........................................................................................... 35

APPENDIX 7 – USING XML TEMPLATES TO GENERATE DATA FILES ....................................................................... 37

3 © 2012 Oracle Corporation. All Rights Reserved.


Introduction

External Data Integration Services: Overview


External Data integration services are used to load data into Oracle Fusion Applications from external
sources such as legacy systems and third-party applications. The following are the components in the
overall process:-

• Templates for structuring, formatting and generating the data file according to the requirements of
the target application tables.
• A File based load process for loading data from the data file into the interface tables.
• Application-specific data import processes for transferring data from interface tables to the
application tables in your Oracle Fusion Applications.

The below process flow diagram briefly explains the steps in the flow.

Download the
File Import template

Prepare data file using


downloaded template

Upload File to content


server (UCM)

Load data to interface table Correct the data in the


data file

Yes Load process will purge


Errors
the interface table

No

Import data to application


table using import job

Yes Correct the data in the


Errors
interface table using
ADFdi spreadsheet
No

Data successfully uploaded to


product tables

4 © 2012 Oracle Corporation. All Rights Reserved.


Integration Points to consider

Locating File Import Templates: Explained


External data that you integrate into your Oracle Fusion Applications must be structured and formatted
according to the properties of the fields and tables that store the data. To prepare external data so that
data types, structural relationships, and other properties of the data correctly align to the data types,
structural relationships, and properties of the target tables, use the product specific templates and control
files in Oracle Enterprise Repository for Oracle Fusion Applications.

You access these files from the “Details” tab of the Import process that corresponds to the interface
tables that store the data. To find the process, you can search the interface table or you can search the
specific process. E.g. “Journal Import” process

Aspects of preparing external data using templates involve these tasks:-

• Finding templates and control files


• Downloading templates
• Opening XLS templates

Finding Templates and Control Files

To find the templates and control files:

1. Sign in to Oracle Enterprise Repository - https://fusionappsoer.oracle.com.


2. Enter the following information in the Search fields and click search:

Field Value
Search String FBDI
Type File Based Data Import
Product family <product family>

3. Click Search.
4. Select your respective import process from the results pane. E.g. “Journal Import”.

Downloading Templates

To download the templates:

1. Use the Search area to locate the import process and then select it from the search results.
2. Click on the “Details” tab on the lower pane. Here you can see the following links:

• Control files, which describe the logical flow of the data load process.
• XLSM templates, which include worksheets and macros that assist you in structuring, formatting, and
generating your data file.
Alternatively you can use XML templates, which you import into Oracle Data Integrator. Please refer to
the “Appendix 7- Using XML templates to generate Data Files”

3. Download the template using the link provided. E.g. “JournalImportTemplate.xlsm” used for “Journal
Imports” process.

5 © 2012 Oracle Corporation. All Rights Reserved.


Opening the XLS Template

To prepare your data in a spreadsheet format, use XLS templates:

1. Open the XLS template.


The first worksheet in each template provides instructions for using the template.

Important
If you omit or fail to complete the instructions, data load errors and data import failures are likely.

2. Save a copy of the file.


3. Click the Generate CSV File button.
The macro generates a comma-separated values (CSV) file and compresses it into a ZIP file; you must
transfer the ZIP file to the content management server.

Prepare Data Files


Oracle Enterprise Repository for Oracle Fusion Applications includes integration templates to help you
prepare external data for loading and importing. Each template includes table-specific instructions,
guidelines, formatted spreadsheets and best practices for preparing the data file for upload. Use the
templates to ensure that your data conforms to the structure and format of the target application tables.

Templates

This list details the characteristics of the templates:

• Each interface table is represented by a separate worksheet.


• Each interface table field is represented by a worksheet column with a header in the first row.
• Each column header contains bubble text, or comments, that include details about the column, such as
the expected data type, length, and in some cases, other instructional text.
• The worksheet columns appear in the order that the control file processes the data file.
• The columns that you do not intend to use can be hidden, but not reordered or deleted.

Important
Deleting or reordering columns will cause the load process to fail and result in an unsuccessful data load.

• The external data must conform to the data type that the control file and process for the associated
database column accepts.
• Date column values must appear in the YYYY/MM/DD format.
• Amount column values must appear with no separators other than a period (.) as the decimal separator.
• Negative values must be preceded by the minus (-) sign.
• Column values that require whole numbers include data validation to allow whole numbers only.
• Columns are formatted, where applicable, to match the target field data type to eliminate data entry
errors.
• For columns that require internal ID values, refer to the bubble text for additional guidance about finding
these values.
• When using Microsoft Excel to generate or update the CSV file, you must select YYYY/MM/DD as your
format.

6 © 2012 Oracle Corporation. All Rights Reserved.


After you finish preparing the data in the sheet, click the “Generate CSV File” button to generate a ZIP file
containing one or more CSV files.

For using XML templates please refer to the “Appendix 7- Using XML templates to generate Data Files”.

Data Integration using Manual Flow


After you generate the ZIP file that contains the CSV data import file, transfer it to the content repository.

Use any of these methods to transfer file:

• File Import and Export page in Oracle Fusion Applications: Manual flow
• Oracle Fusion Financials Utility web service: Automated flow

Oracle Fusion Financials Utility web service is explained in “Flow Automation Web Service”
section. The following section talks about the manual flow using File Import and Export page.

File for Import and Export: Highlights


The File Import and Export page accesses repositories of content. For example, each Oracle Fusion
Applications instance connects to a single Oracle WebCenter Content server for content management.

The following documents describe use and administration of content management:

• Oracle WebCenter Content Server User's Guide


• Oracle WebCenter Content Server System Administrator's Guide

Using Content Management

• For information about what objects to upload and download, including templates for external data
integration, refer to the Oracle Enterprise Repository for Oracle Fusion Applications.
• For general access to content management, including to all metadata and to manage accounts, use the
Oracle WebCenter Content Server's standard service user interface.

See: Oracle WebCenter Content User's Guide for Content Server

• For information on creating accounts in WebCenter Content accounts,

See: WebCenter Content System Administrator's Guide for Content Server: Accounts

• For information about naming accounts involved with import and export,

See: sub-section “Account Names” under section “Files for Import and Export: Explained”

• For programmatic upload and download to content management,

See: Oracle WebCenter Content System Administrator's Guide for Content Server: About Batch
Loading

• For information about the Oracle WebCenter Content Server Document Transfer Utility, see
documentation resources in Oracle Enterprise Repository for Oracle Fusion Applications (http://

7 © 2012 Oracle Corporation. All Rights Reserved.


fusionappsoer.oracle.com).

Security in Content Management

• For information about security, see the Security tab in Oracle Enterprise Repository for Oracle Fusion
Applications.
• For information about roles such as the integration specialist roles for each product family,

See: Oracle Fusion Applications Common Security Reference Manual

File for Import and Export: Explained

You can import data into or export data out of Oracle Fusion Applications using repositories of content
and processes for import and export. Integration specialists stage data for import and export. Application
administrators run processes to import data in repositories of content to application transaction tables, or
retrieve data exported from applications.

Aspects of managing files for import and export involve the following:

• The File Import and Export page


• Interacting with content management

The File Import and Export Page

The File Import and Export page lets you upload content to, or download content from the document
repository of Oracle WebCenter Content Management.

Search criteria on the page are limited to the minimum metadata of content management records needed
for file import and export.

Navigation: Navigator Tools File Import and Export.

Interacting with Content Management

Everyone who uses the File Import and Export page is assigned to one or more accounts in content
management. Accounts organize and secure access to content items.

Interaction between the File Import and Export page and Oracle WebCenter Content requires securing
content in an account. Oracle provides predefined accounts in Oracle WebCenter Content.
Areas of file import and export to consider involve the following:

• Security
• Searching records
• Accessing content in a new account
• Account names
• Deleting files
• Uploading for Import
• Downloading for Export
• File Size

Security

8 © 2012 Oracle Corporation. All Rights Reserved.


The duty role needed for accessing the File Import and Export page is File Import and Export
Management duty. This duty role is included in the predefined role hierarchy for integration specialist
roles and product family administrator roles.

Files in Oracle WebCenter Content are associated with an account so that only users who have
permission to a particular account can work with content items that belong to that account. You can only
upload and download files to and from content management that are associated with accounts that you
are entitled to access.

Oracle WebCenter Content does not support trailing slashes (/). Account names are appended with a $ to
ensure each account is unique. Account names are dynamic so that if they overlap (one name is
completely contained in another, longer name, such as US and US Sales), each account is treated as
discrete by access grants. Security such as virus scanning is handled by the underlying integrated
content management.

Searching Records

A record in Oracle WebCenter Content contains metadata used for accessing the file. When a scheduled
process has run to completion on a file, the record for the file includes a process ID.

Accessing Content in New Account

When you create a new account in Oracle WebCenter Content and the content server is not restarted,
access to content in the new account from the File Import and Export page may be delayed until the
policy store is updated.

Account Names

If you create custom accounts for importing or exporting data, use the following conventions for naming
the account: Do not include a slash "/" at the beginning or end End with "$" to avoid partial string
matching Use "$/" as a separator in the hierarchical structure.

For example: fin$/journal$/import$ The File Import and Export page transforms account names by
removing the $s. For example fin$/journal$/import$ displays as fin/journal/import. The Remote Introdoc
Client (RIDC) HTTP command-line interface (CLI) transforms the account name you specify without $
symbols to one that includes them. For example, fin/journal/import becomes fin$/journal$/import$ in
WebCenter Content.

You must transfer files to these predefined account in content management that corresponds to the
interface table or assets.

See “Appendix 3 - Predefined Target UCM Accounts” for a list of the target accounts present for each
interface table.

You can create subaccounts to further organize your files. However, you must create the account
subordinate to the predefined account for the asset you are integrating.

Deleting Files

You can delete one file at a time when you use the File Import and Export page. To delete multiple files
simultaneously from the content repository, use the standard service page in Oracle WebCenter Content.

Uploading for Import


9 © 2012 Oracle Corporation. All Rights Reserved.
Uploading a file creates a record.

When you create a record, you must specify an account as well as the file. When you create a record,
you must specify an account as well as the file. The account you specify determines which import process
picks up that file to import it.

You can upload any file formats that can be parsed by the content repository being used, such as any
MIME or content types. However, the format uploaded should conform to the requirements of the import
process being used, such as a comma-separated values (CSV) file for the Load Interface File for Import
process.

Downloading for Export

Processes you run to export data result in files in content management. Records in the search results
table of the File Import and Export page provide links to the files for download.

File Size

Upload and download does not intentionally apply the following:

• Data compression
• File chunking or splitting

The UPLOAD_MAX_DISK_SPACE parameter in the web.xml file determines the maximum allowable file
size in content management. The default maximum size is 10240000 (10MB).

Load Interface File for Import Process

Loads external setup or transaction data from the data file on the content management server to interface
tables.

You run this process from the Scheduled Processes page. You can run it on a recurring basis.

Before running this process, you must:

1. Prepare your data file.


2. Transfer the data file to the content management server.

Parameters

Import Process

Select the target import process.

Data file

Choose the data file from the poplist.

10 © 2012 Oracle Corporation. All Rights Reserved.


Importing Data into Application Tables: Procedure

The final destination for your external data is the application data tables of your Oracle Fusion
Applications product.

Aspects of importing data into application tables involve the following:

• Loading data into interface tables


• Finding and submitting the import process

Loading Data into Interface Tables

Interface tables are intermediary tables that store your data temporarily while the system validates format
and structure. Run the Load Interface File for Import scheduled process to load data from the data file into
the interface table that corresponds to the template that you use to prepare the data.

To load your data into interface tables, submit the “Load Interface File for Import” scheduled process:

1. Sign in to Oracle Fusion Applications.


2. Navigate to Navigator menu Tools Scheduled Processes.
3. Click the Schedule New Process button.
4. Search and select the “Load Interface File for Import” job.
5. When the Process Details page appears:
a. Select the target import process.
b. Enter the data file name.

6. Submit the process.

If no errors exist in the data file, the status will be “SUCCEEDED”. The process populates the
interface tables.

If there are upload errors, the status will be “ERROR”. The next section “Troubleshooting” explains how
to correct them.

Note
The data file remains in the content repository after the process ends.

Finding and Submitting the Import Process

To import your data into application tables:

1. Sign into Oracle Fusion Applications.


2. Navigate to Navigator menu Tools Scheduled Processes.
3. Click the “Schedule New Process” button.
4. Find and select the import process for the target application tables.
5. When the Process Details page appears, select the process that corresponds to the data that you
are importing. E.g. “Journal Import”

11 © 2012 Oracle Corporation. All Rights Reserved.


If you prepared your data using the spreadsheet template, select the process named in the
Overview section of the spreadsheet.
6. Submit the process.
If there are no errors then the status of the process will be “SUCCEEDED”. The data in the interface
tables will be validated and the successful records will be imported into the Fusion Application tables.

If there are errors during the import then the status will be “ERROR”. The next section “Troubleshooting”
explains the way to handle them.

Note
For more detailed information on the process used for data prepared using the spreadsheet template, see
the Instructions and CSV Generation tab of the spreadsheet template.

Flow Automation using Web Service

Introduction
A web service for Oracle Fusion Financials is an artifact that provides a standardized way of integrating
other web-based applications with Fusion Applications over the web. It allows organizations to
communicate with Fusion Applications without the need of intimate knowledge of the applications.
“FinancialUtilService” web service provides external web service operations like file upload operations to
Oracle Universal Content Management, and service operations to submit ESS jobs from external
applications.

Internal Name: oracle.apps.financials.commonModules.shared.financialUtilService.FinancialUtilService

Discovering Automation Service Details

• Launch Oracle Enterprise Repository and login as guest - https://fusionappsoer.oracle.com


• Search for the service that you need. E.g.

Field Value
Search String Financial Utilities Service
Type ADF Service

• Select the “Financial Utility Service” from results section.


• Note following details from the bottom page tabs:
o Documentation Tab – Service Cookbook Information
o Details Tab - Service Path:
http://<host:PortNumber>/finFunShared/FinancialUtilService
The part "http://<host:PortNumber>" is environment specific where
as "/finFunShared/FinancialUtilService" is static for a given service version.

12 © 2012 Oracle Corporation. All Rights Reserved.


Constructing End Point URL

To get physical end point of any specific instance:

• Launch ATK home page and login with a functional user.


• Navigate to an application's dashboard/workarea page that belongs to Payables Service.
For eg: In case of Financial Util Service navigate to Payables
Let us take the Payables Invoice workbench as an example, you will see a URL in the browser
similar to https://<domainname>/payables/faces/InvoiceWorkbench.
The <domain name> might be like https://<pod-name>.<lba>.xxx.oraclecloud.com.
In this URL, take the "https://<domainname>".
For eg: In case of Payables Invoice workbench URL just take till "payables".
Then append the static context root that we extracted from OER
"/finFunShared/FinancialUtilService" to it.
https://<domainname>/finFunShared/FinancialUtilService is the WSDL URL for Financial Utility
Service.

Web Service Operations

The table maps the web services operations which can be used to automate the integration flow steps

Step Automation Financial Service


Operation
Data file upload to the The step can be automated by invoking web service uploadFileToUcm
content management “FinancialUtilService” to upload the file to UCM Server under
server (UCM) “FAFusionImportExport” security group and the relevant UCM
account
Load the data into the The step can be automated by invoking web service submitEssJobRequest
interface table “FinancialUtilService” to submit ESS job Load Interface File for
Import

Import data into the The step can be automated by invoking Web Service submitEssJobRequest
persistent tables from “FinancialUtilService” to submit ESS the relevant import job.
the interface table

Monitor the status of The step can be automated by invoking the Web service
the load interface “FinancialUtilService” and its operation to monitor the status of getEssJobStatus
process or import the web services invoked
process
View the errors during In order to view the errors the end user can invoke the downloadESSJobExecutionD
the import and load downloadESSJobExecutionDetails operation of the etails
process and fix them “FinancialUtilService” web service.

The details for the web services mentioned above have been explained in the following section.

Web Service Operations with parameter details


• uploadFileToUcm
• submitESSJobRequest
13 © 2012 Oracle Corporation. All Rights Reserved.
• getEssJobStatus
• downloadESSJobExecutionDetails

Operation: uploadFileToUcm
Method Name: uploadFileToUcm
Description: The method uploads a file to the UCM server based on the document specified.

Security Access Needed: Application User Access

Parameters:

Parameter Description Parameter Is Mandatory Type


Name (In/Out)
document List of elements, each containing the details of IN Yes java.lang.String
the file to be uploaded. The details include the
file content, file name, content type, file title,
author, security group, and account.

Document Attributes:

Content: This is the file content which gets


uploaded onto the UCM server. The value of the
content tag is obtained by converting the file
content into BASE64 encoding. Refer to
Appendix-2 for sample program for base64
encoding.
FileName: It represents the name of the file on
the UCM server. It can have any value.
ContentType: It represents the type of the
content uploaded. You can have “.zip”,
“.txt”,”.csv” as content types.
DocumentTitle: It is the title of the file on the
UCM server. It can have any value.
DocumentAuthor: It is the author of the
document which is uploaded.
DocumentSecurityGroup: This is a fixed value
which we use for importing and exporting the
documents on UCM server from Fusion. The
security group for all the import process is
“FAFusionImportExport”
DocumentAccount : It is the account under
which the file is uploaded. Refer to “Appendix-3
Predefined Target UCM Accounts” to get the
UCM account associated with ESS process.
Return Returns the document ID of the uploaded file OUT No java.lang.String

14 © 2012 Oracle Corporation. All Rights Reserved.


Sample Payload: ( e.g : Journal Import )

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:uploadFileToUcm
xmlns:ns1="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/types/">
<ns1:document xmlns:ns2="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/">
<ns2:Content>UEsDBBQAAAAIAEhrrkQSDhHq5BLBQYAAAAAAQABAD0AAAATPQEAAAA=</ns2:Content>
<ns2:FileName>TestUploadFileName.zip</ns2:FileName>
<ns2:ContentType>zip</ns2:ContentType>
<ns2:DocumentTitle>Sample File1</ns2:DocumentTitle>
<ns2:DocumentAuthor>finuser1</ns2:DocumentAuthor>
<ns2:DocumentSecurityGroup>FAFusionImportExport</ns2:DocumentSecurityGroup>
<ns2:DocumentAccount>fin$/generalLedger$/import$</ns2:DocumentAccount>
</ns1:document>
</ns1:uploadFileToUcm>
</soap:Body>
</soap:Envelope>

Operation: submitESSJobRequest
Method Name: submitESSJobRequest
Description: Submits an ESS job request for the specified job definition.

Security Access Needed: Application User Access

Parameters:

Parameter Description Parameter Is Mandatory Type


Name (In/Out)
jobPackageName The ESS job package name for the IN Yes java.lang.String
ESS job that must be submitted.

jobDefinitionName The ESS job definition name for the IN Yes java.lang.String
ESS job that must be submitted.

paramList List of parameters used to invoke the IN No java.util.List<ja


ESS job. The order of the parameters va.lang.String>
is maintained as per the list. The
corresponding entry in the list should
be blank when a given parameter is
not passed.
return The request id is returned. OUT java.lang.Long

Sample Payload: (e.g : Journal Import)


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:submitESSJobRequest
xmlns:ns1="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/types/">
<ns1:jobPackageName>/oracle/apps/ess/financials/generalLedger/programs/common</ns1:jobPackageName>
<ns1:jobDefinitionName>JournalImportLauncher</ns1:jobDefinitionName>
<ns1:paramList>1061</ns1:paramList>
<ns1:paramList>Expenses</ns1:paramList>
<ns1:paramList>1</ns1:paramList>
<ns1:paramList>ALL</ns1:paramList>
<ns1:paramList>N</ns1:paramList>
<ns1:paramList>N</ns1:paramList>
<ns1:paramList>N</ns1:paramList>
</ns1:submitESSJobRequest>
</soap:Body>
</soap:Envelope>

15 © 2012 Oracle Corporation. All Rights Reserved.


Operation: getEssJobStatus

Method Name: getEssJobStatus


Description: Obtains the execution status of the submitted ESS job.

Security Access Needed: Application User Access

Parameters:

Parameter Description Parameter Is Mandatory Type


Name (In/Out)
RequestId The request ID of the submitted ESS job. IN Yes java.lang.Long

return Returns the current status of the ESS job. OUT java.lang.String
The complete list of job statuses and description
is in the “Appendix4 – ESS Job Execution status”

Sample Payload: (e.g : Journal Import)

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getESSJobStatus xmlns:ns1="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/types/">
<ns1:requestId>35961</ns1:requestId>
</ns1:getESSJobStatus>
</soap:Body>
</soap:Envelope>

Operation: downloadESSJobExecutionDetails
Method Name: downloadESSJobExecutionDetails
Description: Downloads the ESS job output and the logs as a zip file.

Security Access Needed: Application User Access and special access needed for Attachment read.
Refer to the appdendix-1 to provide the user with this access.

Parameters:

Parameter Description Parameter Is Type


Name (In/Out) Mandatory
requestId The request ID of the submitted ESS job. IN Yes java.lang.String
fileType The file type used to determine the execution IN No java.lang.String
details to download. Specify the file type as
“log”/”out” to download the log file and output
file respectively.
return A list of documents is returned . OUT List<DocumentDet
ailsVORowImpl>

16 © 2012 Oracle Corporation. All Rights Reserved.


Sample Payload: (e.g : Journal Import)

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:downloadEssJobExecutionDetails xmlns:ns1="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/types/">
<ns1:requestId>35961</ns1:requeqentId>
<ns1:fileType >zip</ns1:fileType>
</ns1:downloadEssJobExecutionDetails>
</soap:Body>
</soap:Envelope>

Troubleshooting

Correcting Data Upload Errors: Explained

If the load of the data file fails on any row, then

“Load Interface File for Import” process ends in error and the “Load File to interface” child process ends in
an error or warning. All the rows that were loaded by the process are deleted and the whole batch of
records is rejected.

To correct errors:

1. Review the error logs.


2. Change any structural or formatting anomalies that exist in the data.
3. Generate the zip file containing the csv files again using the template.
4. Upload the file to UCM server and submit the “Load Interface File for Import” process again.
5. Repeat the process until the process successfully loads the entire data.

Correcting Import Process Errors: Explained

If the Import process ends in an errors then do the following steps

1. Review the errors in the import log.


2. Correct the error records using ADFdi correction spreadsheets.

Please refer to the “Appendix 6 – Error Handling for import jobs”, for a list of import processes and their
corresponding ADFdi correction spreadsheets.

Inbound - End to End Automation Flow Use Case:

Journal import flow is used as an example to illustrate the inbound data integration flow with Oracle
Fusion Applications:

Pre-requisites:
• Importing certificate into your local keystore. Refer to Appendix-5 for more details
• Configure the sample web service tester. Refer to Appendix-5 for more details.
17 © 2012 Oracle Corporation. All Rights Reserved.
• Identify the user name & password to invoke “Import Journals” process.
• Verify user access to “AttachmentsRead” role in the UCM. Refer to Appendix-1 for
more details
• Verify the end point url for the web service. Refer to Automation web service for more
details. https://<domainname>/finFunShared/FinancialUtilService?WSDL

Flow Steps:

Step1: Download the Journal import template ( JournalImportTemplate.xlsm) from OER and populate the
xlsm sheet with the journals from the external /third party system. Click on the “Generate CSV File” to
create the zip file.

Step2: Prepare the payload to upload the file to UCM by invoking the web service.

The details for payload input parameters for the operation “uploadFileToUcm” is as follows:

Payload Parameter Name Value Comments


Content <Output From the sample Run the base64 encoding sample
utilEncodeBase.java program> program to provide the value of
“Content”. This sample program will
have zip file created in step1 as
input and provide the content output.

ContentType zip “Generate CSV File” will create a zip


file. You can also have “.txt”,”.csv”
along with “.zip” for content type.
DocumentTitle <Sample Journal Import>
DocumentAuthor <USER1>
DocumentSecurityGroup FAFusionImportExport This is fixed value and you shouldn’t
change it.
DocumentAccount fin$/generalLedger$/import$ You will construct this value based
on “Appendix-3 Predefined Target
UCM Accounts” and add ‘$’ as
escape character before ‘/’

Use the Service Tester to invoke the web service with the payload. You will get the response back and it
will contain the document id if the web service is successful. In case of error, you will get the error code
back as response.

Step3: Prepare the payload to load data to GL_INTERFACE table from the file on the UCM server using
ESS Process “Load Interface File for Import”

The details for payload input parameters for the operation “submitESSJobRequest” are as follows:

Payload Parameter Name Value Comments


jobPackageName oracle/apps/ess/financials/commonModules
/shared/common/interfaceLoader
jobDefinitionName InterfaceLoaderController
paramList 15 This is the value of the “Import
Journals” from the list of values.
paramList <372750> This is document id associated
with file uploaded to UCM in
step-2.
paramList N
18 © 2012 Oracle Corporation. All Rights Reserved.
paramList N

Use the service tester to invoke the web service with the payload. You will get the response back and it
will contain the request id of the ESS process.

Step4: Prepare the payload to verify the status of the request submitted in step-3.

The details for payload input parameters for the operation “getEssJobStatus” are as follows:

Payload Parameter Name Value Comments


requestId <372750> This is request Identifier
returned for ESS
process submitted in
Step3.

Use the service tester to invoke the web service with the payload. You will get the response back with the
status of the ESS request. You need to wait for the ESS request to complete successfully. If the data is
uploaded successfully then the execution status is returned as “SUCCEEDED”. If there is any error during
the processing then the execution status will be returned as “ERROR”.

Step5: Prepare the payload to import the journals from the interface table to GL_JE_HEADERS &
GL_JE_LINES. You will invoke the “Journal import” ESS process for this. While preparing the payload for
the ESS job, in order to map the ESS parameters to the payload parameters perform the following steps

• Sign in to the Oracle Fusion Applications.


• Navigate to Navigator Menu Tools Scheduled Processes.
• Click the “Schedule New Process” button.
• Find and select the “Import Journals” process.
• Submit the process by entering the requisite parameters.
• Go to the Process Monitor and select the submitted process.
• In the “Details” region below expand the “Parameters” node.
The ordered list of arguments along with their values will be shown. From this list it can also be
found out for which arguments IDs are passed internally.

The details for payload input parameters for the operation “submitESSJobRequest” are as follows:

Payload Parameter Value Comments


Name
jobPackageName /oracle/apps/ess/financials/generalLedger/programs
/common
jobDefinitionName JournalImportLauncher
paramList 1061 Data Access Set Identifier
paramList Expenses Source
paramList 1 Ledger Identifier
paramList ALL Group Identifier
paramList N Post Account errors to suspense
account
paramList N Create Summary Journals
paramList N Import Descriptive Flexfields

19 © 2012 Oracle Corporation. All Rights Reserved.


Use the service tester to invoke the web service with the payload. You will get the response back and it
will contain the request id of the ESS process.

Step6: Prepare the payload to verify the status of the request submitted in step-3.

The details for payload input parameters for the operation “getEssJobStatus” are as follows:

Payload Parameter Name Value Comments


requestId <372750> This is request Identifier
returned for ESS
process submitted in
Step5.

Use the service tester to invoke the web service with the payload. You will get the response back with the
status of the ESS request. You need to wait for the ESS request to complete successfully.

Step7: Prepare the payload to retrieve the log/out file associated with the request submitted in step-5.

The details for payload input parameters for the operation “downloadESSJobExecutionDetails” are as
follows:

Payload Parameter Name Value Comments


requestId <372750> This is request Identifier
returned for ESS
process submitted in
Step5.

Use the service tester to invoke the web service with the payload. You will get the response payload back
for this ESS request.

Response Payload:

<env:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Body-


M3Y1Wo0PrQ91vGVfDENtkQ22">
<ns0:downloadESSJobExecutionDetailsResponse
xmlns:ns0="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/types/">
<ns2:result xmlns:ns0="http://xmlns.oracle.com/adf/svc/types/"
xmlns:ns1="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/"
xmlns:ns2="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/types/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:DocumentDetails">
<ns1:Content>UEsDBBQACAAIAPK68UQAAAAAAAAAAAAAAAAKAAAAMjEyOTEzLmxvZz3PwYrDIBCA4btPMQ8gOJoa
6N5CY6CnDd28gCSTRTCa6gS6b99Syl6/ww8/PWg+mL5+pu42iZ4qh+Q55ARDiAR9KDRzLn+gasys
aKtnja3y+779FtWN4/Q9qpAq+zSTolpVWRdltDlro/LB4kb341WFaw9vbf7lkhPTgz8sYfWxkoR0
xChhcK3u0Wrd2guesHF4aixaHBA761onQRsJBo2Yik91pfLqbXskpkXQZ8qlRTwBUEsHCNkrs2Wz
AAAA4QAAAFBLAQIUABQACAAIAPK68UTZK7NlswAAAOEAAAAKAAAAAAAAAAAAAAAAAAAAAAAyMTI5
MTMubG9nUEsFBgAAAAABAAEAOAAAAOsAAAAAAA==</ns1:Content>
<ns1:FileName xsi:nil="true"/>
<ns1:ContentType>zip</ns1:ContentType>
<ns1:DocumentTitle>ESS_L_212913</ns1:DocumentTitle>
<ns1:DocumentAuthor>FIN_USER1</ns1:DocumentAuthor>
<ns1:DocumentSecurityGroup>Attachments</ns1:DocumentSecurityGroup>
<ns1:DocumentAccount xsi:nil="true"/>
<ns1:DocumentName>212913.zip</ns1:DocumentName>
</ns2:result>
</ns0:downloadESSJobExecutionDetailsResponse>
</env:Body>

20 © 2012 Oracle Corporation. All Rights Reserved.


You need to run base64 decode sample program to convert the value of “Content” from the response
payload to 212913.zip file.

Outbound - End to End Automation Flow Use Case:

Extract Receivables Transactions flow is used as an example to illustrate the outbound data integration
flow with Oracle Fusion Applications:

A batch of transactions may be needed to be extracted from the system to be sent to the customers. The
transactions will be extracted as a part of the output file of the “Print Receivables Transaction” ESS
process.

Pre-requisites:
• Importing certificate into your local keystore. Refer to Appendix-5 for more details.
• Configure the sample web service tester. Refer to Appendix-5 for more details.
• Identify the user name & password to invoke “Print Receivables Transaction” process.
• Verify user access to “AttachmentsRead” role in the UCM. Refer to Appendix-1 for
more details
• Verify the end point url for the web service. Refer to Automation web service for more
details. https://<domainname>/finFunShared/FinancialUtilService?WSDL

Flow Steps:

Step1: Prepare the payload to invoke the ESS Process “Print Receivables Transactions”

Please refer to the step5 in the inbound flow above in order to map the ESS parameters and the values
for preparing the payload.

The details for payload input parameters for the operation “submitESSJobRequest” are as follows:

Payload Parameter Name Value Comments


jobPackageName oracle/apps/ess/financials/receivables/
transactions/shared
jobDefinitionName PrintReceivablesTransaction
paramList 204 Business Unit Identifier
paramList NEW Transactions to Print
paramList TRX_NUMBER Order By
paramList #NULL Batch Name
paramList #NULL Transaction Class
paramList #NULL Transaction Type
paramList #NULL Customer Class
paramList #NULL From Customer
paramList #NULL To Customer
paramList #NULL From Customer Account
Number
21 © 2012 Oracle Corporation. All Rights Reserved.
paramList #NULL To Customer Account
Number
paramList #NULL From Transaction Number
paramList #NULL To Transaction Number
paramList #NULL Installment Number
paramList #NULL From Print Date
paramList #NULL To Print Date
paramList #NULL Open Invoices Only
paramList Default Invoice Template Invoice Template Name
paramList Default Credit Memo Template Credit Memo Template
Name
paramList Default Debit Memo Template Debit Memo Template
Name
paramList Default Chargeback Template Chargeback Template
Name
paramList No Itemized Tax by Line

Use the service tester to invoke the web service with the payload. You will get the response back and it
will contain the request id of the ESS process.

Step2: Prepare the payload to verify the status of the request submitted in step-1.

The details for payload input parameters for the operation “getEssJobStatus” is as follows:

Payload Parameter Name Value Comments


requestId <372750> This is request Identifier
returned for ESS
process submitted in
Step1.

Use the service tester to invoke the web service with the payload. You will get the response back with the
status of the ESS request. You need wait for the ESS request to complete successfully.

Step3: Prepare the payload to retrieve the log/out file associated with the request submitted in step-1.

The details for payload input parameters for the operation “downloadESSJobExecutionDetails” is as
follows:

Payload Parameter Name Value Comments


requestId <372750> This is request Identifier
returned for ESS
process submitted in
Step5.

Use the service tester to invoke the web service with the payload. You will get the response back with the
log/out file associated of the ESS request.

22 © 2012 Oracle Corporation. All Rights Reserved.


Appendix 1 – Security pre-requisites needed for downloading ESS job
execution details
Verify “AttachmentsRead” Role is granted

ESS Job and output files are placed in the “Attachments” Security group under the Universal Content
Management Server. The user needs to have the access to the security group “Attachments” in order to
download the log/out file using the web service operation “downloadESSJobExecutionDetails”.

The steps to grant access to “AttachmentsRead” role to a given User are as follows:

Step 1: Login to the Oracle Fusion Applications home page. Click on the Navigator Setup and
Maintenance. Query for the Task Name: “Manage Duties” and click on go to task to Invoke login to the
‘Entitlements Server’.

Step 2: Review user access to security group “AttachmentsRead”

Step2.1: Click on ‘Search - Users’ and select Application Name as “fscm”


Step2.1: Enter the User Name in the query panel and click on search. In the result region, select
the user name and click on the ‘Open User’. In the Example below, FINUSER1 is used.

23 © 2012 Oracle Corporation. All Rights Reserved.


Step2.2: Click on the “External Roles Assignments” tab and verify the user has role “Employee”
granted to it. You cannot proceed to next step unless “Employee” role is granted to user.
Step2.3: Select “Attachment User” under the “Employee” role and click on “Open Role”

Step2.4: Click on the “Application Role Mapping” tab and verify if under the Application Name
“IDCCS”, ‘AttachmentsRead’ is associated with the user. Click on the Create Icon to “Map
Application Role to Attachment User” to grant “AttachmentsRead” access to User incase user
doesn’t have access to it.

Step 3: Verify that the Attachments security group is listed in the UCM Search page.

24 © 2012 Oracle Corporation. All Rights Reserved.


Appendix 2 – Sample code for preparing data file for the inbound flow
Sample FileName: utilEncodeBase.java

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.codec.binary.Base64;

public class utilEncodeBase {


public utilEncodeBase() {
super();
}

public static void main(String[] a) throws Exception {

// Enter the filename as input


File br = new File(a[0]);
// Convert the file into Byte
byte[] bytes = loadFile(br);

// Call the api for Base64 encoding


byte[] encoded = Base64.encodeBase64(bytes);
String encStr = new String(encoded);
// Print the file
System.out.println(encStr);

private static byte[] getByteArray(String fileName) {


File file = new File(fileName);
FileInputStream is = null;
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[16384];
try {
is = new FileInputStream(file);
while ((nRead = is.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
} catch (IOException e) {
System.out.println("In getByteArray:IO Exception");
e.printStackTrace();
}
return buffer.toByteArray();
}

private static byte[] loadFile(File file) throws IOException {


InputStream is = new FileInputStream(file);

long length = file.length();


if (length > Integer.MAX_VALUE) {
// File is too large
}
byte[] bytes = new byte[(int)length];

int offset = 0;
int numRead = 0;
while (offset < bytes.length &&
(numRead = is.read(bytes, offset, bytes.length - offset)) >=
0) {
offset += numRead;
}

if (offset < bytes.length) {


throw new IOException("Could not completely read file " +
file.getName());
}

is.close();
25 return bytes; © 2012 Oracle Corporation. All Rights Reserved.
}

}
Sample FileName: utilDecodeBase.java

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.codec.binary.Base64;

public class utilDecodeBase {


public utilDecodeBase() {
super();
}

public static void main(String[] a) throws Exception {


System.out.println("Start");

// Read the inputsteam


String encStr = a[0];

// Run the api to perform the decoding


byte[] rbytes = Base64.decodeBase64(encStr.getBytes());

// Put the location for the output file


FileOutputStream os = new FileOutputStream("/tmp/Test1234.zip");
os.write(rbytes);

26 © 2012 Oracle Corporation. All Rights Reserved.


Appendix 3 - Predefined Target UCM Accounts

Data files must be transferred to these predefined accounts in content management server (UCM Server)
corresponding to the interface table or assets

In order to find the UCM account perform the following steps

• Login into the Oracle Enterprise Repository. - https://fusionappsoer.oracle.com


• To search for the scheduled process associated with the template and interface table enter the
following information in the fields in the Search pane and click on Search.

Field Value
Search String FBDI
Type File Based Data Import
Product family <product family>

• Select your respective import process from the results pane. E.g. “Journal Import”.
• Click on the ‘Overview’ tab on the lower pane. The UCM account will be mentioned there.

Interface Table Predefined Account


Payables Standard Invoice Import fin/payables/import
Supplier Bank Account Import
Autoinvoice Import fin/receivables/import
Receivables Standard Receipt Import
Customer Import
China Value added Tax Invoice Import
BAI2 Format Bank Statements Import fin/cashManagement/import
EDIFACT FINSTA Format Bank Statements Import
ISO200022 CAMT053 Format Bank Statements Import
SWIFT MT940 Format Bank Statements Import
Fixed Asset Mass Additions Import fin/assets/import
Fixed Asset Mass Adjustments Import
Fixed Asset Mass Retirements Import
Fixed Asset Mass Transfers Import
Fixed Asset Units of Production Import
Intercompany Transaction Import fin/intercompany/import
Journal Import fin/generalLedger/import
Chart Of Accounts Segment Values and Hierarchies Import
General Ledger Budget Balance Import fin/budgetBalance/import
Tax Configuration Content Import fin/tax/import
Import Blanket Purchase Agreements prc/blanketPurchaseAgreement/import
Import Contract Purchase Agreements prc/contractPurchaseAgreement/import
Import Purchase Orders prc/purchaseOrder/import
Import Requisitions prc/requisition/import
Import Suppliers prc/supplier/import
Import Supplier Sites
Import Supplier Site Contacts
Import Supplier Site Assignments
Project Enterprise Resource Import prj/projectManagement/import
Project Unprocessed Expenditure Item Import prj/projectCosting/import
Cycle Count Import scm/cycleCount/import
27 © 2012 Oracle Corporation. All Rights Reserved.
Inventory Reservation Import scm/inventoryReservation/import
Inventory Transaction Import scm/inventoryTransaction/import
Item Import scm/item/import
Receiving Receipt Import scm/receivingReceipt/import
Shipment Request Import scm/shipmentRequest/import

28 © 2012 Oracle Corporation. All Rights Reserved.


Appendix 4 – ESS Job Execution Status
Data files must be transferred to the predefined accounts in content management server (UCM Server)
corresponding to the interface table.

The following table lists the main set of execution statuses of the ESS job and their descriptions. These
would be returned by the getEssJobStatus operation.

ESS job Execution Status Description User Action


COMPLETED Request has completed. This is an intermediary status
and is returned especially
when child processes are
spawned. User should check
the status of the ESS job
again to ascertain whether the
return status changes to
SUCCEEDED or ERROR.
BLOCKED Request is blocked by one or more User can wait for the
incompatible requests. completion of the
incompatible request and re-
submit his process.
SUCCEEDED Request completed and was successful. User can check the details of
the completed process and
proceed with any post
processing.
ERROR Request ran and resulted in error. User can download the details
of the errored out process and
correct the data.
ERROR_AUTO_RETRY Request ran, resulted in an error, and is User can try to re-submit the
eligible for automatic retry. errored out process after
some time.
WARNING Request ran and resulted in a warning. User can download the details
of the process. From the
details user can check the
reason for the warnings and
take the necessary action to
correct the input data.

RUNNING Request is being processed. No action for the user.

CANCELLED Request was cancelled. User needs to re-submit the


request if he wants.

29 © 2012 Oracle Corporation. All Rights Reserved.


Appendix 5 – Testing Web Service using client proxy
Please find the sample implementation using jdeveloper to test the web service operation.

• Steps to import a new certificate in the keystore (for IE).


• Create a web service client proxy and add OWSM policy to it.
• Test the web service.

Steps to import a new certificate in the keystore

1. Export the certificate from the browser to the file using the following steps ( for IE )
a. Open the SSL URL for any web service.
b. Click on the lock icon besides the URL.
c. Go to the connections tab and click on the certificate information link.
d. Go to Details Copy to File Next.
e. Change the encoding to Base-64 and click Next.
f. Provide the filename and click finish.
2. Export the certificate from the browser to the file using the following steps if IE is not available on
your machine.
a. Open the SSL URL for any web service.
b. Copy the content from the xml element “dsig:X509Certificate”.
c. Create a <File name>.cer file with begin and end certificate tags and add the
certificate content from the previous step.
3. Then at the command prompt, type the below command,
• keytool -import -trustcacerts -file <filename> -alias <aliasname> -keystore default-
keystore.jks - storepass welcome1

Create a proxy client and add policy to it

1. Create a new project and select “Web Services Proxy”.


2. Select Client style as “JAX-WS Style”.
3. Select Web Service Description E.g “https:://<Hostname>.<Domain Name>:<Port
No>/finFunShared/FinancialUtilService?WSDL
a. Select the check box “Copy WSDL Info Project”.
4. Specify default mapping options.
5. Specify Asynchronous Method
a. Select the radio button “Don’t generate any asynchronous methods”
6. Click on “Finish”.
7. The proxy client code will get generated and you will need to add the following variables
a. jksFPath – This is the file location that has the certificate that needs to be added to the
keystore. Eg: D:\fintuilwdestapp\Project5\client.jks
b. jksPassword – The password with which you access the wsdl. Eg: “Welcome1”
c. trustStore – This is the path where you have the certificates that come along with java
installation by default.
d. trustStorePassword – Password for truststore.
e. username – The user with which you want to login to the service.
f. Password : Password for the user to login to service Eg: “Welome1”
g. endpointNonSSLURL – This is the URL for the FinUtilService Service.
h. serviceName – This is the schema of the service to which policies need to be added.
i. securityFeature – The policy that needs to be added to the service. Following is the
message protection policy. E.g policy:oracle/wss_username_token_over_ssl_client
8. Create method invokeServiceWithUsernameTokenMessageProtectionPolicy() to add policy.
30 © 2012 Oracle Corporation. All Rights Reserved.
Test upload file to UCM using web service

1. Create sample payload associated with “uploadFileToUcm” operation.


2. Create method invokeUpload () to invoke the operation “uploadFileToUcm”.

Export the certificate from the browser

a) Copy the content from the xml element “dsig:X509Certificate”

b) Create a .cer file with begin and end certificate tags

31 © 2012 Oracle Corporation. All Rights Reserved.


Add the variables to the proxy client code

FinancialUtilServiceSoapHttpPortClient.java
public class FinancialUtilServiceSoapHttpPortClient
{
@WebServiceRef
private static FinancialUtilService_Service financialUtilService_Service;
private static final AddressingVersion WS_ADDR_VER = AddressingVersion.W3C;

// Add the additional variables


Test the web service
private final String jksFPath = "D:\\fintuilwdestapp\\Project5\\client.jks";
private final String jksPassword = "Welcome1";
private final String trustStore = "C:\\ProgramFiles\\Java\\jdk1.7.0_51\\jre\\lib\\security\\cacerts";
private final String trustStorePassword = "changeit";
private final String username = "finuser1";
private final String password = "Welcome1";
private String endpointNonSSLURL = "https://efops-rel9st1-cdrm1-external-fin.us.oracle.com/finFunShared/FinancialUtilService";
private static final QName servicename = new
QName("http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/","FinancialUtilService");

private SecurityPolicyFeature[] securityFeature = new SecurityPolicyFeature[] { new


SecurityPolicyFeature("policy:oracle/wss_username_token_over_ssl_client_policy") };
private FinancialUtilService financialUtilService;

// End add the additional variables

public static void main(String [] args)

{ System.out.println("inside main");

FinancialUtilServiceSoapHttpPortClient f = new FinancialUtilServiceSoapHttpPortClient();

f.invokeServiceWithUsernameTokenMessageProtectionPolicy();

String retStatus = f.invokeUpload();

long submittedJobId = f.invokeSubmitJob(retStatus);

f.invokeEssJobStatus(submittedJobId);

f.invokeDownloadESSJobExecDetails(submittedJobId);

32 © 2012 Oracle Corporation. All Rights Reserved.


Method invokeServiceWithUsernameTokenMessageProtectionPolicy() to add policy

public void invokeServiceWithUsernameTokenMessageProtectionPolicy() {

System.out.println("inside invokeservice");

URL wsdlDoc = null;

Try {

wsdlDoc = new URL("https://efops-rel9st1-cdrm1-external-fin.us.oracle.com/finFunShared/FinancialUtilService?wsdl");

}catch(MalformedURLException e){

e.printStackTrace();

System.setProperty("javax.net.ssl.trustStore", trustStore);
System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword);
financialUtilService_Service = new FinancialUtilService_Service(wsdlDoc, servicename);
financialUtilService = financialUtilService_Service.getFinancialUtilServiceSoapHttpPort(securityFeature);
WSBindingProvider wsbp = (WSBindingProvider)financialUtilService;
Map<String, Object> requestContext = wsbp.getRequestContext();

requestContext.put(BindingProvider.USERNAME_PROPERTY, username);
requestContext.put(BindingProvider.PASSWORD_PROPERTY, password);
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointNonSSLURL);
requestContext.put(ClientConstants.WSSEC_KEYSTORE_TYPE, "JKS");
requestContext.put(ClientConstants.WSSEC_KEYSTORE_LOCATION, jksFPath);
requestContext.put(ClientConstants.WSSEC_KEYSTORE_PASSWORD, jksPassword);
System.out.println("Finished invokeservice");

Payload for the operation “uploadFileToUCM”

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:uploadFileToUcm xmlns:ns1="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/types/">
<ns1:document xmlns:ns2="http://xmlns.oracle.com/apps/financials/commonModules/shared/financialUtilService/">
<ns2:Content>UEsDBBQAAAAIAEhrrkQSDhHq5BLBQYAAAAAAQABAD0AAAATPQEAAAA=</ns2:Content>
<ns2:FileName>TestUploadFileName.zip</ns2:FileName>
<ns2:ContentType>zip</ns2:ContentType>
<ns2:DocumentTitle>Sample File1</ns2:DocumentTitle>
<ns2:DocumentAuthor>finuser1</ns2:DocumentAuthor>
<ns2:DocumentSecurityGroup>FAFusionImportExport</ns2:DocumentSecurityGroup>
<ns2:DocumentAccount>fin$/generalLedger$/import$</ns2:DocumentAccount>
</ns1:document>
</ns1:uploadFileToUcm>
</soap:Body>

33 © 2012 Oracle Corporation. All Rights Reserved.


Method invokeUpload () to invoke the operation “uploadFileToUcm”

private String invokeUpload() {

System.out.println("inside invokeupload");
ObjectFactory objectFactory = new ObjectFactory();
DocumentDetails documentDet = new DocumentDetails();

String fileNameWithPath = "C:\\Users\\NGARLAPA\\Desktop\\Sample.zip";


String fileName = "Sample.zip";
String contentType = "zip";
String title = "Journals Import";
String ucmAccountInfo = "fin$/generalLedger$/import$";
String ucmSecurityGroup = "FAFusionImportExport";

documentDet.setContent(objectFactory.createDocumentDetailsContent(getByteArray(fileNameWithPath)));
documentDet.setContentType(objectFactory.createDocumentDetailsContentType(contentType));
documentDet.setDocumentAccount(objectFactory.createDocumentDetailsDocumentAccount(ucmAccountInfo));
documentDet.setDocumentAuthor(objectFactory.createDocumentDetailsDocumentAuthor(username));
documentDet.setDocumentSecurityGroup(objectFactory.createDocumentDetailsDocumentSecurityGroup(ucmSecurityGroup));doc
umentDet.setDocumentTitle(objectFactory.createDocumentDetailsDocumentTitle(title));
documentDet.setFileName(objectFactory.createDocumentDetailsFileName(fileName));

UploadFileToUcm uploadFileToUcm = new UploadFileToUcm();


uploadFileToUcm.setDocument(documentDet);

try {

UploadFileToUcmResponse retStatus = null;


retStatus = financialUtilService.uploadFileToUcm(uploadFileToUcm);
System.out.println("File successfully Uploaded.Status is:" + retStatus.getResult());
} catch (Exception e) {
e.printStackTrace();
}
return retStatus;
}

private byte[] getByteArray(String fileName) {

File file = new File(fileName);


FileInputStream is = null;
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[16384];

try {
is = new FileInputStream(file);
while ((nRead = is.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
} catch (IOException e) {
System.out.println("In getByteArray:IO Exception");
e.printStackTrace();
}
return buffer.toByteArray();
}

34 © 2012 Oracle Corporation. All Rights Reserved.


Appendix 6 – Error Handling for Import jobs

If there are errors generated during the import process then there are two ways to address them
depending upon whether the ADFdi correction spreadsheets are available for that interface
table. If the ADFdi correction spreadsheet is available then the data in the interface table can be
corrected using the spreadsheet for error records and the import process can be re-submitted. If
no correction spreadsheet is available then the purge process needs to be run to delete all the
records from the interface table. The data needs to be corrected in the data file and re-uploaded
to UCM account. The entire process needs to be repeated.

The following table lists the error handling process in case of errors during the import process
for each interface table.

Import Process Error Correction Mechanism


Import Payables Invoices Correction spreadsheet:
CorrectImportErrors.xlsx
Navigation: Invoices work area
Correct Import Errors in the Tasks
region
Import Supplier Bank Accounts
Import AutoInvoice Correction spreadsheet:
ManageInvoice Errors Spreadsheet.xlsx
Navigation: Billing work area
Review AutoInvoice Errors table
Click Number of Errors
Manage AutoInvoice Lines spreadsheet
Import Bulk Customer Data Correction spreadsheet: None
Purge Option: Errored Batches can be
purged from the TCA UI for Data Import
Navigation: Navigator
Customer Data Management
Data Import workarea
Process Receipts through Lockbox Correction spreadsheet: Manage Lock
Box Errors Spreadsheet
Navigation: Navigator
Receivables Receivable balances
China Value added Tax Invoice Import
BAI2 Format Bank Statements Import
EDIFACT FINSTA Format Bank
statements Import
ISO200022 CAMT053 Format Bank
Statements Import
35 © 2012 Oracle Corporation. All Rights Reserved.
ISO200022 CAMT053 Format Bank
Statements Import
Fixed Asset Mass Additions Import Correction spreadsheet:
PrepareSourceLines.xlsx
Navigation: Navigator
Fixed Assets Additions
Pending Source Lines
Fixed Asset Mass Adjustments Import Correction spreadsheet:
UpdateMassFinancialTransaction.xl
sm
Navigation: Navigator
Fixed Assets
Financial Transactions
Pending Mass Financial Transactions
Fixed Asset Mass Retirements Import Correction spreadsheet:
UpdateMassRetirements.xlsm
Navigation: Navigator
Fixed Assets
Retirements
Pending Retirements
Fixed Asset Mass Transfers Import Correction spreadsheet:
UpdateMassTransfers.xlsm
Navigation: Navigator
Fixed Assets
Pending Mass Transfers
Pending Mass Transfers
Fixed Asset Units of Production Import
Intercompany Transaction Import
Journal Import
Chart Of Accounts Segment Values and
Hierarchies Import
General Ledger Budget Balance Import
Tax Configuration Content Import
Import Blanket Purchase Agreements
Import Contract Purchase Agreements
Import Purchase Orders
Import Requisitions
Import Suppliers
Import Supplier Sites
Import Supplier Site Contacts
Import Supplier Site Assignments
Project Enterprise Resource Import
Project Unprocessed Expenditure Item
Import
Cycle Count Import
Inventory Reservation Import
Inventory Transaction Import
Item Import
Receiving Receipt Import
Shipment Request Import

36 © 2012 Oracle Corporation. All Rights Reserved.


Appendix 7 – Using XML templates to Generate Data Files
Oracle Enterprise Repository for Oracle Fusion Applications includes XML integration templates assets
that you use with Oracle Data Integrator (ODI) to generate import files from your external data.

To use the XML templates and generate the import files, you must:

• Install and set up Oracle Data Integrator


• Create source and target models
• Create integration projects

Note
In Oracle Cloud implementations, you must upload the ZIP file to the content management repository in
Oracle Cloud. In non-Cloud implementations, you can streamline the data integration process by installing
the content management document transfer utility so ODI performs the ZIP file transfer.

Oracle Data Integrator provides a solution for integrating complex data from a variety of sources into your
Oracle Fusion applications. The Oracle Fusion Middleware Installation Guide for Oracle Data Integrator
and the Oracle Fusion Middleware Developer's Guide for Oracle Data Integrator provide complete details
pertaining to the installation and set up of this product.

Installing and Setting Up Oracle Data Integrator

• Install Oracle Data Integrator to use Oracle Fusion Applications XML integration templates.

See: Oracle Fusion Middleware Installation Guide for Oracle Data Integrator: Installing Oracle Data
Integrator

• Set up Oracle Data Integrator to use Oracle Fusion Applications XML integration templates.
.

See: Oracle Fusion Middleware Developer's Guide for Oracle Data Integrator: Setting up the Topology

Creating Source and Target Models

• Create the ODI models for both the source and target datastores. You determine the source models that
you use based on the system or technology of the external data that you to import into your Oracle
Fusion application. You create the target models by importing the XML files, which you download from
Oracle Enterprise Repository.

See: Oracle Fusion Middleware Developer's Guide for Oracle Data Integrator: Creating and Reverse-
Engineering a Model

Configuring Integration Projects

• Create and configure an integration project, which entails selecting the knowledge modules, creating the
interfaces, and mapping the source and target datastores.

37 © 2012 Oracle Corporation. All Rights Reserved.


See: Oracle Fusion Middleware Developer's Guide for Oracle Data Integrator: Creating an Integration
Project

Opening the XML Template

To prepare your data in Oracle Data Integrator (ODI), download and save the XML templates:

1. Import the family-level template as a model folder.


2. Import the product-level template as a model folder within the family level model folder.
3. Import the product template as a model within the product-level model folder.
4. Create the integration project.
5. Create the package.
6. Add and configure these elements:
a. The integration projects
b. The ODIZip tool
c. The content management document transfer utility
7. Execute the package.
The package generates the CSV file and compresses it into a ZIP file.

Using XML Integration Templates to Generate Data Files: Points to Consider

Use XML templates in Oracle Data Integrator to prepare your external data for loading and importing.
Oracle Enterprise Repository for Oracle Fusion Applications includes three types of XML templates that
you import as target models in your Oracle Data Integrator repository.

Oracle Enterprise Repository includes these three levels of XML files:

• Family-level
• Product-level
• Product

Family-Level XML Files

A family-level XML file is common to a group of product-level model folders and product models.

Consider the following points when you use family-level XML files:

• The family-level XML file supports all of the Oracle Enterprise Repository assets in the family, for
example Oracle Fusion Financials or Human Capital Management.
• You import the family-level XML file into your Oracle Data Integrator repository prior to importing the
other XML files.
• You import one family-level XML file as a model folder for each family of products.
• You import each family-level XML file as a top-level model folder.
• You import the family-level XML file one time; it supports all subsumed product-level model folders.
• You select Synonym mode Insert Update as the import type.

Product-Level XML Files

A product-level XML file is common to a group of product models.

Consider the following points when you use product-level XML files:

38 © 2012 Oracle Corporation. All Rights Reserved.


• The product-level XML file supports all of the Oracle Enterprise Repository assets in the product line, for
example Fixed Assets, General Ledger, or Payables.
• You import one product-level XML file as a model folder for each line of products.
• You import the product-level XML file as a model folder into your Oracle Data Integrator repository after
you import the family-level XML file, but before you import product XML files.
• You import each product-level XML file as a midlevel model folder within the appropriate family-level
model folder.
• You import the product-level XML file one time; it supports all subsumed product models.
• You select Synonym mode Insert Update as the import type.

Product XML Files

A product XML file represents a specific Oracle Enterprise Repository interface table asset.

Consider the following points when you use product XML files:

• You import one product XML file as a model for each interface table or set of tables, for example Mass
Additions.
• You import the product XML file as a model into your Oracle Data Integrator repository after you import
the product-level XML file.
• You import each product XML file as a model within the appropriate product-level model folder.
• You import each product XML file one time.
• You select Synonym mode Insert Update as the import type.
• The model is based on File technology.
• After you import the product model, you connect the model to the correct logical schema.

Creating Integration Projects That Generate Data Files for Import: Points to Consider

When you use Oracle Data Integrator (ODI) to generate import data files from external data sources, you
must configure an integration project. Integration projects are collections of ODI components that provide
the procedural details of an integration from a source to a target. In this scenario, the source is your
external data and the target is the import data file that you load and import into your Oracle Fusion
Applications.

Configure these components to create your integration project.

• Knowledge modules
• Integration interfaces

Knowledge Modules

Knowledge modules contain the information that Oracle Data Integrator requires to perform a specific set
of tasks against a specific technology or set of technologies. Examples include Check knowledge
modules, which ensure that constraints on the sources and targets are not violated and integration
knowledge modules, which load data to target tables.

Consider the following points about knowledge modules:

• The knowledge modules that you import into your integration project depend on the source and target
technologies, as well as other integration specific rules and processes.
• Multiple types of knowledge modules exist in ODI.
• Use the SQL File to Append module to create the import data file.

39 © 2012 Oracle Corporation. All Rights Reserved.


Integration Interfaces

Integration interfaces comprise sets of rules that define the loading of data from one or more sources to
the target.

Consider the following points about integration interfaces:

• The source is the datastore from your external data model.


• The target is the interface table datastore, which is the CSV file from your interface table model.
• After you set up the source and target datastores, map the target fields to the source fields.
• You can map source field values to target fields or constants.

40 © 2012 Oracle Corporation. All Rights Reserved.