(Glue-2108) v3.1 Workflows
A workflow is the combination of multiple Glue objects and describes the flow of the data from the source (e.g. a SAP table) all the way down the target (e.g. a 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 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 Glue Queue generation | Optional | JSON object (see below) |
asyncExec | Execute generation in a background job (Asynchronous) | Optional | ‘’ or ‘X’ |
skipExisting | Skip generation of existing objects | Optional | ‘’ or ‘X’ |
GlueTableSett: 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 Glue Request field | Optional | Boolean |
glRequestAsKey | Add Glue request as a key | Optional | Boolean |
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 |
glueQueueSett: 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 |
sourceType | Queue structure type | Mandatory | “DDIC” | “GL_TAB” |
sourceObj | Source object ID (if sourceType = “DDIC” source object id will be “0”) | Mandatory | Int |
ext2Sett: 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 |
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 |
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” Glue table
“QUEUE” 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 Glue objects.
It supports the following input parameters:
Global parameters
Parameter name | Description | Usage | Type |
---|---|---|---|
ObjectName | Array with the list of GLUE objects for deletion (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.