Class BisWrapperPipe

All Implemented Interfaces:
FrankElement, HasApplicationContext, HasName, HasTransactionAttribute, IConfigurable, IForwardTarget, IPipe, IScopeProvider, IWithParameters, IWrapperPipe, NameAware, EventThrowing, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware, org.springframework.context.Lifecycle

@Deprecated @ConfigurationWarning("Please change to EsbSoapWrapperPipe") public class BisWrapperPipe extends SoapWrapperPipe
Deprecated.
Please replace with org.frankframework.extensions.esb.EsbSoapWrapperPipe (not 1:1)
Pipe to wrap or unwrap a message conformable to the BIS (Business Integration Services) standard.

Example request in case of bis provider:

        <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
                <soap:Header>
                        <bis:MessageHeader xmlns:bis="http://www.ing.com/CSP/XSD/General/Message_2">
                                <bis:From>
                                        <bis:Id>PolicyConversion_01_ServiceAgents_01</bis:Id>
                                </bis:From>
                                <bis:HeaderFields>
                                        <bis:ConversationId>1790257_10000050_04</bis:ConversationId>
                                        <bis:MessageId>1790257</bis:MessageId>
                                        <bis:Timestamp>2011-03-02T10:26:31.464+01:00</bis:Timestamp>
                                </bis:HeaderFields>
                        </bis:MessageHeader>
                </soap:Header>
                <soap:Body>
                        <pcr:GetRequest xmlns:pcr="http://www.ing.com/nl/pcretail/ts/migrationauditdata_01">
                                <pcr:PolicyDetails>
                                        <pcr:RVS_PARTY_ID>1790257</pcr:RVS_PARTY_ID>
                                        <pcr:RVS_POLICY_NUMBER>10000050</pcr:RVS_POLICY_NUMBER>
                                        <pcr:RVS_BRANCH_CODE>04</pcr:RVS_BRANCH_CODE>
                                </pcr:PolicyDetails>
                        </pcr:GetRequest>
                </soap:Body>
        </soap:Envelope>
 

The element MessageHeader in the soap header is mandatory.

Example response in case of bis requester:

        <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
                <soap:Header>
                        <bis:MessageHeader xmlns:bis="http://www.ing.com/CSP/XSD/General/Message_2">
                                <bis:From>
                                        <bis:Id>IJA_DB4CONV</bis:Id>
                                </bis:From>
                                <bis:HeaderFields>
                                        <bis:ConversationId>1790257_10000050_04</bis:ConversationId>
                                        <bis:MessageId>rn09ce_0a3b8d2d--33192359_12e588118c1_-612f</bis:MessageId>
                                        <bis:ExternalRefToMessageId>1790257</bis:ExternalRefToMessageId>
                                        <bis:Timestamp>2011-03-02T10:26:31</bis:Timestamp>
                                </bis:HeaderFields>
                        </bis:MessageHeader>
                </soap:Header>
                <soap:Body>
                        <GetResponse xmlns="http://www.ing.com/nl/pcretail/ts/migrationcasedata_01">
                                <CaseData>...</CaseData>
                                <bis:Result xmlns:bis="http://www.ing.com/CSP/XSD/General/Message_2">
                                        <bis:Status>OK</bis:Status>
                                </bis:Result>
                        </GetResponse>
                </soap:Body>
        </soap:Envelope>
 

The elements MessageHeader in the soap header and Result in the soap body are mandatory.

Example element Result in case of an error response:

        <bis:Result xmlns:bis="http://www.ing.com/CSP/XSD/General/Message_2">
                <bis:Status>ERROR</bis:Status>
                <bis:ErrorList>
                        <bis:Error>
                                <bis:Code>ERR6003</bis:Code>
                                <bis:Reason>Invalid Request Message</bis:Reason>
                                <bis:Service>
                                        <bis:Name>migrationauditdata_01</bis:Name>
                                        <bis:Context>1</bis:Context>
                                        <bis:Action>
                                                <bis:Name>SetPolicyDetails_Action</bis:Name>
                                                <bis:Version>1</bis:Version>
                                        </bis:Action>
                                </bis:Service>
                                <bis:DetailList>
                                        <bis:Detail>
                                                <bis:Code/>
                                                <bis:Text>Pipe [Validate tibco request] msgId [Test Tool correlation id] got invalid xml according to schema [....</bis:Text>
                                        </bis:Detail>
                                </bis:DetailList>
                        </bis:Error>
                </bis:ErrorList>
        </bis:Result>
 

If direction=unwrap and one of the following conditions is true a PipeRunException is thrown:

  • Result/Status in the response soap body equals 'ERROR'
  • faultcode in the response soap fault is not empty

Configuration:

attributesdescriptiondefault
namename of the Pipe 
directioneither wrap or unwrapwrap
inputXPath(only used when direction=unwrap) xpath expression to extract the message which is returned. The initial message is the content of the soap body. If empty, the content of the soap body is passed (without the root body) 
inputNamespaceDefs(only used when direction=unwrap) namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of prefix=namespaceuri-definitions 
bisMessageHeaderInSoapBodywhen true, the bis message header is put in the SOAP body instead of in the SOAP header (first one is the old bis standard)false
bisMessageHeaderSessionKey
direction=unwrapname of the session key to store the bis message header from the request in
direction=wrapname of the session key the original bis message header from the request is stored in; used to create the bis message header for the response
bisMessageHeader
bisResultInPayloadwhen true, the bis result is put in the payload (as last child in root tag) instead of in the SOAP body as sibling of the payload (last one is the old bis standard)true
bisConversationIdSessionKey(only used when direction=wrap and the original bis message header from the request doesn't exist) key of session variable to retrieve ConversationId for the bis message header frombisConversationId
bisExternalRefToMessageIdSessionKey(only used when direction=wrap and the original bis message header from the request doesn't exist) key of session variable to retrieve ExternalRefToMessageId for the bis message header frombisExternalRefToMessageId
bisErrorCodeSessionKey(only used when direction=wrap) key of session variable to store bis error code in (if an error occurs)bisErrorCode
bisErrorTextSessionKey(only used when direction=wrap) key of session variable to store bis error text in (if an error occurs). If not specified or no value retrieved, the following error text is derived from the error code:
errorCodeerrorText
ERR6002Service Interface Request Time Out
ERR6003Invalid Request Message
ERR6004Invalid Backend system response
ERR6005Backend system failure response
ERR6999Unspecified Errors
bisErrorText
bisErrorReasonSessionKey(only used when direction=wrap and an error occurs) key of session variable to store bis error reason inbisErrorReason
outputRoot(only used when direction=wrap and an error occurs) name of output root element in the SOAP body. If empty, the input message is used in the response 
outputNamespace(only used when direction=wrap and an error occurs) namespace of the output root element in the SOAP body 
bisServiceName(only used when direction=wrap) name of the bis service; used in the bis error response 
bisActionName(only used when direction=wrap) name of the bis operation; used in the bis error response 

The following attributes are created for the purpose of the migration from IFSA to TIBCO (and will be removed afterwards):

attributesdescriptiondefault
removeOutputNamespaces(only used when direction=unwrap) when set true namespaces (and prefixes) in the output are removedfalse
omitResult(only used when direction=wrap) when true, the Result is omitted and instead of Result/Status 'ERROR' a PipeRunException is thrownfalse
addOutputNamespace(only used when direction=unwrap) when set true the outputNamespace is added to the output root element in the SOAP bodyfalse

Author:
Peter Leeuwenburgh
  • Constructor Details

    • BisWrapperPipe

      public BisWrapperPipe()
      Deprecated.
  • Method Details

    • configure

      public void configure() throws ConfigurationException
      Deprecated.
      Description copied from class: FixedForwardPipe
      Checks for correct configuration of forward.
      Specified by:
      configure in interface IConfigurable
      Overrides:
      configure in class SoapWrapperPipe
      Throws:
      ConfigurationException - in case it was not able to configure the component.
    • doPipe

      public PipeRunResult doPipe(Message message, PipeLineSession session) throws PipeRunException
      Deprecated.
      Description copied from interface: IPipe
      This is where the action takes place. Pipes may only throw a PipeRunException, to be handled by the caller of this object. Implementations must either consume the message, or pass it on to the next Pipe in the PipeRunResult. If the result of the Pipe does not depend on the input, like for the FixedResultPipe, the Pipe can schedule the input to be closed at session exit, by calling Message.closeOnCloseOf(PipeLineSession) This allows the previous Pipe to release any resources (e.g. connections) that it might have kept open until the message was consumed. Doing so avoids connections leaking from pools, while it enables efficient streaming processing of data while it is being read from a stream.
      Specified by:
      doPipe in interface IPipe
      Overrides:
      doPipe in class SoapWrapperPipe
      Throws:
      PipeRunException
    • setInputXPath

      public void setInputXPath(String inputXPath)
      Deprecated.
    • getInputXPath

      public String getInputXPath()
      Deprecated.
    • setInputNamespaceDefs

      public void setInputNamespaceDefs(String inputNamespaceDefs)
      Deprecated.
    • getInputNamespaceDefs

      public String getInputNamespaceDefs()
      Deprecated.
    • setOutputRoot

      public void setOutputRoot(String outputRoot)
      Deprecated.
    • getOutputRoot

      public String getOutputRoot()
      Deprecated.
    • setOutputNamespace

      public void setOutputNamespace(String outputNamespace)
      Deprecated.
      Description copied from class: SoapWrapperPipe
      (only used when direction=wrap) If not empty, this namespace is added to the root element in the soap body
      Overrides:
      setOutputNamespace in class SoapWrapperPipe
    • getOutputNamespace

      public String getOutputNamespace()
      Deprecated.
    • setBisMessageHeaderInSoapBody

      public void setBisMessageHeaderInSoapBody(boolean b)
      Deprecated.
    • isBisMessageHeaderInSoapBody

      public boolean isBisMessageHeaderInSoapBody()
      Deprecated.
    • setBisMessageHeaderSessionKey

      public void setBisMessageHeaderSessionKey(String bisMessageHeaderSessionKey)
      Deprecated.
    • getBisMessageHeaderSessionKey

      public String getBisMessageHeaderSessionKey()
      Deprecated.
    • setBisResultInPayload

      public void setBisResultInPayload(boolean b)
      Deprecated.
    • isBisResultInPayload

      public boolean isBisResultInPayload()
      Deprecated.
    • setBisConversationIdSessionKey

      public void setBisConversationIdSessionKey(String bisConversationIdSessionKey)
      Deprecated.
    • getBisConversationIdSessionKey

      public String getBisConversationIdSessionKey()
      Deprecated.
    • setBisExternalRefToMessageIdSessionKey

      public void setBisExternalRefToMessageIdSessionKey(String bisExternalRefToMessageIdSessionKey)
      Deprecated.
    • getBisExternalRefToMessageIdSessionKey

      public String getBisExternalRefToMessageIdSessionKey()
      Deprecated.
    • setBisErrorCodeSessionKey

      public void setBisErrorCodeSessionKey(String bisErrorCodeSessionKey)
      Deprecated.
    • getBisErrorCodeSessionKey

      public String getBisErrorCodeSessionKey()
      Deprecated.
    • setBisErrorTextSessionKey

      public void setBisErrorTextSessionKey(String bisErrorTextSessionKey)
      Deprecated.
    • getBisErrorTextSessionKey

      public String getBisErrorTextSessionKey()
      Deprecated.
    • setBisErrorReasonSessionKey

      public void setBisErrorReasonSessionKey(String bisErrorReasonSessionKey)
      Deprecated.
    • getBisErrorReasonSessionKey

      public String getBisErrorReasonSessionKey()
      Deprecated.
    • setBisServiceName

      public void setBisServiceName(String bisServiceName)
      Deprecated.
    • getBisServiceName

      public String getBisServiceName()
      Deprecated.
    • setBisActionName

      public void setBisActionName(String bisActionName)
      Deprecated.
    • getBisActionName

      public String getBisActionName()
      Deprecated.
    • setRemoveOutputNamespaces

      public void setRemoveOutputNamespaces(boolean b)
      Deprecated.
      Description copied from class: SoapWrapperPipe
      (only used when direction=unwrap) If true, namespaces (and prefixes) in the content of the soap body are removed
      Overrides:
      setRemoveOutputNamespaces in class SoapWrapperPipe
    • isRemoveOutputNamespaces

      public boolean isRemoveOutputNamespaces()
      Deprecated.
    • setOmitResult

      public void setOmitResult(boolean b)
      Deprecated.
    • isOmitResult

      public boolean isOmitResult()
      Deprecated.
    • setAddOutputNamespace

      public void setAddOutputNamespace(boolean b)
      Deprecated.
    • isAddOutputNamespace

      public boolean isAddOutputNamespace()
      Deprecated.