> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexagon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# packageDeploy (OIC)

> Deploys Oracle Integration Cloud components to the designated OIC environment. Like other package based plugin operations, this process only deploys a

Deploys Oracle Integration Cloud components to the designated OIC environment. Like other package-based plugin operations, this process only deploys a file if it has changed since the previous deployment to that OIC environment, unless a Force Deploy is requested.

* **Integrations**: The integration object type will be imported to the designated OIC environment. If connections were exported as part of the integration, they will also be imported. Additionally, if the integration utilizes any libraries, the IAR file will include those libraries and they will be imported with the associated metadata.

* **Connections**: The connection object type will be either created or updated. If a connection is not found, it will be created, and all properties will be updated. Any associated attachments will also be uploaded, if present. To use different attachments for each Oracle Integration Cloud (OIC) environment, the *Attachment Override Directory* input must be specified.

* **Lookups**: The lookup object type will be created or updated. To use different lookup files for each OIC environment, the *Lookup Override Directory* input must be provided. Property replacement is automatically applied to all lookup files in the artifact. See [Property Replacement Support](https://docs.flexagon.com/flexdeploy-11-1-documentation/flexdeploy-variables-guide/property-replacement-support.md) for details.

* **Libraries** - The library object type will be created or updated. As these are static utility libraries, their deployment is typically more straightforward compared to the other object types and doesn't require a lot of customization.

* **Projects** - The project object type will be created or updated. Each project is represented by a .car file archive. Oracle does not allow modification of the contents, so extracting and recompressing is not recommended.

> [!NOTE]
>
> Either **FDOIC\_CLOUD\_ACCOUNT\_CODE** Target property value or **FDOIC\_INP\_CLOUD\_ACCOUNT\_CODE** plugin input value should exist. When both exists, plugin input value will take precedence. See [Creating/Editing a Cloud Account and Provider](https://docs.flexagon.com/flexdeploy-11-1-documentation/flexdeploy-users-guide/integrations/cloud-account-and-provider.md) for details on how to setup Cloud Account for OIC.

See [Oracle Integration Cloud - Object Type Reference](https://docs.flexagon.com/flexdeploy-11-1-documentation/flexdeploy-plugin-guides/flexdeploy-oracle-integration-cloud-plugin-guide/oracle-integration-cloud-object-type-reference.md) for details on supported object types.

# Target Properties

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Property Name**</th><th>**Property Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>OIC Account</td><td>`FDOIC_CLOUD_ACCOUNT_CODE`</td><td>No</td><td>The OIC account includes essential properties such as the URL, Username, Password, and OAuth details for the OIC instance. Cloud account credentials are required for downloading or uploading catalog items.You can manage the OIC account via the **Integrations > Cloud** page.See [Configuring OIC Cloud Account](https://docs.flexagon.com/flexdeploy-11-1-documentation/flexdeploy-plugin-guides/flexdeploy-oracle-integration-cloud-plugin-guide/appendix-oic/configuring-oic-cloud-account.md) for additional details.</td></tr></tbody></table>

# Project Properties

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Property Name**</th><th>**Property Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>Stop On Deployment Error</td><td>`FDOIC_STOP_ON_DEPLOYMENT_ERROR`</td><td>No</td><td>Stop deploying package files if any error occurs. If unchecked all files will be deployed even if one or more files fails. This project property only applies to this operation.Defaults to true.</td></tr><tr><td>Overwrite Integrations</td><td>`FDOIC_REPLACE_INTEGRATION`</td><td>No</td><td>Overwrite integrations with the same name and version when importing.The plugin input defaults to this value, but the workflow can be modified to use a different setting if needed.</td></tr></tbody></table>

# Inputs

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Input Name**</th><th>**Input Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>OIC Account</td><td>`FDOIC_INP_CLOUD_ACCOUNT_CODE`</td><td>No</td><td>The OIC account with all the required properties like Base URI, Username and Password for running OIC Instance.OIC Account can be created on *Integrations *- *Cloud* page.</td></tr><tr><td>Overwrite Integrations</td><td>`FDOIC_INP_REPLACE_INTEGRATION`</td><td>No</td><td>Overwrite integrations with the same name and version when importing.The plugin input defaults to using the project property *Overwrite Integrations*, allowing each project to have its own behavior. If needed, the workflow can be adjusted to use a different value, in which case all projects will follow the same behavior.</td></tr><tr><td>OIC Connection Plan File\
</td><td>`FDOIC_INP_CONNECTION_PLAN`</td><td>No</td><td>Optional connection configuration file to run during import.  The default is 'connectionPlan.properties' in the FD\_ARTIFACTS\_DIR. You can provide absolute path to a file or just name, if name is provided it must exist in artifacts.Allows absolute path or relative to the artifacts directory.This is used for replacing values in the connections.json file.That file must be present in order to have values replaced in it.Will be pre-processed by the plugin to transform any defined[replacement properties](https://docs.flexagon.com/flexdeploy-11-1-documentation/flexdeploy-variables-guide/property-replacement-support.md) based on the deployed environment.See Connection Plans section below for more details.</td></tr><tr><td>Deploy Delay between Integrations</td><td>`FDOIC_INP_PARTIAL_DEPLOY_DELAY`</td><td>No</td><td>Specify deploy delay in seconds between integrations. Default is 0, which means no delay. Use this delay only if you see issues with Oracle Integration Cloud deployments.</td></tr><tr><td>Update Connections Mode</td><td>`FDOIC_INP_UPDATE_CONNECTION_MODE`</td><td>Yes</td><td>Input to determine whether connections should be updated after deployment.Defaults to ALL.If value is set to ALL, every applicable connection is updated.If value is set to SPECIFIC, only connections specified in FDOIC\_INP\_UPDATE\_CONNECTION\_LIST will be updated.If value is set to NONE, none of the connections are updated after a deployment.</td></tr><tr><td>Update Connection List</td><td>`FDOIC_INP_UPDATE_CONNECTION_LIST`</td><td>No</td><td>Comma-separated list of connection IDs to update after deployment. This input is only considered when `FDOIC_INP_UPDATE_CONNECTION_MODE` is set to SPECIFIC.</td></tr><tr><td>Attachment Override Directory</td><td>`FDOIC_INP_ATTACHMENT_OVERRIDE_DIRECTORY`</td><td>No</td><td>A directory containing attachments to override, files from this folder will be used in place of the attachments in the artifacts. This is useful when you need to use different attachments for each environment. `FD_ENVIRONMENT_CODE` variable should be used to indicate attachments for specific environment.Example (Groovy) : Assuming OIC\_OVERRIDES repository is cloned in to FD\_TEMP\_DIR.<pre>FD\_TEMP\_DIR + "/OIC\_OVERRIDES/ConnectionAttachmentsOverrides/" + FD\_ENVIRONMENT\_CODE</pre>The directory structure under override directory should follow this format:*\<ConnectionId>/\<PropertyName>/\<Attachment>*.You can create `GLOBAL` folder at same level as `FD_ENVIRONMENT_CODE` folder. Files in GLOBAL folder will be applied to all environments unless overridden at individual `FD_ENVIRONMENT_CODE` folder.You can also use different attachment name per environment. For example, connection plan can indicate `FLEX_ATP_DB.secure.Wallet=Wallet_Flex_ATP_DB_${{FD_ENVIRONMENT_CODE}}.zip`, where `Wallet_Flex_ATP_DB_DEV.zip` will be uploaded for DEV environment. Ideally, you will just have same attachment name like `Wallet_Flex_ATP_DB.zip` and different file for various environment folders.If this value is not provided, attachment overrides will not be applied.You can manage these overrides in Git or any other SCM repository. Then, make sure to clone or export overrides root folder for all overrides before the `packageDeploy` operation in Deploy workflow and specify appropriate value for this input in Workflow\.See the Deployment Overrides section for example structure.(`Since 10.0.0.4`) We can also support project-specific connection attachment by following the same SCM structure. Under `FD_ENVIRONMENT_CODE`, create a folder for each `PROJECT_NAME`, and place the corresponding attachment files within that folder</td></tr><tr><td>Start Schedules</td><td>`FDOIC_INP_START_SCHEDULES`</td><td>No</td><td>If set to true, the file attribute *Start Schedules* will determine whether any schedules should be initiated after the integration deployment. If set to false, schedules will not be started, regardless of the file attribute value.This feature is useful for starting schedules based on workflow execution variables, such as initiating schedules if environment is "PRODUCTION"Defaults to true.</td></tr><tr><td>Include Run As User</td><td>`FDOIC_INP_INCLUDE_RUN_AS_USER_FOR_START_SCHEDULES`</td><td>No</td><td>Enable this to include the username in the schedule start request. This is applicable only when schedule start is enabled. `since 9.0.0.9`</td></tr><tr><td>Enable Tracing</td><td>`FDOIC_INP_ENABLE_TRACING`</td><td>No</td><td>If set to true, the file attribute *Enable Tracing* will determine whether integration activity can be viewed in the Activity Stream. If set to false, tracing will be disabled, regardless of the file attribute value.This feature is useful for enabling tracing based on workflow execution variables, such as initiating schedules if environment is "PRODUCTION".Defaults to true.</td></tr><tr><td>Enable Payload Tracing</td><td>`FDOIC_INP_ENABLE_PAYLOAD_TRACING`</td><td>No</td><td>If set to true, the file attribute *Enable Payload Tracing* will determine whether the payload should be traced. If set to false, payload tracing will be disabled, regardless of the file attribute value.This feature is useful for enabling payload tracing based on workflow execution variables, such as initiating schedules if environment is "PRODUCTION".Defaults to true.</td></tr><tr><td>Integration Retry Count</td><td>`FDOIC_INTEGRATION_RETRY_COUNT`</td><td>No</td><td>The number of times an integration will be retried incase of failures.Default is 5.</td></tr><tr><td>Connection Retry Count</td><td>`FDOIC_INP_CONNECTION_RETRY_COUNT`</td><td>No</td><td>The number of times an connection will be retried incase of failures due to connection being locked.Default is 10.</td></tr><tr><td>Lookup Override Directory</td><td>`FDOIC_INP_LOOKUP_OVERRIDE_DIRECTORY`</td><td>No</td><td>A directory containing lookups to override, files from this folder will be used in place of the lookups in the artifacts. This is useful when you need to use different lookups for each environment. `FD_ENVIRONMENT_CODE` variable should be used to indicate lookups for specific environment.Example (Groovy) : Assuming OIC\_OVERRIDES repository is cloned in to FD\_TEMP\_DIR.<pre>FD\_TEMP\_DIR + "/OIC\_OVERRIDES/LookupOverrides/" + FD\_ENVIRONMENT\_CODE</pre>Lookup CSV files should be placed under override directory.You can create GLOBAL folder at same level as *FD\_ENVIRONMENT\_CODE* folder. Files in GLOBAL folder will be applied to all environments unless overridden at individual `FD_ENVIRONMENT_CODE` folder.If this value is not provided, lookup overrides will not be applied.You can manage these overrides in Git or any other SCM repository. Then, make sure to clone or export overrides root folder for all overrides before the `packageDeploy` operation in Deploy workflow and specify appropriate value for this input in Workflow\.See the Deployment Overrides section for example structure.(`Since 10.0.0.4`) We can also support project-specific lookups by following the same SCM structure. Under `FD_ENVIRONMENT_CODE`, create a folder for each `PROJECT_NAME`, and place the corresponding lookup files within that folder.</td></tr><tr><td>Schedule Override Directory</td><td>`FDOIC_INP_SCHEDULE_OVERRIDE_DIRECTORY`</td><td>No</td><td>Specify directory to override integration schedules by environment in place of schedule in artifacts. `FD_ENVIRONMENT_CODE` variable should be used to indicate schedules for specific environment.Example (Groovy) : Assuming OIC\_OVERRIDES repository is cloned in to FD\_TEMP\_DIR.<pre>FD\_TEMP\_DIR + "/OIC\_OVERRIDES/ScheduleOverrides/" + FD\_ENVIRONMENT\_CODE</pre>Within this override folder, subfolders must be named after the various Integration Ids (which correspond to the IAR file name). The schedule XML file for each integration should be placed in the respective subfolder.(`Since 11.1.0.4`) For project integrations, place schedule overrides under a folder for each OIC project identifier (`PROJECT_NAME`), then a subfolder for each Integration Id: `FD_ENVIRONMENT_CODE`/`PROJECT_NAME`/`IntegrationId`/\<schedule>.xml. If the project-specific path is not found, FlexDeploy falls back to `FD_ENVIRONMENT_CODE`/`IntegrationId` (previous behavior). Standalone (non-project) integrations continue to use the Integration Id folder only.The original schedule XML file can be found in the *icspackage/schedule* folder inside the IAR file.If this value is not provided, schedule overrides will not be applied.You can manage these overrides in Git or any other SCM repository. Then, make sure to clone or export overrides root folder for all overrides before the `packageDeploy` operation in Deploy workflow and specify appropriate value for this input in Workflow\.See the Deployment Overrides section for example structure.</td></tr><tr><td>Allow to Run Again</td><td>`FDOIC_INP_CAN_REPLAY`</td><td>No</td><td>If true, the file attribute Allow To Run Again enables the instance of the integration to be replayed during runtime. If false, replay will be disabled regardless of the file attribute value.\
(Note for only OIC Gen3)</td></tr><tr><td>Enable Payload Validation</td><td>`FDOIC_INP_ENABLE_PAYLOAD_VALIDATION`</td><td>No</td><td>If true, the file attribute Enable Payload Validation ensures that the inbound JSON payload syntax is validated during the activation of REST Adapter trigger-based integrations. If false, payload validation will be disabled regardless of the file attribute value.\
(Note for only OIC Gen3)</td></tr><tr><td>OIC Trading Partner Identifier Plan File</td><td>`FDOIC_INP_B2B_TP_IDENTIFIER_PLAN`</td><td>No</td><td>optional input to specify a different Trading Partner Identifier Plan file name. Default 'TradingPartnerIdentifiersPlan.properties'.</td></tr><tr><td>Update Schedules</td><td>`FDOIC_INP_UPDATE_SCHEDULES`</td><td>No</td><td>Update schedule parameter for Simple or iCal recurrence.</td></tr><tr><td>Activation Retry Count`(Since 11.1.0.4)`</td><td>`FDOIC_INP_CONNECTION_RETRY_COUNT`</td><td>No</td><td>The number of times to poll for integration activation status before failing. Each attempt waits 10 seconds. Default is 10 (100 seconds). Increase this value for integrations that take longer to activate</td></tr><tr><td>OIC Trading Partner Config Plan File`(Since 11.1.0.4)`</td><td>`FDOIC_INP_B2B_TP_CONFIG_PLAN`</td><td>No</td><td>Optional input to specify a different Trading Partner Config Plan file name. Default 'TradingPartnerConfigPlan.properties'</td></tr></tbody></table>

# Artifacts

This operation consumes artifacts from the artifacts repository.

# Endpoint Selection

This operation will select all available endpoints associated to the Target.

# Endpoint Execution

This operation will execute on any one of the selected endpoints and will be random in the determination of which one.

# Connection Plans

If you are using connection plan file(s) (i.e. “connectionPlan.properties”) it is best practice to store these in source control. During `packageBuild` execution, FlexDeploy will capture all files with the **properties** extension as artifacts. Such properties files will be stored in root of artifacts. Subsequently, on the deploy side, FlexDeploy will have access to the artifact created during the build which can then be used with the `FDOIC_INP_CONNECTION_PLAN` input.

The below image is an example of placing the connection plan properties file under the root directory. We are assuming “OIC” is the root directory defined in Project Source configurations.

![Image](https://mintcdn.com/flexagon-llc-ce77a95c/NkeZh5D-Nf8j_WaD/images/fd111/12596416372.png?fit=max\&auto=format\&n=NkeZh5D-Nf8j_WaD\&q=85\&s=3a3baf4cac3ab1305d12528a6f30e284)

# Deployment Overrides

Below is a sample structure for the Overrides folder.

Here is a simple suggestion for root folder names, though you are free to choose any naming convention that suits your needs:

* OIC\_OVERRIDES

  * ConnectionAttachmentsOverrides

  * LookupOverrides

  * ScheduleOverrides

![image-20240213-102730.png](https://mintcdn.com/flexagon-llc-ce77a95c/NkeZh5D-Nf8j_WaD/images/fd111/12596416375.png?fit=max\&auto=format\&n=NkeZh5D-Nf8j_WaD\&q=85\&s=dbe1a1ba031cca6d8ef5b8c1c0afac89)

# Special Considerations for OIC Gen3

OIC Gen3 allows you to configure the log level, which can be set to one of three types: Production, Audit, and Debug. These settings can be easily adjusted using the existing plugin inputs. To configure the log levels, use the following configuration.And these inputs works with File Attributes.

<table><colgroup><col /><col /><col /></colgroup><tbody><tr><th>**Log**</th><th>`FDOIC_INP_ENABLE_TRACING`(`tracingEnabledFlag`)</th><th>`FDOIC_INP_ENABLE_PAYLOAD_TRACING`(`payloadTracingEnabledFlag`)</th></tr><tr><td>Production</td><td>false</td><td>false</td></tr><tr><td>Debug</td><td>true</td><td>true</td></tr><tr><td>Audit</td><td>true</td><td>false</td></tr></tbody></table>

# B2B Transport Deployment Behaviour (B2B Trading Partner Deployment)

During an overwrite deploy of a B2B trading partner, FlexDeploy:

1. **Undeploys** existing **transports**, then **inbound/outbound agreements**

2. **Imports** the trading partner

3. **Deploys** transports and agreements again (when those deploy options are enabled)

Before import, FlexDeploy undeploys a transport only when its status is `DEPLOYED` or `FAILED` `(Since 11.1.0.4)`. Oracle allows undeploy in both of those states. Other transport statuses are skipped.

When a transport is deployed, OIC activates the auto-created integration versions permanently linked to that transport.

If a user manually creates and activates a newer version of an auto-created integration, deploying the transport will reactivate the original linked version and deactivate the newer version.

* **If the newer version has no running schedule:** The transport deployment can deactivate the newer version and activate the original version successfully.

* **If the newer version has a running schedule:** OIC cannot deactivate the newer version while its schedule is running. The transport deployment fails with `B2B-05108`. Stop the schedule on the newer version (or remove that version), then retry the deployment.

### Key points

* [OIC B2B transports are permanently linked to their originally created integrations.](https://docs.oracle.com/en/cloud/paas/application-integration/integration-b2b/define-transports.html)

* Only one version of an integration can be active at a time.

* Avoid creating new versions of transport-linked integrations; the transport continues to use the originally linked version.
