on 03-18-2013 11:15 AM
Hello experts!
I need to trigger a sender channel to read a file via file or SFTP adapter. I cannot use BPM...
I know, I can using the external control to start and stop the channel.
But that doesn't serve my requirements because I don't know, when the data arrives in the backend then.
My plan is to send a request via RFC that creates a trigger file and waits for a resonse.
The response is created by another channel, which polls for the trigger file and reads the actual datafile then.
It almost works with the following scenario:
I read http://scn.sap.com/blogs/henrique/2007/08/02/syncasync-scenarios-without-bpm
and https://wiki.sdn.sap.com/wiki/display/XI/File-RFC-File%28Without+BPM%29
but those scenarios don't fit completely...
What I archieved is, that my RFC-function (I'm using STFC_CONNECTION for testing) waits for a response.
For the response, the filename (for testing reason fix HK02.txt) is used as "correlation-ID".
In the RFC-Sender I used this modules to wait for a respnse:
1 | AF_Modules/DynamicConfigurationBean | Local Enterprise Bean | dynConfig |
2 | AF_Modules/DynamicConfigurationBean | Local Enterprise Bean | dynConfig2 |
3 | AF_Modules/RequestOnewayBean | Local Enterprise Bean | request |
4 | RfcAFBean | Local Enterprise Bean | 0 |
5 | AF_Modules/WaitResponseBean | Local Enterprise Bean | waitResponse |
Config:
dynConfig | key.0 | insert http://sap.com/xi/XI/System/File FileName |
dynConfig | key.1 | insert http://sap.com/xi/XI/System/Messaging correlationId |
dynConfig | value.0 | HK02.txt |
dynConfig | value.1 | HK02.txt |
dynConfig2 | key.0 | write http://sap.com/xi/XI/System/Messaging correlationId |
dynConfig2 | value.0 | message.correlationId |
request | passThrough | true |
waitResponse | timeout | 60000 |
[PS: Maybe the correlation Config could be easier, but that's not the issue.]
In my file sender, I used this to notify the RFC:
Module | Key | Comment | ||
1 | AF_Modules/DynamicConfigurationBean | Local Enterprise Bean | dynConfig | |
2 | AF_Modules/RequestResponseBean | Local Enterprise Bean | request | |
3 | CallSapAdapter | Local Enterprise Bean | 0 | When I remove this, notification works! |
4 | AF_Modules/NotifyResponseBean | Local Enterprise Bean | notify |
Config:
dynConfig | key.0 | write http://sap.com/xi/XI/System/File FileName |
dynConfig | value.0 | message.correlationId |
notify | timeout | 60000 |
request | passThrough | true |
The problem now is:
Does anyone have a good idea on this?
Some more example scenario descriptions would be nice!
I think you can break the requirement into two scenarios.
Abap proxy to file and the second scenario is file to abap proxy. Send the trigger using abap proxy from the sap system to PI and pi creates the file in a specified folder. Another scenario is to poll the file and pass it to server proxy. Hope this helps.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Unfortunatly, we cannot use proxies in our system.
This is because we need to connect a different PI system later and maybe connect both systems simultaneously.
Anyway, where's the difference or advantage? My problem is, that I want to send a request and get the response back immediately (as long as it takes, of course) back.
What were are trying is to simply replace a
OPEN DATASET FOR INPUT
in the backend by
CALL FUNCTION xxx REMOTE DESTINATION <PI>.
Another solution would be to trigger the import and then wait until the data arrives in SXMB_MONI.
But I don't like that very much, because you never know how long to wait.
Yes, I know that file is assync.
But that's why I'm trying to use the Sync/Assync Bridge using the modules. It should work somehow...
Unfortunatly, we cannot change all interfaces from file to something else, because it depends on the receiver/sender of the file. We are implementing PI in a large existing system with over more than 100 interfaces. Most of them are files.
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.