on 06-09-2015 6:47 AM
Hi!
In my graphical mapping I use RFC Lookup function to get data from SAP system.
In development system it works fine, but in productive it returns a pair of values instead of one value. I checked queues for inbound parameters - they all contain only one value for the context. But when I check execution log at "Test" tab of mapping I see that RFC function is called twice - one time with values from inbound queues and the second time - with empty request message. I have only one segment with data which is used as source for inbound parameters.
The only difference between development and productive systems is that development system runs on PI 7.31 and productive system - on PI 7.1.
The versions of mapping and RFC definition are the same in both systems.
Any ideas, please?
Hi Evgeniy,
Just a couple of comments. I've had the same behavior when executing the graphical RFC lookup in our 7.11 system except that the blank line comes on the first line. However, this was not present on one of our FMs so I decided to investigate.
In the FM that had two lines, the output was taken from the TABLES part in the FM definition. In the FM without the blank line, the output was taken from the exporting parameter of the FM. I think this behavior was fixed in PI 7.3 but I could be wrong.
PS: Can you confirm if the FM is called twice by checking in RWB cc monitoring? It should have two different message ids executed at the same time.
Regards,
Mark
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Evgeniy,
This is a really weird issue. Have you checked Mark suggestion if there are two or one calls?
Have you tried to test your RFC manually on the ABAP system and to check that it returns really one value?, may be in production there is an empty value recorded accidentally.
On the other hand there is a note about similar issues 2096837 - Control the use of values from previous context in the message mapping, but i would contact first with SAP by OSS talking your issue before to apply any patch.
Regards.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes, there are two calls. RFC function returns single value and accepts single values as Import parameters. I've checked RFC in SE37 - it returns one value. And from test log I see two calls:
And one more difference I see is the RFC Lookup output queue first value. In case of development system it's initial context change with value "null" and in productive system it shows "__cC_" value.
This also seems strange to me.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
And there are two messages for RFC Lookup in RFC receiver channel
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Evgeniy,
You have an example here http://wiki.scn.sap.com/wiki/display/Snippets/User-defined+Mapping+Function+for+RFC+Lookup
However, in my opinion is not a good idea to develop your own RFC lookup, this can generate several support issues in the future. I think if you are sure that you are not generating empty values to the sender parameters you should open an OSS assistance to SAP.
Regards.
No, still no luck
It uses empty request even after I inserted IFWithoutElse condition before calling RFC Lookup.
RFC uses export parameter to return value. No TABLES are used.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have a quess about this situation.
I use IFWithoutElse function while setting parameters for RFC Lookup to use only segment with particular data inside. But I guess now that RFC is called for other segment too without parameters as they don't meet the condition. I'm gonna check it out now.
But it's strange why it's called only once in development system. Or it's a different behavour of RFCLookup in PI 7.3?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Evgeniy,
In production enviroment you are passing an empty value to the queues, try to use IF without Else asking in the IF condition the value is differente that the empty one.
I don't know if with RemoveContext+CollapseContext will work, you can try it.
Regards
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.