Take the following example service policy:
<Please see attached file for image>
The intention of this service policy is to evaluate an XPath expression on an inbound request. An included policy fragment is comparing the result of the XPath with a known value. If that comparison passes then a template response is returned to the requestor. This service policy will fail with the following abridged SOAP fault when set to?Full Detail?(with the critical message emboldened):
The following log entries may also be printed:
com.l7tech.server.MessageProcessor: 3017: Policy evaluation for service XPath [8f7ee52efeca68eea4d97afedb90bb8c] resulted in status 601 (Error in Assertion Processing)
com.l7tech.external.assertions.comparison.server.ServerComparisonAssertion: 7103: At least one comparison value was null
com.l7tech.external.assertions.comparison.server.ServerComparisonAssertion: 152: Unsupported variable: requestXpath.result
com.l7tech.server.message: Message was not processed: Error in Assertion Processing (601)
This issue can be resolved by including the?Export Variables from Fragment?assertion to the example policy above. This assertion ensures that the variables created in a particular policy can be exported to other entities (such as Included Policy Fragments, Global Policy Fragments, or the Internal Audit Sink Policy). The example policy with the assertion added and configured would appear as follows:
<Please see attached file for image>
Any context variables checked in the dialog above will be available in some manner in other policy documents when executed during a single message processing attempt. For more information on this functionality, review the Export Variables from Fragment?section of the?Layer 7 Policy Authoring User Manual.