SAP S/4HANA Read

In this article

Overview

Use this Snap to read and retrieve data objects from the SAP S/4HANA On-Premise instance.

Read custom query Snap (3).png

 

Prerequisites

Support for Ultra Pipelines

Works in Ultra Pipelines. 

Limitations and Known Issues

  • SAP S/4HANA On-Premise instance does not support server-side pagination. As a result, the $skiptoken is not supported.

  • The Snap does not support OData navigation link.

Snap Input and Output

Input/Output

Type of View

Number of Views

Examples of Upstream and Downstream Snaps

Description

Input/Output

Type of View

Number of Views

Examples of Upstream and Downstream Snaps

Description

Input 

Document

  • Min: 0

  • Max: 1

  • Mapper Snap

  • Copy Snap

  • JSON Parser

A document with data that indicates the entities to be filtered and retrieved from SAP S/4HANA On-Premise instance. 

Output

Document

  • Min: 1

  • Max: 1

  • Mapper Snap

  • Copy Snap

  • XML Formatter

  • JSON Formatter

A document containing the entity data retrieved from a SAP S/4HANA On-Premise instance.

Snap Settings

Field Name

Field Type

Description

Field Name

Field Type

Description

Label*

Default Value: N/A
Example: SAP S/4HANA Read

String

Specify a name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline.

API object*

 

Default Value: N/A
Example: ZCRM_BUPA_OData_0001 (OData Services for Business Partner)

String

Select the API that you want to access in SAP S/4HANA On-Premise instance. This drop-down list contains APIs available for the S/4HANA account configured in the Snap, each with a short description.

Entity*

 

Default Value: N/A
Example: AccountCollection

String/Expression/Suggestion

Select a business object (the Entity or Endpoint) for the API Object chosen above. 

Subentity

 

Default Value: N/A
Example: MainContact

String/Expression/Suggestion

Specify or select a subentity corresponding to the entity chosen above.

Customized header

 

 

Use this field set to enable the Snap to perform a specific action.

Field name

 

Default Value: N/A
Example: If-Match

String

The field name of the customized HTTP request header.

Field value

 

Default Value:  N/A
Example: W/"'82F636DC08F14D22260CE67E505C231D0D2ACD95'"

String

The field value for the above field in the customized HTTP request header. 

Key parameter

 

 

 

This field set enables you to specify the key parameters for a specific entity. Providing values for all key parameters in the drop-down list enables SAP S/4HANA to identify a unique record. 

Key parameters are NOT the same as filters which can return multiple records. To use a filter like normal select, use the parameters at the Filter records section instead.

Field name

 

Default Value: N/A
Example: accountID

String

Specify the reference parameter in this field.

Field value

 

Default Value: N/A
Example: TEST_001

String

Specify the value for the reference parameter in this field.eter.

Filter records

 

 

 

This field set enables you to define how the response result be filtered based on the specified parameters (filter criteria). Only one filter can be specified in each row. Multiple filters, if defined in this table, will be applied for generating the final output, in the order they are defined.

Field name

 

Default Value: N/A
Example: accountID

String

Specify the system parameter—$filter field—to be used for filtering the records in the output.

Operation

 

Default Value: Equals
Example: Equals

String

Specify the comparison operator for the $filter field specified above from this drop-down list. Available options are: 

  • Equals

  • Not Equals

  • Greater than or Equal

  • Greater than

  • Less than or Equal

  • Less than

  • Starts with

  • Ends with

Field value

 

Default Value: N/A
Example: TEST-AC-01

String

Specify the value with which the above $filter field must be compared. The data type—String, Integer, Boolean, or any other—depends on the $filter field you specified for the filter criterion.

Condition

 

Default Value: Or
Example: None

String

Select a value from this drop-down list to set the correlation between this filter criterion (row) and the next one (row), if being defined at all, to apply the filters for generating the final output. Available options are: 

  • Or: To retrieve records that match either the current criterion or the next criterion.

  • And: To retrieve only records that match both the current criterion and the next criterion.

  • None: To specify that the current and the next criteria can be evaluated independent of each other in retrieving the records.

Output field selection

This field set enables you to select the fields to be included in the output. 

To return all available fields in the output, do not specify any output field.

Element

 

Default Value: N/A
Example: accountID, name1, name2

String/Expression

Specify the fields from the result dataset to be populated in the output.

Order By

This field set enables you to define the sort order for the records in the output. Only one column name can be specified in each row for the sort order. Multiple Order by criteria will be applied in the same sequence as they are defined

Element

 

Default Value: N/A
Example: name1

String

Specify the field in the expected output by which the records in the output must be ordered.

Order by type

 

Default Value: Descending
Example: Descending

String

Depending on the field selected above, define whether the rows must be sorted in the ascending order or descending order. Available options are:

  • Ascending

  • Descending

Output fields advanced options

Use this section of Snap Settings to customize the output set: the number of output entries and the index of the starting entry

Output entry limit

 

Default Value: N/A
Example: 10

Integer

Specify the maximum number of entries that SAP S/4 HANA On-Premise instance must return in the output.

Output entry offset

 

Default Value: N/A
Example: 10

Integer

Specify the record index starting from which SAP S/4 HANA On-Premise instance must return records in the output.
Use this property along with the Output entry limit to retrieve a specific set of entries in the output.

Raw response

 

Default Value: Deselected

Checkbox/Expression

Select the checkbox to write the raw response to the output as a single document. If this checkbox is deselected, the results are written as individual documents.

Has next

 

Default Value: N/A
Example: $entity['has-more']

String/Expression

Enter the expression that must be evaluated to true or false indicating if the Snap should fetch the next page or not.

Next URL

 

Default Value: N/A
Example: $entity['has-more']

String/Expression

Enter an expression that must be evaluated to a URL that the Snap should use to proceed to the next page.

Is an active entity

 

Default Value: not available
Example: true

Dropdown list

Choose the value for this field. Available options are: 

  • true: get all records with field IsActiveEntity = truein the returned response.

  • false: get all records with field IsActiveEntity = false in the returned response.

  • not available: Do not require this field.

There are many SAP S/4HANA entities that require the field IsActiveEntity to be set as true or false and added to the HTTP request. If this field is not added for these entities, an error 'Draft 2.0 object <SERVICE~ENTITY> requires selection condition on IsActiveEntity' will be returned. If ‘true’ is selected, the IsActiveEntity will be set as true, vice versa. In order to refer to the entities which do not need this field, please select 'not available'.

Disable datatype conversion

 

Default Value: Deselected
Example: Selected

Checkbox/Expression

Select the checkbox to disable the datatype conversion for values of key parameters and filters.

Count

 

Default Value: Deselected
Example: Selected

Checkbox/Expression

Select this checkbox to return the total number of records retrieved in the API response.

Allow empty result

 

Default Value: Selected
Example: Deselected

Checkbox/Expression

Select this checkbox to define whether output views can show empty result. If this check box is not selected, an error will be thrown when the output has no records.

Connection details

Use this field set to specify the connectivity parameters: timeout, retry count, and retry interval.

 

TimeOut*

 

Default Value: 300
Example:120

Integer

Enter, in seconds, the duration for which the Snap must try to establish connection with SAP S/4HANA On-Premise instance. If the connection cannot be established within this duration, the Snap times out, writes the event to the log, and waits until the specified RetryInterval before attempting to reconnect.

 

Maximum request attempts*

 

Default Value: 3
Example: 5

Integer

Specify an integer value to set the maximum number of reconnection attempts that the Snap must perform, in case of connection failure or timeout.

 

RetryInterval*

 

Default Value: 1
Example: 1

Integer

Enter, in seconds, the duration for which the Snap must wait between two reconnection attempts, until the number of retries is reached.

Snap Execution

 

Default Value: Validate & Execute
Example: Execute only

Dropdown list

Indicates how the Snap must be executed. Available options are:

  • Validate & Execute: Performs limited execution of the Snap (up to 50 records) during Pipeline validation; performs full execution of the Snap (unlimited records) during Pipeline execution.

  • Execute only: Performs full execution of the Snap during Pipeline execution; does not execute the Snap during Pipeline validation.

  • Disabled: Disables the Snap and, by extension, its downstream Snaps.

Troubleshooting

Error

Reason

Resolution

Error

Reason

Resolution

You have an empty value in the Output field selection table.

The Output field selection table has an empty field.

Provide a valid entry for the selected output field.

You have an empty value in the Order by table.

The Order by table has an empty field.

Enter a valid value to define sort order.

You have an empty value in the Field name field for the Key parameter.

The Field name field must not be empty for the Key parameter.

Enter a valid Field name for the Key parameter.

You have an empty field in the Field name/value field for the Customized header.

The Field name/value field must not be empty for the Customized header.

Enter a valid Field name/value for the Customized header.

Empty result found.

There is no data coming back from the API call. Possible reasons:

  • No relevant data available in the API database

  • Filter setting is restrictive

  • URL parameter setting is restrictive

Select the Allow empty result check box.

 

API object does not exist.

Allowed API object format is <API ID>(Description).

Locate and select an API Object from the drop-down list.

Entity does not exist.

The entered Entity is not found in the server.

Locate and select the Entity from the drop-down list.

Additional Information

Here is some information to assist you while using the SAP S/4HANA Read Snap.

Snap General Behavior

The SAP S/4HANA Read Snap supports the following:

  • GET operation to read data from the SAP S/4HANA server.

  • OData querying operations: $filter (Filter records), $select (Output field selection), $orderby (Order by), $top (Output entry limit), and $skip (Output entry offset).

  • OData operation $count (Count check box).

  • Connection-failed-retry mechanism.

  • Client-side pagination through $top (Output entry limit) and $skip (Output entry offset) mechanisms. For more information, see Pagination.

  • Customized HTTP Headers. For more information, see Using Customized Headers.

  • Dynamic loading of API metadata with a Parent-child dependency structure. This means that you can:

    • Select an API object from the API Object field to view only entities that are related to the API object and support GET queries (read operations).

    • And then, select an entity to view and specify values for only read-compatible parameters related to this entity in Key parameter, Filter records, Output field selection, and Order by fields.

Pagination

Client-side pagination is supported through the use of the $top (Output entry limit), and $skip (Output entry offset) OData operations.

Examples

Snap Output Setting

Pagination result

Snap Output Setting

Pagination result

Output entry limit: 100

  • Retrieves the first 100 API response records from the server (if more than 100 records are present in API response).

  • Retrieves all the available API response records from the server (if 100 or less records are present in API response).

Output entry offset: 100

  • Retrieves API response records starting from index 101 from the server (if more than 100 records are present in API response).

  • Returns empty result (if 100 or less records are present in API response).

Output entry offset: 100, and 
Output entry limit: 100

  • Skips the first 100 records and collects the 200 - 300 records in the API response from the server.

Using Customized Headers

SAP S/4HANA On-Premise instance contains a large number of API objects and entities. It also allows you to create and use customized API objects and entities as needed.

  • Some entities may require specific/customized HTTP headers like, If-Match, Etag.

  • SAP S/4HANA Snap Pack supports definition and usage of such customized HTTP headers.

  • This Snap Pack currently contains the following common HTTP headers pre-defined and ready to use. You can however add any custom or specific HTTP headers to fulfill your requirement.

    • Content-type

    • Cache-Control

    • Authorization

    • Accept

    • X-CSRF-Token, and

    • Cookie

Accessing Related Entities from Snap Outputs for an Entity

Records in SAP S/4HANA Read Snap output may contain navigation properties, typically uri fields, pertaining to some entities related to the entity specified in Snap Settings.

For example, the SAP S/4HANA Read Snap output for the ZCRM_BUPA_OData_0001 (OData Services for Business Partner) API object and the AccountCollection entity contains navigation properties (of entities) like Contacts, Addresses, Logo, Attachments.

  • The navigation properties can be used to access specific details of these related entities.

  • In the API response, the navigation property values are displayed as URLs.

You can use one of the following methods to retrieve the details of each related entity returned in the output.

  • Pass the value (URL) from the Snap output as input to any of the three SAP S/4HANA Read Snaps to navigate to or access details of these related entities. OR

  • Parse the value (URL) from the Snap output and use it as input to Service URL field of a REST Get Snap.

Both of these methods return the properties of the corresponding related entity.

Examples

Retrieve Customer Material Data from SAP S/4HANA On-Premise instance

This Pipeline example demonstrates using a SAP S/4HANA Read Snap to retrieve customer material data from SAP S/4HANA On-Premise instance and write it into a JSON file.

Download this Pipeline.

 

The following settings are defined for the SAP S/4HANA Read Snap to retrieve customer material data from the SAP S/4HANA On-Premise instance it accesses.

  • API object: ZSD_F2499_CUSTOMER_MATERIAL_SRV_0001 (Customer Material) 

  • Entity: C_CustomerMaterial_F2499T

  • Filter criterion: For Plant 0001 and no other filters (Plant value equals '0001' and Condition None)

A successful validation or execution of the Snap gives the following output preview.

 

A JSON Formatter Snap is connected to the SAP S/4HANA Read Snap to read and format its output data into standard JSON format.

 

A File Writer Snap is connected to the JSON Formatter Snap to save/write the JSON-formatted data into a file.

 

To view the output JSON file, you must SSH to the target directory and open the newly-created JSON file. The preview of the output JSON file can be seen below:

Downloads

  File Modified

File SAP_S4HANA_READ_SNAP_EXAMPLE_01_CUSTOMER_MATERIAL.slp

Aug 04, 2020 by Anand Vedam


Related links