cancel
Showing results for 
Search instead for 
Did you mean: 

synch scenario question

Former Member
0 Kudos

Hello,

I have following scenario.

SOAP (Request) -


> XI -


> RFC(Receiver)

SAOP (response) <----- XI <--


RFC

The above is synch. scenario.

This scenario is used by several clients. Now my question is as follows.

When a specific client request comes through, I do not want to map specific feilds in the mapping.

How would I do this?

I appreciate your help.

Thank you,

Balaji

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

By using the sender function you can get the sender information.

In functions we have sender is there by adding this function to one field in the target system then automaticallu you will get the sender information.

suppose sender is add to one field suppose it is a(sender---->a) then automatically a will get the sender information.

Former Member
0 Kudos

Ramesh,

Thank you for the information. I have looked at Sender function in the constants and found out the value it gives you is the Service name (either business service or business system).

I am looking for where the messgae was sent from (request sent from). The end client who invokes the SOAP adapter could be AS400 or some standalone java application. I am looking for either ipaddress or dnsname form which the request was originated.How do I get it?

Thank you,

Balaji

Former Member
0 Kudos

>>I am looking for either ipaddress or dnsname form which the request was originated.How do I get it?

As far as i know,you can't get this information until and unless it comes in the sender payload.best option would be to use separate business service for different clients.in that way the standard function "Sender" will help you out,otherwise the sender system must send his ip or DNS.

secondly most of the companies do IP masking so you won't be able to get correct IP as well.

Thanx

Aamir

Former Member
0 Kudos

You can handle this in the mapping by using constant SENDER.

And do a conditional field manipulation with that

Answers (2)

Answers (2)

Former Member
0 Kudos

Hey,

In this case if you have client value is one of the fields then it becomes very easy for you.

you just need to compare the client field with the client number for which you want to by pass the values.

for example,

if there is say employee number, and you want to send it only for client 400, 500 and 600. then

your mapping for the field employee number will include an if condition like this.

if-->client(field) equals 400 or client(field) equals 500 or client(field) equals 600 then employee number.

use ifwithouelse function provided by XI.

in case you have many clients and graphical mapping becomes tedious you can also write a user defined function.

Former Member
0 Kudos

Milan,

Thank you for the nformation. How would I get client information sending request? I do not want to create attribute as part of Data type.

Once I know the client numbers I can filter mapping.

Thanky ou,

Balaji

Former Member
0 Kudos

Hi,

there are two ways where you can handle this.

Either specify the condition in the mapping itself if the fields are few.

else have two mapping programs and specify conditions followed by client request.

If you still want to controlmore, use BPM.

Former Member
0 Kudos

Krishnan,

Thank you for the information, I do not want to use multiple mapping. Also I htought about BPM and would be our last avenue.

Balaji

Former Member
0 Kudos

Hey

There is a constant function called "Sender" in message mapping,use that value in a UDF and do the desired message mapping for that specific sender.

Thanx

Aamir

Former Member
0 Kudos

Aamir,

Thank you for the information, using constant function Sender, how would I get sender information (in my scenario the client would be as400, do I get AS400 ipaddress or dns name).

Please let me know.

Thank you,

Balaji