Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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).

...

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

glueTableSett

Parameters

Array with parameters for Glue table generation

, mandatory for “standard” and “FIFOAsynch” ExecutionType

Optional

JSON object (see below)

ext2Sett

Parameters

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

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

ext2Sett: Glue Extractor 2.0

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

suffixFetcher

Fetcher

suffix

Optional

String, default “_F“

suffixConsumer

Consumer

Object suffix

Optional

String, default “_

C”

suffixProcess

Extraction process suffix

Optional

String, default “_P”

Q“

devclass

Package for object

Mandatory

String

deltaType

sourceType

Delta type, with generate endpoint only trigger and full are possible, different modes can be enabled using PATCH process endpoint

Queue structure type

Mandatory

“FULL“

“DDIC” |

“TRIGGER“

“GL_TAB”

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=800

JSON body:

Code Block
languagejson
{
    "SourceObjectType": "table/view",
    "SourceObjectName": [
        "SFLIGHT"
    ],
    "GlueTableSett": {
        "prefix": "Z_",
        "devclass": "ZPACKAGE",
        "storID":"AWS_S3",
        "glRequest": "",
        "glRequestAsKey": ""
    },
    "ext2Sett": {
        "prefix": "Z_",
        "devclass": "ZPACKAGE",
        "suffixFetcher": "_F",
        "suffixConsumer": "_C",
        "suffixProcess": "_P",
        "deltaType": "FULL",
        "loadType": "F"
    }
}

Example of the REST API output:

...

languagejson

...

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:

Code Block
languagejson
{
    "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:

Code Block
languagejson
{
    "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

Expand

JSON body:

Code Block
languagejson
{
    "SOURCEOBJECTTYPE": "Table/View",
    "SOURCEOBJECTNAME": [
        "SFLIGHT"
    ],
    "GlueTableSett": [
        {
            "id": "1",
            "prefix": "ZTEST_",
            "devclass": "ZTEST",
            "glRequest": "",
            "storid": "BIN_FILE",
            "glRequestAsKey": ""
        }
    ],
    "GlueQueueSett": [
        {
            "id": "1",
            "prefix": "ZTEST_",
            "SUFFIX": "_Q",
            "devclass": "ZTEST",
            "SOURCETYPE": "DDIC",
            "sourceobj": ""
        }
    ],
    "ext2Sett": [
        {
            "id": "1",
            "prefix": "ZTEST_",
            "devclass": "ZTEST",
            "suffixFetcher": "_F",
            "suffixConsumer": "_C",
            "suffixProcess": "_P",
            "SOURCETYPE": "DDIC",
            "SOURCEOBJ": "",
            "TARGETTYPE": "QUEUE",
            "TARGETOBJ": "1",
            "deltaType": "FULL",
            "loadType": "F"
        },
        {
            "id": "2",
            "prefix": "ZTEST_",
            "devclass": "ZTEST",
            "suffixFetcher": "_QF",
            "suffixConsumer": "_QC",
            "suffixProcess": "_QP",
            "SOURCETYPE": "QUEUE",
            "SOURCEOBJ": "1",
            "TARGETTYPE": "GL_TAB",
            "TARGETOBJ": "1",
            "deltaType": "FULL",
            "loadType": "F"
        }
    ]
}

Example of the REST API output:

Code Block
languagejson
{
    "message": [
        {
            "msgtype": "S",
            "text": "Generating Glue Table 1 for Table/View SFLIGHT..."
        },
        {
            "msgtype": "S",
            "text": "Glue Table ZTEST_SFLIGHT generated successfully."
        },
        {
            "msgtype": "S",
            "text": "Generating Glue Queue 1 for Table/View SFLIGHT..."
        },
        {
            "msgtype": "S",
            "text": "Glue Queue ZTEST_SFLIGHT_Q generated successfully."
        },
        {
            "msgtype": "S",
            "text": "Generating Extractor2.0 1 ..."
        },
        {
            "msgtype": "S",
            "text": "Extractor2.0 object ZTEST_SFLIGHT_F generated successfully."
        },
        {
            "msgtype": "S",
            "text": "
Generating
Extractor2.0 
Glue table 1 for Table/View SFLIGHT...
object ZTEST_SFLIGHT_C generated successfully."
        },
        {
            "msgtype": "S",
            "text": "
Glue
Extractor2.0 
table
object 
Z
ZTEST_SFLIGHT_P generated successfully."
        },
        {
            "msgtype": "S",
            "text": "Generating Extractor2.0 
1 for Glue table Z_SFLIGHT
2 ..."
        },
        {
            "msgtype": "S",
            "text": "Extractor2.0 object 
Z
ZTEST_SFLIGHT_
F
QF generated successfully."
        },
        {
            "msgtype": "S",
            "text": "Extractor2.0 object 
Z
ZTEST_SFLIGHT_
C
QC generated successfully."
        },
        {
            "msgtype": 
"S",
"S",
            "text": "Extractor2.0 object ZTEST_SFLIGHT_QP generated successfully."
        }
   
"text": "Extractor2.0 object Z_SFLIGHT_P generated successfully." } ] }

...

 ]
}

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

Info

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_GENERATE_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.

...

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=

800

clientnumber

 JSON body:

Code Block
languagejson
{
    "objectName": [
        "ZMCH_SFLIGHT_F",
        "ZMCH_SFLIGHT",
        "ZMCH_SFLIGHT_FIFO_C",
        "ZMCH_SFLIGHT_1_P",
        "ZMCH_SFLIGHT_FIFO_F",
        "ZMCH_SFLIGHT_C",
        "ZMCH_SFLIGHT_2_P",
        "ZMCH_SFLIGHT_F"
    ]
}

...