Author |
Message
|
mca |
Posted: Thu May 05, 2005 3:18 pm Post subject: [SOLVED] Flow doesnot proceeds after UPES activity. |
|
|
Disciple
Joined: 09 Mar 2005 Posts: 196
|
hi,
After succesful creation of UPES activity, i am picking up the XML message and processing it and putting back another XML message on reply default Q (FMC.FMCGRP.EXE.XML) capturing the activecorrelationID. After that Flow is not proceding to next step. I saw many pdf's and generated my XML. I am sure i generated correct XML.
Also i see WF picking up the message as current depth is "0" after i put it. To make sure the message is being put on Q, i shutdown WF for a moment and observed current depth = 1 and then restarted WF and it picked the message.
But what might be the reason for the Flow not to proceed with next step ?
Thanks
MCA
Last edited by mca on Wed May 11, 2005 6:47 am; edited 1 time in total |
|
Back to top |
|
 |
jmac |
Posted: Thu May 05, 2005 5:23 pm Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
What state is the UPES activity in NOW? Is it still in a running state? _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
mqmhr |
Posted: Thu May 05, 2005 8:17 pm Post subject: |
|
|
Centurion
Joined: 28 Dec 2004 Posts: 105
|
Most likely, there is a mismatch between the response XML message fields and the output container of the UPES task. So this needs to be checked thorughly. Also ensure that the ActImplCorrelId is exactly the same as that of the input message.
For testing, assign "Yes" to ResponseRequired field, specify a valid ReplyToQ in the MQMD and put the message to the Workflow queue. The reply message thus obtained will give valuable information about any errors.
Also ensure that if you are using any Array fields in the message, you have at least two occurences of that field. |
|
Back to top |
|
 |
vennela |
Posted: Fri May 06, 2005 5:35 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
mqmhr wrote: |
For testing, assign "Yes" to ResponseRequired field, specify a valid ReplyToQ in the MQMD and put the message to the Workflow queue. The reply message thus obtained will give valuable information about any errors. |
Will this work for UPES messages? I thought this only worked for XML messages that we put to create and start processes etc. Haven't done much workflow these days.... |
|
Back to top |
|
 |
jmac |
Posted: Fri May 06, 2005 6:24 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
vennela wrote: |
Will this work for UPES messages? I thought this only worked for XML messages that we put to create and start processes etc. Haven't done much workflow these days.... |
Vennela: You are correct in that YES does not guarantee a response, when replying to an ActivityInvoke, MQWF interprets YES and IFERROR the same. In this case, since there is an error it may help... but then again, I believe that the correlation id is hosed up, and therefore, MQWF is not even getting a proper response. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
mca |
Posted: Fri May 06, 2005 6:22 pm Post subject: |
|
|
Disciple
Joined: 09 Mar 2005 Posts: 196
|
Hi all,
I guess the problem might be in the response XML i created. The activeCorrelationID in my response is same as the one i captured in actual XML. But might be some tag i need to give is missing. I made the UPES activity asysnchronous(Fire and Forget) and its going to next step. So, problem might be in the XML mesage after it picks up and its stopping. I will work over the weekend on this and let u guys know where the problem is. Thanks all for the replies.
MCA |
|
Back to top |
|
 |
mqmhr |
Posted: Fri May 06, 2005 10:16 pm Post subject: |
|
|
Centurion
Joined: 28 Dec 2004 Posts: 105
|
In this case, I strongly believe that there is a mismatch between the data fields of the output container of the task and the XML message sent to Workflow. I have experienced a similar problem before and was able to capture very informative error messages, when ResponseRequired was set to Yes. Hence the suggestion. |
|
Back to top |
|
 |
mca |
Posted: Mon May 09, 2005 5:59 am Post subject: |
|
|
Disciple
Joined: 09 Mar 2005 Posts: 196
|
The data structure i used for UPES activity "ALPHA" is:
Alpha:
a: STRING
b: STRING
c: STRING
AlphaNum : DataStructure
Num1: STRING
Num2: STRING
and i will be getting XML message based on this data structure. Now while putting back Response onto the Q i need to Put the values of Num1 and Num2 as '0' and '1' respectively. And here is the Response XML that i am generating:
Code: |
<?xml version=\"1.0\" standalone=\"yes\"?>
<!-- This document is generated by UPES Response class -->
<WfMessage>
<WfMessageHeader>
<ResponseRequired>No</ResponseRequired>
</WfMessageHeader>
<ActivityImplInvokeResponse>
<ActImplCorrelID> + actImplCorrelID.trim() </ActImplCorrelID>
<ProgramRC> 0 </ProgramRC>
<ProgramOutputData>
<Alpha>
<AlphaNum>
<Num1>0</Num1>
<Num2>1</Num2>
</AlphaNum>
</Alpha>
</ProgramOutputData>
</ActivityImplInvokeResponse>
</WfMessage> |
I guess the XML i am putting back is right. Can some one correct me with the XML to change the values of o/p container. As i said the WF stops after taking this message. So, problem might be in putting back the values. Also i printed the above XML message that is taken into "XMLMessage" String in program to make sure it is what i wanna put onto Q. I gives correct ActImplCorrelID that its supposed to generate.
Last edited by mca on Mon May 09, 2005 6:32 am; edited 1 time in total |
|
Back to top |
|
 |
vennela |
Posted: Mon May 09, 2005 6:12 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Quote: |
I guess the XML i am putting back is right. |
You are wrong.
Based on your DS, your XML should inside ProgramOutputData should look like
Code: |
<Alpha>
<a>mca</a>
<b>mca</b>
<c>mca</c>
<AlphaNum>
<Num1>1</Num1>
<Num2>2</Num2>
</AlphaNum>
</Alpha> |
Again:
Try to understand the very basics of XML. |
|
Back to top |
|
 |
mca |
Posted: Mon May 09, 2005 6:29 am Post subject: |
|
|
Disciple
Joined: 09 Mar 2005 Posts: 196
|
Thanks vennela for that suggestion. But in one of my earlier posts i asked if i need to put back all values to o/p container even if i am not changing them, then "ratan" suggested to send what ever values i update and if i need any more data from i/p container, he asked me to use data default connector. So, that is what i did in this case.
I used data default connector to those variables a, b and c from i/p to o/p container. and only populated num1 and num2 in my response UPES.
Here is my earlier link of populating values into o/p container.
http://www.mqseries.net/phpBB2/viewtopic.php?t=21912
Plzz Correct me if i am wrong.
Last edited by mca on Mon May 09, 2005 6:31 am; edited 1 time in total |
|
Back to top |
|
 |
vennela |
Posted: Mon May 09, 2005 6:31 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
In that case it should look like
Code: |
<Alpha>
<AlphaNum>
<Num1>1</Num1>
<Num2>2</Num2>
</AlphaNum>
</Alpha>
|
|
|
Back to top |
|
 |
mca |
Posted: Mon May 09, 2005 6:37 am Post subject: |
|
|
Disciple
Joined: 09 Mar 2005 Posts: 196
|
i am sorry,
That was what i meant. It was a spell mistake in my earlier post typing Num1 as AlphaNum1 and Num2 as AlphaNum2. I corrected it now in my XML message in this post i typed earlier. Now my XML looks like the one i am using. And this is the one which doesnot work. So, may be i will check again with the conditions of the activity again.
thanks vennela for the correction in this post. |
|
Back to top |
|
 |
vennela |
Posted: Mon May 09, 2005 6:42 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Another trick that you could use is:
Logon to the workflow server using fmcautil and keep it running - don't logoff.
Now when you PUT the XML message, if there is some kind of error, it will be shown in the console where you run the admin utility. |
|
Back to top |
|
 |
mca |
Posted: Wed May 11, 2005 6:47 am Post subject: |
|
|
Disciple
Joined: 09 Mar 2005 Posts: 196
|
Hi all,
Now my work flow is proceeding to next step, after i put the response message onto the Response Q(EXEXMLINPUTQ). The mistake i have done earlier while testing is may be this:
Code: |
My nested data structure which is putting message on UPES Q is:
Alpha DataStructure
a STRING
b STRING
c STRING
AlphaNum DataStructure
Num1 LONG
Num2 LONG
and the response XML message i generated earlier is:
<AlphaNum>
<Num1>1</Num1>
<Num2>2</Num2>
</AlphaNum>
and the response XML message i generated now is:
<Alpha>
<AlphaNum>
<Num1>1</Num1>
<Num2>2</Num2>
</AlphaNum>
</Alpha>
|
So, i missed the main data structure "Alpha" in my message earlier. Now its soved. Thanks all for the replies and guidance.
MCA |
|
Back to top |
|
 |
|