(Glue-2208) v3.1 Workflows
A workflow is the combination of multiple SNP Glue™ objects and describes the flow of the data from the source (e.g. SAP table) all the way down the target (e.g. SNP Glue™ table).
Create workflows
Using POST /workflow API is possible to mass generate workflows ready to be executed.
Global parameters
Parameter name | Description | Usage | Type |
---|---|---|---|
SourceObjectName | Array with the list of SAP source objects for which to generate the replication objects | Mandatory | String |
SourceObjectType | The type of SAP object to read from. Currently supporting ADSO and SAP tables | Mandatory | "table/view" | ”ADSO” |
glueTableSett | Array with parameters for SNP Glue™ table generation | Optional | JSON object (see below) |
ext2Sett | Array with parameters for Extractors 2.0 generation | Mandatory | JSON object (see below) |
glueQueueSett | Array with parameters for SNP Glue™ Queue generation | Optional | JSON object (see below) |
asyncExec | Execute generation in a background job (Asynchronous) | Optional | Boolean |
skipExisting | Skip generation of existing objects | Optional | Boolean |
GlueTableSett: SNP Glue™ table generation parameter object
Parameter name | Description | Usage | Type |
---|---|---|---|
prefix | Object prefix | Mandatory | String |
suffix | Object suffix | Optional | String |
devclass | Package for object | Mandatory | String |
storID | Storage ID | Mandatory | String |
meaningFields | Meaningful fieldname | Optional | Boolean |
meaningValues | Speaking field values | Optional | Boolean |
glRequest | Add SNP Glue™ request field | Optional | Boolean |
glRequestAsKey | Add SNP Glue™ request as a key | Optional | Boolean |
folder | Existing folder name (visible in SAP GUI only - Glue object navigator ) | Optional | String |
CSVFolderName | File storage folder name | Obligatory in case of file storages | String, default “<GLUE_TABNAME>” |
CSVDelimiter | File storage – Delimiter type | Obligatory in case of file storages | String |
CSVQuotes | File storage – Put values into quotes | Optional | Boolean |
CSVEscaping | File storage – Use extended escaping | Optional | Boolean |
CSVHeader | File storage – Include table header | Optional | Boolean |
CSVOneFile | File storage – One file extraction | Optional | Boolean |
CSVCompress | File storage – Compress file | Optional | Boolean |
CSVCompressLevel | File storage – Compression level | Optional | Int |
CSVInheriteProfile | File storage - Storage/global default profile | Optional | Boolean |
CSVProfileName | File storage - Profile name | Optional | String |
CSVChangeTimeField | File storage - Change time field name | Optional | String |
CSVDeletionField | File storage - Deletion field name | Optional | String |
glueQueueSett: SNP Glue™ Queue generation parameter object
Parameter name | Description | Usage | Type |
---|---|---|---|
prefix | Object prefix, must start with Z | Mandatory | String |
suffix | Object suffix | Optional | String, default “_Q“ |
devclass | Package for object | Mandatory | String |
folder | Existing folder name (visible in SAP GUI only - Glue object navigator ) | Optional | String |
sourceType | Queue structure type | Mandatory | “DDIC” | “GL_TAB” |
sourceObj | Source object ID (if sourceType = “DDIC” source object id will be “0”) | Mandatory | Int |
ext2Sett: SNP Glue™ Extractor 2.0
Parameter name | Description | Usage | Type |
---|---|---|---|
prefix | Object prefix, must start with Z | Mandatory | String |
suffixFetcher | Fetcher suffix | Optional | String, default “_F“ |
suffixConsumer | Consumer suffix | Optional | String, default “_C” |
suffixProcess | Extraction process suffix | Optional | String, default “_P” |
devclass | Package for object | Mandatory | String |
folder | Existing folder name (visible in SAP GUI only - Glue object navigator ) | Optional | String |
sourceType | Source object type | Mandatory | “DDIC“|“QUEUE” | “GL_TAB” |
sourceID | Source object ID (if sourceType = “DDIC” source object id will be “0”) | Mandatory | Int |
targetType | Target object type | Mandatory | “QUEUE” | “GL_TAB” |
targetID | Target object ID | Mandatory | Int |
deltaType | Delta type, with generate endpoint only trigger and full are possible, different modes can be enabled using PATCH process endpoint | Mandatory | “FULL“ | “TRIGGER“ |
loadType | The default load type, can be changed at execution time | Mandatory | “F“ | ”D” | ”I” | ”L” |
keyFieldsFilter | Add key fields as a selection parameter | Optional | Boolean |
noActivation | Do not activate objects | Optional | Boolean |
useDeduplication | Use deduplication | Optional | Boolean |
readDelEntries | Read deleted entries (only for Trigger based extractions) | Optional | Boolean |
enableMerge | Enable merge | Optional | Boolean |
applyRoutines | Apply field routines | Optional | Boolean |
All input parameters are case insensitive.
Example of REST API call:
POST | http://servername:portnumber/dvd/glue/api/v3_1/workflows?sap-client=clientnumber |
---|
JSON body:
{
"SOURCEOBJECTTYPE": "Table/View",
"SOURCEOBJECTNAME": [
"SFLIGHT",
"SBOOK"
],
"GlueTableSett": [
{
"id": "1",
"prefix": "ZTEST_",
"devclass": "ZTEST",
"glRequest": "",
"storid": "BIN_FILE",
"glRequestAsKey": ""
}
],
"ext2Sett": [
{
"id": "1",
"prefix": "ZTEST_",
"devclass": "ZTEST",
"suffixFetcher": "_F",
"suffixConsumer": "_C",
"suffixProcess": "_P",
"SOURCETYPE": "DDIC",
"SOURCEOBJ": "",
"TARGETTYPE": "GL_TAB",
"TARGETOBJ": "1",
"deltaType": "FULL",
"loadType": "F"
}
]
}
Example of the REST API output:
{
"message": [
{
"msgtype": "S",
"text": "Generating Glue Table 1 for Table/View SBOOK..."
},
{
"msgtype": "S",
"text": "Glue Table ZTEST_SBOOK generated successfully."
},
{
"msgtype": "S",
"text": "Generating Extractor2.0 1 ..."
},
{
"msgtype": "S",
"text": "Extractor2.0 object ZTEST_SBOOK_F generated successfully."
},
{
"msgtype": "S",
"text": "Extractor2.0 object ZTEST_SBOOK_C generated successfully."
},
{
"msgtype": "S",
"text": "Extractor2.0 object ZTEST_SBOOK_P generated successfully."
},
{
"msgtype": "S",
"text": "Generating Glue Table 1 for Table/View SFLIGHT..."
},
{
"msgtype": "S",
"text": "Glue Table ZTEST_SFLIGHT generated successfully."
},
{
"msgtype": "S",
"text": "Generating Extractor2.0 1 ..."
},
{
"msgtype": "S",
"text": "Extractor2.0 object ZTEST_SFLIGHT_F generated successfully."
},
{
"msgtype": "S",
"text": "Extractor2.0 object ZTEST_SFLIGHT_C generated successfully."
},
{
"msgtype": "S",
"text": "Extractor2.0 object ZTEST_SFLIGHT_P generated successfully."
}
]
}
Example of Queue generation
Object types:
“DDIC” SAP table/view or ADSO
“GL_TAB” SNP Glue™ table
“QUEUE” SNP Glue™ Queue
Load type
When a process is configured for delta replication, the execution can be run in different modalities:
“F” Full Load (Repair) Without Delta Update
“D” Delta Load
“I” Delta Init Without Data
“L” Delta Init + Full Load
If the job is scheduled in the background (async generation), the HTTP response code will be set to 200 with information about the generated SAP job
“200 Generation scheduled under Job name - ZDVD_GLUE_OBJ_GEN_BTCUSER”
Functionality is implemented in the SAP class /DVD/GL_EXT2_API_GEN_OBJ_V3_1.
Error handling
Every error message is raised via code 400. The reason for the error is also provided; however further investigation might be needed on the SAP side.
Delete workflows
Resource DELETE /workflows serve as a mass deletion function for SNP Glue™ objects.
It supports the following input parameters:
Global parameters
Parameter name | Description | Usage | Type |
---|---|---|---|
ObjectName | Array with the list of SNP Glue™ objects for deletion (SNP Glue™ Tables and Extractor 2.0 objects) | Mandatory | String |
All input parameters are case insensitive.
Example of REST API call:
DELETE | http://servername:portnumber/dvd/glue/api/v3_1/workflows?sap-client=clientnumber |
---|
JSON body:
Example of the REST API output:
Functionality is implemented in the SAP class /DVD/GL_EXT2_API_DELETE_OBJ.
Error handling
Every error message is raised via code 400. The reason for the error is also provided; however, further investigation might be needed on the SAP side.