How to assign resourceURL dynamically in AssignMessage Policy

Hi Team,

I want to return WSDL dynamically based on the resource path with in same proxy dynamically. For now i can only return by explicitly mentioning the resourceURL.

I want to create the variable and assign URL - this logic i know how to do

Now i am not able to mention that variable in resourceURL.

Could you please advise ?

<AssignMessage name="AM-WSDLResponse"> 
  <Set> 
    <Payload contentType="text/xml"
             resourceURL="template://test.wsdl"/>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> 
  <AssignTo
      createNew="false" transport="http" type="response"/>
</AssignMessage>
1 6 434
6 REPLIES 6

Not applicable

you can use Assign Variable with Ref tag.

You can use Template as well.

<AssignVariable>
    <Name>variable_name</Name>
    <PropertySetRef>source_variable</PropertySetRef>
    <Ref>source_variable</Ref>
    <Template>message_template</Template>
    or
    <Template ref='template_variable'></Template>
    <Value>variable_value</Value>
  </AssignVariable>

I do not know of a way to do what you want today, unfortunately.

There is a feature coming, which will allow it. ref: b/155436526

The way it will work:

<AssignVariable>
  <Name>variable_name</Name>
  <ResourceURL>wsdl://something.wsdl</ResourceURL>
</AssignVariable>

What this will do is assign the text content of that WSDL file to the named variable. The text within the ResourceURL element itself is a message template, so you will be able to do this:

<AssignVariable>
  <Name>variable_name</Name>
  <ResourceURL>wsdl://{a_variable_here}.wsdl</ResourceURL>
</AssignVariable>

This is not yet available in Apigee cloud. Coming soon.

Thank you Dino..do you know when this feature will be avilable

IF YOU ARE ON Apigee X, I am estimating that it will be available very soon. I don't know exactly when. Perhaps a few weeks.

For other versions of Apigee, it will take much longer.

Hi , is this feature available now

Yes it is, please try it out.  Let me know.