SAP JCo Account
In this article
Overview
You can use this account type to connect SAP Snaps with data sources that use SAP JCo account. The SAP JCo Account connects to an application server (ASHOST - Application Server Host). Learn more.
Ensure that your SAP instance is configured to work with the Snap Pack.
Prerequisites
None.
Known Issues
In version 4.28 (main14627
), the SAP Snap Pack's bundled JCo library was upgraded to 3.1.4. Prior to that, version 3.0.6 was used.
In version 3.0.21 of SAP:
The default login behavior of the JCo library changed.
The default value of property
jco.client.snc_sso
was changed from 0 to 1 (enabled).
The above changes will impact your pipelines if you use a username/password for RFC login. Login would work with the SAP Snap Pack versions before 4.28 but will fail with versions 4.28 or later.
The following workarounds can help mitigate the issues:
Add the
jco.client.snc_sso
JCo property with a value of0
(disabled). If the account still fails with a "Name or password is incorrect (repeat logon)
" error, even after adding this property, then reach out to the SAP team to enable the option "Permit Password Logon SAP GUI" for that specific user.Select the Permit Password Logon for SAP GUI (User-Specific) in SAP portal.
The permit password option is effective only if the profile parameter snc/accept_insecure_gui
is set to U. (Unsecure login is permitted for specific users).
Behavior change
The 4.38 GA main27765
Snap Pack version that included the SAP library upgrade introduced the following behavior change:
In JCo 3.1.4
, if a decimal number couldn't be stored in a BCD field, it was rounded, resulting in a loss of precision. This behavior was removed in JCo 3.1.9, and instead, a conversion error is raised when this condition is detected.
Here's an example of a conversion error:
Cannot convert value '1035.1532177250149'
from type java.math.BigDecimal to type BCD field ZINV_AMT in record ZINVENTORY
Note from SAP documentation mentioned in SAP Note 3446411 (Version: 4, Released On: 04.04.2024):
This happened at calling API method
JCoRecord.setValue([name|index], BigDecimal)
for a type BCD field or parameter, if the fraction part of the providedjava.math.BigDecimal
value had too many digits to fully fit into the BCD field. In this case, the providedBigDecimal
value was unintentionally rounded instead of throwing an appropriateConversionException
for notifying the caller about the value not fitting into the BCD field. Hence, there might have been an unnoticed loss of precision.
Workaround:
Before passing the parameter value to SAP, modify the value by rounding or truncating to ensure it fits into the target BCD field.
Account Settings
Asterisk (*): Indicates a mandatory field.
Suggestion icon (): Indicates a list that is dynamically populated based on the configuration.
Expression icon ( ): Indicates whether the value is an expression (if enabled) or a static value (if disabled). Learn more about Using Expressions in SnapLogic.
Add icon ( ): Indicates that you can add fields in the fieldset.
Remove icon ( ): Indicates that you can remove fields from the fieldset.
Field Name | Field Type | Description | |
---|---|---|---|
Label*
Default Value: None | String | Specify a unique name for the account instance.
| |
Username
Default Value: N/A | String | Specify the SAP username. For SAP SNC authentication, Username is not required for authentication through SAP SNC. If you define values in the Advanced JCo properties, leave the Username field blank. | |
Password
Default Value: N/A | String | Specify a password for the username. | |
Language*
Default Value: N/A | String | Specify the SAP language code corresponding to the | |
Client*
Default Value: N/A | String | Specify the SAP client to use corresponding to the | |
Application server*
Default Value: N/A | String | Specify the SAP ABAP application server address corresponding to the | |
System number*
Default Value: N/A | String | Specify the system instance number of the SAP ABAP application server corresponding to | |
Peak limit*
Default Value: 5 | String | Specify the maximum number of active connections that can be created simultaneously for a destination. | |
Connection pool capacity*
Default Value: N/A | String | Specify the maximum number of idle connections kept open by the destination. No connection pooling takes place when the value is 0. | |
Router String
Default Value: N/A | String | Specify the SAP Router string required for making connections to systems that are behind the SAP Router. An SAP router string contains a chain of SAP routers with their port numbers and has the form | |
Enable trace
Default Value: Deselected | Checkbox | Activates the JCo traces to get more information that can help analyze the connection-related errors.
| |
Reload Metadata on Validate
Default Value: Deselected | Checkbox | Select this checkbox to clear the JCo Metadata cache on the plex node before validating the account.
| |
Advanced JCo Client Properties | Use this field set to define JCo parameters and respective values for SAP Secure Network Communications (SNC) authentication. | ||
Property Name
Default Value: N/A
| String/Expression/Suggestion | Specify the name of the JCo parameter to be passed for SAP SNC authentication. Alternatively, select the parameter from the Suggestions dropdown list list.
| |
Property Value
Default Value: N/A
| String/Expression | Specify the value for the JCo parameter for SAP SNC authentication. If you define the JCo parameters at a Pipeline-level, pass the pipeline parameter names as expressions. |
Troubleshooting
Error | Reason | Resolution |
---|---|---|
| The rounding behavior in JCo 3.1.4 allowed processing " | Modify the parameter value by rounding or truncating to ensure it fits into the target BCD field before passing it to SAP. |
Pipeline failed to prepare.
| Dependent native library not found or could not be resolved. Could not initialize the account <account-name>. |
|
Could not initialize account.
| Native library | Ensure that the required native library is installed on each node of the Snaplex. |
Caused by: | This error might result from using pooling parameters with values that are too low. | If you encounter the JCo error, increase the pooling parameters (Peak limit, Connection pool capacity).
|
Snap Pack History
Related Content
Have feedback? Email documentation@snaplogic.com | Ask a question in the SnapLogic Community
© 2017-2024 SnapLogic, Inc.