cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP -> XI -> File (Sync)

Former Member
0 Kudos

Hi,

I have a question about the SOAP -> XI -> File scenario. Normally it is quite simple if I have one File receiver here. My scenario is a bit different. The SOAP client need actually to get information from the File Payload. It is logically like the DB server, one SOAP client needs get some information from server and send one soap request to XI, XI perorm one Lookup/Update/ what ever on the JDBC server and send information back to the client. Unfortunately we don't have DB server as interface but only File.

In this case the client send one SOAP request and we cannot say "look at file system at location xyz and get the file back, if there is one". How could we implement this scenario with XI without BPM ?

regards,

Hai

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

hi hai,

we can do like this.

why we use file adapter to make the conevrsions primarly

file format to xml and XML to file format.

if u genrate a web request from a service then we need to pick the respective file for that request and pass it on to web response(SOAP response) this is what i understood.

go for webservice -XI- webservice scenario.

asynch

XI people will publish interface with SOAP request as input.

SOURCE system people will call this interface for getting respective file.

now XI will fetch the respective file through UDF and will pass it to receiver system i.e they are ready to give SOAP resposne.

now source system people should write a program which consumes source response as input.

thereby they will publish webservice which takes the SOAP response and does the needful at the system level.

here SOURCE system is acting both as sender and receiver.

sender for sending file request and reciever for getting the respective data from XI.

there by its a WEBSERVICE-XI-WEBSERVICE asynch scenario.

FILE reciever is replaced because u r gonna take the functionality in UDF.

or u can also go for XSLT mapping.

now

1)GO FOR a Message Mapping

in that give the source message type as SOAP request and taget message type as SOAP response.

and in the message mapping for the UDF(java program) which reads the file with respect to source file and generates the response.

2)create 1 interfaces which takes SOAP request as input

publish this interface which will be consumed by SOURCE system

3)XI will consume a webservice which is published by source system which ll process SOAP response.

interface mapping consiste of iNTERFACE CREATED BY XI and INTERFACE CONSUMED BY XI.

create 2 SOAP ADAPTERS

1)sender

2)receiver.

hope this will give u the picture.

the power lies in XSLT mapping or java mapping or UDF.

think u ll be in right position to judge.

any issue plz revert.

Thanks & Regards,

Rama Krishna

Former Member
0 Kudos

Hi Rama Krishna,

thanks for your reply.

The recommed solution need one SOAP receiver on the System which send the SOAP Request. If we have a SOAP receiver on that system, we could also send the file through the FileSender channel and push the data to the SOAP Server.

If you read the file withing Mapping, you have to delete it or archive it aftewards. This is not safe, in case any exception/error occurs after mapping, the mapping step will be carried out in XI again, if you restart the message, which causes in turn a mapping error, because the file is not there anymore. Actually I am not quite sure, whether there is some restriction for mapping runtime to diened file system access.

Otherwise I could image to use your recommend solution, apart from the restart issue, if I send one SOAP request from the client into XI carry out one Java Mapping and fill the response with the File Payload and send the response directly back to the sender. In this case I don't need one SOAP receiver and the scenario will be still Synchronous, which the client in this case also needed.

best regards,

Hai

Answers (1)

Answers (1)

Former Member
0 Kudos

hi

in configuration wizard select the option tools in that select the option web service and give the url

http://<server name>:<port no>/adapter /sencer com channel/soap adapter

and check again

thanks