cancel
Showing results for 
Search instead for 
Did you mean: 

Receiver SOAP - How to set URL at runtime?

Former Member
0 Kudos

I have configured a Receiver SOAP adapter for sending a cXML message to a vendor in no-soap, keep-headers mode. If I want to extend this to other vendors, I want to set the target URL at runtime. In order to do this, I am able to set the TServerLocation in the Mapping. But in the communication channel, I am not able to select this indicator. I am able to select the 'Use Adapter specific message attributes' and 'Variable Transport Binding' indicators but thats it. I am not displayed any form for selecting the target URL as the field to substitute during runtime. I am using SAP Basis 7.00 for the Adapter Metadata. Does anybody know a work around or patch I need?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello James,

I don't know whether this question is still open, but I have faced the same problem now, so here is my solution:

It is right, that the "Target URL" field has to be filled with some "dummy" value to be able to save+activate the communication channel.

In any other communication channels (e.g. like file adapter) you can fill in the <dummy> value. But at the SOAP receiver it doesn't work.

Instead of <dummy>, if you fill in a real URL address, it will always take it instead of the dynamic one.

My solution is, to fill in only the "http://" value, and it will take your dynamic URL from your UDF. (from the variable TServerLocation)

I hope it helps!

Best regards,

Andras

MichalKrawczyk
Active Contributor
0 Kudos

hi,

- Use Adapter-Specific Message Attributesindicator

- Variable Transport Binding indicator

are enough for this to work

you can test your scenario

Regards,

michal

Former Member
0 Kudos

Michal,

Thanks for the prompt reply. I tried this. In the dynamic configuration under message monitor it is showing the URL being populated for TServerLocation. But in the communication channel if I put a dummy URL in the main URL field (so as to force it to take the dynamically assigned) it fails. Apparently it is still looking at the static URL.

Thanks

MichalKrawczyk
Active Contributor
0 Kudos

hi,

it fails with what error ?

what error do you see in:

http://server:port/MessagingSystem/monitor/monitor.jsp

when the soap call is made?

Regards,

michal

Former Member
0 Kudos

The status goes to waiting where it keeps trying to connect and finally fails. The error message is:

Error Exception caught by adapter framework: no scheme

Error Delivery of the message to the application using connection AFW failed, due to: no scheme

I have given the static url as "*" as I thought it should be any dummy.

bhavesh_kantilal
Active Contributor
0 Kudos

James, this featrure is available only from SP 17 for SOAP adapter. Are you on SP 17?

Regards,

Bhavesh

MichalKrawczyk
Active Contributor
0 Kudos

hi,

URL ? I believe it was much before SP17

(but I can be wrong)

in SP17 you have a new header variables as far as I remember

but not ULR

Regards,

michal

Former Member
0 Kudos

We are on Basis 7.00 service pack 7. The comm. channel does not display any check boxes related to entering header field variables. Is it that we can set them directly in the mapping instead of before we had to set the fixed variable in the mapping (like HeaderOne) and then put the required header variable to map to in the form box so that we could at a time set maybe 6 variables.

bhavesh_kantilal
Active Contributor
0 Kudos

James,

a quick question ~~ when you select ADAPTER SPECIFIC ATTRIBUTES, can you see options like URL , Action etc? I am on Sp14 and I am nt able to see any new field when I select ADAPTER SPECIFIC ATTRIBUTES and thats why i thought maybe we it is a part of SP 17 only.

Regards,

Bhavesh

Former Member
0 Kudos

Bhavesh,

No. The only option I see is for the Transport Binding. I have selected that too (though not sure if it is related). I can see that TServerLocation is set to my required URL dynamically but how to make the comm. channel look at this variable rather than the static field (which is mandatory so I have to enter some dummy).