Hi,
we are using the function a!sapInvoke to integrate with SAP throught RFC. Weeks ago, the integration worked and we received the results expected.
For development requirements, external system add some parameters and change the lenght of some text fields (from 20 to 25).
After those changes, we receive errors on specific fields, but the return message gives a value that doesn't match the one sent.
So, we check with external system and the problem is on all fields.
For example, if we pass the parameter of the below images, external system receive as key1 the value "ABC/AAA/456789001/20ABC". It seems it takes the first 20th char and then take the others from key2.
ICould you help us to understand the nature of the problem, please?
Thanks in advance.
Regards
Discussion posts and replies are publicly visible
Hi jurim077147 ,This appears to be a metadata mismatch between Appian and SAP, rather than an issue with the a!sapInvoke() expression itself.
a!sapInvoke()
Since the integration worked before and only started failing after the SAP team increased the length of some fields (e.g., from CHAR(20) to CHAR(25)), it's likely that Appian is still using the old RFC metadata. As a result, SAP reads the incoming data with incorrect field offsets, causing values from one parameter (e.g., KEY2) to spill into another (KEY1).
CHAR(20)
CHAR(25)
KEY2
KEY1
I recommend verifying the following:
The behavior you described (where KEY1 contains the first part of its value followed by characters from KEY2) is a typical symptom of an RFC structure definition mismatch between the two systems.Let me know if that helps.