deployAPEX

Deploys an Oracle APEX application (produced by a build workflow using the buildAPEX plugin operation) to a target database. This operation manages deployment of builds produced by both the Full Deployment and Partial Deployment models. 

Any supporting database objects for the application are outside the scope of this operation, but can be managed in a separate project and workflows using the JDBC or Oracle Database Plugin.

This plugin supports deploying the same APEX application to the same database. This requires setting the Offset. This situation is not typical, so most often the offset can be ignored.

  • If the application has never been deployed and you do not currently have an offset, the plugin can generate the offset. Just select Use APEX Offset (FDAPEX_USE_OFFSET), make sure you note the offset value used and set the property APEX Offset Value (FDAPEX_OFFSET) for the next deployment.  

  • If you know the offset, select Use APEX Offset (FDAPEX_USE_OFFSET) and set the property APEX Offset Value (FDAPEX_OFFSET).

Environment/Instance Properties

Property Name

Property Code

Required

Description

Oracle SQLcl HomeFD_SQLCL_HOMEYes

Folder where SQLcl is installed.

Use JDK 8 for Endpoint Java due to SQLcl requirements.

APEX UserFDAPEX_USERYesProvide database user APEX_xxxxx or owner (parsing schema) of the application for export and import operations. You can use system user as well.
APEX PasswordFDAPEX_PASSWORDYesPassword for APEX User.  
FDAPEX_RUN_APPLICATION_ONLYNoDeploy with Run Application Only as build status.
Oracle Database URLFDORA_URLYes

JDBC URL for Oracle database. For example:

  • jdbc:oracle:thin:@HOSTNAME:PORT:SID or
  • jdbc:oracle:thin:@//HOSTNAME:PORT/SERVICENAME

Connecting to Oracle Autonomous Database

Once the Autonomous Database is created on Oracle cloud, download the client credentials zip file. You will need the admin userid and password. Unzip the client credentials zip file on endpoint where it will be used. You can mostly use localhost endpoint for this. For example, /home/flexdeploy/wallets/<wallet zip name>

  • Database URL Syntax : jdbc:oracle:thin:@service_high?TNS_ADMIN=/home/flexdeploy/wallets/<wallet zip name>
    • service_high is one of the entries in the tnsnames.ora file where client credentials zip file was unzipped
    • TNS_ADMIN value in URL points to the location of the unzipped client credentials zip file
  • Database URL Long Connection String Format Syntax Syntax : jdbc:oracle:thin:@(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=<hostname>))(connect_data=(service_name=<serice_name>))(security=(ssl_server_cert_dn="CN=<hostname>,OU=Oracle BMCS US,O=Oracle Corporation,L=Redwood City,ST=California,C=US")))
    • The " in the value for ssl_server_cert_dn field must be escaped using \
    • Examples for the same can be found here

Project Properties

Property Name

Property Code

Required

Description

APEX Workspace Name

FDAPEX_WORKSPACE_NAME

Yes

APEX Workspace Name. Provide uppercase name. This defaults to FD_INSTANCE_CODE expression, so if you keep instance code same as your workspace, you will not need to change default value.

If Workspace id is different in each environment, FlexDeploy will still be able to handle that situation by deriving workspace id from workspace name provided.

Parsing Schema

FDAPEX_DB_SCHEMA

No

Parsing schema (owner) of APEX application.

If not provided, value in exported sql file will be used, which means that schema name will be same in all environments.

APEX Application Id
FDAPEX_APPLICATION_ID
NoIdentifying number of application. If not specified, workspace name and application name is used to query application id, otherwise new application id will be generated.
APEX Application Name
FDAPEX_APPLICATION_NAME
NoThe name of the application to deploy. This is used to derive application id if application id is not provided.
APEX Application AliasFDAPEX_ALIASNoApplication alias is set on the application being imported. If not provided, then alias set in exported sql files will be used.
Use APEX Offset
FDAPEX_USE_OFFSET
NoDetermines if the plugin will attempt to set the Offset.
APEX Offset value
FDAPEX_OFFSET
NoThe offset value during application import. This value is used to ensure that the metadata for the Application Express application definition does not collide with other metadata on the instance.

Inputs

Input Name

Input Code

Required

Description





Outputs

Output Name

Required

Description




Artifacts

This operation consumes artifacts from the artifacts repository.

Endpoint Selection

This operation will select all available endpoints associated to the environment/instance. You can use any Endpoint where SQLcl is installed and has connectivity to database using JDBC URL. We recommend use of LOCALHOST endpoint if connectivity can be established between FlexDeploy and your APEX database.

Endpoint Execution 

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

The following macros are not currently supported in the footer:
  • style