Flow service not process XML file after file polling

Hello,

I am monitoring for XML files using file polling method and as defined in port settings, IS picks the XML file. But, the problem is, XML file processing input service does not have this file in its Input variable and hence fails with exception,

[ISC.0076.0007W] XMLCoder decode invalid data type: com.wm.lang.xml.Document

I had set Content-Type as “text/xml” in port settings and Flow service Input variable is of type “String”.

Having coded SavePipelineToFile and RestorePipeline in first step, debug does not have input variable listed.

Please advise.

Thanks,
Siva

Siva,

If you place a pub.flow:tracePipeline as the first step in the file polling port’s handling service you should see a single variable “node” that will contain the contents of your polled XML file as long as that file contains a valid XML document.

Mark

Siva,

Please follow Mark’s suggestion it will help you in debug.

Anyways your polling service input should be node(object) and place XMLNodetoDocument(this service will parse xml node to IDATA document) as initial step.Retest end to end it should work,you can keep save/restore after node to document step you should see the parsed IDATA.

HTH,
RMG

Hi RMG/Mark,

My flow service already has Savepipeline and RestorePipeline as first/second steps. I will enable and disable accordingly before and after debug. So, before debug, SavePipeline would be first step and while debug RestorePipeline will be first.

I do not think, problem with debug.

Please let me know.

Thanks,
Siva

Siva,

Sorry no confusion…

First of all your service input should be “node” object variable and remove the string variable from your input.

since you are new to this process please follow these steps

tracepipeline(for debugging if required)
XMLNodeToDocument(this is required for parsing XML to IDATA structure)
Savepipeline (for debugging)
check your results pipepline with restore pipeline,you should see the parsed document.

If you make sure everything OK then remove all the debugging steps.

HTH,
RMG

Actually, it may be. Your first post indicated you are using pub.flow:savePipelineToFile. If that’s the case, be advised that it behaves differently than pub.flow:savePipeline. savePipelineToFile does not persist objects (e.g. the node object). savePipeline does.

If you follow Mark’s advice, you’ll see the list of vars in the server log file. You can confirm the name of the input var.

Can you post the steps your service has? Then we can provide better guidance.

Thanks to ALL,

Made changes per RMG’s suggestion, and this worked.

Lesson learned:
Created XMLNodeToDocument as first service which takes “node” object and this works per RMG’s suggestion below in this thread.

Thanks Again,
Siva