Versions Compared

Key

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

In this article

...

Type

Format

Number of Views

Examples of Upstream and Downstream Snaps

Description

Input

Document

Min: 0
Max: 1

  • Mapper

Document that conforms to the input view schema of the Snap. The document attributes are matched to the SAP BAPI metadata, and the matching attributes are provided to the BAPI program at execution, and any non-matching attributes are ignored.
The attributes can be tabular and structured or scalar. The Snap makes an API call for each document. If there is no input document, the Snap calls the BAPI with no input data.

Note

Only some BAPIs may be able to process without input. Refer to your BAPI documentation for the BAPIs that correctly processes with no input data.

JSON Splitter

Output

  • Mapper

  • Any document processing

    Document

    Min: 1
    Max: 1

    • JSON Splitter

    • Mapper

    • Any document processing Snap

    Document which represents the record structure of the retrieved BAPI output definition. The documents are populated using the result data of each BAPI call for each document passed into this Snap. If the Snap has no input document, only one output document result is created. 

    Output

    Document

    Min: 1

    Max: 1

    Error

    Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab. Learn more about Error handling in Pipelines.
    The available options are:

    • Stop Pipeline Execution: Stops the current pipeline execution when the Snap encounters an error.

    • Discard Error Data and Continue: Ignores the error, discards that record, and continues with the rest of the records.

    • Route Error Data to Error View: Routes the error data to an error view without stopping the Snap execution.

    Note

    SAP BAPIs do not enforce standard error messaging, so error views of Snaps that are downstream of the SAP Execute Snap should be set to Discard Error Data and Continue. Else, your Pipeline will fail to run.

    Snap Settings

    A Session ID is required if you want to create a stateful call sequence.

    info

    Ensure to select this checkbox for the Snap where you define your first BAPI call in the Pipeline. Do not select the Commit after BAPI execute checkbox for this Snap, to extend the stateful session and call more BAPIs using this Pipeline (downstream to this Snap). 'Sequence' implies that the output from a BAPI call is needed for the next BAPI call to run.

    Ensure to select this checkbox for the Snap where you define your last BAPI call in the Pipeline. Do not select the Start Stateful Call Sequence checkbox for this Snap.

    Do not select both Start Stateful Call Sequence and Commit after BAPI execute checkboxes for all other BAPI calls between the first and

    the

    last calls in the sequence.

     For

    For example, the Second BAPI call in a 3-call sequence

    ; Second

    and the second, Third, and Fourth BAPI calls in a 5-call sequence.

    Loading of metadata may take some time depending on the network speed

    the metadata (latest schema) for the current BAPI function before executing the BAPI function.

    Field Name

    Field Type

    Description

    Label*

    Default Value: SAP Execute
    Example: SAP BAPI Create Orders

    String

    Specify a unique and meaningful name for the Snap.

    BAPI List configuration

    Use this field set to configure the list of BAPIs to return. This field set contains the following fields.

    BAPI List config key

    Default Value:OBJECTTYPE
    Example: RELEASED_FUNC

    Dropdown list

    Select a key to configure the BAPI list that is being returned. The available options are:

    • OBJECTTYPE

    • SHOW_RELEASE

    • BAPIS_POTENTIAL

    • BAPIS_NEW

    • BAPIS_OLD

    • RELEASED_BAPI

    • RELEASED_FUNC

    BAPI List config value

    String

    Define a value to configure the BAPI list that is being returned. Learn more about object types.

    BAPI*

    Default Value: N/A
    Example: BAPI_MONITOR_GETLIST

    String/Expression/Suggestion

    Specify the BAPI on the SAP server to be executed. This is the ABAP name. 

    Start Stateful Call Sequence

    Default ValueDeselected

    Checkbox

    Select this checkbox to create a stateful session for calling one (or more) BAPIs.

    Note

    Commit after BAPI execute

    Default ValueDeselected

    Checkbox

    Select this checkbox to end the stateful session and commit when no exception is raised; else otherwise, the BAPI controls the commits.

    Info

    Session ID

    Default Value: [None] N/A
    Example: xyz987

    String/Expression

    Specify the string to identify a specific session.

    All Snaps in a specific stateful call sequence must be in the same session ID, and there should be only call sequence running in a session at a time. If you do not provide any session ID, the Snap runs in its own session.

    Date conversion format

    Default Value: yyyyMMdd
    ExampleyyyyMMdd

    String/Expression

    Specify the format to convert string input values into SAP date/datetime fields in SimpleDateFormat.
    If you do not specify any value, then no conversion is done and the SAP client displays an error when an input view string is mapped to SAP date/datetime field.

    Output date time as Text

    Default ValueDeselected

    Checkbox

    Select to output date and time as a String data type instead of a DateTime object.

    Error handling

    Use this field set to define the error path and values for handling errors. If any error paths and their error values match a corresponding value in the output document, then the document is routed to the error view (if enabled), or the Snap fails (if the error view is disabled).

    If you do not define the error handling, the Snap will not by default fail or route anything to the error view if the RETURN[*].TYPE value is 'E'.

    Error path

    Default Value: $RETURN[*].TYPE
    Example: $RETURN[*].TYPE

    String/Expression

    Specify the error path to which the errors should route.

    Error value

    Default ValueE
    Example: R

    String/Expression

    Specify the value for the error.

    Max request attempts*

    Default Value: 3
    Example:5

    Integer

    Specify the maximum number of SAP connection attempts to make in case of a failure. When you specify 0, the Snap makes infinite connection attempts. 

    Request retry interval

    Default value: 5
    Example: 5

    Integer

    Specify the time in seconds to wait before retrying the request.

    Route errors

    Default value: Deselected

    Checkbox

    Select this checkbox to write configuration errors to the error view. If the error is non-recoverable, the errors (especially connection errors such as exception handling) are routed to the error view with relevant information.

    Reload Function Metadata

    Default valueDeselected

    Checkbox

    Select this checkbox to reload the metadata (latest schema) for the current BAPI function before executing the BAPI function.

    Note
    Note

    Loading of metadata may take some time depending on the network speed.

    Round to SAP decimal*

     

    Default state: Deselected

    Checkbox

    Select this checkbox to round the decimal value to match the number of decimal places defined in the SAP target field. This prevents a conversion error if the number of decimal places exceeds the value defined in SAP.

    • This property only applies to SAP packed decimal fields, which store data in the BCD (Binary Coded Decimal) format.

    • This property's rounding behavior rounds towards the nearest neighbor unless both neighbors are equidistant, in which case it rounds up if the digit to the left of the discarded fraction is odd and down if it's even. This rounding mode minimizes cumulative error when applied repeatedly over a sequence of calculations. This mode corresponds to the IEEE 754 rounding-direction attribute roundTiesToEven. For example:

    Input Value Rounded Value
    1.2 --------------------1
    1.5 --------------------2
    2.5 --------------------2
    2.6 --------------------3

    If you deselect this checkbox and the Snap tries to write a decimal value that either exceeds the length or the number of decimal places defined in the SAP packed decimal field, a conversion error is displayed.

    Snap Execution

    Default valueExecute only
    ExampleValidate & Execute

    Dropdown list

    Multiexcerpt include macro
    nameExecution_Detail_Write
    pageSOAP Execute

    ...

    The following examples demonstrate how to retrieve data, insert data in SAP using the applicable BAPI, and how to display an error.

    Expand
    titleSAP Execute to retrieve data successfully

    In the first example we will read a list of all sales orders in SAP by Sales Organization and Customer using BAPI_SALESORDER_GETLIST and then split the data by Sales Order # (SD_DOC), format the data to Excel and ultimately write the data to SLDB.

    We will start with a JSON Generator Snap which provides Customer and Organization ID which is input for the Mapper Snap where we map the relevant details such as CUSTOMER_NUMBER and SALES_ORGANIZATION to prepare as your input data.

    Image RemovedImage Added

    The SAP Execute Snap is configured to use  BAPI_SALESORDER_GETLIST.  I have renamed the Snap "SAP Execute - BAPI" for the purposes of this example. 

    The results are returned from SAP, which match the input criteria (Sales Organization and Customer).

    Image Modified

    Next, we split the data by Sales Order using a JSON Splitter. The JSON Splitter can use the SALES_ORDERS path to split the incoming document into individual output documents for each sales order and then write the results to an Excel file using Excel Formatter.

    ...

    Expand
    titleSequence of BAPI calls in a Pipeline

    The following Pipeline demonstrates a sequence of 3 BAPI calls on service notifications using an SAP instance.

    Download this Pipeline.

    In this example Pipeline, a Mapper (Feed Notification Data) is used to prepare the sample attributes for the notification.

    The output displays the notification attributes.

    Image RemovedImage Added

    We are using three SAP Execute Snaps to call the following BAPI functions in that sequence.

    1. BAPI_SERVNOT_CREATE : To create a service notification using Create Svc Notification Snap.

    2. BAPI_SERVNOT_SAVE : To save a service notification using SAP Execute Snap.

    3. BAPI_TRANSACTION_COMMIT: To execute external commit when using BAPIs using Save Svc Notification Snap.

    SAP Execute Snap to call BAPI_SERVNOT_CREATE and create an SAP
    service notification.

    SAP Execute Snap to call BAPI_SERVNOT_SAVE and save the SAP
    service notification.

    Image RemovedImage AddedImage RemovedImage Added
    • Select the Start Stateful Call Sequence check box to indicate the  
      beginning of the BAPI sequence.

    • Do not select the Commit after BAPI execute check box.

    • Do not select both the checkboxes in this Snap, as this BAPI is
      an intermediate call in the BAPI sequence.

    Mapper Snap to extract the notification number from the saved notification.

    SAP Execute Snap to call BAPI_TRANSACTION_COMMIT and commit
     transaction (save service notification).

    JSON Formatter Snap to format the output after committing
    the transaction.

    Image RemovedImage AddedImage RemovedImage Added
    • Do not select the Start Stateful Call Sequence check box.

    • Select the Commit after BAPI execute check box in this Snap to 
      indicate the end of the BAPI sequence.

    File Writer Snap to write the formatted output into a file New_BAPI_Seq_PL_Output.JSON

    Image RemovedImage Added

    Downloads

    Note

    Important Steps to Successfully Reuse Pipelines

    1. Download and import the Pipeline into SnapLogic.

    2. Configure Snap accounts as applicable.

    3. Provide Pipeline parameters as applicable.

    ...