This message describe how to export assets from any EngageOne® Server/Compose version using Asset Promotion Command – APC. The second part covers technical information how APC works and how to connect it to server data.
In my previous message Upgrading or migrating EngageOne® Compose Server? Find the option best for your environment,I mentioned about new command line tool called Asset Promotion Command – APC. APC closely relates to Asset Promotion server feature, which is available in EngageOne® Compose Server/Compose 4.4.3 version -for more information about Asset Promotion feature go to EngageOne® Compose documentation. Asset Promotion feature was designed to improve promoting assets between a test and a production environments and because it is server feature, it requires access to the source (for export) and the target (for import) server REST or SOAP API. Obviously, we cannot use Asset Promotion API in older versions then 4.4.3 to export assets to standard "promotion bundle". In order to overcome this limitation I assumed that we could use internal Asset Promotion's java API (no any SOAP/REST API) which reads directly data layer - database and active-drive - and creates standard "promotion bundle". Asset Promotion Command – APC is just an implementation of this idea, so we can use it for exporting all supported assets from any EngageOne® Compose Server version and subsequently import this bundle to a server in version 4.4.7 or newer. Current APC alpha version depends on the current EngageOne® Compose base code, which means that, covers asset types supported in 4.4.7 version up to current 4.4.9 version.
APC alpha version supports export of the same set of asset types like the current server version of Asset Promotion. Below are lists of supported and not yet supported asset types.
APC connects directly to EngageOne® Compose database in order to get metadata of assets in selected community. Next, APC reads EngageOne® Compose config-settings.xml file (or its potentially modified copy) in order to get active-drive path. When all metadata and files are available for reading and coping, APC executes asset promotion internal java export API and creates standard "promotion bundle". APC uses only current EngageOne® Compose version code and bypass any REST/SOAP network API of server instance. Because APC needs only access to database and active-drive it does not matter if server is up or down or even APC can use backup copy of database. In the case of using backup copy you need to take into a count that database refers to full path of original asset's files on active-drive. Therefore, if you use copy of active-drive instead of original instance (modified copy of config-settings.xml file) you need to update some database table's records fields in order to be consistent with location of current active-drive copy.
APC consist of about 80 Mb only
The apc.properties file is a default file you can change or copy and keep for different server instances. You need to set up four things in a properties file: output folder, optional compatibility feature flags, path to config-settings.xml file and database connection details. Below are all supported properties with description:
In order to get all command options help just type:
Then you get the following help page:
apc [-c <community name>] -g <
|communities> [-h] [-p <properties path>]
Asset Promotion Command (APC):
-c,--community <community name> Optional filter to
only one specified community.
|communities> Goal of apc
communities: list community names.
-h,--help Print this help.
-p,--properties <properties path> Optional path to configuration
1. Export of single community
: apc -g
2. Export of all communities using non standard apc.properties: apc -g
The basic use case is to export all assets from specified community, so you need to specify command goal –g export and name of the community e.g. for -c "myCommunity" , so the command is:
apc -g export -c myCommunity
Output files as a "promotion bundle" will be exported to <export.output.root.folder>/myCommunity/<timestamp> folder and every time you run this command new < timestamp > folder is created. If you want to use other than default apc.properties file, you need to specify path to this file using -p switch e.g.:
apc -g export -c myCommunity -p c:/apc/apc.production.properties
... and that's it.
If you want to try out APC alpha version, please download it from here
In order to complete assets migration to target server, you have to use this <export.output.root.folder>/myCommunity/<timestamp> folder as a input for Asset Promotion Import on target EngageOne® Compose Server - see EngageOne® Compose Server documentation for more details about Asset Promotion server feature.
Feel free to give me any comments and suggestions.