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 helpHi 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,
ChinmayHi 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 -
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,
AbhijeetHi 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 -
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 -
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,
ChinmayHi 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,
PierreHi 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 ,IDHello 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
-
BEx Query Providing Incorrect Results
I have two BEx queries that are behaving strangely. They are providing incorrect results and I can't figure out why. In both cases, when I save query in development under a different technical name the problem disappear. I can't use this as a perma
-
I just downloaded lion and cloud does not show up in my system preferences. Where is it hiding so I can set up icloud and see what lion is offering that is different from snow leopard.
-
Missing .abr (brushes) files
I'm using Photoshop CS6. My problem is in loading new brushes. When I click the 'load brushes' option, Photoshop navigates to a file location that appears to be the "Brushes" folder, but it has only two files in it, both of which I created using the
-
Mutating Table in 10.2.0.4
After upgrading our environment from 10.2.0.3 to 10.2.0.4, the following trigger has started erroring when trying to insert data into the EMPLOYER_HOLDS table. CREATE OR REPLACE TRIGGER EMPHLD_BIR BEFORE INSERT ON EMPLOYER_HOLDS FOR EACH ROW BEGIN IF
-
What to do against QFS metadata lag?
I am using Sun QFS as shared cluster filesystem for a farm of content upload servers (Aspera). When testing the failover functionality, I found out that files written on one cluster node sometimes take 1-2 minutes until they show up on the other node