DataPower では、着信要求の SOAP アクションを読み取る必要があります。読み取ったら、区切り記号の後の最後の文字列を抽出して変数に保存する必要があります。次に、SoapAction を変更し、Datapower の外部に送信されるすべてのリクエストに対して新しい値を設定する必要があります。
私は持っている
SOAPAction="http://service.example.com/version10_1/getMessage"
私はそれが欲しい
SOAPAction="http://service.example.com/version11_1/getMessage"
以下のような関数を使用するアイデアがあります。1.ヘッダーから値「getMessage」を部分文字列にする方法を提案してください。変数に保存してさらに使用したい.. バージョンのみがバージョン 10_1 から 11_1 に変更されます。
<xsl:template name="HeaderChange">
<xsl:variable name="IncomingRequest" select="dp:request-header('SOAPAction')"/>
<xsl:variable name="Mymethod"><xsl:value-of select=(get the getMessage here)/></xsl:variable>
<dp:set-http-request-header name="SOAPHeader" value="'to modify old SOAPAction'"/>
<dp:freeze-headers/>
</xsl:template>