ERP Connector - Data360_Analyze - Latest

Data360 Analyze Server Help

Product type
Software
Portfolio
Verify
Product family
Data360
Product
Data360 Analyze
Version
Latest
Language
English
Product name
Data360 Analyze
Title
Data360 Analyze Server Help
Copyright
2024
First publish date
2016
Last updated
2024-11-28
Published on
2024-11-28T15:26:57.181000

Provides integration with the SAP platform using the BAPI collection of interfaces, allowing you to acquire data from and publish data to the system.

CAUTION:
Before working with the ERP nodes, you must first download the files that are needed to integrate with SAP from the SAP Service Marketplace at: https://websmp108.sap-ag.de/connectors. See SAP integration for further information on prerequisites and common properties.

Before using the ERP Connector node, you may first want to use the Extract ERP Metadata node to extract metadata information.

The main use cases of the ERP Connector node are as follows:

  • Executes a remote function call on the SAP system to create, read, update or delete data from the SAP system for a specific object.
  • Depending on the function executed, this could be a BAPI, an RFM that is not a BAPI, or another RFC that does not interact with a RFM.
  • import parameters provided via configuring input pins and/or node properties.
  • Output pins must be configured to retrieve the export parameters.

If you plan to use the same function regularly, it is recommended that you create a library node (see Creating library nodes) such that the inputs/outputs required by the node are configured correctly, and parameters to the function can be named properties in the Data360 Analyze node removing the need for end users to know which "Scalar Parameters" and "Structure Parameters" are required by the function.

For examples of using the ERP Connector node, see ERP Connector examples.

Standard configuration

By default, the node does not contain any inputs. However, if import parameters are to be specified dynamically, via input data, corresponding inputs need to be created on the node. Similarly, any export parameters to deactivate can be specified in a corresponding input.

Since the ERP Connector node is very generic and can be used to call any remote function, the configuration that is to be provided to this node is very much function specific. However, the following general rules apply:

  1. First, determine the interface of the function using the Extract ERP Metadata node, see Extract ERP Metadata.
  2. Set the name of the function to execute in the FunctionName property, or via a node input called "Function Name".
  3. If the function requires any scalar import parameters, either:
    1. Set these in the ScalarParameters property in the following format:<Property name>=<Property value>

    2. Provide these parameters via an input:
      1. Create an input named "Scalar Parameters".
      2. For each scalar parameter, the input needs to have a field, where the field name equals the name of the parameter.
      3. The parameter value must be provided as the field value for the corresponding field in the input.
      4. The type of the field must match the specified "Data360 Analyze Field Type" specified in the interface, which can be seen on the corresponding record of the "Scalar Parameters" output on the Extract ERP Metadata node.
      5. There must only be one input record.
  4. If the function requires any structure import parameters, either:
    1. Set these in the StructureParameters property in the following format:<StructureName>.<PropertyName>=<PropertyValue>

    2. Provide these parameters via inputs to the node. Each structure import parameter provided must have its own input. For each structure:
      1. Create an input "Structure Parameters_<StructureName>".
      2. For each parameter in the structure, the input needs to have a field, where the field name equals the name of the parameter.
      3. The parameter value must be provided as the field value for the corresponding field in the input.
      4. The type of the field must match the specified "Data360 Analyze Field Type" specified in the interface, which can be seen on the corresponding record of the "Structure Parameters" output on the Extract ERP Metadata node.
      5. There must only be one input record.
  5. If the function requires any table import parameters:
    1. Provide these parameters via inputs to the node. Each table import parameter provided must have its own input. For each structure:
      1. Create an input "<TableName>".
      2. For each field in the table, the input needs to have a field, where the field name equals the name of the field in the table import parameter.
      3. The field value must be provided as the field value for the corresponding field in the input.
      4. The type of the field must match the specified "Data360 Analyze Input Field Type" specified in the interface, which can be seen on the corresponding record of the "Tables" output on the Extract ERP Metadata node.
    2. There can be any number of records for a Table import parameter.
  6. By default, the node does not contain any outputs. However, if export parameters are to be extracted, you must create corresponding outputs on the node. If the function defines any scalar export parameters that you want to extract, construct an output "Scalar Parameters". All scalar parameters will be written to this output. To determine which scalar parameters will be written to the output, run the Extract ERP Metadata node for this function and investigate the "Scalar Parameters" output.
  7. If the function defines any structure export parameters that you want to extract, construct corresponding outputs on the node. For each of the structures to extract, create an output on the node "Structure Parameters_<StructureName>". The parameters for that structure will be written to this output.

    A special case is the "RETURN" structure. All BAPIs will define a structure export parmeter "RETURN" which will contain information returned from the BAPI related to the success or otherwise of the function.

    Since BAPIs follow a general approach of returning exceptions via the RETURN structure rather than throwing the exceptions directly, it is good practice whenever executing a BAPI to create the corresponding "Structure Parameters_RETURN" output.

  8. If the function defines any table export parameters that you want to extract, construct corresponding outputs on the node "<TableName>". The corresponding exported table will be written to this output. To determine which fields will be written to the output and which table outputs should be constructed, run the Extract ERP Metadata node for this function and investigate the "Tables" output.
  9. If the function you are executing is a BAPI function that is going to modify the SAP system (a creation, update or deletion function), then you need to set the CommitTransaction property to True in order for the operation to take effect in the system.

Generally, the BAPI is executed once using the scalar, structure and table input data as import properties to the SAP BAPI function. However, if you to provide multiple scalar, structure and table import property groups and have the node execute the BAPI multiple times, then you need to have an execution group identifier field in each of the scalar, structure and table inputs. This field is then used to ensure that the BAPI will be executed with the correct data from each input. See the properties ExecutionIdentifierField and OutputExecutionIdentifiers for more information.

Advanced configuration

For performance reasons, it is sometimes desirable to deactivate certain export parameters. If the export parameters are deactivated, they will not be returned through the SAP Jco interface and the function call can take significantly less time. To deactivate the parameters this can be done either via the node property DeactivateExportParameters or can be provided via an input pin. If using the DeactivateExportParameters property, specify the name of each export parameter to deactivate in its own line.

If specifying the export parameters to deactivate via an input pin, construct an input "Deactivate Parameters". The input must contain one string or Unicode field only. The value in this field for each records specifies the name of the export parameter to deactivate.

There is no one-to-one mapping from SAP data types to Data360 Analyze data types, therefore the following mapping tables can be used to determine which Data360 Analyze types map to which SAP data types. When an SAP export property is to be output to a Data360 Analyze field, the following table is used:

SAP data type Data360 Analyze data type
BCD (P) string String representation of integer
BYTE (X) byte[] Appears as "string" in Data360 Analyze metadata. Base64 encoded string of byte[]
CHAR (C) string character string returned in string format
FLOAT (F) double Pass through
DECF16 (decfloat16) string String representation of the floating point number
DECF34 (decfloat34) string String representation of the floating point number
INT (I) int Pass through
INT_1 (b) int Pass through
INT_2 (s) int Pass through
NUM (N) string Pass through
STRING (g) string Pass through
XSTRING (y) byte[] Appears as "string" in Data360 Analyze metadata. Base64 encoded string of byte[]
DATE (D) Date Pass through
TIME (T) Time Pass through

When import properties are entered in the ScalarParameters or StructureParameters properties, these properties are entered in key=value pairs. The format required for the "value" part is defined in the following table.

SAP data type Required format
BCD (P) Standard floating point number. Example: bcdParam=123.45
BYTE (X) Hex representation of bytes. Requires leading '0x' characters. Example: bytesParam=0x12CF
CHAR (C) character string Example: charParam=SomeVal
FLOAT (F) Standard floating point number. Example: floatParam=1234.542
DECF16 (decfloat16) Standard floating point number. Example: decf16Param=123.45
DECF34 (decfloat34) Standard floating point number. Example: decf34Param=123.45
INT (I) Standard integer. Example: intParam=12345467
INT_1 (b) Standard integer. Example: int1Param=10
INT_2 (s) Standard integer. Example: int2Param=32000
NUM (N) Standard integer. Example: numParam=12345467
STRING (g) String. Example: stringParam=some string text
XSTRING (y) Hex representation of bytes. Requires leading '0x' characters. Example: xstringParam=0x12CF
DATE (D) Date in format: "CCYY-MM-DD". Example: dateParam=2012-12-23
TIME (T) Time in format: "HH:MM:SS". timeParam=23:15:55

When mapping Data360 Analyze data from an input pin to an SAP data type in an import property, the situation is slightly more complex. The following table indicates how Data360 Analyze input types are mapped to SAP data types. If there is not an entry in the table present for a mapping, this means that the mapping is not supported. Where the table specifies that coercion is required to map the type, this coercion will only be performed if the CoerceInput property is set to True.

Data360 Analyze input type SAP import parameter type mapping
boolean
BCD (P)
Coercion Required? yes
Mapping true->1.0 (BigDecimal). false->0.0 (BigDecimal).
XSTRING (y)
Coercion Required? yes
Mapping true->byte[] {1}. false->byte[] {0}.
BYTE (X)
Coercion Required? yes
Mapping true->byte[] {1}. false->byte[] {0}.
CHAR (C)
Coercion Required? yes
Mapping true->'T'. false->'F'.
FLOAT (F)
Coercion Required? yes
Mapping true->1.0 false->0.0
INT (I)
Coercion Required? yes
Mapping true->1 false->0
INT_1 (b)
Coercion Required? yes
Mapping true->1 false->0
INT_2 (s)
Coercion Required? yes
Mapping true->1 false->0
NUM (N)
Coercion Required? yes
Mapping true->"1" false->"0"
STRING (g)
Coercion Required? yes
Mapping true->"TRUE" false->"FALSE"
int
BCD (P)
Coercion Required? no
Mapping Converts to BigDecimal
XSTRING (y)
Coercion Required? no
Mapping byte[] representation of int
BYTE (X)
Coercion Required? no
Mapping byte[] representation of int
INT (I)
Coercion Required? no
Mapping pass through
INT_1 (b)
Coercion Required? no
Mapping pass through
INT_2 (s)
Coercion Required? no
Mapping pass through
NUM (N)
Coercion Required? no
Mapping Converts to string representation
FLOAT (F)
Coercion Required? yes
Mapping Converts to double value
STRING (g)
Coercion Required? yes
Mapping Converts to string representation
CHAR (C)
Coercion Required? yes
Mapping Converts to string representation
long
BCD (P)
Coercion Required? no
Mapping Converts to BigDecimal
XSTRING (y)
Coercion Required? no
Mapping byte[] representation of long
BYTE (X)
Coercion Required? no
Mapping byte[] representation of long
NUM (N)
Coercion Required? no
Mapping Converts to string representation
INT (I)
Coercion Required? yes
Mapping Converts to int - potential data loss
INT_1 (b)
Coercion Required? yes
Mapping Converts to int - potential data loss
INT_2 (s)
Coercion Required? yes
Mapping Converts to int - potential data loss
FLOAT (F)
Coercion Required? yes
Mapping Converts to double value
STRING (g)
Coercion Required? yes
Mapping Converts to string representation
CHAR (C)
Coercion Required? yes
Mapping Converts to string representation
double
BCD (P)
Coercion Required? no
Mapping Converts to BigDecimal
FLOAT (F)
Coercion Required? no
Mapping Pass through
XSTRING (y)
Coercion Required? yes
Mapping byte[] representation of integral value - potential data loss
BYTE (X)
Coercion Required? yes
Mapping byte[] representation of integral value - potential data loss
INT (I)
Coercion Required? yes
Mapping Converts to int - potential data loss
INT_1 (b)
Coercion Required? yes
Mapping Converts to int - potential data loss
INT_2 (s)
Coercion Required? yes
Mapping Converts to int - potential data loss
NUM (N)
Coercion Required? yes
Mapping Converts to string representation of integral value - potential data loss
STRING (g)
Coercion Required? yes
Mapping Converts to string representation
CHAR (C)
Coercion Required? yes
Mapping Converts to string representation
date
DATE (D)
Coercion Required? no
Mapping Pass through
STRING (g)
Coercion Required? yes
Mapping Converts to string representation - "CCYY-MM-DD"
CHAR (C)
Coercion Required? yes
Mapping Converts to string representation - "CCYY-MM-DD"
time
TIME (T)
Coercion Required? no
Mapping Pass through
STRING (g)
Coercion Required? yes
Mapping Converts to string representation - "HH:MM:SS"
datetime
DATE (D)
Coercion Required? yes
Mapping Pass through - however time component lost
TIME (T)
Coercion Required? yes
Mapping Pass through - however date component lost
STRING (g)
Coercion Required? yes
Mapping Converts to string representation - "CCYY-MM-DD HH:MM:SS"
CHAR (C)
Coercion Required? yes
Mapping Converts to string representation - "CCYY-MM-DD HH:MM:SS"
string
STRING (g)
Coercion Required? no
Mapping Pass through
BCD (P)
Coercion Required? yes
Mapping Converts to BigDecimal. Errors if unconvertible
XSTRING (y)
Coercion Required? yes
Mapping Converts to byte[] assuming String contains only integer characters. Errors if unconvertible
BYTE (y)
Coercion Required? yes
Mapping Converts to byte[] assuming String contains only integer characters. Errors if unconvertible
FLOAT (F)
Coercion Required? yes
Mapping Converts to double. Errors if unconvertible
INT (I)
Coercion Required? yes
Mapping Converts to int. Errors if unconvertible
INT_1 (b)
Coercion Required? yes
Mapping Converts to int. Errors if unconvertible
INT_2 (s)
Coercion Required? yes
Mapping Converts to int. Errors if unconvertible
NUM (N)
Coercion Required? yes
Mapping Converts to int, then to String representation. Errors if unable to parse as int
CHAR (C)
Coercion Required? yes
Mapping Pass through
DATE (D)
Coercion Required? yes
Mapping Returns date parsed using format "CCYY-MM-DD". Errors if string not in this format
TIME (T)
Coercion Required? yes
Mapping Returns time parsed using format "HH:MM:SS". Errors if string not in this format
unicode
STRING (g)
Coercion Required? yes
Mapping Pass through. Potential errors or data loss if SAP cannot handle the unicode characters
BCD (P)
Coercion Required? yes
Mapping Converts to BigDecimal. Errors if unconvertible
XSTRING (y)
Coercion Required? yes
Mapping Converts to byte[] assuming String contains only integer characters. Errors if unconvertible
BYTE (y)
Coercion Required? yes
Mapping Converts to byte[] assuming String contains only integer characters. Errors if unconvertible
FLOAT (F)
Coercion Required? yes
Mapping Converts to double. Errors if unconvertible
INT (I)
Coercion Required? yes
Mapping Converts to int. Errors if unconvertible
INT_1 (b)
Coercion Required? yes
Mapping Converts to int. Errors if unconvertible
INT_2 (s)
Coercion Required? yes
Mapping Converts to int. Errors if unconvertible
NUM (N)
Coercion Required? yes
Mapping Converts to int, then to String representation. Errors if unable to parse as int
CHAR (C)
Coercion Required? yes
Mapping Pass through. Potential errors or data loss if SAP cannot handle the unicode characters
DATE (D)
Coercion Required? yes
Mapping Returns date parsed using format "CCYY-MM-DD". Errors if string not in this format
TIME (T)
Coercion Required? yes
Mapping Returns time parsed using format "HH:MM:SS". Errors if string not in this format

Error handling

The ERP Connector node has the following properties specifically designed to deal with error scenarios:

Property name Property type Required Allowable options Default Description
CoerceInputData boolean No N/A false Specifies whether or not input Data360 Analyze data should attempt to be coerced to SAP data types, when the mapping is not the preferred choice. (for example, Data360 Analyze boolean->SAP character. If coerce is used, this could export true as 'T').
UnmappableInputBehavior choice No
  • Error
  • Log
  • Ignore
Error Action to take when Data360 Analyze input data cannot be coerced to an SAP data format. This can occur either because there is no valid coercion method, or because coerce is set to false.
UnmappableOutputBehavior choice No
  • Error
  • Error
  • Error
Error Action to take when SAP data cannot be mapped to a Data360 Analyze data type (for example, ABAPObject types)
RecoverableErrorBehavior choice No
  • Error
  • Error
  • Error
Log In some circumstances, a call to an SAP function can complete sucessfully, however the function will be returned with an exception list. This generally implies that processing can continue but that there were some errors. In the case of running non-BAPI RFMs, these errors will always be returned. This property specifies the action to take when such errors occur.

Properties

FunctionName

Specify the BAPI RFM to be called. If not set, a "BAPI Name" input pin must be provided specifying the BAPI RFM to be called.

One of these must be set, and both cannot be set.

ScalarParameters

Specify scalar "import properties" to be provided to the specified BAPI function.

Newline separated set of key=value pairs specifying the SAP properties to be imported for the BAPI function.

Required format:

<param1Name>=<param1Value>

<param2Name>=<param2Value>

Blank lines and lines beginning with the hash character ('#') will be ignored.

Alternately, the "Scalar Parameters" input pin can be used to provide these SAP import properties.

Both can be used in conjunction however an error will be thrown if the same SAP property is declared in an Data360 Analyze property and in the "Scalar Parameters" input pin.

StructureParameters

Specify structure "import properties" to be provided to the specified BAPI function.

Newline separated set of key=value pairs specifying the SAP properties to be imported for a specified structure to the BAPI function.

Required format:

<structure1Name>.<param1Name>=<param1Value>

<structure2Name>.<param2Name>=<param2Value>

Blank lines and lines beginning with the hash character ('#') will be ignored.

Alternately, the "Structure Parameters_" input pins can be used to provide these SAP import properties.

Both can be used in conjunction however an error will be thrown if the same SAP property is declared in an Data360 Analyze property and in the "Structure Parameters_" input pins.

DeactivateExportParameters

Specify any export properties which are to be "deactivated".

Deactivating an export property means that no data for the property will be returned from SAP.

The name of each export property to deactivate is specified in its own line in the property value.

If these properties are to be specified via an input, these can be provided in an input "Deactivate Export Parameters"

CommitTransaction

Optionally specify whether or not the transaction is to be committed to the SAP system.

For a create/update/delete operation this is required for the changes to take effect in the system.

The default value is False.

CoerceInputData

Optionally specify whether or not the input of Data360 Analyze data should attempt to be coerced to SAP data types, when the mapping is not the preferred choice. (e.g. Data360 Analyze boolean->SAP character. If coerce is used, this could load true as 'T').

The default value is False.

ConnectionType

Specify the type of connection you are using. If you are not using a load balanced login, then you can connect to a Custom Application Server. Otherwise, you should select Group/Server Selection.

Choose from:

  • Custom Application Server - Forms a connection to the specified SAP Application Server without using group load balancing for the logins.
  • Group/Server Selection - Load balanced login using the SAP Group/Server mechanism.

A value is required for this property. For more information, see your SAP documentation.

When Custom Application Server is specified, the following properties are required:

  • ApplicationServer
  • SystemNumber

When Group/Server Selection is specified, the following properties are required:

  • MessageServerHost
  • Group/Server
  • R3Name

In all cases, the following properties are required:

  • User
  • Password
  • ClientNumber

ApplicationServer

Specify the name of the SAP Application server.

A value is required if ConnectionType is set to Custom Application Server.

Should not be set if ConnectionType is set to Group/Server Selection.

Group/Server

Specify the group of SAP application servers.

A value is required if ConnectionType is set to Group/Server Selection.

Should not be set if ConnectionType is set to Custom Application Server.

MessageServerHost

Specify the SAP message server host.

A value is required if ConnectionType is set to Group/Server Selection.

Should not be set if ConnectionType is set to Custom Application Server.

MessageServerPort

Specify the SAP message server port.

Optional if ConnectionType is set to Group/Server Selection.

Should not be set if ConnectionType is set to Custom Application Server.

SystemNumber

Specify the two-digit system number of the SAP system.

Called the "Instance Number" in the SAP Logon GUI.

Required if the ConnectionType is set to Custom Application Server.

R3Name

Specify the system ID of the SAP system.

Required if the ConnectionType is set to Group/Server Selection.

ClientNumber

Specify the three digit client number for the SAP system.

Called the "SystemID" in the SAP Logon GUI.

A value is required for this property.

RouterString

Specify the SAP Router String. In format: /H/<IP address where your SAP router is located>/S/<port for your SAP router>/H/<SAP server host ip address>/H/

User

Specify the name of the SAP user.

A value is required for this property.

Password

Specify the password for the specified user on the SAP system.

A value is required for this property.

ConnectionMethod

Optionally specify the method used to connect to the SAP system. Choose from:

  • Direct Connection - Connection will be held for the duration of the node run.
  • Pooled Connection - Connection will be taken and returned as needed during node execution.

The default value is Pooled Connection.

LargeDecimalAsDouble

Some of the SAP numeric types have a range, or precision which cannot be fully handled by the double type in Data360 Analyze.

Therefore, by default these will be output as a string to ensure that there is no loss of precision or accuracy.

However, if you want to have these output in numeric format, you can set this optional property to true.

This affects the SAP types: BCD (P) DECF16 (DECFLOAT16) DECF34 (DECFLOAT34)

ExecutionIdentifierField

If processing data from the node's input and the SAP function is to be executed multiple times, then this property needs to be set.

While for scalar and structure properties, there will only ever be 1 record per execution, for table input properties there could be multiple records required for a given execution.

Therefore, this property specifies a field in the input which identifies which execution the record belongs to. The field must be present on each of the Scalar, Structure and Table import inputs.

The function to be called cannot change, therefore this does not apply if providing the function via a node input.

For each function execution there must be at least one corresponding record in each of the node inputs for scalar, structure and table import properties. These must also be in order, meaning that if in the scalar properties input the first record contains an execution identifier "A", and in the second record an execution identifier "B", then the same ordering ("A", "B") must appear in all structure and table import property inputs.

OutputExecutionIdentifiers

Optionally specify whether or not the execution identifier field will be written to all of the node outputs.

This cannot be set to true if the ExecutionIdentifierField property is not set.

UnmappableInputBehavior

Optionally specify the action to take when Data360 Analyze input data cannot be coerced to an SAP data format. This can occur either because there is no valid coercion method, or because coerce is set to false. Choose from:

  • Error
  • Log
  • Ignore

The default value is Error.

AdditionalParameterBehavior

Optionally specify the action to take when a scalar property, or a field within a structure property or table property exists in the node properties or node inputs but does not exist in the corresponding SAP BAPI function. Choose from:

  • Error - The node will error
  • Log - An entry will be written to the log for each occurrence of the problem, but the node will continue processing and not attempt to pass the properties to the SAP function.
  • Ignore - No entry will be written to the log for each occurrence of the problem and the node will continue processing and not attempt to pass the properties to the SAP function.

The default value is Error.

UnmappableOutputBehavior

Optionally specify the action to take when SAP data cannot be mapped to a Data360 Analyze data type (e.g. ABAPObject types). Choose from:

  • Error
  • Log
  • Ignore

The default value is Error.

RecoverableErrorBehavior

In some circumstances, a call to an SAP function can complete successfully, however the function will be returned with an exception list.

This generally implies that processing can continue but that there were some errors.

In the case of running non-BAPI RFMs (as an example, the RFC_READ_TABLE function), these errors will always be returned.

This optional property specifies the action to take when such errors occur. Choose from:

  • Error - The node will error with the appropriate error message
  • Log - The node will continue, however the errors will be written to the node log
  • Ignore - Such errors are ignore.

The default value is Log.

PoolCapacity

Optionally specify an integer value specifying the pool capacity for the SAP system when using pooled connections.

The default value is 3.

See: http://docs.oracle.com/cd/E14571_01/doc.1111/e17656/jco_updates.htm

PeakLimit

Optionally specify an integer value specifying the peak limit when using pooled connections to the SAP system.

The default value is 10.

See: http://docs.oracle.com/cd/E14571_01/doc.1111/e17656/jco_updates.htm

Inputs and outputs

Inputs: Multiple optional.

Outputs: Multiple optional.