Tuesday, July 28, 2026

Notepad - Improve Productivity in Notepad++ by Managing Multiple Open Tabs

Introduction

When numerous files are open in Notepad++, not all tabs are visible in a single row. Enabling multi-line tabs allows Notepad++ to display open tabs across multiple lines, making file navigation quicker and more convenient.

Solution

To display all the tabs in multi lines:

  1. Go to Settings → Preferences.
  2. Select General.
  3. Under the Tab Bar section, select multi line.

Benefits

Improved visibility of open files.

Faster navigation between documents.

Reduced chances of opening or editing the wrong file.

Better productivity when working with multiple project files.

This small configuration change can significantly improve your daily development experience, especially when working with large OIC projects containing many similar file names.

OIC - Oracle Integration Cloud (OIC): Automatically Create Folder Structures in OCI Object Storage | use of ends-with() function

 Introduction

When working with OCI Object Storage, we often need to create multiple folders and subfolders before uploading files. Although this can be done manually through the OCI Console, repeatedly logging in and creating folders becomes time-consuming, especially during project setup or migration activities.

In this blog, we'll build a reusable Oracle Integration Cloud (OIC) service that automatically creates the required folder hierarchy in an OCI Object Storage bucket.

Business Requirement

Create an OIC REST service that accepts:

  • Object Storage Namespace
  • Bucket Name
  • An array of folder and subfolder paths

The integration will iterate through each folder path and create an empty placeholder object so that the folder structure is visible in Object Storage.

This eliminates the need to manually log in to OCI and create folders one by one.

Sample Request

{
  "namespace": "my_namespace",
  "bucketName": "integration-bucket",
  "folders": [
    "Inbound",
    "Outbound",
    "Archive",
    "Archive/Success",
    "Archive/Error",
    "Logs",
    "Reports/Daily",
    "Reports/Monthly"
  ]
}

Solution Design

The integration performs the following steps:

  1. Expose a REST endpoint.
  2. Read the Namespace, Bucket Name, and folder array.
  3. Use a For-Each action to iterate through every folder path.
  4. For each folder:
    • Append a trailing / if required.
    • Create a dummy empty object (0-byte file) using the OCI Object Storage Adapter.
  5. Return a success response once all folders have been created.

Integration Flow

REST Trigger
      │
      ▼
Read Request Payload
      │
      ▼
For Each Folder
      │
      ▼
Create Empty Object in OCI Object Storage
      │
      ▼
Next Folder
      │
      ▼
Return Success Response

Why Create an Empty File?

OCI Object Storage does not actually store folders. Instead, folders are represented by object names containing /.

By creating an empty object (0-byte placeholder) for each folder path, the OCI Console displays the folder hierarchy, making it easier for users and integrations to organize files.

Benefits

  • No manual login to the OCI Console.
  • Quickly create complete folder hierarchies.
  • Reusable across multiple projects and environments.
  • Accepts any number of folders through a single request.
  • Ideal for deployment automation and project onboarding.
  • Reduces manual effort and configuration errors.

Sample Response

{
  "status": "SUCCESS",
  "message": "Folder structure created successfully."
}

Use Cases

  • Initial Object Storage bucket setup.
  • Environment provisioning.
  • Automated deployment pipelines.
  • Project onboarding.
  • Creating standard folder templates across multiple buckets.















Conclusion

This reusable OIC service simplifies the creation of folder structures in OCI Object Storage by accepting a bucket name, namespace, and list of folder paths. Instead of manually navigating the OCI Console, users can create an entire folder hierarchy with a single API request, saving time and ensuring consistency across environments.

This lightweight utility is particularly useful for automation, CI/CD deployments, and projects that frequently provision new Object Storage buckets.

Monday, July 27, 2026

OIC - ERP - Resolving ORA-01403: No Data Found During ERP Import Costs ESS Job

Overview

While executing the Import Costs ESS job in Oracle ERP, the process failed with the following error:

Error:

ORA-01403: no data found

This error can be misleading because it doesn't always indicate missing transactional data. In our case, the issue was caused by incorrect parameter values being passed to the ESS job from Oracle Integration Cloud (OIC).

Error Scenario

The Import Costs ESS job completed with Error status, and the completion text displayed:

ORA-01403: no data found

As shown below:

Root Cause

The integration was retrieving ESS job parameters from a lookup table. During troubleshooting, we found that one or more parameter values stored in the lookup were incorrect.

Since the ESS job received invalid parameters, it couldn't find the expected data and returned the ORA-01403: no data found error.

Resolution

The issue was resolved by following these steps:

  1. Reviewed the parameters passed to the Import Costs ESS job.
  2. Compared them with the expected ERP values.
  3. Identified incorrect values in the OIC lookup.
  4. Updated the lookup with the correct parameter values.
  5. Re-ran the integration.
  6. After updating the lookup, the ESS job completed successfully without any errors.

Key Learning

When an ESS job fails with ORA-01403: no data found, don't assume the source data is missing. Also verify:

  • The parameters passed to the ESS job.
  • Lookup values used by the integration.
  • Parameter mapping in OIC.
  • Whether the parameter values match the ERP configuration.

Troubleshooting Checklist

  • ✅ Verify all ESS job parameters.
  • ✅ Check OIC lookup values.
  • ✅ Validate parameter mapping before submitting the ESS job.
  • ✅ Compare successful and failed job parameters.
  • ✅ Re-run the ESS job after correcting the parameters.

Conclusion

In this case, the root cause was incorrect parameter values stored in the OIC lookup, not missing ERP data. Updating the lookup with the correct values resolved the ORA-01403: no data found error, and the Import Costs ESS job executed successfully.

Tip: Whenever an ERP ESS job throws ORA-01403, reviewing the submitted parameters should be one of the first troubleshooting steps, especially if those parameters are dynamically fetched from an OIC lookup or configuration table.

Wednesday, July 15, 2026

OIC Accelerator Upgrade: Reviewing Merge Reports and Resolving Unmerged Extensions

Working...

When upgrading an Oracle Integration Cloud (OIC) Accelerator, Oracle automatically merges the latest accelerator changes with your customized extensions. While most changes are merged successfully, some extensions may require manual intervention due to conflicts or customizations.

The Merge Report provides a consolidated view of all merged and unmerged extensions, allowing developers to quickly identify and resolve any outstanding issues before completing the upgrade.

This blog explains how to access the Merge Report from the Integration Palette and review each unmerged extension.

Why Review the Merge Report?

After an accelerator upgrade, reviewing the Merge Report helps you:

  • Verify which extensions were merged successfully.
  • Identify extensions that require manual review.
  • Understand the reason behind merge conflicts.
  • Ensure all customizations are retained after the upgrade.
  • Validate the integration before deployment.

Steps to Review the Merge Report

Step 1: Open the Upgraded Integration

Open the upgraded integration in the OIC Designer.

Step 2: Open the Integration Palette

From the left-side panel, open the Integration Palette.

Navigate to the Extensions section.

Step 3: View the Merge Report

Select Merge Report from the Integration Palette.

The report displays:

Successfully merged extensions

Partially merged extensions

Unmerged extensions requiring manual resolution

This provides an overview of the upgrade status for all extensions.

Step 4: Review Each Unmerged Extension

Expand each unmerged extension listed in the report.

For every extension, review:

  • The affected integration component
  • The merge status
  • The reason for the conflict
  • Any customizations that were not merged automatically

This helps determine the manual changes required.

Step 5: Resolve the Unmerged Changes

Open the corresponding extension and compare it with the original implementation.

Review components such as:

Mappings (XSLT)

Variables

Assign actions

Switch conditions

Invoke activities

Fault handlers

Connections and adapter configurations

Apply the required changes manually while preserving both the accelerator updates and your customizations.

Step 6: Validate and Test

Once all unmerged extensions have been reviewed and resolved:

  • Validate the integration.
  • Resolve any validation or mapping errors.
  • Perform functional testing.
  • Activate the integration after successful validation.

Best Practices

  • Always review the Merge Report immediately after an accelerator upgrade.
  • Resolve all unmerged extensions before deployment.
  • Compare customizations carefully to avoid losing business logic.
  • Validate the integration after every manual update.
  • Test all impacted integration flows before promoting to higher environments.

Conclusion

The Merge Report is an essential tool during OIC Accelerator upgrades. It provides a centralized view of merged and unmerged extensions, enabling developers to quickly identify areas requiring manual attention. By reviewing each unmerged extension and validating the integration thoroughly, you can ensure a smooth upgrade while preserving existing customizations and minimizing deployment risks.

Tuesday, July 7, 2026

OIC - Oracle Integration Cloud (OIC) – Upload File to UCM, Submit ESS Job, and Monitor Job Status

A common Oracle ERP Cloud integration pattern is to upload a file to UCM, submit an ESS job, and then poll the ESS job status until it completes successfully. This pattern is widely used for payment processing, FBDI imports, bank acknowledgements, and other batch integrations.

Business Requirement

Suppose an external system generates a file (CSV/XML/TXT) that needs to be processed by Oracle ERP Cloud.

The integration should:

  1. Upload the file into Oracle ERP Cloud UCM.
  2. Submit the required ESS job.
  3. Wait for the job to finish.
  4. Check the ESS job status.
  5. Continue processing only when the job completes successfully.

Integration Flow

External System

      │

      ▼

Receive File

      │

      ▼

Upload File to UCM

      │

      ▼

Receive Content ID

      │

      ▼

Submit ESS Job

      │

      ▼

Receive Request ID

      │

      ▼

Loop Until Completion

      │

      ▼

Get ESS Job Status

      │

      ▼

Success / Error Handling

Step 1 – Upload File to UCM

Configure the Oracle ERP Cloud Adapter and select:

Operation: File Upload to WebCenter (UCM)

Example values:

Account: FAFusionImportExport

UCM Folder: fin$/payments$/import$

After upload, Oracle returns a Content ID, which is required by many ESS jobs.





Step 2 – Submit ESS Job

Invoke another ERP Cloud Adapter.

Choose: Submit ESS Job

Provide:

Job Package Name: /oracle/apps/ess/financials/payments/fundsDisbursement/payments/

Job Definition Name: FDAckProcessing

Parameters: <referenceNumber>

Example ESS Job Path:

/oracle/apps/ess/financials/payments/fundsDisbursement/payments/FDAckProcessing

The adapter returns an ESS Request ID.

Example:

Request ID : 300000458912345




Step 3 – Wait Before Polling

Instead of checking immediately, add a Wait activity.

Example:

Wait 20–30 seconds

This avoids unnecessary API calls while Oracle begins processing the job.

Step 4 – Check ESS Job Status

Use a While scope.

Pseudo logic: While Status != SUCCEEDED

   Wait 20 Seconds

   Get ESS Job Status : Pass the Request ID returned during job submission.

End While


If the status becomes:

SUCCEEDED → Continue integration.

ERROR → Raise fault.

WARNING → Handle based on business requirement.

Typical statuses include:

Status Meaning

WAIT Waiting to start

READY Ready for execution

RUNNING Currently executing

SUCCEEDED Completed successfully

ERROR Failed

WARNING Completed with warnings





When to use Upload File to UCM:

You are uploading a payment file or bank file.

You need to run a specific ESS job yourself after the upload.

The file is not a standard Oracle FBDI import.

You need full control over the sequence (Upload → ESS Job → Poll Status).

Example:

Upload payment acknowledgment file.

Upload HSBC bank file.

Upload custom XML/CSV.

Upload a file and then run FDAckProcessing ESS job.

When to use Bulk Import:

You are importing Oracle ERP business data using FBDI.

Oracle ERP supports that object through the Bulk Import operation.

You want Oracle to manage the import process for that business object.

Examples:

Supplier Import

Customer Import

GL Journal Import

AP Invoice Import

Asset Import

Item Import

Conclusion

Uploading a file to UCM, submitting an ESS job, and continuously monitoring the job status is one of the most common Oracle Integration Cloud design patterns. By combining the ERP Cloud Adapter, Wait, and While activities, you can build a robust integration that ensures downstream processing starts only after the ERP job has successfully completed.

Sunday, July 5, 2026

OIC - Oracle Integration Cloud (OIC): Configuring BI Publisher Data Model to Return DATA_DS, Empty XML Tags, and CSV Output

When integrating Oracle ERP Cloud reports with Oracle Integration Cloud (OIC), you may encounter situations where BI Publisher omits empty XML elements. This can create issues in OIC because expected XML nodes are missing, making mappings and XPath expressions fail.

This blog explains how to configure your BI Publisher Data Model so that:

The response contains the <DATA_DS> root tag instead of only column headers.

Blank fields are returned as empty XML tags (for example, <STATUS/>) instead of being omitted.

CSV output is enabled if required.

Problem Statement

While calling a BI Publisher report from OIC:

The XML response may contain only headers or omit the <DATA_DS> section when no data is returned.

Columns with NULL values are not included in the XML payload.

Missing XML elements can cause integration mappings, stage file processing, or downstream applications to fail.

Solution

Open the BI Publisher Data Model and configure the following properties.

1. Enable CSV Output

Check:

✅ Enable CSV Output

This allows the report to generate CSV output when required by downstream integrations.

2. Include Empty XML Tags

Under XML Output Options, enable:

✅ Include Empty Tags for Null Elements

✅ Include Open & Close Tags

These settings ensure that if a database column contains a NULL value, BI Publisher still generates the XML element.

Before

<DATA_DS>

   <G_1>

      <REQUEST_ID>12345</REQUEST_ID>

   </G_1>

</DATA_DS>

After

<DATA_DS>

   <G_1>

      <REQUEST_ID>12345</REQUEST_ID>

      <STATUS/>

      <ERROR_MESSAGE/>

   </G_1>

</DATA_DS>

This makes XML parsing in OIC much more reliable.

Why This Is Important

Using these options provides several benefits:

Ensures a consistent XML structure.

Prevents XPath and mapper failures in OIC.

Simplifies Stage File and XML parsing.

Guarantees expected tags exist even when values are NULL.

Improves compatibility with downstream systems expecting fixed XML schemas.

Configuration Screenshot

The following BI Publisher Data Model settings should be enabled:

Enable CSV Output

Include Empty Tags for Null Elements

Include Open & Close Tags

These options are available under the Properties page of the Data Model, as shown in your screenshot.


Conclusion

If your OIC integration depends on consistent XML elements, configuring the BI Publisher Data Model correctly is essential. By enabling CSV Output and selecting Include Empty Tags for Null Elements along with Include Open & Close Tags, BI Publisher always returns a predictable XML payload with the <DATA_DS> structure and empty tags for NULL values. This greatly improves integration stability and reduces mapping errors in Oracle Integration Cloud.

Tuesday, June 30, 2026

OIC – Automate OIC Observability Instance Report and Send via Email

Requirement

Build an Oracle Integration Cloud (OIC) integration that fetches OIC Observability / Integration Instance details for a given From Date and To Date, generates a report file, and sends it over email as an attachment.

Use Case

Operations/support teams often need execution details for a specific date range. Instead of manually downloading instance reports from monitoring, this integration automates the process.

Solution Flow

REST Trigger (Input Dates)

→ Call OIC Factory/Monitoring REST API

→ Fetch Instance Details

→ Write Response into File

→ Send Notification Email with Attachment

Step 1: Create REST Trigger Integration

Create an App Driven Orchestration.

Configure trigger request payload:

{

  "MyId": "101",

  "Email": "test@test.com",

  "Query": "{startdate:'2026-01-14 10:00:00',enddate:'2026-01-15 10:00:00'}"

}

Input Parameters:

MyId – Request identifier

Email – Recipient email

Query – Date filter containing:

startdate

enddate

Step 2: Configure OIC Factory / Monitoring Service

Add REST Invoke.

Example configuration:

Endpoint Name

GetOICInstances

Relative URI

/ic/api/integration/v1/monitoring/integrations

Method:

GET

Enable:

Add and review parameters

Configure endpoint to receive response


Step 3: Map Query Parameters

Map the incoming Query field to REST query parameter.

Example:

startdate → request input

enddate → request input

This allows runtime filtering of observability/instance records.

Step 4: Invoke Monitoring API

Construct request dynamically.

Example:

?fromDate=2026-01-14T10:00:00

&toDate=2026-01-15T10:00:00

Expected output:

Integration Name

Instance Id

Status

Start Time

End Time

Execution details

Sample Response:

{

  "items": [

    {

      "code": "CUSTOMER_COMMON_01|DVS_RTP|01.0.0000",

      "projectCode": "CUSTOMER_COMMON_01",

      "integrationName": "DVS_RTP",

      "integrationId": "DVS_RTP",

      "integrationVersion": "01.0.0000",

      "scheduled": false,

      "flowStatus": "ACTIVATED",

      "noOfMsgs": 120,

      "noOfMsgsSuccess": 115,

      "noOfMsgsFailed": 3,

      "noOfMsgsAborted": 2,

      "lastUpdated": "2026-06-30T07:45:22.000+0000"

    },

    {

      "code": "COMMON|CLP_COMMON_GET|01.0.0001",

      "projectCode": "COMMON",

      "integrationName": "CLP_COMMON_GET",

      "integrationId": "CLP_COMMON_GET",

      "integrationVersion": "01.0.0001",

      "scheduled": true,

      "flowStatus": "ACTIVATED",

      "noOfMsgs": 580,

      "noOfMsgsSuccess": 570,

      "noOfMsgsFailed": 10,

      "noOfMsgsAborted": 0,

      "lastUpdated": "2026-06-30T08:15:30.000+0000"

    }

  ],

  "totalResults": 2,

  "limit": 100,

  "offset": 0,

  "hasMore": false

}

Step 5: Write Response to Stage File

Add Stage File → Write File.

Example:

Directory:

/tmp

File:

OIC_Instance_Report.json

Write API response into file.

You may also convert JSON → CSV before writing if business users prefer Excel-friendly output.




Step 6: Send Email Notification

Use Notification Action.

Configure:

To → Email input

Subject

OIC Observability Instance Report

Body:

Please find attached OIC instance execution report for requested date range.

Attach generated file from Stage File.


Benefits

Removes manual monitoring effort

Easy reporting for support teams

Date-driven execution

Reusable utility integration for observability reporting

You can additionally enhance this by:

Generating CSV instead of JSON

Scheduling via Scheduled Integration

Uploading reports to UCM/Object Storage before emailing

Reference:

https://docs.oracle.com/en/cloud/paas/integration-cloud/rest-api/op-ic-api-integration-v1-monitoring-integrations-get.html?source=%3Aow%3Ams%3Apt%3A%3A&utm_source=chatgpt.com 

Featured Post

Notepad - Improve Productivity in Notepad++ by Managing Multiple Open Tabs

Introduction When numerous files are open in Notepad++, not all tabs are visible in a single row. Enabling multi-line tabs allows Notepad++ ...