Dynamic Correlation
Hi All
In message I am getting 4 requests for 4 receivers.
In correlation I need to use receiver system name along with Username.
User name is constant for all the receiving systems but Tricky is System name differs.
How can I put dynamic correlation in my BPM?
>
chitra l wrote:
> Hi All
>
> In message I am getting 4 requests for 4 receivers.
> In correlation I need to use receiver system name along with Username.
> User name is constant for all the receiving systems but Tricky is System name differs.
>
> How can I put dynamic correlation in my BPM?
have your user name and system name concatenated into one field and use this field as the correlation
Similar Messages
-
JMS Correlation ID not converting to EBCDIC Hexa
We are using the PI 7.1 system on a AIX platform.
We use the JMS adapter to send messages to a MQ Queue manager on a AS400platform.
WebSphereMQ transport protocol is in JMS adapter.
We are generating custom dynamic correlation id using a UDF.
Expectation is to receive the correlation id in Ebcdic format because the
receiving end is a AS400 system.
But what I receive there is a Ascii Hexa.
For a example we are sending the correlation id as 0180000012. (ASCII)
What MQ receive is 30313830303030303132 (ASCII HEX)
Where what MQ should receive is F0F1F8F0F0F0F0F0F1F2 (EBCDIC HEX)
I need help to find out why JMS adapter is converting the correlation id
in to ASCII HEX without converting to EBCDIC HEX.
Appreciate a lot if any one can provide some help on this.
Thanks a lot,
Tania.I am not sure if I have understand the issue correctly.
Do you create an ASCII string and the ASCII characters are not converted into EBCDIC,
or do you create a HEX String?
Or does the JMS adapter converts your ASCII string to Hex?
I have the impression that the behaviour is a design gap, which nobody has noticed before.
A work around could be in converting the ASCII to EBCDIC inside the UDF,
Report this to SAP -
BPM Correlation from Dynamic Configuration not being filled
Hey guys,
I'm having the following problem with BPM correlation.
In my correlation definition, I have 2 fields: one which is filled with information from the message payload, and another one which is filled with a context object (which was created with adapter metadata and filled with dynamic configuration, as refered here: /people/michal.krawczyk2/blog/2006/10/09/xi-dynamic-configuration-in-adapter-modules--one-step-further).
All instances of BPM are with error status. And when I go into the workflow log for these processes, if I check the correlation object, it is like this:
<?xml version="1.0" encoding="utf-8" ?>
<CorrelationKey Version="001">
<Field1 />
<Field2>123456789</Field2>
</CorrelationKey>
Field1 is the one read from context object, and is not being filled (thus I think the error comes from here). Field2 is from payload and is being normally filled.
Any ideas on this matter?
Maybe the problem is not from the correlation. If not, what else could be the case? The BPM crashes on the very first step (one more reason to think that the correlation is the issue).
Thanks in advance,
Henrique.HI,
In general Correlation , concept, whatever we configured in Correlation editor , i mean in runtime which xml element should filled with which element of which interface ..as you said you have configured the local correlation to block, in block it is the first receive step, while receiving the first message which is relevent to first recieve step , i mean if it receives the one message which is related to first receive step inteface .. the respective element data will be filled in correlation id and it will assign on giud for processing , so while assign the runtime data to correlation element ( imean filling stage) check you said two elements in correlation does the first message contains these two elements ??
if so ok , no then check , and try to use the IM before calling the IP to fill the payload.
Regards
Chilla
Oh closed!!
Message was edited by:
Chandra Sekhar Chilla
Message was edited by:
Chandra Sekhar Chilla -
[sentinel] correlation problem and dynamic list
Dear All,
I have two problems as following:
1. I have write a correlation rule as following:
filter((((e.CollectorPluginName = "Microsoft Exchange POP3") and
(e.EventName = "pass")) and (e.XDASOutcomeName = "XDAS_OUT_FAILURE")))
flow window(((w.SessionID = e.SessionID) and (e.SourceIP =
w.SourceIP)),filter((((e.CollectorPluginName = "Microsoft Exchange
POP3") and (e.EventName = "user")) and (e.TargetNewResourceName inlist
sensitiveuser))),120) flow
trigger(5,120,discriminator(e.SourceIP,e.TargetNew ResourceName))
I have following problem:
I will call the first filter event as A event, the second filter event
as B event, the first filter corresponding log include username field
named TargetNewResourceName, the second filter event also called as
storaged event,
but B event log does not include username field, so I don`t know who
logon failed, so i need gain the username from A event, there is same
sessionID between A and
B, customer`s demands need know who logon failed when user logon to
pop3 mailbox failure three times, so correlation results is following:
username: $TargetNewResourceName$ logon to mailbox failure via pop3 at
least 3 times in two minutes, sourceip: $SourceIP$,
MacAddress:$CSOTSourceMac$,Please pay
attention to it!
But correlation result is following:
username: Null logon to mailbox failure via pop3 at least 3 times in two
minutes, sourcip: 10.108.54.50, MacAdress: 247703743F34,Please pay
attention to it!
There is no username value($TargetNewResourceName$), why?
2. I know arcsight active list(same as sentinel dynamic list) support
multiple fields in one table, but sentinel dynamic list only support
alone value,
if I want storage ip and macaddress for DHCP logs into one table, How to
implement? and that I also correlation rule can invoke function same as
get_ipaddress or
get_dhcpaddress in arcsight, Does sentinel provide same function?
thanks
steve_zeng
steve_zeng's Profile: https://forums.netiq.com/member.php?userid=3875
View this thread: https://forums.netiq.com/showthread.php?t=48076This sounds like a Sentinel product, vs. Sentinel plugin, issue. Please
post it in the Sentinel list on forums.netiq.com to get exposure to the
largest group of people who may be able to help. This list is
specifically for plugins.
Also, when posting in the other list, if you can post the raw data from
each of the events that may help others understand with which data you
have to work.
Good luck. -
Accessing dynamic configuration variables for correlation in BPM
Hi,
we are not able to access the runtime variables/ context objects while using correlation in BPM.
is this the a problem with SP levels.. My server is in PI SP 9
What might be the problem..??
Regards,
RajeshHi,
Where you are not able to see the context objects???
In ID----Receiver det or in BPM???
Regards
Seshagiri -
Dynamic configuration not fil in reused OM in NW BPM
Hi,
I'm having problem in operation mapping that i re-used in nw bpm.
In my scenerio in the operation mapping, a UDF writes on "TServerLocation" and in the next step of BPM, i have receiver determination rule which read from "TServerLocation" variable.
Below step calls OM which in PI.
(UDF writes on TserverLocation)
This next step, reads TserverLocation in receiver tab of Integration Conguration.
Receiver rule
So the problem is dynamic configuration doesn't write on TserverLocation or integration confiuration object removes in soap header somehow.
This was a ccBPM integration and all esr objects, mapping,udfs working fine. No problem with that.
I checked below blog but not get this work.
Dynamic Configuration not working with Integrated Configuration
Has anyone faced similar problem ?
Thank you
-TahirHI,
In general Correlation , concept, whatever we configured in Correlation editor , i mean in runtime which xml element should filled with which element of which interface ..as you said you have configured the local correlation to block, in block it is the first receive step, while receiving the first message which is relevent to first recieve step , i mean if it receives the one message which is related to first receive step inteface .. the respective element data will be filled in correlation id and it will assign on giud for processing , so while assign the runtime data to correlation element ( imean filling stage) check you said two elements in correlation does the first message contains these two elements ??
if so ok , no then check , and try to use the IM before calling the IP to fill the payload.
Regards
Chilla
Oh closed!!
Message was edited by:
Chandra Sekhar Chilla
Message was edited by:
Chandra Sekhar Chilla -
SQL Bug in "Minus" in correlated subquery presence of index
(Oracle Database 11g Release 11.2.0.1.0)
Below, there is a small example that shows the bug. Further below,
there are some more comments.
drop table Country;
create table Country
(code VARCHAR2(4) constraint countrykey PRIMARY KEY,
name VARCHAR2(35));
-- if the key constraint is not given, the bug does not occur
drop table City;
create table City
(name VARCHAR2(35),
country VARCHAR2(4),
population number);
drop table Locatedon;
create table Locatedon
(city VARCHAR2(35),
country VARCHAR2(4),
island VARCHAR2(35));
insert into country values('E','Spain');
insert into country values('F','France');
insert into country values('S','Sweden');
insert into country values('GB','Sweden');
insert into city values('Ajaccio','F',53500);
insert into city values('Paris','F',2152423);
insert into city values('Palma','E',322008);
insert into city values('Madrid','E',3041101);
insert into city values('Stockholm','S',711119);
insert into city values('London','GB',6967500);
insert into locatedon values('Ajaccio','F','Corse');
insert into locatedon values('Palma','E','Mallorca');
insert into locatedon values('London','GB','Great Britain');
-- all countries that have a city that is not located on
-- some island: should be E, F, S.
Select c.name
From country c
Where exists
((Select name
From city
Where city.country=c.code)
minus
(Select city
From locatedon
Where locatedon.country=c.code)
-- wrong answer: only Sweden; Spain and France not in the answer!
select distinct country from
((Select name, country
From city)
minus
(Select city, country
From locatedon)
-- correct answer: E, F, S
Comments:
The bug has been found by students in our SQL course.
Using a larger database from that course, the bug can be reproduced
(same queries as above) at
http://www.semwebtech.org/sqlfrontend/
(wrong: 142 answers, correct: 154 answers)
During reducing it to a simple sample, there were some interesting
observations: trying with smaller and simpler tables (without the keys)
and synthetic data, the bug did not occur immediately. When
restating the query after about one day, the bug occurred. Obviously,
Oracle creates some index on its own in course of its internal
optimization that (or more exactly, its usage) exhibits the bug. The
query plan (showed in SQL Developer) was the same before and after.
WolfgangThere's a typo in the test data - GB should presumably not be in Sweden. However....
the bug did not occur immediatelyIt's possible. But what would have almost certainly happened is that the execution plan DID change at some point. There are various reasons why it might not be immediate.
Obviously, Oracle creates some index on its own in course of its internal optimizationFar from obvious, what are you on about?
The query plan was the same before and afterBet you it wasn't.
A clear illustration of the issue and indication that it must be a bug is below.
Simply by hinting a different access method, we can change the result. Therefore, bug.
See [url http://support.oracle.com]Oracle Support and search for "wrong results".
Please raise with Oracle Support to get confirmation of bug.
There have been so many wrong results bugs recently, it's getting ridiculous.
It's a real issue, IMHO.
If you can't trust the DB to get your data right....
Note that the query plan is very much NOT the same and it is the difference in query plan which s that is the root cause of the bug.
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
SQL> SELECT c.name
2 FROM country1 c
3 WHERE exists ((SELECT name
4 FROM city1
5 WHERE city1.country=c.code)
6 MINUS
7 (SELECT city
8 FROM locatedon1
9 WHERE locatedon1.country=c.code));
NAME
Sweden
SQL> SELECT /*+ full(c) */
2 c.name
3 FROM country1 c
4 WHERE exists ((SELECT name
5 FROM city1
6 WHERE city1.country=c.code)
7 MINUS
8 (SELECT city
9 FROM locatedon1
10 WHERE locatedon1.country=c.code));
NAME
Spain
France
Sweden
SQL> explain plan for
2 SELECT c.name
3 FROM country1 c
4 WHERE exists ((SELECT name
5 FROM city1
6 WHERE city1.country=c.code)
7 MINUS
8 (SELECT city
9 FROM locatedon1
10 WHERE locatedon1.country=c.code));
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 156929629
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 27 | 12 (25)| 00:00:01 |
| 1 | NESTED LOOPS | | | | | |
| 2 | NESTED LOOPS | | 1 | 27 | 12 (25)| 00:00:01 |
| 3 | VIEW | VW_SQ_1 | 6 | 24 | 10 (20)| 00:00:01 |
| 4 | MINUS | | | | | |
| 5 | SORT UNIQUE | | 6 | 138 | | |
| 6 | TABLE ACCESS FULL | CITY1 | 6 | 138 | 4 (0)| 00:00:01 |
| 7 | SORT UNIQUE | | 3 | 69 | | |
| 8 | TABLE ACCESS FULL | LOCATEDON1 | 3 | 69 | 4 (0)| 00:00:01 |
|* 9 | INDEX UNIQUE SCAN | COUNTRYKEY | 1 | | 0 (0)| 00:00:01 |
| 10 | TABLE ACCESS BY INDEX ROWID| COUNTRY1 | 1 | 23 | 1 (0)| 00:00:01 |
Predicate Information (identified by operation id):
9 - access("VW_COL_1"="C"."CODE")
Note
- dynamic sampling used for this statement (level=4)
26 rows selected.
SQL> explain plan for
2 SELECT /*+ full(c) */
3 c.name
4 FROM country1 c
5 WHERE exists ((SELECT name
6 FROM city1
7 WHERE city1.country=c.code)
8 MINUS
9 (SELECT city
10 FROM locatedon1
11 WHERE locatedon1.country=c.code));
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 1378726376
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 23 | 14 (15)| 00:00:01 |
|* 1 | FILTER | | | | | |
| 2 | TABLE ACCESS FULL | COUNTRY1 | 4 | 92 | 4 (0)| 00:00:01 |
| 3 | MINUS | | | | | |
| 4 | SORT UNIQUE | | 1 | 23 | 5 (20)| 00:00:01 |
|* 5 | TABLE ACCESS FULL| CITY1 | 1 | 23 | 4 (0)| 00:00:01 |
| 6 | SORT UNIQUE | | 1 | 23 | 5 (20)| 00:00:01 |
|* 7 | TABLE ACCESS FULL| LOCATEDON1 | 1 | 23 | 4 (0)| 00:00:01 |
Predicate Information (identified by operation id):
1 - filter( EXISTS ( (SELECT "NAME" FROM "CITY1" "CITY1" WHERE
"CITY1"."COUNTRY"=:B1)MINUS (SELECT "CITY" FROM "LOCATEDON1" "LOCATEDON1"
WHERE "LOCATEDON1"."COUNTRY"=:B2)))
5 - filter("CITY1"."COUNTRY"=:B1)
7 - filter("LOCATEDON1"."COUNTRY"=:B1)
Note
- dynamic sampling used for this statement (level=4)
27 rows selected.Just to show that it's related to query transformation:
SQL> SELECT /*+
2 no_query_transformation
3 */
4 c.name
5 FROM country1 c
6 WHERE exists ((SELECT name
7 FROM city1
8 WHERE city1.country=c.code)
9 MINUS
10 (SELECT city
11 FROM locatedon1
12 WHERE locatedon1.country=c.code));
NAME
Spain
France
Sweden
SQL> Edited by: Dom Brooks on Jun 30, 2011 2:50 PM -
JMS Correlation ID in JMS Receiver Adapter
Hi ,
I am working in PI7.1 on IDOC to JMS interface,
I want set IDOC number as Correlation ID in JMS queue ,
I did following Correlation steps ,
1. Set JMSCorrelation ID to PI Conversation ID
2. Checked JMS CorrelationID of request
3.Value to PI Conversation ID
In Adavanced Tab
Checked Use Adapter specific Message attributes
Checked Fial if Adapter specific Message attributes missing
Checked JMS Message Correlation ID
Additional Parameter
DCJMSCorreleationID String
I have created user defined function , Not using BPM , i don't have correlation ID in target field data type
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, idoc_number);
I tested UDF with mapping to target field, UDF is working .
But in JMS Correlation ID value is null
I am getting error in Communication Channel monitor if ticked check box of fail If adapter-specific message attributes
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Dynamic header records are missing/incorrect specified in message: 000c2901-fc48-1def-82f9-4b126dff2151. Erroneous/Unspecified headers are: DCJMSCorreleationID
1/27/10 11:02:36 PM 000c2901-fc48-1def-82f9-4b126dff2151 Dynamic record/records: DCJMSCorreleationID, that correspond to the JMS property/properties: JMSCorrelationID, respectively is/are either missing from the message: 000c2901-fc48-1def-82f9-4b126dff2151, or have invalid types specified in the channel configurationHi Swetha ,
Thanks for your response ,
I created user defined function with one parameter , no input parmeter .
My root node of IDOC as Structure type ,
In UDF , i have not mapped the IDOC number
public String CorrelationID(String messageId, Container container) throws StreamTransformationException{
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, messageId);
messageId I need map in additonal parameter .
Thanks ,
Laxman.
DCJMSCorreleationID messageId -
How to set the Correlation ID in Oracle Q from JMS Adapter
Hi,
I'm using a JMS Adapter on my BPEL process to push messages to an Oracle instance in another machine.
While testing, I could see that a message is posted on the Q table, but the Correlation ID is null.
How is the correlation ID on the Q set from the adapter? IDeally I want this ID dynamic to be unique.
Is this something st on the Invoke activity to the jms adapter, i.e., the Correlations tab, or is that
unrelated altogether.
Thanks,
RamonFound the solution.
On the Invoke activity, I set the property jca.jms.JMSCorrelationID to a variable I created.
I set my variable to string appended with sysdate to make it unique. -
Hi,
I was trying out a requirement in BPEL. I need to create a correlation set with a value that I generate within the process .
I see that, when u define the correlation(property alias) it is mandatorily related to a message type and the Xpath points to a variable in the payload.
What if I want the variable to be from an internal scope variable that is generated during the process.
Is there an option to modify the correlation set property value, dynamically from within the process , once it has been initiated. Hope the Question is clear.
Thanks.Hi
Both the above URLS are not working fine. They are not showing the sample demos, when clicking on it.
It is redirecting to the other page.
Can anybody any other URLS other than this.
Regards,
CH -
Correlating on Directory problem
Dear All,
I have some strange problem with correlation. In BPM there is a fork with 2 recieve steps which are recieving filea.
If I correlate on Directory every time a new instance of BP is created (even is the files where form the same directory(in CCs the Directory checkbox is also marked)). Then I tried to change the correlation to SenderService and it works perfectly, as the files come from one Sender than no new instances of BP are created.
Any ideas what can be wrong with directories? (I have checked in XML Dynamic Configuration and the Directory names are for sure the same, but the correlation doesn't work).
Best Regards,
Artsiom AnichenkaFrom what I've seen, there is really a bug there.
Even though you are able to select ASMAs in the expression editor of the correlation editor, they won't be filled by BPE. I'd say to raise an OSS.
Meanwhile, if you need to make the scenario work right away, you should extend your data type to contain the directory in the payload (and fill it with dynamic configuration in a mapping).
Regards,
Henrique. -
Setting security credentials dynamically in Oracle BPEL
Hi,
I am tring to pass security credentials dynamically to partner link in oracle BEPL using following code(.bpel). But when i try to complie i am getting below error
Error:
[Error ORABPEL-10902]: compilation failed
[Description]: in "bpel.xml", XML parsing failed because "undefined part element.
In WSDL at "file:/D:/BEPL/OWSM/CustomHeader/bpel/CustomHeader.wsdl", message part element "{http://xmlns.oracle.com/CustomHeader}CustomHeaderProcessResponse" is not defined in any of the schemas.
Please make sure the spelling of the element QName is correct and the WSDL import is complete.
[Potential fix]: n/a.
please help me to sort out above problem. I want to pass the credentials dynamically to partner link in oracle BEPL is it the raight way to do. Kndly respond if any other way.
<?xml version = "1.0" encoding = "UTF-8" ?>
<!--
Oracle JDeveloper BPEL Designer
Created: Tue Apr 14 15:51:03 IST 2009
Author: sivaramakrishnaa
Purpose: Synchronous BPEL Process
-->
<process name="BPELSycProcess"
targetNamespace="http://xmlns.oracle.com/BPELSycProcess"
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:ns1="http://datespackage/"
xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:client="http://xmlns.oracle.com/BPELSycProcess"
xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
xmlns:ora="http://schemas.oracle.com/xpath/extension"
xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
<!--
PARTNERLINKS
List of services participating in this BPEL process
-->
<partnerLinks>
<!--
The 'client' role represents the requester of this service. It is
used for callback. The location and correlation information associated
with the client role are automatically set using WS-Addressing.
-->
<partnerLink name="client" partnerLinkType="client:BPELSycProcess"
myRole="BPELSycProcessProvider"/>
<partnerLink myRole="GetDatesWS_Role" name="GetDatesWS"
partnerRole="GetDatesWS_Role"
partnerLinkType="ns1:GetDatesWS_PL"/>
</partnerLinks>
<!--
VARIABLES
List of messages and XML documents used within this BPEL process
-->
<variables>
<!-- Reference to the message passed as input during initiation -->
<variable name="inputVariable"
messageType="client:BPELSycProcessRequestMessage"/>
<!-- Reference to the message that will be returned to the requester-->
<variable name="outputVariable"
messageType="client:BPELSycProcessResponseMessage"/>
<variable name="Invoke_GetDate_getDate_InputVariable"
messageType="ns1:GetDatesWS_getDate"/>
<variable name="Invoke_GetDate_getDate_OutputVariable"
messageType="ns1:GetDatesWS_getDateResponse"/>
<variable name="wscheaders" element="ns4:Security"/>
</variables>
<!--
ORCHESTRATION LOGIC
Set of activities coordinating the flow of messages across the
services integrated within this business process
-->
<sequence name="main">
<!-- Receive input from requestor. (Note: This maps to operation defined in BPELSycProcess.wsdl) -->
<receive name="receiveInput" partnerLink="client"
portType="client:BPELSycProcess" operation="process"
variable="inputVariable" createInstance="yes"/>
<!-- Generate reply to synchronous request -->
<assign name="Assign_1">
<copy>
<from>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>siva </wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">kris</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</from>
<to variable="wscheaders"/>
</copy>
</assign>
<assign name="Assign_Before">
<copy>
<from expression="'Before Service Invoke'"/>
<to variable="inputVariable" part="payload"
query="/client:BPELSycProcessProcessRequest/client:input"/>
</copy>
</assign>
<invoke name="Invoke_GetDate" partnerLink="GetDatesWS"
portType="ns1:GetDatesWS" operation="getDate"
inputVariable="Invoke_GetDate_getDate_InputVariable"
outputVariable="Invoke_GetDate_getDate_OutputVariable"
bpelx:inputHeaderVariable="wscheaders"/>
<assign name="Assign_After">
<copy>
<from expression="'After Service Invoke'"/>
<to variable="inputVariable" part="payload"
query="/client:BPELSycProcessProcessRequest/client:input"/>
</copy>
</assign>
<reply name="replyOutput" partnerLink="client"
portType="client:BPELSycProcess" operation="process"
variable="outputVariable"/>
</sequence>
</process>
Thanks & Regards,
SivaThere are so many limitations on what can and cannot be done in Apps related forms so you should ask this question in the relevant Apps forum: OA Framework (I would think)
-
Setting correlation ID in header (DCJMSCorreleationID) for Tibco
For communication via JMS we set the correlation ID during message mapping using a field from the outbound message but. The message contains the correlation id:
<sap:DynamicConfiguration SOAP:mustUnderstand="1">
<sap:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSCorrelationID"></sap:Record>ID:EMS-SERVER.7F849230A40AC4:36</sap:Record>
<sap:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSMessageID">MPR</sap:Record>
</sap:DynamicConfiguration>
but we get the following error:
MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Dynamic header records are missing/incorrect specified in message: 12232949-e46f-767b-e100-00000ad57c64. Erroneous/Unspecified headers are:\[ DCJMSCorreleationID \]If the header attribute for the JMS Message Correlation ID shall be set for example in an UDF one must use the string DCJMSCorreleationID . (Note the e after the l DCJMSCorrel e ationID). We accidently used DCJMSCorrelationID . Thanks Stefan for pointing that out!
-
Dynamic Quee names in JMS Channel
Hi,
Message is being sent from SAP -> PI -> TIBCO using JMS queues using JMS channels.
Is it possible to configure the queue names based on the value in the message?
Thanks,
AravindHi,
you need to set a dynamic queue in PI or in JMS ?
the blog mentiones how to create a queue in PI (on the basis of content)
and that's how I understood your question...
if you want to set dynamic queue for the JMS then I don't know the way
hope we're talking about the same thing here
BTW
with JMS receiver you can only set those values dynamically:
JMS Message Correlation ID DCJMSCorreleationID
JMS Message Expiration DCJMSExpiration
JMS Message Priority DCJMSPriority
JMS Message ReplyTo Destination DCJMSReplyTo
JMS Message Timestamp DCJMSTimestamp
and JMS message properties but not the queue name
if you need to set a queue name in JMS dynamically (and we did that in our project)
was to send everything to one queue (router queue) and the real queue name was specifed in the JMS message property
and JMS (activeMQ - camel) was able to distribute from dummy queue to the one from the JMS message property
(config only - no coding so I'd assume most of the JMS should be able to do the same)
Regards,
Michal Krawczyk -
Hi friends,
I am doing file to file sceanrio using BPM. The scenario is it is having 2 input files as inputand one file as output.So i have used BPM. In that i have used fork step.In fork, i have used 2 receive steps.It is asking for correlation. How to give correlation?What name we have to give?Please explain and provide the solution for solving the correlation problem.
Thanks,
LeelaHi Leela,
Use a BPM to collect the files. You will need corelation and then use the Transformation Step to create the mapping , Switch for checking of any conditions etc.
Check this link for example scenarios,
http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
Corelation is used when you have multiple Receive Steps in your BPM.
Consider a case, when you have multiple receive in a fork in a BPM.
Say receive A of branch 1 receives a file and is waiting for the file for receive B of branch 2 of the fork. Before, this file is available, say another BPM is instantiated because receive A has got the file. So, we have 2 active BPM's waiting for the Files of Recive B.
When this file is available how to determine which BPM this belongs to? The first or second? This is solved using Correlation.
In your case, as you have one receive and then multiple Send steps you do not need corealtion.
This may help you in BPM:
Recive Step
You can use a receive step for the following purposes:
Starting an Integration Process
Receiving Messages in Integration Processes
Defining Sync/Async Communication
Send Step
You can use a send step () for the following purposes:
· Sending Messages from Integration Processes Asynchronously
· Sending Messages from Integration Processes Synchronously
· Sending Acknowledgements from Integration Processes
· Defining Sync/Async Communication
Reciever Determination Step
You use a receiver determination step () to get a list of receivers for a subsequent send step. The receiver determination step calls the receiver determination that you configured in the Integration Directory and returns the receiver list.
Transformation Step
You use a transformation step ( ) to do the following:
● n:1 Transformation
Bundles multiple messages into one message, for example, individual purchase order items into one purchase order.
● 1:n Transformation
Splits a message into multiple messages, for example, a purchase order into the individual purchase order items.
● 1:1 Transformation
Converts a message into another message, for example, a message that is defined by interface A is converted to message that is defined by interface B.
Switch
You use a switch () to define different processing branches for a process. The Otherwise processing branch is created automatically.
You define a condition for each processing branch (see also: Condition Editor). The condition is checked at runtime. The process is continued in the branch that is first to return the value true. If no branch returns the value true, then the process is continued in the Otherwise branch.
The system checks the conditions in the order that they are numbered. This corresponds to the following sequence:
· Vertical layout: From top to bottom
· Horizontal layout: From left to right
Container Operation
You use a container operation () to set a value for a target container element at runtime (see also: Defining the Data of a Process in Containers). The target container element and the assigned value must have the same data type. To specify the value, use the expression editor (see also: Using the Expression Editor .
You can:
· Assign
Assigns a value to a single line or multi-line container element. This value overwrites the previous value. You can use this container operation to count a counter variable, for example.
· Append
Appends a value to a multiline container element. For example, you can use this container operation to append individual messages to multiline container elements when gathering messages together.
Control Step
You use a control step () to do the following:
· Terminate the current process
· Trigger an exception
· Trigger an alert for Alert Management (see also: Triggering an Alert)
Block
You use a block () to combine steps that you want to execute one after the other and which are to access the same local data (see also: Containers). You can also use a block to combine steps that you want to have the same deadline or exception handler, or to define a local correlation.
You can define the mode Parallel For Each(ParForEach) for a block or Dynamic Sequence (ForEach). This means that the block is executed for all elements of a multi-line container element.
Fork
You use a fork () when you want to continue a process in branches that are independent of each other, for example, to communicate with two systems that are independent of each other. The branches of the fork join in a union operator.
You can specify the required number of branches and then define whether the process must run through all branches, or just a particular number of branches. Furthermore, you can define an end condition for the fork (see also: Condition Editor).
As soon as a branch reaches the union operator at runtime, the system checks the following conditions in the specified order:
· The process has run through the required number of branches
· The specified end condition has returned true
The step is complete as soon as one of the conditions returns true.
Loop
You use a loop ( ) to repeat the execution of steps within the loop. The loop continues to run while the end condition returns true (while loop).
To specify the end condition, use the condition editor.
Wait Step
You use a wait step () to incorporate a delay in a process. Usually, you use a delay to define when the next step in the process is to start. You can define a delay as either a point in time or a period of time.
At runtime, the step waits until the specified point in time is reached or the specified period of time has passed. The system then continues the process by proceeding with the next step.
Check here for knowing more about fork step... http://help.sap.com/saphelp_nw04/helpdata/en/24/e2283f2bbad036e10000000a114084/content.htm
Reward points if this helps
Regards
Vani.
Maybe you are looking for
-
Editable Field in ALV Tree Control
Hello All, Can anyone tell me how can i make a field editable in an Alv Tree grid. I have tried with fiedcatalog-edit = 'X'. but that doesn't work. also please provide a piece of code to be clear ... Thanks, Ravi Aswani
-
I have 4 and 5 copies of my photos under photos on my ipad. I do not have a delete button to delete them. Also, my icloud is upto date but my new photos are no longer streamimg to my photo stream.
-
How can i modify my directoriy names and package alltogether once for all?
thanks !
-
Regarding overall purchase requisition release strategy
Hi, For following combination PR release strategy is not working. 1.Total value of requisition 2.Purchasing Organization 3.Name of Requisitioner/Requeste But when we take any one of them it is working. But when I tried to put together, these f
-
Vado central changes clip dates to transfer time
vado central changes clip dates to transfer time When vado central transfers movies from vado hd onto my imac, each clip gets the date of the transfer, not the date the movie was taken. I have the latest vado central for macs (..0f6). I've tried both