Thursday, October 19, 2023

How to Create Custom Pages using Application Composer in Oracle Fusion Cloud

"Can we have some new pages/forms created in ERP Cloud ?" or "Business requires to collect and maintain some additional information in ERP Cloud. Is this possible?"
These are some inevitable questions asked by many ERP users, especially after transitioning from Oracle EBS to Oracle ERP Cloud. Well, the answer is 'Yes'. 
Application Composer is a powerful tool that enables us to create custom pages as per business requirements. Let's see how to use Application Composer.


Roles Required:

First of all, in order to be able to access Application Composer tool, one needs to have
'Custom Objects Administration Role'. Role Code is ORA_CRM_EXTN_ROLE.
Additionally, one may be granted these roles:
Customer Relationship Management Application Administrator
Application Implementation Consultant
Master Data Management Application Administrator



Now, lets access Application Composer and we'll create a new page to capture view, and maintain Customer Details (PS. This has no relation to AR Customers. This will be an independent page with it's own data structure in the backend).

Activate Sandbox:

First of all, we have to activate a new Sandbox. Let's name it CustomerDetails and select Application Composer under Tools. Create and Enter the Sandbox.


Application Composer:

Now, you will see a new option named 'Application Composer' under Configuration menu. Open it.




Now we have entered the Application Composer tool.

Let's change Application to ERP and SCM Cloud.



Custom Objects:

Now you will see various options in the Right pane. Click on Custom Objects.

Now, enter the information in order to create new Custom Object as shown below:

Display Label: This defines a user-friendly name for an object.

Plural Label: The plural label is used when the object is displayed as the detail section of a master-detail page, such as on a subtab.

Record Name Label: This field is used to specify the display label for the object's RecordName field.

Record Name Data Type: Choose between Text or Automatically Generated Sequence.

Prevent Duplicate Values: With this box checked, one can prevent users from inputting duplicate record names.

Object Name: This is the internal identifier of the object and needs to be unique.

Description: Description of the object.






Now, our custom object named 'Customer Details Page' has been created.




Fields:

Now, we need to create the Fields. These are basically the columns we need to capture information into.

Navigate to Customer Details Page object and click on Fields in Left Pane.

Now, lets click Create a custom field button in Right Pane.




This brings a pop-up page asking for the Data Type for this field. Let's select Text for our use case and click OK.


Now, let's create three fields by following above process.

Customer Name:


Customer Email:



Customer Address:


Here, we have marked Customer Name and Customer Email fields as Searchable. This will enable users perform search on the existing data set based on these two fields.

Here's the snapshot of all our fields:



Pages:

Now, let's build the Pages and show above fields on the same for Viewing as well as Data Entry purpose.

Navigate to Pages and click on 'Create Default Pages'



We will see this message while it created Default Pages for us.



Once completed, we should see primarily three Pages -

Landing Page: As the name indicates, this is the first/landing page we will see when we enter Customer Details area.

Creation Page: This is the page which enables us to create new records and is shown when user clicks on Create button.

Details Page: This page lets us see more details of a particular record and is shown when user clicks on a particular record from the search results.





Now, let's click on Default custom layout option under Landing Page Layout




Here, click on Edit option under Summary Table


Now, let's select all the desired columns and move them to the Selected Fields section


Save and Close

Done


Similarly, let's click on Default custom layout option under Creation Page Layout



Here, we need to click Edit option under PageCreate section as shown below:



Now, let's select all the desired columns and move them to the Selected Fields section

Save and Close

Done


And finally, click on Default custom layout option under Details Page Layout



Here, we need to Edit the SubTab:Summary section as shown below:


Let's select all the desired columns and move them to the Selected Fields section


Save and Close

Done


At this stage, we are pretty much done with the steps to create our Customer Details page.

Here we can either chose to Preview the Sandbox OR Publish it.




OR




Using either of the above options, we will return to the home page of Fusion Applications.

Navigate to Others tab and we will see our newly creates 'Customer Details Page'.




OR the same can be accessed from the Others submenu under the hamburger menu:



Once we open the Customer Details, we will see below screen.

Here, we can see a section with No results found. This is our Landing page.


Let's click on Create button to open our Creation Page and well enter test data and Save.



Once we return to the Landing Page, we will now see the test Customer we just created.

Now, if we click on the Customer1 field, it will take us to Details Page where we will see all the details of this customer


Details Page:





This way we can create custom pages using the Application Composer tool in Fusion Cloud.


Share:

Tuesday, October 3, 2023

Bank Transmission Configuration in Oracle Fusion Cloud

In my last post, I explained how to configure Payment Wallet in Oracle ERP Cloud.

Now, lets see how to do Bank Transmission Configuration in ERP Cloud.


- Navigate to Setup and Maintenance



- Click on 'Payments' Functional Area and find the option 'Manage Transmission Configurations'



- Now, we need to create a new Transmission configuration with 'Secure File Transfer Protocol for Static File Names' Protocol.

- Select Protocol = Secure File Transfer Protocol for Static File Names and click Create



- Below table indicates the information we need to gather by contacting the Bank as this information will be used in creating the transmission configuration in Fusion

Field Name

Field Value

FTP Server IP Address

Bank SFTP server address (e.g. sftp.testbank.com)

FTP Server Port Number

Bank Server Port Number (1000)

FTP Account User Name

User profile name which has access to Bank server (e.g. USER_NAME)

Remote File Directory

Bank Server Directory in which payment files will be placed (e.g. /)

Sent File Name

Naming convention for the output file, if desired (e.g. OutputFile.xml)

Client Private Key File

See instructions below



- Now let's see hot to generate Client Private Key File

- Enter a new Client Private Key Password of your choice and click on 'Advanced Create' option in the Client Private Key File drop down







- Select Key Type as RSA and Length as per length confirmed by Bank (Options are 2048 / 3072 / 4096)





- Please make a note of the above Client Key Password as we will need it when we will export the Key-Pair to Content Server

- Once done, it will create the ssh key and the name will appear in Client Private Key File field




- Now, let's export the Public-Private Key-Pair to Content Server

- Click on the Client Private Key File dropdown and click on Export and Delete option



- Enter above password in the popup and click Export



- Save Transmission Configuration and Close.

- Navigate to Content Server and search for the Public-Private Key files

- Here, we will see two files generated, one is .ssh file which is the Private Key residing on Fusion Server and other is .pub file which is the Public Key



- Download the .pub Public Key file and send to the Bank IT Team

- Bank needs to import this Public Key into their server and attach it to the User Account mentioned in 'FTP Account User Name' in above configuration.

- Once Bank confirms the import of the Public Key, we need to come back to the Transmission Configuration and click on Test


- If all the steps are done correctly, we will see success message





Share:

Thursday, August 24, 2023

Payments Wallet Configuration and Migration to another environment in Oracle Fusion Cloud

Let's see how to configure the Payments Wallet in Oracle Fusion Cloud as well as the steps to Migrate the wallet from one environment to another. Migration steps are to be performed in case P2T or T2T refresh activities are being performed and there's need to migrate the wallet from one POD to another.


Steps to create Payments Wallet:

- Navigate to Setup and Maintenance


- Search for Manage System Security Options 


- Find out 'Apply Quick Defaults' button



- If this button is Disabled, that means the wallet has already been created and no further action is needed

- If this button is Enabled, then you can create a new wallet by clicking on Apply Quick Defaults button

- Once the pop-up is shown, select the first option to Create empty wallet 

- Save



This will create the Payments Wallet and system key in Fusion Cloud.

The wallet information can be checked by querying IBY_SYS_SECURITY_OPTIONS table which should contain one record pointing to the payment wallet.



Output:




Steps to Migrate Payments Wallet from one environment to another:


Steps to be performed in the Source Environment:

- Run ESS job named 'Import Security Credential Job'

- Specify the 'Credential File Type' parameter as 'Export Payments Wallet'

- Leave all other parameters as blank


- One the ESS job completes, a file with the name 'IBY_OPSS_contents.ks' will be generated in the fin/payments/import folder in UCM.

- To see this, navigate to File Import and Export option



- Download and save this file on your machine.




Steps to be performed in the Target Environment:


- We need to upload aforementioned .ks file on the Target environment in fin/payments/import UCM folder.

- Navigate to File Import and Export page and upload the file 'IBY_OPSS_contents.ks' from local machine to the fin/payments/import Account




- Run the ESS Job 'Import Security Credential Job

- Specify the 'Credential File Type' parameter as 'Import Payments Wallet'

- Leave all other parameters as blank




- Once the ESS job completes, the wallet contents are imported into the target environment

- The newly imported wallet information can be checked by querying IBY_SYS_SECURITY_OPTIONS table which should contain one record pointing to the payment wallet, as shown in first section of this blog.


Share:

Thursday, August 10, 2023

How to use SOAP APIs to Automate Migration of BIP Reports to another environment in Oracle Fusion

In the previous post, we saw how to manually migrate various reports in Oracle Fusion Cloud to another environments.

In this blog, let's see how we can automate migration of BI Publisher reports using BI Publisher SOAP APIs offered by Oracle Fusion Cloud.

We need to use below SOAP API provided by Fusion/ERP Cloud in order to download/upload various BIP components.

Catalog Service WSDL for creating connections:
https:// <SourceServer/DestinationServer>.fa.us2.oraclecloud.com/xmlpserver/services/v2/CatalogService?wsdl


Source Report to be migrated:



Request Payload to Download the BIP report from source instance:

<x:Envelope
    xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:v="http://xmlns.oracle.com/oxp/service/v2">
    <x:Header/>
    <x:Body>
        <v:downloadObject>
            <v:reportAbsolutePath>Your report path </v:reportAbsolutePath>
            <v:userID>username</v:userID>
            <v:password>password</v:password>
        </v:downloadObject>
    </x:Body>
</x:Envelope>




Response Payload will contain the Encoded base64 data:



Request Payload to Upload the BIP report to destination instance:

The above returned encoded data need to be passed as input to the below along with report absolute path:

<x:Envelope
    xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:v="http://xmlns.oracle.com/oxp/service/v2">
    <x:Header/>
    <x:Body>
        <v:uploadObject>
 <v:reportObjectAbsolutePathURL>/Custom/Financials/Payables/TestUpload/</v:reportObjectAbsolutePathURL>
            <v:objectType>xdoz</v:objectType>
            <v:objectZippedData>[base64Binary?]</v:objectZippedData>
            <v:userID>?</v:userID>
            <v:password>?</v:password>
        </v:uploadObject>
    </x:Body>
</x:Envelope>




Result:





More operations offered by BI Publisher SOAP API:


Create Folder:

This operation lets you create a new custom folder in the desired path.



Payload:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://xmlns.oracle.com/oxp/service/v2">
   <soapenv:Header/>
   <soapenv:Body>
      <v2:createFolder>
         <v2:folderAbsolutePath>/Custom/Financials/Payables/TestUpload/Custom Folder</v2:folderAbsolutePath>
         <v2:userID>username</v2:userID>
         <v2:password>password</v2:password>
      </v2:createFolder>
   </soapenv:Body>
</soapenv:Envelope>


Result:







Rename Report:

This operation lets you rename an existing report to a new name.




Payload:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://xmlns.oracle.com/oxp/service/v2">
   <soapenv:Header/>
   <soapenv:Body>
      <v2:renameObject>
         <v2:objectAbsolutePath>/Custom/Financials/Payables/CUSTOM_INVOICES.xdo</v2:objectAbsolutePath>
         <v2:newName>NEW_CUST_INV</v2:newName>
         <v2:userID>username</v2:userID>
         <v2:password>password</v2:password>
      </v2:renameObject>
   </soapenv:Body>
</soapenv:Envelope>


Result:





Delete Report:

This operation lets you delete any existing report.






Payload:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://xmlns.oracle.com/oxp/service/v2">
   <soapenv:Header/>
   <soapenv:Body>
      <v2:deleteObject>
         <v2:objectAbsolutePath>/Custom/Financials/Payables/NEW_CUST_INV.xdo</v2:objectAbsolutePath>
         <v2:userID>username</v2:userID>
         <v2:password>password</v2:password>
      </v2:deleteObject>
   </soapenv:Body>
</soapenv:Envelope>


Result:



Share: