SAP Transaction Connector
Introduction
This page describes the configuration and usage of the built-in SAP Transaction Connector, aimed at searching and importing SAP Transaction data into Memority, as IM Resources.
The SAP Transaction Connector only manages inbound imports, where data flows from SAP to Memority. This Connector does not support outbound provisioning, i.e. it cannot create or update SAP transactions. So, from the SAP system side, this is a read-only Connector.
The SAP Transaction Connector is a built-in Connector that requires almost no configuration, and goes hand-to-hand with SAP Replication Tasks and the SAP Role Connector, see SAP Role Connector.
If a customer’s environment hosts several SAP systems, then a SAP Transaction Connector must be deployed per SAP system.
Overview
As usual, the SAP Transaction Connector is configured through a ConnectorDefinition referenced by an Application, which is itself referenced by a SynchronizationTaskDefinition, see Application.
Within the Application it is not necessary to explicitly configure AttributeMappingDefinitions matching SAP Transaction attributes, since attribute mappings are provided out-of-the box by the built-in SAP Transaction Connector. Those attribute mappings may be overridden, as explained later.
The built-in SAP Transaction Connector must be coupled with a SAP Replication Task, AKA SapReplicationTaskDefinition
The SAP Replication Task copies SAP Transaction data into a Memority staging area, and this staging area is then read by the SAP Transaction Connector.
If no SAP Replication Task has run prior to a SAP Transaction import, then no SAP Transaction will be found, and nothing will be imported into Memority.
The recommended practice is to configure an OrchestrationTask (see Orchestration Task ), that chains a SapReplicationTask with a SynchronizationTaskDefinition, indirectly referencing the ConnectorDefinition of the SAP Transaction Connector:
.jpg?inst-v=0d3bb6fe-37f4-4da8-aa25-d889db81ab06)
Configuring the SAP Transaction Connector
A sample XML configuration of SAP Transaction Connector is provided in SAP Transaction Connector - Sample Configuration.
To configure the SAP Transaction Connector, just declare a ConnectorDefinition (see Application Connector) with the following characteristics:
Connector class:
com.memority.domino.connector.sap.transaction.SapTransactionConnectorConnector properties: see table below:
SAP Transaction ConnectorDefinition Properties | ||||
|---|---|---|---|---|
Property Name | Type | Mandatory | Description | Values (default in bold) |
| String | Yes | The identifier of the SAP system, which must match the one configured in the | N/A |
| Integer | No | The size of a page of SAP data fetched from the staging area | 5000 |
Using the SAP Transaction Connector
The SAP Transaction Connector imports SAP transactions as IM Resources. When defining usual import configuration elements, such as a SynchronizationTaskDefinition, The class of Transaction objects is fixed to sapTransaction. This is illustrated in the provided SAP Transaction Connector - Sample Configuration.
IM Attribute Mappings
The built-in SAP Transaction Connector maps SAP Transaction properties to IM attributes.
SAP Transaction properties are primarily found in the TSTC SAP table.
Default IM attribute mappings and all SAP Transaction properties exposed by the Connector are listed below.
Default IM attribute mappings may be overridden in the Application configuration, and additional mappings targeting other IM attributes may be also configured, based on exposed SAP Transaction properties, such as program_name.
IM attributes whose identifier starts with sap_ are “protected”, they cannot be updated nor deleted.
IM Attribute | Connector Attribute | IM Type | Mandatory | Multivalued | Description |
|---|---|---|---|---|---|
sap_transactionName | tcode | String | Yes | No | The SAP Transaction identifier |
sap_transactionDescriptionEn | description_e | String | No | No | The English description of the SAP Transaction |
sap_transactionDescriptionFr | description_f | String | No | No | The French description of the SAP Transaction |
N/A | program_name | String | No | No | The name of the ABAP program that is executed when the transaction code is called. Not mapped to an IM attribute by default |
N/A | screen_number | String | No | No | The starting screen number (Dynpro) within the program that should be displayed upon execution. Not mapped to an IM attribute by default |
N/A | menue | String | No | No | A technical flag used to indicate if the entry is related to the SAP menu structure. Not mapped to an IM attribute by default |
N/A | cinfo | String | No | No | A technical RAW field used to store specific control information for how the transaction should behave when called. Not mapped to an IM attribute by default |
N/A | arbgb | String | No | No | Associated message identification, often used for internal system messaging or status handling related to the transaction. Not mapped to an IM attribute by default |
Sample Configuration
This section shows a sample configuration to import SAP Transactions as IM Resources.
Note that:
shadow kind is set to
RESOURCEobject class is set to
sapTransaction
The related SapReplicationTaskDefinition and OrchestrationTaskDefinition have not been represented here, as this sample configuration focuses on SAP Transactions.
<dmn:ConnectorDefinition id="sample_sap_transaction_connector">
<connectorMetadata>
<connectorRef>
<connectorName>com.memority.domino.connector.sap.transaction.SapTransactionConnector</connectorName>
</connectorRef>
</connectorMetadata>
<connectorProperties>
<connectorProperty>
<name>sapInstanceId</name>
<value>SAP01</value>
</connectorProperty>
<connectorProperty>
<name>pageSize</name>
<value>2000</value>
</connectorProperty>
</connectorProperties>
<provisioningGroup>3</provisioningGroup>
</dmn:ConnectorDefinition>
<dmn:Application id="sample_sap_transaction_app">
<name>Sample SAP Transaction App</name>
<connectorId>sample_sap_transaction_connector</connectorId>
<schemaMappingDefinition>
<objectSchemaMappingDefinitions>
<objectSchemaMappingDefinition>
<shadowKind>RESOURCE</shadowKind>
<objectClassId>
<value>sapTransaction</value>
</objectClassId>
<inboundAttributesMappingDefinitions>
<attributeMappingDefinitions/>
</inboundAttributesMappingDefinitions>
</objectSchemaMappingDefinition>
</objectSchemaMappingDefinitions>
</schemaMappingDefinition>
<synchronizationDefinition>
<objectSynchronizationDefinitions>
<objectSynchronizationDefinition>
<shadowKind>RESOURCE</shadowKind>
<objectClassId>
<value>sapTransaction</value>
</objectClassId>
<correlationDefinition>
<simpleCorrelationStrategyDefinition>
<attributeCorrelationDefinitions>
<attributeCorrelationDefinition>
<inputAttributeId>tcode</inputAttributeId>
<idmAttributeId>sap_transactionName</idmAttributeId>
</attributeCorrelationDefinition>
</attributeCorrelationDefinitions>
</simpleCorrelationStrategyDefinition>
</correlationDefinition>
<enabled>true</enabled>
<reactionDefinitions>
<reactionDefinition>
<actions>
<action>SYNCHRONIZE_IDM_OBJECT</action>
</actions>
<name>React to 'linked'</name>
<situation>LINKED</situation>
</reactionDefinition>
<reactionDefinition>
<actions>
<action>SYNCHRONIZE_IDM_OBJECT</action>
<action>LINK</action>
</actions>
<name>React to 'unlinked'</name>
<situation>UNLINKED</situation>
</reactionDefinition>
<reactionDefinition>
<actions>
<action>UNLINK</action>
</actions>
<name>React to 'deleted'</name>
<situation>DELETED</situation>
</reactionDefinition>
<reactionDefinition>
<actions>
<action>ADD_IDM_OBJECT</action>
</actions>
<name>React to 'unmatched'</name>
<situation>UNMATCHED</situation>
</reactionDefinition>
<reactionDefinition>
<actions>
<action>DELETE_APPLICATION_OBJECT</action>
</actions>
<name>React to 'disputed'</name>
<situation>DISPUTED</situation>
</reactionDefinition>
</reactionDefinitions>
</objectSynchronizationDefinition>
</objectSynchronizationDefinitions>
<objectTypeResolutionDefinition>
<defaultObjectTypeId>saptransaction</defaultObjectTypeId>
</objectTypeResolutionDefinition>
</synchronizationDefinition>
</dmn:Application>
<dmn:SynchronizationTaskDefinition id="sample_sap_transaction_sync_task">
<taskType>IMPORT</taskType>
<shadowKind>RESOURCE</shadowKind>
<objectClassId>sapTransaction</objectClassId>
<applicationId>sample_sap_transaction_app</applicationId>
<sortInputData>false</sortInputData>
</dmn:SynchronizationTaskDefinition>