LCM Export (11.1.2.3.600)

Initiates a repeat export of a Migration artifact based on the settings that were used to export artifacts using the Migration artifact export screen.

You can also use EPM Automate to automate the repeat export of artifacts.

The presence of status -1 in the response indicates that the reexport is in progress. You should use the job status URI to determine whether the reexport is complete.

If the Job completes with status 1, the task details will be mentioned in the items from which the source, destination, and URL to fetch the first set of errors is available. All issues for a particular task can be fetched in the manner of pagination. Acceptable values for msgtype are: error/warn/info; limit represents the number of issues requested per request, and offset marks the beginning number to fetch the issues.

Required Roles

Service Administrator or any user assigned to the Migrations - Administer granular role

REST Resource

POST /interop/rest/11.1.2.3.600/applicationsnapshots/{applicationSnapshotName}/migration?q={type:"export}

Table 9-12 Tasks for LCM Export

Task Request REST Resource
LCM Export POST /interop/rest/{api_version}/applicationsnapshots/{applicationSnapshotName}/migration?q={type:"export"}
Export Status GET /interop/rest/{api_version}/applicationsnapshots/{applicationSnapshotName}/migration/8
Details GET /interop/rest/{api_version}/applicationsnapshots/{applicationSnapshotName}/migration/8/0/details?limit=25&msgtype=error&offset=0

Request

Supported Media Types: application/json

Table 9-13 Parameters

Name Description Type Required Default
applicationSnapshotName Application snapshot that has to be exported Path Yes None
type Type of migration being performed, can be export or import Query Yes None

Response

Supported Media Types: application/json

Table 9-14 Parameters

Attribute Description
details In case of errors, details are published with the error string
status See Status Codes
links Detailed information about the link
href Links to API call
action The HTTP call type
rel Possible values. Can be self and/or Job Status. If set to Job Status, you can use the href to get the status of the re-export operation
data Parameters as key value pairs passed in the request
items Details about the resource
source From where the navigation is being performed
destination To where the navigation is being performed
name Name of the task, usually "Task Information"
links Details of the first URL to be requested to get the job details; rel is "Job Details"

Examples of Response Body

Example 1: Export is in Progress

{
   "status":-1,
   "links":[{
      "data":null,
      "action":"POST",
      "rel":"self",
   "href":"https://<BASE-URL>/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migrationq={type:"export"}"
      },{
      "data":null,
      "action":"POST",
      "rel":"Job Status",
   "href":"https://<BASE-URL>/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/8"
   }],
   "details":null
}  

Example 2: Export Completes with Errors

{"status":1, 
"items":[{
   "source":"/Nasdaq/HSS-Shared Services",
   "name":"Task Information",
   "destination":"Shared Services",
   "links":[{
      "data":null,
      "action":"GET",
      "rel":"Job Details",
      "href":"https://<BASE-URL>/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/0/details?limit=25&offset=0&msgtype=error"}]
   },
   {"source":"/Artifact Snapshot/HP-NASDAQ",
   "name":"Task Information",
   "destination":"",
   "links":[{
      "data":null,
      "action":"GET",
      "rel":"Job Details",
      "href":"https://<BASE-URL>/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/1/details?limit=25&offse=0&msgtype=error"}]
   }],
   "details":null,
   "links":[{
      "data":null,
      "action":"POST",
      "rel":"self",
      "href":"https://<BASE-URL>/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1"}
]}

Example 3: Information on Each Task is Requested

{"status":0,
"items":[{
     "msgType":"error",
     "artifact":"/Native Directory/Groups",
     "msgText":"EPMIE-00069: Failed to find user during group children import. User user0026 not found. Please ensure that a user exists in the system.",
          "msgCategory":"14000: Error reported.",
     "msgCategory":"14000: Error reported." 
     },{
     "msgType":"error",
     "artifact":"/Native Directory/Groups",
     "msgText":"EPMIE-00069: Failed to find user during group children import. User user0025 not found. Please ensure that a user exists in the system.",
     "msgCategory":"14000: Error reported." }
     ],
"details":null,
"links":[{
     "data":null,
     "action":"GET",
     "rel":"self",
     "href":"https://<BASE-URL>/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/0/details?limit=2&msgType=error&offset=25"},
     {"data":null,
     "action":"GET",
     "rel":"next",
     "href":"https://<BASE-URL>/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/0/details?limit=2&offset=27&msgType=error"},
     {"data":null,
     "action":"GET",
     "rel":"prev",
     "href":https://<BASE-URL>/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/0/details?limit=2&offset=23&msgType=error
     }]
          }

cURL Sample

funcExportSnapshot() {
	param=$(echo "{type:export}" | sed -f urlencode.sed)
	encodedFileName=$(echo $1 | sed -f urlencode.sed) 
url=$SERVER_URL/interop/rest/$API_VERSION/applicationsnapshots/$encodedFileName/migration?q=$param
	funcExecuteRequest "POST" $url

	output=`cat response.txt`
	status=`echo $output | jq '.status'`
    if [ $status == -1 ]; then
        echo "Started exporting successfully"
		funcGetMigrationStatus "POST"
    else
        error=`echo $output | jq '.details'`
        echo "Error occurred. " $error
    fi
	funcRemoveTempFiles "respHeader.txt" "response.txt"
}