Skip to main content
Builds an APEX application artifact, sourcing from an SCM or Oracle APEX Application Builder in a development environment. This operation can be used in conjunction with FlexDeploy’s Full and Package-Based deployment models.
  • Full Deployment
    • Entire application gets exported.
    • Source from SCM
      • Set desired SCM type.
      • Add SCM export or checkout operation before buildAPEX operation in workflow.
    • Source from App Builder
      • Set SCM type to None. 
      • You only need to add buildAPEX operation in workflow.
  • Package-based Deployment
    • Only selected page/components are exported. You can also export All Files, which means entire application gets exported.
    • Source from SCM
      • Set desired SCM type.
      • You only need to add buildAPEX operation in workflow.
      • SCM export or checkout operation is not required at all as FlexDeploy will implicitly perform extract of files from SCM based on project configurations.
    • Source from App Builder
      • Set SCM type to None.
      • You only need to add buildAPEX operation in workflow.
      • Oracle JDBC driver must on the FlexDeploy server’s classpath. If the FlexDeploy is setup to use Oracle Database, the driver will be already available. However, if the FlexDeploy is using PostgreSQL or MySQL, then you will need to place the Oracle JDBC Driver on the FlexDeploy server, add it to the server’s classpath, and restart it.
Artifact generated by this operation is zip file containing split application sql files. For APEX versions 4.x, no split is done hence artifact will be entire application sql file.

Target Properties

Property Name

Property Code

Required

Description

Oracle SQLcl Home

FD_SQLCL_HOME

Yes

Folder where SQLcl is installed. Only required if sourcing from App Builder.

Make sure that the endpoint Java Home is a high enough version for your SQLcl version.

APEX User

FDAPEX_USER

Yes

Provide database user APEX_xxxxx (APEX user requires INHERIT Privilege) or owner (parsing schema) of the application for export and import operations. You can use system user as well. Only required if sourcing from App Builder.

APEX Password

FDAPEX_PASSWORD

Yes

Password for APEX User.  Only required if sourcing from App Builder.

Oracle Database URL

FDORA_URL

Yes

JDBC URL for Oracle database. For example:

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

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

Only required if sourcing from App Builder.

Connecting to Oracle Autonomous Database

You will need client credential zip file (wallet) to connect with Oracle Autonomous Database on Oracle cloud. You can download wallet zip file from Oracle Cloud, you will need admin userid and password to perform this download. See Download Client Credentials (Wallets) for more details on how to download wallet file.

  • Since FlexDeploy 9.0.0.9 with Oracle Wallet Credential Type : Instead of maintaining the wallet zip file under the file system, you can now store the wallet zip as an Oracle Credential Type in FlexDeploy. This allows for secure storage and use of the wallet.

    • Use the URL syntax in the following format: jdbc:oracle:thin:@service_low?TNS_ADMIN={{FDORACLEWALLETFILE}}</code></p></li><li><p>Wemustselectvalidoraclewalletcredentialfor<code>FDORACLEWALLETFILE</code>propertyontargetgroup.</p></li><li><p>Here,<code>\{\{FDORACLE_WALLET_FILE\}\}</code></p></li><li><p>We must select valid oracle wallet credential for <code>FDORACLE_WALLET_FILE</code> property on target group.</p></li><li><p>Here, <code>{{FDORACLE_WALLET_FILE}} is replaced with the temporary wallet folder path during execution. Once execution is completed, the temporary file is cleaned up automatically.

  • Before FlexDeploy 9.0.0.9

    • You must make sure that only authorized users have access to these wallet files. Unzip the client credentials zip file (wallet_databasename.zip) on FlexDeploy server and/or endpoint where it will be used. For example, /home/flexdeploy/.wallets/<wallet_databasename> is folder where specific wallet file was unzipped. Make sure to secure this folder to FlexDeploy and/or Endpoint user, so that it is not readable by all users.

    • We recommend using Oracle Wallet Credential Type for better security and easier management of Wallet usage.

    • Database URL Syntax : jdbc:oracle:thin:@service_high?TNS_ADMIN=/home/flexdeploy/.wallets/<wallet_databasename>

    • Database URL Long Connection String Format 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”)))

      • Examples for the same can be found here.

If using the Oracle Database Plugin with ADW or ATP databases , use the _low connection. The _medium and _high connections can sometimes throw error ORA-12839: cannot modify an object in parallel after modifying it.

Oracle Wallet File

FDORACLE_WALLET_FILE

No

Since 9.0.0.9 - Provide the Oracle Wallet file, seeCredential Type - Oracle Wallet for more details.

1 - Required only if sourcing from App Builder.

Project Properties

Property Name

Property Code

Required

Description

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.

Parsing Schema

FDAPEX_DB_SCHEMA

No

Used to set the parsing (owner) schema of the APEX application. Provide uppercase schema name.

Application ID

FDAPEX_APPLICATION_ID

No

APEX Application ID

Application Name

FDAPEX_APPLICATION_NAME

No

APEX Application Name. Used to resolve the Application Id if Application Id and Application Alias are not provided.

Application Alias

FDAPEX_ALIAS

No

APEX Application Alias. An alphanumeric identifier unique within a workspace. If provided, the alias is used to resolve the application. Available since 10.0.0.2.

Export Supporting Object Definitions

FDAPEX_EXPORT_SUPPORTING_OBJECTS

No

Specify whether to export supporting object definitions with your application.

Export Private Reports

FDAPEX_EXPORT_PRIVATE_REPORTS

No

Specify whether to include private reports with your application.

Export Public Reports

FDAPEX_EXPORT_PUBLIC_REPORTS

No

Specify whether to include public reports with your application.

Export Report Subscriptions

FDAPEX_EXPORT_REPORT_SUBSCRIPTIONS

No

Specify whether to include interactive report or interactive grid subscription settings with your application.

Export Developer Comments

FDAPEX_EXPORT_DEV_COMMENTS

No

Specify whether to include Developer Comments in your application export.

Export Translations

FDAPEX_INCLUDE_TRANSLATION

No

Check to include Translations with your application export.

Use Offset

FDAPEX_USE_OFFSET

No

Determines if the plugin will attempt to set the Offset.

Offset value

FDAPEX_OFFSET

No

APEX Offset value

Use Original Ids

FDAPEX_USE_ORIGINAL_IDS

No

Determines if the plugin will use original ids when exporting.

@Since 8.0.0.9

FlexDeploy needs to identify the application id.  This can be provided by either entering the application id directly or by entering the associated application name. If the application name is not unique across workspaces, you must provide the workspace name in addition to the application name.

Artifacts

Artifact generated by this operation is zip file containing split application sql files. For APEX versions 4.x, no split is done hence artifact will be entire application sql file.

Endpoint Selection

This operation will select all available endpoints associated to the Target.
  • If sourcing from App Builder, 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.
  • If sourcing from SCM, then you can use any Endpoint. We recommend using LOCALHOST endpoint in this case.

Endpoint Execution

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