Appian doesn't really have a great story for deploying changes from Dev to Test to UAT and to Production environments. This tool aims to solve that by having your changes checked into source control and building deployment packages off source control from a build server.
You will need to adopt the following development workflow for this deployment tools to work.
Firstly you need to use a version control system.
Secondly, you should have some kind of build server, and a deployment service.
-
Developer exports Appian application package and downloads zip file to his/her development machine
-
Unzips package into working directory where application was formerly checked out
-
Uses ListMissingPrecedents to find all the uuids that are missing in the application.
-
Uses QueryNamesByUuid on Production instance to find out which of the missing UUIDs are already present on the server.
-
Uses QueryNamesByUuid on Development instance to get a human readable list of names for the missing UUIDs so they can be added to the application for export.
-
Developer manually adds the missing UUIDs to the application.
-
Uses BuildPackage to create a new zip file that can be deployed on to a server.
-
Uses InspectPackage to inspect that the zip file will deploy.
-
Uses DeployPackage to deploy the zip file.
Just because a precedent is present on the Production instance does not mean that the precedent is up-to-date. By not including the updated precedent, the deployed package might not run correctly.
To avert this, the developer could
-
Use ListMissingPrecedents to find out which precedents are not going to be deployed.
-
Use ExportAllObjects to export all objects from Development and Production instances.
-
Use CompareObjectsByUuid to see if the objects with the listed Uuids have changed.
-
Decide whether to include the changed Uuids
appian.ListMissingPrecedents
Usage:
appian.ListMissingPrecedents C:\dev\myapplication
lists all the precedents that are missing in this package.
appian.QueryNamesByUuid
Usage:
appian.QueryNamesByUuid -uuids ... -url ... -username ... -password ...
Queries a server the names of each given UUID.
appian.BuildPackage
Usage:
appian.BuildPackage -directory ... -out ...
appian.CompareObjectsByUuid
Notes: https://yourserver.appiancloud.com/suite/webapi/getContent?uuid=0003dc12-4371-8000-f92f-7f0000014e7a