Conditional Branch Node in OSB

Hi There,
I'm trying to set a Conditional Branch in the beginning of my Proxy Service, i'm trying to compare to fields of the body, but when i build the xpath to compare this 2 fields i'm obtaining a compilation error.
My xpath line is :
fn:compare(./cre:Trace_PM/trac:Trace_PM/trac:traceLevel/text(), ./cre:Trace_PM/cre:Level/text())
And the error is :
XPath expression invalid, not a selection: declare namespace trac = 'http://www.ferrovial.es/XSD/Trace';
declare namespace cre = 'http://www.ferrovial.es/XSD/CreateTrace_PM';
declare namespace jca = 'http://www.bea.com/wli/sb/transports/jca';
declare namespace wsp = 'http://schemas.xmlsoap.org/ws/2004/09/policy';
declare namespace jms = 'http://www.bea.com/wli/sb/transports/jms';
declare namespace wsa05 = 'http://www.w3.org/2005/08/addressing';
declare namespace tp = 'http://www.bea.com/wli/sb/transports';
declare namespace jejb = 'http://www.bea.com/wli/sb/transports/jejb';
declare namespace xs = 'http://www.w3.org/2001/XMLSchema';
declare namespace sftp = 'http://www.bea.com/wli/sb/transports/sftp';
declare namespace flow = 'http://www.bea.com/alsb/flow/transport';
declare namespace soap-env = 'http://schemas.xmlsoap.org/soap/envelope/';
declare namespace wsu = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd';
declare namespace dsp = 'http://www.bea.com/dsp/transport/sb';
declare namespace ejb = 'http://www.bea.com/wli/sb/transports/ejb';
declare namespace wsa = 'http://schemas.xmlsoap.org/ws/2004/08/addressing';
declare namespace bpel-10g = 'http://www.bea.com/wli/sb/transports/bpel10g';
declare namespace tuxedo = 'http://www.bea.com/wli/sb/transports/tuxedo';
declare namespace file = 'http://www.bea.com/wli/sb/transports/file';
declare namespace ctx = 'http://www.bea.com/wli/sb/context';
declare namespace fn = 'http://www.w3.org/2004/07/xpath-functions';
declare namespace soap12-enc = 'http://www.w3.org/2003/05/soap-encoding';
declare namespace soap12-env = 'http://www.w3.org/2003/05/soap-envelope';
declare namespace fn-bea = 'http://www.bea.com/xquery/xquery-functions';
declare namespace ws = 'http://www.bea.com/wli/sb/transports/ws';
declare namespace soa-direct = 'http://www.bea.com/wli/sb/transports/soa';
declare namespace http = 'http://www.bea.com/wli/sb/transports/http';
declare namespace email = 'http://www.bea.com/wli/sb/transports/email';
declare namespace ftp = 'http://www.bea.com/wli/sb/transports/ftp';
declare namespace sb = 'http://www.bea.com/wli/sb/transports/sb';
declare namespace xsd = 'http://www.w3.org/2001/XMLSchema';
declare namespace soap-enc = 'http://schemas.xmlsoap.org/soap/encoding/';
declare namespace xsi = 'http://www.w3.org/2001/XMLSchema-instance';
fn:compare(./cre:Trace_PM/trac:Trace_PM/trac:traceLevel/text(), ./cre:Trace_PM/cre:Level/text()).
I was checking in the forum and i found a similiar issue but i saw that it was not answered. Do you know which is the reason to this issue in conditional branchs on OSB?
Regards
Yuri

Hi Yuri,
From the OSB documentation -
Conditional branching is driven by a lookup table with each branch tagged with a simple, but unique, string value. A variable in the message context is designated as the lookup variable for that node, and at run time, its value is used to determine which branch to follow. If no branch matches the value of the lookup variable, the default branch is followed. You should design the proxy service in such a way that the value of the lookup variable is set before reaching the branch node.Does your case fulfill above criteria? Please let us know your use case in detail.
Regards,
Anuj

Similar Messages

  • Error using conditional branch node in OSB

    Hi,
    We are using Oracle Service Bus in our project. I have created the following steps in the OSB Proxy Service:
    1) Assigning a value in a variable inside a request pipeline.
    2) I am using a Conditional Branch after the pipelined pair. The branching will happen according to the value of that variable, I assigned in the pipelined pair.
    Here we are getting an error in OSB test console:
    The invocation resulted in an error: Unknown error while processing message for service ProxyService MHEducation/CCAuthorization/CCAuthorizationProxyService.
    I am getting the following log in the console:
    <Nov 5, 2009 6:14:04 PM IST> <Error> <OSB Kernel> <BEA-382016> <Failed to instantiate router for service ProxyService MHEducation/CCAuthorization/CCAuthorizationProxyService: com.bea.wli.sb.management.BrokerManagementException: com.bea.wli.
    sb.stages.StageException: The xquery cannot have an unbound current node.com.bea.wli.sb.management.BrokerManagementException: com.bea.wli.sb.stages.StageException: The xquery cannot have an unbound current node.
    at com.bea.wli.sb.pipeline.BranchNode.<init>(BranchNode.java:89)
    at com.bea.wli.sb.pipeline.RouterCompiler.compileNode(RouterCompiler.java:129)
    at com.bea.wli.sb.pipeline.RouterCompiler.compileFlow(RouterCompiler.java:115)
    at com.bea.wli.sb.pipeline.Router.<init>(Router.java:135)
    at com.bea.wli.sb.pipeline.RouterCompiler.compileRouter(RouterCompiler.java:89)
    Truncated. see log file for complete stacktrace
    com.bea.wli.sb.stages.StageException: The xquery cannot have an unbound currentnode.
    at com.bea.wli.sb.stages.expressions.ExpressionHelper.validateXQuery(ExpressionHelper.java:481)
    at com.bea.wli.sb.stages.expressions.ExpressionHelper.validate(ExpressionHelper.java:59)
    at com.bea.wli.sb.stages.expressions.ExpressionHelper.getExecutor(ExpressionHelper.java:325)
    at com.bea.wli.sb.stages.expressions.ExpressionBuilderImpl.getExecutor(ExpressionBuilderImpl.java:151)
    at com.bea.wli.sb.stages.expressions.ExpressionBuilderImpl.getExecutor(ExpressionBuilderImpl.java:143)
    Truncated. see log file for complete stacktrace
    >
    Any suggestion why am I getting the error?
    Chandrachur.

    check if your conditional branch uses quotes around the compaired value
    so
    /body/myinput = 'myvalue' instead of
    /body/myinput = myvalue

  • Unable to use X Query function in  the conditional branch of Proxy Service

    Hi all,
    I need to check the string length of a node then depending on that have to call two different business services. i have added a conditional branch inside
    the proxy service. Now when I use the below expression in the I get an error
    fn:string-length(./braz:BrazilianPropertyAddress/braz:postcode)
    in variable i have given body
    I am getting the following error
    X path expression invalid not a selection declare namespace jca ="" ......................
    If I give the expression without any stringlength function there is no problem
    Kindly help

    Hi Anuj,
    Tried with text() its still throwing the same error
    [BranchNode1] Conditional branch node specifies an invalid xpath: An error was reported compiling the XPath expression: XQuery exception: line 32, column 18: {err}XP0008 [{bea-err}XP0008a]: Variable "$body" used but not declared for expression: declare namespace jca = 'http://www.bea.com/wli/sb/transports/jca';
    declare namespace wsp = 'http://schemas.xmlsoap.org/ws/2004/09/policy';
    declare namespace jms = 'http://www.bea.com/wli/sb/transports/jms';
    declare namespace tp = 'http://www.bea.com/wli/sb/transports';
    declare namespace xs = 'http://www.w3.org/2001/XMLSchema';
    declare namespace sftp = 'http://www.bea.com/wli/sb/transports/sftp';
    declare namespace flow = 'http://www.bea.com/alsb/flow/transport';
    declare namespace jpd = 'http://www.bea.com/wli/sb/transports/jpd';
    declare namespace soap-env = 'http://schemas.xmlsoap.org/soap/envelope/';
    declare namespace wsu = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd';
    declare namespace dsp = 'http://www.bea.com/dsp/transport/sb';
    declare namespace ejb = 'http://www.bea.com/wli/sb/transports/ejb';
    declare namespace wsa = 'http://schemas.xmlsoap.org/ws/2004/08/addressing';
    declare namespace bpel-10g = 'http://www.bea.com/wli/sb/transports/bpel10g';
    declare namespace tuxedo = 'http://www.bea.com/wli/sb/transports/tuxedo';
    declare namespace file = 'http://www.bea.com/wli/sb/transports/file';
    declare namespace ctx = 'http://www.bea.com/wli/sb/context';
    declare namespace fn = 'http://www.w3.org/2004/07/xpath-functions';
    declare namespace soap12-enc = 'http://www.w3.org/2003/05/soap-encoding';
    declare namespace soap12-env = 'http://www.w3.org/2003/05/soap-envelope';
    declare namespace fn-bea = 'http://www.bea.com/xquery/xquery-functions';
    declare namespace ws = 'http://www.bea.com/wli/sb/transports/ws';
    declare namespace http = 'http://www.bea.com/wli/sb/transports/http';
    declare namespace email = 'http://www.bea.com/wli/sb/transports/email';
    declare namespace ftp = 'http://www.bea.com/wli/sb/transports/ftp';
    declare namespace sb = 'http://www.bea.com/wli/sb/transports/sb';
    declare namespace xsd = 'http://www.w3.org/2001/XMLSchema';
    declare namespace soap-enc = 'http://schemas.xmlsoap.org/soap/encoding/';
    declare namespace xsi = 'http://www.w3.org/2001/XMLSchema-instance';
    declare namespace b = 'http://xmlns.oracle.com/B';
    declare namespace add = 'http://schemas.xmlsoap.org/ws/2003/03/addressing';
    fn:string-length($body/b:BProcessRequest/b:b/text())..

  • Extracting node value from XPath Expression in OSB Conditional Branch

    HI All
    While using conditional branch in OSB,i only get an XPath Expression editor to set a variable used to test a condition.
    Now let's say my request is
    <Body>
    <exam:PersonSearchReq xmlns:exam="http://www.example.org">
    <exam:RequestorSSO>James</exam:RequestorSSO>
    </exam:PersonSearchReq>
    </Body>
    I write my XPath expression as :
    ./exam:PersonSearchReq/exam:RequestorSSO/text()
    Now if I test this using the tester application , insted of getting node value 'James' ,i get the entire node element ,i.e
    <exam:RequestorSSO xmlns:exam="http://www.example.org">James</exam:RequestorSSO>
    Please suggest how can i extract the text value.
    Regards,
    Chinmay

    Hi Guys
    Actually it turns out that you need to populate In-Variable to function is correctly.As soon as i entere 'body' in it,it worked fine.
    Thanks
    Chinmay

  • OSB conditional branches

    Hi,
    I have problem with conditional branches in OSB.
    I have 2 business services and 1 proxy service which route message to one of 2 business services.
    Conditional branch look like this:
    XPath: ./ter:process/ter:provider
    In Variable: provider
    TerminalKingBranch look like this:
    Label: TerminalKing
    Operator: =
    Value: "King"
    Message is never routed by TerminalKingBranch even message is <ter:process><ter:provider>King</ter:provider></ter:process>
    I try repalce double quotes with single quotes without effect.
    Message is always routed by Default route node.
    Please help.
    Thanks.

    <?xml version="1.0" encoding="UTF-8" ?>
    <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/project/TerminalService/TerminalService"
    xmlns:tns="http://xmlns.oracle.com/project/TerminalService/TerminalService"
    xmlns="http://www.w3.org/2001/XMLSchema">
    <element name="process">
    <complexType>
    <sequence>
    <element name="provider" type="string"/>
    <element name="serviceId" type="decimal"/>
    <sequence>
    <element name="param1" type="string"/>
    <element name="param2" type="string"/>
    <element name="param3" type="string"/>
    </sequence>
    </sequence>
    </complexType>
    </element>
    <element name="processResponse">
    <complexType>
    <sequence>
    <element name="status" type="string"/>
    </sequence>
    </complexType>
    </element>
    </schema>
    This is View Stage Configuration      : Route Node
    Route to [ TerminalService ] invoking [ process ]
    Request Actions:
    Assign [ XQuery Resource... ]
    XQuery Resource: Project/Processes/TerminalService/TerminalServiceRequest Variable Names And Bindings: source - $body/ter:process
    to [ transformedRequest ]
    Replace [ node contents ] of [ . ]
    in [ body ] with [ $transformedReq... ]
    $transformedRequest
    Response Actions:
    Assign [ XQuery Resource... ]
    XQuery Resource: Project/Processes//TerminalService/TerminalServiceResponse Variable Names And Bindings: sourceProcessResponse - $body/ter:processResponse
    to [ transformedResponse ]
    Replace [ node contents ] of [ . ]
    in [ body ] with [ $transformedRes... ]
    Edited by: Peter551059 on Jun 9, 2011 11:34 PM

  • OSB 11g - Conditional Branch Problem using attribute selection

    Folks,
    Came across a problem using OSB Conditional Branch using attribute selection, it fails & is most likely a bug. It was bug in ALSB2.5 but read in forums was fixed in ALSB 2.6
    things I am doing -
    1. In the Msg Flow, Conditional branch is @ the start of the flow
    Xpath :- ./cm:processLineItem/cm:lineItem/@actionCode
    In-Variable: - body
    Label: - MODIFY
    Operator:- =
    Value:- 'Modify'
    It fails with BEA-382000 error Code
    <con:errorCode>BEA-382000</con:errorCode>
         <con:reason>
         com.bea.wli.sb.stages.StageException: {bea-err}TYPE003: Runtime Type Mismatch
         </con:reason>
    What could be wrong with Xpath or is it a Bug ?
    Thanks,
    Abhijeet

    Hi Abhijeet,
    Your case is re-producible. It may be a bug.
    BTW, I have noticed a strange behaviour -
    1. If there is only one attribute then it works fine (<cus:lineItem actionCode="Modify")
    2. If the attribute which you want to refer in selection, is in the last then also it works fine (<cus:lineItem priorityRanking="201" quantity="1"> actionCode="Modify")
    So I will suggest you to raise a case with support and meanwhile as a workaround I would suggest you to use actionCode attribute in the last of lineItem node. So your XML should be like -
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <cus:processLineItem xmlns:com="http://vodafone.com.au/ebo/vha/CommonComponents" xmlns:cus="http://vodafone.com.au/cm/ocv/ebm/CustomerOrder" xmlns:cus1="http://vodafone.com.au/ebo/vha/CustomerManagement">
    <com:header>
    <com:createDateTime>2008-09-29T11:49:45</com:createDateTime>
    <!--Optional:-->
    <com:webUser>test</com:webUser>
    <com:channel>string</com:channel>
    <com:applicationName>string</com:applicationName>
    <com:businessIdentifier>string</com:businessIdentifier>
    <!--Optional:-->
    <com:entityIdentifier>string</com:entityIdentifier>
    <!--Optional:-->
    <com:sourceIdentifier>string</com:sourceIdentifier>
    <!--Optional:-->
    <com:statusCode>Success</com:statusCode>
    <!--Optional:-->
    <com:messageIdentifier>string</com:messageIdentifier>
    </com:header>
    <cus:lineItem priorityRanking="201" quantity="1" actionCode="Modify">
    <!--You have a CHOICE of the next 3 items at this level-->
    <!--Optional:-->
    <cus1:product ID="string">
    <!--Zero or more repetitions:-->
    <cus1:attribute>
    <com:name>test</com:name>
    <com:value>test1</com:value>
    </cus1:attribute>
    </cus1:product>
    </cus:lineItem>
    </cus:processLineItem>
    </soapenv:Body>
    Regards,
    Anuj

  • Conditional branching in OSB

    Hi,
    I wan to use conditional branching in OSB for a WSDL WS.I am not able to use operationl branching because the method names and request message names are different.
    I want to do conditional branching based on operations or request messages.
    For example if operation name and request msgs are as below,
    add , addRequest
    minus , minusRequest
    What should I give for the "Selected path" and "variable" in the condtions?
    Thanks.

    Can you paste the Message section please, where you are defining the Part of request and response.
    The part should be element based and not type based for Operational Branching to work.
    I did a test and its working correctly, Find the WSDL I used below:
    <definitions
      name="Test"
      targetNamespace=
        "http://tempuri.org/OTN.wsdl"
      xmlns="http://schemas.xmlsoap.org/wsdl/"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:tns=
        "http://tempuri.org/OTN.wsdl"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:wsx=
       "http://tempuri.org/OTN">
      <types>
        <xsd:schema
          targetNamespace=
            "http://tempuri.org/OTN"
          xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <xsd:element name="AddRequest">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element maxOccurs="1" minOccurs="1" name="operand1"
                 nillable="true" type="xsd:decimal"/>
              <xsd:element maxOccurs="1" minOccurs="1" name="operand2"
                 nillable="true" type="xsd:decimal"/>
            </xsd:sequence>
          </xsd:complexType>
         </xsd:element>
    <xsd:element name="MinusRequest">
          <xsd:complexType >
            <xsd:sequence>
              <xsd:element maxOccurs="1" minOccurs="1" name="operand1"
                 nillable="true" type="xsd:decimal"/>
              <xsd:element maxOccurs="1" minOccurs="1" name="operand2"
                 nillable="true" type="xsd:decimal"/>
            </xsd:sequence>
          </xsd:complexType>
         </xsd:element>
        </xsd:schema>
      </types>
      <message name="addRequest">
        <part name="addRequest" element="wsx:AddRequest"/>
      </message>
       <message name="minusRequest">
        <part name="minusRequest" element="wsx:MinusRequest"/>
      </message>
      <message name="Response1">
        <part name="Result" type="xsd:string"/>
      </message>
        <message name="Response2">
        <part name="Result" type="xsd:string"/>
      </message>
      <portType name="Test">
        <operation name="add">
          <input message="tns:addRequest"/>
          <output message="tns:Response1"/>
        </operation>
        <operation name="minus">
          <input message="tns:minusRequest"/>
          <output message="tns:Response2"/>
        </operation>
      </portType>
      <binding name="Test" type="tns:Test">
        <soap:binding style="document"
          transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="add">
          <soap:operation soapAction="add"/>
          <input>
            <soap:body use="literal" />     
          </input>
          <output>
            <soap:body use="literal"/>
          </output>
        </operation>
        <operation name="minus">
          <soap:operation soapAction="minus"/>
          <input>
            <soap:body use="literal" />     
          </input>
          <output>
            <soap:body use="literal"/>
          </output>
        </operation>
      </binding>
      <service name="Test">
        <documentation>Test</documentation>
        <port name="Test" binding="tns:Test">
          <soap:address
            location="http://localhost:8090/Test"/>
        </port>
      </service>
    </definitions>

  • OSB 11g: Conditional Branch value will not accept string Value

    OSB 11g 11.1.1.3.0 (OSB11_MAIN_GENERIC_100418.1323885)
    When I edit a message flow and create a conditional branch I:
    1. Enter an Xpath expression
    2. Name the variable containing the XPath expression
    3. Select an operator (=)
    4. Enter a string value for Value: 'true'
    5. Give the label a name (isMember)
    6. Save my work
    7. When I go back into the branch the 'true' value is gone and the Value field is blank.
    If I enter a number it saves fine - only when I enter text with single quotes
    is this a known bug?

    Thank you, however I still think this is a bug because:
    1. Version 10g training materials has this example as a lab exercise and says in particular 'make sure to place single quotes around the text string: 'true')
    2. The documentation for 11g says to enter a value but does not say it cannot be a 'string'
    3. If I don't enter any value for the value field, when I click Save it indicates an error -the field cannot be empty. When I place a numeric in the field(unquoted) I can save it and return to it and the numeric value is still there. If I enter a 'quoted string' I can save it but when I return to it, it is gone
    4. If I enter the same information using the eclipse IDE I can see the 'quoted string' is saved and when I view it (not edit but view) in the web IDE (sbconsole) I can see the 'quoted string'. If I edit it the string disappears.
    I will continue to test. While you may be correct and the intent is to accept only numerics, that does not make sense to me. Why not allow simple and fast conditional branching based on text string values in a message? I know I can use other mechanisms to achieve the same goal: a routing table would work also.
    My point was the behavior of the UI implies a bug.
    Edited by: jo**** on Nov 21, 2010 8:44 AM

  • OSB Conditional Branch

    Hi all,
    Is it possible to compare the conditional variable in the conditional branch to multiple values per sub branches?
    For ex. I have a "Conditional Branch In Variable: types" then in Branch1 I will compare like"types IN ('type a','type b','type c')" then in Branch2 I will compare it like "types IN ('type x',type 'type y',type 'z')"
    Is this possible?

    Not possible directly at the Conditional branch since the 'Value' column takes a string value to compare with.
    To achieve this you will need to do the following:
    In the service add a pipeline pair BEFORE the conditional branch.
    In the request pipeline add a stage.
    In the stage add an assign action to create a lookup variable (this lookup variable will be using in the conditional branch)
    The XQuery expression in Assign Action should be like this(adjust for your request structure):
    for $type in $body/request/type
    return
    if ((data($type) = 'a') or (data($type) = 'b') or (data($type) = 'c'))
    then
    <BranchValue>branch1</BranchValue>
    else if ((data($type) = 'x') or (data($type) = 'y') or (data($type) = 'z'))
    then
    <BranchValue>branch2</BranchValue>
    else ()
    Now use the value of lookup variable in the conditional branch to compare against 'branch1' or 'branch2' as values.
    XPath should be ./text()

  • Conditional Branching in Oracle Service Bus

    Can anyone help me to find one sample project on Conditional Branch in OSB.
    The main difficulty I am facing is to fetch the plain text value (which will be used to choose the branch) from an xml node using XPath.
    I think one example project on Conditional Branching in OSB will be very much helpful.
    Can anyone help me please.

    No, there is no such constraint to implement Service Key Provider while using HTTPS call, We can also use Username and Password (basic Authentication) method.

  • Conditional Branch after an service callout

    Hi All
    I am new to configuring services in OSB.What i want to do is first call a service and depending upon the returned value ,route to other services.But the result of the service callout is availabe in a variable ,say responseBody,and for conditional branch we need only xpath/xquery to test conditions.
    Please Help.
    Regards,
    Chinmay

    Hi All
    I am new to configuring services in OSB.What i want to do is first call a service and depending upon the returned value ,route to other services.But the result of the service callout is availabe in a variable ,say responseBody,and for conditional branch we need only xpath/xquery to test conditions.
    Please Help.
    Regards,
    Chinmay

  • Conditional branch based on attribute selection ? bug?

    I am trying to base a conditional branch on attribute selection and it results in an error which i can't understand. So i am wondering now whether i am doing something wrong or whether this is a bug in ALSB.
    Does anyone have a clue whether i am doign something wrong or agree that it might be a bug?
    I have the following configuration:
    Selected path: ./elementX/@attributeY
    in variable: body
    Branch1: operator : =
    Value : "Brochure"
    Label : "TestLabel"
    and this leads to the following vague error:
    <con:fault  xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-382000</con:errorCode>
    <con:reason>com.bea.wli.sb.stages.StageException</con:reason>
    <con:location>
    <con:node>BranchNode1</con:node>
    </con:location>
    </con:fault> and the following stacktrace in the logfile:
    ####<22-mrt-2007 8:14:32 uur CET> <Error> <ALSB Kernel> <NUW04896> <xbusServer> <[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-00457F11B55FD06D1480> <> <1174547672363> <BEA-382016> <Failed to instantiate router for service ProxyService Selectief_Bijsluiten/proxyservices/Siebel_Brieven_Conditional_Variant: com.bea.wli.sb.pipeline.PipelineException: com.bea.wli.sb.stages.StageException
    com.bea.wli.sb.pipeline.PipelineException: com.bea.wli.sb.stages.StageException
         at com.bea.wli.sb.pipeline.BranchNode.doRequest(BranchNode.java:142)
         at com.bea.wli.sb.pipeline.Node.processMessage(Node.java:57)
         at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:771)
         at com.bea.wli.sb.pipeline.Router.processMessage(Router.java:141)
         at com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:75)
         at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:646)
         at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:645)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
         at com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:643)
         at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:264)
         at com.bea.wli.sb.transports.file.FileTask.process(FileTask.java:103)
         at com.bea.wli.sb.transports.poller.listener.PolledMessageListenerMDB.onMessage(PolledMessageListenerMDB.java:42)
         at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:429)
         at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:335)
         at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:291)
         at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4060)
         at weblogic.jms.client.JMSSession.execute(JMSSession.java:3953)
         at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:4467)
         at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    com.bea.wli.sb.stages.StageException
         at com.bea.wli.sb.stages.expressions.xquery.XQueryExprExecutor.executeJavaObject(XQueryExprExecutor.java:102)
         at com.bea.wli.sb.pipeline.BranchNode.computeBranchName(BranchNode.java:174)
         at com.bea.wli.sb.pipeline.BranchNode.doRequest(BranchNode.java:130)
         at com.bea.wli.sb.pipeline.Node.processMessage(Node.java:57)
         at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:771)
         at com.bea.wli.sb.pipeline.Router.processMessage(Router.java:141)
         at com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:75)
         at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:646)
         at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:645)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
         at com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:643)
         at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:264)
         at com.bea.wli.sb.transports.file.FileTask.process(FileTask.java:103)
         at com.bea.wli.sb.transports.poller.listener.PolledMessageListenerMDB.onMessage(PolledMessageListenerMDB.java:42)
         at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:429)
         at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:335)
         at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:291)
         at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4060)
         at weblogic.jms.client.JMSSession.execute(JMSSession.java:3953)
         at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:4467)
         at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    java.lang.NullPointerException
         at weblogic.xml.query.tokens.Token$Kind.isNested(Token.java:143)
         at weblogic.xml.query.xdbc.iterators.ItemIterator.fetchNext(ItemIterator.java:89)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.typing.SeqTypeMatching.fetchNext(SeqTypeMatching.java:133)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.core.RTVariable.fetchNext(RTVariable.java:49)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.xdbc.iterators.ItemIterator.fetchNext(ItemIterator.java:86)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.node.Data$Attribute.fetchNext(Data.java:224)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.node.Data.fetchNext(Data.java:174)
         at weblogic.xml.query.iterators.GenericIterator.hasNext(GenericIterator.java:134)
         at weblogic.xml.query.runtime.typing.SeqTypeMatching.fetchNext(SeqTypeMatching.java:195)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.typing.GenericCast.cast(GenericCast.java:198)
         at weblogic.xml.query.runtime.typing.GenericCast.fetchNext(GenericCast.java:183)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.core.RTVariable.fetchNext(RTVariable.java:49)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.compare.ComparisonIterator.fetchNext(ComparisonIterator.java:40)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.logic.BoolEffValue.exec(BoolEffValue.java:51)
         at weblogic.xml.query.runtime.logic.BoolEffValue.fetchNext(BoolEffValue.java:47)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.core.IfThenElse.fetchNext(IfThenElse.java:79)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.core.LetIterator.fetchNext(LetIterator.java:133)
         at weblogic.xml.query.iterators.GenericIterator.peekNext(GenericIterator.java:151)
         at weblogic.xml.query.runtime.qname.InsertNamespaces.fetchNext(InsertNamespaces.java:156)
         at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
         at weblogic.xml.query.runtime.core.QueryIterator.fetchNext(QueryIterator.java:125)

    Hi,
    I am working in ALSB 2.6. I am facing this problem but little different way. The attribute selection is working fine only if that conditional attribute is the last attribute in the element. Otherwise it is giving the following message
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode>soapenv:Server</faultcode>
    <faultstring>
    BEA-382000: com.bea.wli.sb.stages.StageException: line 1, column 5: {err}FORG0003: expected zero or one item, got two or more items
    </faultstring>
    <detail>
    <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-382000</con:errorCode>
    <con:reason>
    com.bea.wli.sb.stages.StageException: line 1, column 5: {err}FORG0003: expected zero or one item, got two or more items
    </con:reason>
    <con:location>
    <con:node>VerifyPaymentCard_Branch</con:node>
    <con:path>request-pipeline</con:path>
    </con:location>
    </con:fault>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    Is the order of the attribute important? or am I missing something?

  • Follow-up on Conditional Branching

    Good day!
    I was able to add conditional branching as per Lily's(biri) instructions (please refer to this thread) but I noticed that it no longer works for one of the buttons AFTER I added a rollover caption, even after I removed the captions. Any thoughts on this please?
    Please advise. Thanks!

    Thank you for replying Lily.
    Here's what I have - the menu slide where I applied the conditional branching:
    And this is how the other slides look like:
    Before I applied the rollover captions, it worked as intended: learner clicks either buttons and is returned to slide_menu. If the learner has viewed both, it jumps to the activity (slide #36).
    After I applied the rollover captions, the button 1's behavior does not follow the conditions, i.e. I start with button #2 > slide 35 > slide_menu > button #1 > slide 34 > slide 35 > slide 36. It should not go to slide 35 a second time.
    Does this help? Much obliged!

  • Unable to customize condition branch

    Hello,
    I'm having a strange issue where I want to put some content in Starter Edition "Virtual Server Post-provisioning" process which sould be allowed as this process has the "workflow" customizable flag.
    I've been able to add some activities but when it comes to a condition branch, I can add it but not configure it, see screenshot below:
    Any hint on what I'm doing wrong ?
    Regards,
    Pierre

    Hi Julio,
    Thank you for your answer.
    I am running Starter Edition 3.0.1 with CPO 2.3.0 and fololowing patches :
    - 2.3.0 Hotfix1
    - 2.3.0 Hotfix2
    - 2.3 Content Update 1
    Which gives this:
    Which patches do you suggest I apply ?
    Thank you.
    Regards,
    Pierre

  • DMEE: Error in conditions for node Invcr: reference ID IDTP is not permitte

    Hi  Friends ,
    I have problem with nodes in DMEE .
    When child node is from a Exit funtion moduel , not from the Payment FPAYH/FPAYP/HX structures, is empty . I dont want the parent node to be displayed .
    EX:
    <INVCR>  -
    Should not display when node2 is empty
              <ID> -
    empty/or values from Userexit.
    I am using No mapping for parent nodes.
    trying to give Reference ID for childnode and using it in parent node conditions and i guess using a lower level REFId is not permitted . My DMEE is giving following error.
    Error in conditions for node Invcr: reference ID IDTP is not permitted
    Message no. DMEE_ABA305
    Diagnosis
    You have specified type 3 in the conditions, meaning that the argument is a reference ID. Your entry in the argument field, however, is not an existing reference ID.
    I did define the Reference NODE ID ,ID

    Hello Srikanth,
    The problem is with the semantics of the code you are writing.
    Refer to the following code to get Account ID from the value node:
    data: lv_account type string.
        lv_account = lv_value_node->get_property_as_string( iv_attr_name = 'ACCOUNT_ID'  ).
    or
    data: lv_account type bu_partner.
      CALL METHOD lr_value_node->get_property_as_value
        EXPORTING
          iv_attr_name = 'ACCOUNT_ID'                            "#EC NOTEXT
        IMPORTING
          ev_result    = lv_account.
    I hope this helps.
    Thanks
    Vishal

Maybe you are looking for