Export Catalog Definitions
Use this topic to know the different ways using which you can export catalog entities from the Launch application.
You can export product catalog entities either through REST APIs or through UI (applicable only for initiatives) and retrieve the exported data files from a known location. The records are exported into a single JSON file or a ZIP file containing multiple JSON files, based on the number of records, which can later be used for importing into another Launch Experience environment.
While exporting large number of objects from Launch application, there might be a risk of increased memory usage and file size. To avoid this, use the ORA_ATC_EXPORT_IN_MEMORY_COUNT profile option to configure the maximum limit for the number of objects that can be stored in the memory. The default value is 1000.
When the number of objects in the memory reaches this specified limit, it starts dumping into files in between and clears the memory. This results in the generation of multiple files that are zipped into a single ZIP file at the end.
Here are the ways to export catalogs:
Export by Resource Types
Here are some of the primary export resource types available in the ExportJob resource. Export job allows exporting of specific resource types using the resourceType attribute. Following are some of the TMF and non-TMF object types that can be specified when submitting export jobs:
-
productoffering
-
productOfferingPrice
-
productLine
-
constraint
-
pricingLogicAlgorithmSpecification
-
promotion
-
productSpecification
-
serviceSpecification
-
usageSpecification
-
customerProfileSpecification
-
customProfileSpecification
-
taxServiceProvider
-
pricelist
-
balanceElement
-
catalog
-
category
-
productRule
Additionally, here are some of the product offering resource sub-types available to you.
-
package
-
commercial_bundle
-
service_bundle
-
service
-
device
The following export options are also supported for a resource-based export. However, it's only the latest version of the resource that gets exported.
-
Name: Allows exporting objects in a specific resource type based on name attribute. This attribute also supports % search to export all objects based on a name pattern.
-
Lifecycle Status: Allows exporting objects across multiple resource types based on a valid lifecycle status attribute.
-
Last Update: Allows exporting objects filtered based on their lastUpdate attribute for a specified date range, whenever name attribute isn't used.
"lastUpdate": { "startDateTime": "yyyy-MM-dd'T'HH:mm:ss.SSSZ", "endDateTime": "yyyy-MM-dd'T'HH:mm:ss.SSSZ" }
For a sample payload with lastUpdate, see REST APIs for Oracle Digital Experience for Communications Launch Experience on My Oracle Support, Doc ID 2725039.1.
Export by References
You can export resources that contain the exportReferenced attribute to indicate if the references present in exported resources must also be exported from the application. This results in multiple resource types being exported, so that they can be imported into another Launch Experience environment.
Export by Project
You can export the resources associated to an initiative using the project attribute available in the export job. Initiatives in In design status aren't supported for export.
Export by File Name Prefix
You can provide a specific file name prefix for the file containing the exported objects in the fileNamePrefix attribute. The exported file's name is then set to <fileNamePrefix>_<ExportJob_ID>. If the fileNamePrefix isn't provided, then the exported file's name is defaulted to export_<ExportJob_ID>.
What you must know
-
For Export by Resource Types
-
Name
-
Must be a value or pattern (with search %) already present in the application.
-
Attribute isn't supported when exporting more than one resource types.
-
Attribute isn't supported when exporting for date range specified using lastUpdate attribute.
-
-
Lifecycle Status
-
Must be a value configured in the application.
-
Attribute isn't supported for exact name match (without search %).
-
-
ResourceType values can be only one of the supported values.
-
ResourceType doesn't support a TMF object type and its corresponding sub type together when creating an export job.
-
Project attribute isn't supported.
-
-
For Export by Project
-
Initiatives in In design status aren't supported for export.
-
The initiative name or ID is required and must be a value already present in the application.
-
The resourceType attribute isn't supported.
-
The lifecycleStatus attribute isn't supported.
-
The lastUpdate attribute isn't supported.
-
-
For Export by File Name Prefix: The fileNamePrefix is optional but the length is limited to 30 characters.
-
A Zip file is generated if there are more than 1000 objects that need to be exported.
How to initiate an export
Through API
You must use the TMF product catalog management exportJob endpoint which involves the following:
-
Creating payloads using the export template. For sample schema files, see Doc ID 2725039.1 on My Oracle Support.
-
Using the REST endpoints:
-
Method: POST
-
URL: https://hostName/crmRestApi/atcProductCatalog/11.13.18.05/tmf-api/productCatalogManagement/v4/exportJob
-
Header:
-
Content-Type: Use application or JSON.
-
Authorization: Use Standard Basic Authorization, provide encoded user name and password.
-
-
Through UI
-
Go to Initiatives.
-
Select and View the initiative that needs to be exported.
-
Click Export.
The export job is initiated and the Job ID is notified to you.
Track the job in the Administration>Export Job UI page. The Administration>Export Job UI lists all the export jobs that have been triggered. You can monitor and track the progress of the export job on the page. Once the job succeeds, the view page would have download links to download the exported content.
How to review the export status
To verify the export job status, do a GET by ID API call on the export endpoint using the following curl command and check the response field status.
curl --location --request GET 'https://hostName/crmRestApi/atcProductCatalog/11.13.18.05/tmf-api/productCatalogManagement/v4/exportJob/<exportJobId>' \
--header 'Content-Type: application/json' \
--header 'Authorization: <ID>'
Here's the response for the curl command:
{
"id": <ID>,
"@type": "ExportJobOracle",
"href": "https://hostName/crmRestApi/atcProductCatalog/11.13.18.05/tmf-api/productCatalogManagement/v4/exportJob/<ID>",
"status": "RUNNING",
"creationDate": "2021-01-21 07:11:38.641",
"completionDate": "",
"exportOptions": {
"exportReferenced": true,
"filenamePrefix": "exp",
"resourceType": [
"productOffering"
],
"id": "TestProductOfferId123",
"name": "Test Product Offer"
},
"createdBy": "booth",
"path": "productOffering"
}
In this GetByID export API response, the field called status, indicates the current job status.
For a success response, exportSummary lists out the success summary. To verify a successful export and get the summary, use the following curl command:
curl --location --request GET 'https://hostName/crmRestApi/atcProductCatalog/11.13.18.05/tmf-api/productCatalogManagement/v4/exportJob/<exportJobId>'\
--header 'Content-Type: application/json' \
--header 'Authorization: <ID>'
You can see the exportSummary parameter in response to easily identify the summary of a successfully exported resource. The ExportSummary shows the totalExportedObjects as well as a resource-wise split up of each resource being exported.