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

Similar Messages

  • Conditional branch, after authentication

    We have recently implemented a list of passwords that users are not allowed to use. Basic stuff like 1234, abcd etc.
    I currently use a custom authentication, so i can quite easily stop a user from changing their password to a dissallowed one. But my issue is that i want to force current users to changer their current password if it breaks the new rules.
    I think that i should allow them to authenticate themselves using their current password, and then do a check to see if they should be branched to a specific screen to change their password.
    Basically i want to do a conditional branch after authentication.
    anybody implemented something similar? or anyone have any ideas?

    Create an application process - On Load: Before Header ....
    using a similar PL/SQL block like in my case:
    BEGIN
       IF NOT custom_authentication_pkg.password_valid (:app_user)
       THEN
          HTMLDB_APPLICATION.g_unrecoverable_error := TRUE;
          OWA_UTIL.redirect_url
                               ('f?p=&APP_ID.:102:&APP_SESSION.:PASSWORD_INVALID');
       END IF;
    END;and make this process conditional so it doesn't fire if the current page is in
    101 - login page
    102 - page for changing passwords
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    ------------------------------------------------------------------------------

  • 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())..

  • 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 branching after page submit

    Hi all
    I have a page where I need to submit and process the page and items(insert and update database) then branch to a certain page depending on which button was pressed. I have 4 buttons and each button should go to a different page, each button also needs to submit the page and process data(using an Apex DML process and passing 'SAVE' request in each button). the problem I'm having is that no matter which button I press the 'app branches to the first branch. I have 4 branches set to run after the process. Each branch should go to a different page depending on the button pressed. In each branch I have made the branch conditional based on the button pressed.
    APEX seems to ignore the button condition(in Debug) it says unconditional even though the button is definitely conditional.
    I'm running Apex 4.2.2
    It seems as though when I pass a Request of 'SAVE' Apex treats all buttons with this request in the same manner?Regardless of which button was pressed?
    Any ideas or alternatives?
    Thankyou
    Andrew

    Your problem is with setting the request of all the buttons to "SAVE", it will always fire the first branch for all those buttons.
    If you edit the DML process you will see the following:
    Valid Update Request Values:
    SAVE, APPLY CHANGES, UPDATE, UPDATE ROW, CHANGE, APPLY, APPLY%CHANGES%, GET_NEXT%, GET_PREV%
    This tells you the request values that will perform an Update DML.
    You could have one button be "SAVE", another, "APPLY CHANGES", another "UPDATE", and another "CHANGE".  They will all do the update DML for you and then the branches will have different request values to trigger off of.
    Another option is to set the request of each button like this:
    Button 1 - APPLY_CHANGES_INV
    Button 2 - APPLY_CHANGES_SALE
    Button 3 - APPLY_CHANGES_DELIV
    Button 4 - APPLY_CHANGES_INSTALL
    These would satisfy the valid update request value of APPLY%CHANGES%

  • Problem in assign after service callout

    Hello,
    I'm using OSB 11 g. I have a problem with assign after a service callout.
    The XML returned after the service callout is listed below -
    <S:Body xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <getCreditRatingResponse xmlns:ns2="http://www.alsb.com/order/" xmlns="http://www.alsb.com/">
    <return>750</return>
    </getCreditRatingResponse>
    </S:Body>
    I have created a separate stage with an assign for storing the return value (750) into the variable creditRating, and both of the following statements are not working (unable to see assigned $creditRating in the trace)
    1. $soapResponseBody/alsb:return/text()
    2. fn:data($soapResponseBody/alsb:return)
    There are no namespace issues. Request help in this regard and thanking you in advance.
    Regards
    Shyam.V

    Hi
    I too ran in the same issue.
    The reponse which i get after service callout is
    added $soapResponseBody
    <S:Body xmlns:S="http://www.w3.org/2003/05/soap-envelope">
    <ns2:getCreditRatingResponse xmlns:ns2="urn:BasicOrderMgr" xmlns="http://www.example.org">
    <ns2:return>750</ns2:return>
    </ns2:getCreditRatingResponse>
    </S:Body>
    and the service callout is followed by an assign where i use the following to assign the variable creditRating
    $soapResponseBody/getCreditRatingResponse/return/text()
    and also tried fn:data($soapResponseBody/*:return) {there is no namespace prefix declaration}
    Please help as i am stuck when i try using the creditRating variable in next route node.

  • Message procesing OSB rename after service callout error

    Hi,
    I have an error after make a service callout, i can't do a rename in the context variable that i create for the response of the service callout.
    I have this
    SERVICE CALLOUT.
    Service:.....
    Operation:.....
    requestVariable: inputVar
    responseVariable: outputVar
    Rename:
    Xpath:/*/return/items
    Variable:outputVar
    local: someNew
    this a example of outputVar
    <S:Body      xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <ns2:buscarSaldosExample xmlns:ns1="http://some.services.finanzas/">
         <return>
         <existWarnings>false</existWarnings>
         <items xsi:type="ns1:resumenSaldo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <categoriaCnt>PERSONAL</categoriaCnt>
         <estadoCnt>A</estadoCnt>
         <saldoCnt>506</saldoCnt>
    </items>
         <name>buscarSaldosExample</name>
         </return>
    </ns2:buscarSaldosExample >
    </S:Body>
    The rename never works out, its like he didn't see the outputVar
    if I make a assing after the service callout and assing all the content in
    outputVar in another variable named outPutVar2 the rename in outPutVar2 works just fine...
    i dont know if this is a mistake in osb or is mine.
    Please help out with this error
    Thanks in advance.
    Gustavo.
    If you need an example, let me knwo and i will post all the details.
    Thanks.

    Hi hisaak, Thanks for the answer again..
    your test was right, is the xpath, if i use //return/items works out fine!. Thanks for that.
    I was reading in some books that // in osb it has to be avoided for perfomance issues, i just
    want to know if /*/*/return[1]/items is the same of //return/items.
    I used baseX6 for testing the Xpaths and Xquerys, and if i put the xml give above as input
    and i try //return/items gives the same result as /*/*/return[1]/items, but it doesn't work out
    in osb, why can be that??
    Thanks agains for your answers.

  • 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

  • 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!

  • 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

  • Adding manual condition types to a service contract

    Hi,
    I need to add a manual condition type and price value at billplan line item level in a service contract. Could anyone please let me know any way of adding it after the service contract has already been created?

    Hi,
    You need to first create the Condition type which can take manual entries or the manual entries are prefered.
    Then add the Condition type to the pricing procedure being determined in service contract.
    Once done when you go to edit mode in conditions tab you shoudl be able to add the above condition types.
    Regards,
    Tanu

  • 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

  • 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 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()

  • Service Callout Action in OSB

    Hi ,
    Good morning to all
    I have issue on osb service callout.
    1. i developed a synchronous service using bpel after that i invoke that service in osb as business service. my aim by using service callout action to call that service and get response.
    but the problem is how pass the osb input request to bpel input request and also how to transform the bpel response data to osb response data...
    Thanks and regards
    venky

    Venky,
    the problem is how pass the osb input request to bpel input request and also how to transform the bpel response data to osb response data...You can transform the OSB request structure to bpel service request structure using Xquery/Xslt transformations either by using replace action or assign action ( replacing the $body as per Bpel request format ) before sending the request to Bpel in service call out.
    And in similar manner after getting the response from Bpel service use Xquery/Xslt transformation & using replace action to transform bpel response back to OSB response format.
    Regards,
    Abhinav Gupta
    Edited by: Abhinav on Dec 5, 2012 11:49 AM

Maybe you are looking for