Author |
Message
|
zemi |
Posted: Fri Jul 08, 2005 9:39 am Post subject: vb UPES xml error |
|
|
 Novice
Joined: 12 Feb 2003 Posts: 10
|
I am getting this error:
FMC01101E The XML document is not a valid MQSeries Workflow XML document.
When I start a workitem that is defined to use a UPES. The workitem stays in a running state.
The XML file is valid -- it's being generated by workflow. The length of the message is 3327. During my testing I find that when I send an xml message that is over 2800 in length, then mq returns this error.
My workflow is setup to handle unlimited message size. What else should I do???? |
|
Back to top |
|
 |
jmac |
Posted: Fri Jul 08, 2005 10:50 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
When are you getting this error?
IF you are sure that the XML Message you are sending back to MQWF is correct, then I would open a PMR. I am assuming here that you are sending a response back. If not, that would be why it is staying in a running state. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
zemi |
Posted: Mon Jul 11, 2005 6:21 am Post subject: xml valid? |
|
|
 Novice
Joined: 12 Feb 2003 Posts: 10
|
jmac wrote: |
When are you getting this error?
IF you are sure that the XML Message you are sending back to MQWF is correct, then I would open a PMR. I am assuming here that you are sending a response back. If not, that would be why it is staying in a running state. |
Is there any way it might NOT be valid when workflow creates it?
How do I send a message back? Workflow generates the xml when I start the workitem and then I get the error message in the replytoqueue. My program that should be executed is still the same one written to run against a PEA...it reads container values and then sets the transition condition.
If the UPES calls ActivityImplInvoke which calls the same exe as used by the pea, do I need to create a ActivityImplInvokeResponse message in that exe?
Here's the error message in the replytoqueue:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- This document is generated by a MQSeries Workflow Version 3.2.2 server -->
<WfMessage>
<WfMessageHeader>
<ResponseRequired>No</ResponseRequired></WfMessageHeader>
<GeneralError>
<Exception>
<RC>1101</RC>
<Parameters>
</Parameters>
<MessageText>FMC01101E The XML document is not a valid MQSeries Workflow XML document.\n</MessageText>
<Origin>e:\v322\src\fmcmflme.cxx(130)</Origin>
</Exception>
</GeneralError>
</WfMessage> |
|
Back to top |
|
 |
jmac |
Posted: Mon Jul 11, 2005 6:32 am Post subject: Re: xml valid? |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
zemi wrote: |
<!-- This document is generated by a MQSeries Workflow Version 3.2.2 server -->
|
1. This is an ancient and most likely unsupported version of MQ Workflow.
2. I still am not certain when you are getting this message? If you are getting the message in the ReplyTo queue is this when you are Starting the process? Or is it when your UPES is responding back to MQWF? I think the latter, in which case your response message is not properly formatted. You must send back a properly formatted response. See the manual for the format. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
zemi |
Posted: Mon Jul 11, 2005 2:16 pm Post subject: Re: xml valid? |
|
|
 Novice
Joined: 12 Feb 2003 Posts: 10
|
jmac wrote: |
1. This is an ancient and most likely unsupported version of MQ Workflow.
2. I still am not certain when you are getting this message? If you are getting the message in the ReplyTo queue is this when you are Starting the process? Or is it when your UPES is responding back to MQWF? I think the latter, in which case your response message is not properly formatted. You must send back a properly formatted response. See the manual for the format. |
1.) We are upgrading soon, but we wanted to implement the UPES prior to that.
2.) I get the error when I am starting the workflow process instance. I run my UPES and it picks up the message, processes it as a valid message, place it on the EXEXMLINPUTQ and then I immediately get the error message delivered to my reply queue. Here's the message sent to my queue:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- This document is generated by a MQSeries Workflow Version 3.2.2 server -->
<WfMessage>
<WfMessageHeader>
<ResponseRequired>Yes</ResponseRequired></WfMessageHeader>
<ActivityImplInvoke>
<ActImplCorrelID>
RUEAGUATAAAAAAAAAAAAAAABAAAABAAZgAAAAAAAAAAAAAAAAAEAAAAEQQAZQBUAAAAAAAAAAAAAAAFF
</ActImplCorrelID>
<Starter>IMPORTER</Starter>
<ProgramID>
<ProcTemplID>ABmAAAAAAAAAAAAAAAAAAQ==</ProcTemplID>
<ProgramName>MQ to CM</ProgramName>
</ProgramID>
<ImplementationData>
<ImplementationPlatform>Windows95</ImplementationPlatform>
<ProgramParameters></ProgramParameters>
<ExeOptions>
<PathAndFileName>C:\Program Files\Workflow\mq2cm.exe</PathAndFileName>
<InheritEnvironment>true</InheritEnvironment>
<StartInForeGround>true</StartInForeGround>
<WindowStyle>Visible</WindowStyle>
</ExeOptions>
</ImplementationData>
<ImplementationData>
<ImplementationPlatform>WindowsNT</ImplementationPlatform>
<ProgramParameters></ProgramParameters>
<ExeOptions>
<PathAndFileName>C:\Program Files\Workflow\mq2cm.exe</PathAndFileName>
<InheritEnvironment>true</InheritEnvironment>
<StartInForeGround>true</StartInForeGround>
<WindowStyle>Invisible</WindowStyle>
</ExeOptions>
</ImplementationData>
<ProgramInputData>
<_ACTIVITY>MQ to CM</_ACTIVITY>
<_PROCESS>Import(1234567)</_PROCESS>
<_PROCESS_MODEL>Import</_PROCESS_MODEL>
<AgentDS>
<ImportDS>
<policy_symbol>CPP</policy_symbol>
<policy_number>1234567</policy_number>
<insured_name>Lora</insured_name>
<effective_date>04/19/2005</effective_date>
<change_date>04/18/2005</change_date>
<agency_id>9999999</agency_id>
<doc_type>NB</doc_type>
<doc_id>xyz1234AAA$$$$$$</doc_id>
<quote_number>Q</quote_number>
<sort>Lora</sort>
<user_id>Lora</user_id>
<mod_number>00</mod_number>
<received_date>04/21/2005</received_date>
<needbydate>04/18/2005</needbydate>
<folder_id>F</folder_id>
<uncode>U</uncode>
</ImportDS>
</AgentDS>
</ProgramInputData>
<ProgramOutputDataDefaults>
<_ACTIVITY>MQ to CM</_ACTIVITY>
<_PROCESS>Import(1234567)</_PROCESS>
<_PROCESS_MODEL>Import</_PROCESS_MODEL>
<AgentDS>
<ImportDS>
<policy_symbol>CPP</policy_symbol>
<policy_number>1234567</policy_number>
<insured_name>Lora</insured_name>
<effective_date>04/19/2005</effective_date>
<change_date>04/18/2005</change_date>
<agency_id>9999999</agency_id>
<doc_type>NB</doc_type>
<doc_id>xyz1234AAA$$$$$$</doc_id>
<quote_number>Q</quote_number>
<sort>Lora</sort>
<user_id>Lora</user_id>
<mod_number>00</mod_number>
<received_date>04/21/2005</received_date>
<needbydate>04/18/2005</needbydate>
<folder_id>F</folder_id>
<uncode>U</uncode>
</ImportDS>
</AgentDS>
</ProgramOutputDataDefaults>
</ActivityImplInvoke>
</WfMessage> |
|
Back to top |
|
 |
Ratan |
Posted: Mon Jul 11, 2005 2:28 pm Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
This looks like the UPES message that is sent by WF. Post your ActivityImplInvokeResponse Message (your UPES response). _________________ -Ratan |
|
Back to top |
|
 |
zemi |
Posted: Mon Jul 11, 2005 2:54 pm Post subject: repsonse message |
|
|
 Novice
Joined: 12 Feb 2003 Posts: 10
|
OK...I think I'm understanding this now....
Workflow will generate this XML and then my program defined in my workflow activity should send a response back to EXEXMLINPUTQ before it launches?? So, I can't just call, say fmcshow.exe without first sending a response? And then if I need to update output container values in that exe...I would need to send another response??? |
|
Back to top |
|
 |
jmac |
Posted: Mon Jul 11, 2005 3:32 pm Post subject: Re: repsonse message |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
zemi wrote: |
OK...I think I'm understanding this now....
Workflow will generate this XML and then my program defined in my workflow activity should send a response back to EXEXMLINPUTQ before it launches?? So, I can't just call, say fmcshow.exe without first sending a response? And then if I need to update output container values in that exe...I would need to send another response??? |
Unfortunately I think you are not quite getting it yet. The message you showed was the Activity Invocation message. That message was sent to the Queue you defined for the UPES. The activity is in a RUNNING state because MQWF is waiting for you to send the Activity Invocation Response message.
So you don't have to do anything to get the activity to launch, it is already launched. We can tell that because of the Activity Invocation message you are showing us. The response is what tells MQWF how your UPES completed. You give it the output container contents and the Return code, in a very similar way to how you would when using the ActiveX api and a PEA. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
zemi |
Posted: Mon Jul 11, 2005 3:42 pm Post subject: resposne message |
|
|
 Novice
Joined: 12 Feb 2003 Posts: 10
|
OK. Thanks for all the info. I think I might need to open a PMR then because my activity is supposed to be launching the exe and I don't see it run in my list of running processes and the interface doesn't launch. And it sounds like that program should open and workflow should be waiting for that program to send back the response instead of generating this error saying that the xml for the invoke message is invalid.
By the way, I have another server with version 3.3.0 of workflow and I'm getting the same results there.
Thanks again. I'll post the resolution when I get this working. |
|
Back to top |
|
 |
jmac |
Posted: Mon Jul 11, 2005 3:53 pm Post subject: Re: resposne message |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
zemi wrote: |
OK. Thanks for all the info. I think I might need to open a PMR then because my activity is supposed to be launching the exe and I don't see it run in my list of running processes and the interface doesn't launch. |
It is my opinion that workflow is processing as it should. The activity is in a running state and MQWF is waiting on your UPES to supply the response message. NO program is ever launched for an activity that is serviced by a UPES, the only think MQWF does is put the invoke message on your queue, and if you defined a Synchronous upes it waits for the results. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
Ratan |
Posted: Mon Jul 11, 2005 3:56 pm Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
I dont think this is PMR material.
no offense, but please first understand how a UPES works. You should be able to solve this once you understand how a UPES works. _________________ -Ratan |
|
Back to top |
|
 |
hos |
Posted: Mon Jul 11, 2005 10:04 pm Post subject: |
|
|
Chevalier
Joined: 03 Feb 2002 Posts: 470
|
Quote: |
I dont think this is PMR material. |
I fully agree. Note that MQWF 3.2 and 3.3 are out of maintenance long time.
And there have been many enhancements / fixes in the UPES area in the meantime. |
|
Back to top |
|
 |
zemi |
Posted: Wed Jul 13, 2005 12:54 pm Post subject: Re: resposne message |
|
|
 Novice
Joined: 12 Feb 2003 Posts: 10
|
jmac wrote: |
NO program is ever launched for an activity that is serviced by a UPES, the only think MQWF does is put the invoke message on your queue, and if you defined a Synchronous upes it waits for the results. |
I have my UPES working now. I have a program called UPES.exe that gets the activityimpl message from wf, validates it and puts it to the exexmlinputq. Workflow is automatically generating a message saything that the xml created by workflow is invalid, but I generate a response message with my output container values and my workitem transitions OK.
My question now is, do I have to pass EVERY container value? I seem to recall reading another post about setting the default mapping values in buildtime or I will have to pass all values in the XML. Is that correct?
And I'm getting what looks like an enter or a tab in my container when it gets to a PEA activity. When I view the container values, my item won't route because of that character. The xml does not have any additional space or tab. Could this be just because the apps that write to the container via the PEA are not doing a trim first?
Thanx |
|
Back to top |
|
 |
Ratan |
Posted: Wed Jul 13, 2005 1:01 pm Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
Quote: |
My question now is, do I have to pass EVERY container value? |
Not necessary. If you any container members in transition condition, then you have to make sure those attributes are not null unless you have a default connector. _________________ -Ratan |
|
Back to top |
|
 |
|