SAP RFC activity¶
Introduction¶
An SAP RFC (Remote Function Call) activity is a special type of function module used in SAP applications to communicate with remote servers. The SAP RFC activity executes a function in SAP and is used in an operation. After configuring an SAP connection, you can configure as many SAP RFC activities as you like for each SAP connection.
Note
SAP RFCs that declare tables using CHANGING
parameters are not supported. Tables must be declared using TABLES
parameters.
Create an SAP RFC activity¶
An instance of an activity is created from a connection using an activity type.
To create an instance of an activity, drag the activity type to the design canvas or copy the activity type and paste it on the design canvas. For details, see Creating an activity instance in Component reuse.
An existing activity can be edited from these locations:
- The design canvas (see Component actions menu in Design canvas).
- The project pane's Components tab (see Component actions menu in Project pane Components tab).
Accessing menu actions¶
Menu actions for an activity are accessible from the project pane and the design canvas. For details, see Activity actions menu in Connector basics.
Configure an SAP RFC activity¶
Follow these steps to configure an SAP RFC activity:
Step 1: Enter basic information and select an rfc function¶
-
Name: Enter a name to use to identify the SAP RFC activity. The name must be unique for each RFC activity and must not contain forward slashes (
/
) or colons (:
). -
Select an RFC Function Name: This section displays the RFC functions available in the SAP endpoint. When reopening an existing activity configuration, only the selected RFC function is displayed instead of reloading the entire function list.
Note
SAP functions that declare tables using
CHANGING
parameters are not supported. Tables must be declared usingTABLES
parameters.- Selected RFC Function: After a function is selected, it will be listed here.
- Search: Enter any column's value into the search box to filter the list of functions. The search is not case-sensitive. If functions are already displayed within the table, the table results will be filtered in real time with each keystroke. To reload functions from the endpoint when searching, enter search criteria and then refresh, as described below.
- Refresh: Click the refresh icon or the word Refresh to reload functions from the SAP endpoint. This may be useful if you have recently added functions to the SAP instance. This action refreshes all metadata used to build the table of functions displayed in the configuration.
- Select an RFC Function: Within the table, click anywhere on a row to select a function. Only one function can be selected. The information available for each function is fetched from the SAP endpoint:
- Name: The RFC function name from SAP.
- Description: The RFC function description from SAP.
Tip
If the table does not populate with available functions, the SAP connection may not be successful. Ensure you are connected by reopening the connection and retesting the credentials.
-
Save & Exit: If enabled, click to save the configuration for this step and close the activity configuration.
-
Next: Click to temporarily store the configuration for this step and continue to the next step. The configuration will not be saved until you click the Finished button on the last step.
-
Discard Changes: After making changes, click Discard Changes to close the configuration without saving changes made to any step. A message will ask you to confirm that you want to discard changes.
Step 2: Review data schema¶
-
Data Schema: The request and response data schemas for SAP will be displayed. If the operation uses a transformation, the data schemas will be displayed again later during the transformation mapping process, where you can map to target fields using source objects, scripts, variables, custom values, and more.
Refer to the SAP Help Portal and engage with your SAP administrator or SAP consultant for information on BAPI, RFC, and IDoc schema fields.
Important
If a custom RFC is selected, you must set the request field
BAPI_COMMIT
totrue
to commit the transaction. -
Refresh: Click the refresh icon or the word Refresh to regenerate schemas from the endpoint. This action also regenerates the schema in other locations throughout the project where the same schema is referenced, such as in an adjacent transformation.
-
Back: Click to temporarily store the configuration for this step and return to the previous step.
-
Finished: Click to save the configuration for all steps and close the activity configuration.
-
Discard Changes: After making changes, click Discard Changes to close the configuration without saving changes made to any step. A message will ask you to confirm that you want to discard changes.
Next steps¶
After configuring an SAP RFC activity, complete the configuration of the operation by adding and configuring other activities, transformations, or scripts as operation steps. You can also configure an operation's operation settings, which include the ability to chain operations together that are in the same or different workflows.
SAP RFC activities can be used as a target with these operation patterns: - Transformation pattern - Two-transformation pattern (as the first or second target)
Operations that contain an SAP activity can only have one SAP activity and cannot also contain any NetSuite, Salesforce, Salesforce Service Cloud, ServiceMax, or SOAP activities. Note that there is currently a known issue where operations that contain more than one of these types of activities appear to be valid and are able to be deployed without error. However, the operation will fail at runtime.
Other patterns are not valid using SAP RFC activities. See the validation rules on the Operation validity page.
To use the activity with scripting functions, write the data to a temporary location and then use that temporary location in the scripting function.
When ready, deploy and run the operation and validate behavior by checking the operation logs.
Troubleshooting¶
If you receive the error JCoException occurred No RFC authorization for function module BAPI_TRANSACTION_COMMIT
when executing a custom Rfc activity, follow these steps:
- Ensure the RFC function module
BAPI_TRANSACTION_COMMIT
is remote-enabled. - In a request transformation preceding the activity, set the field
BAPI_COMMIT
totrue
. - Check that the SAP user used in the SAP connection has the
S_RFC
authorization permission for all related function groups.