Perhaps walking through an example will help clarify things. Assuming the following record definition:
MyFolder:MyRecord
…SubRec1 (record)
…Fld1.1
…Fld1.2
…SubRec2 (record)
…Fld2.1
…Fld2.2
…SubRecList1 (record list)
…Fld3.1
…Fld3.2
When you receive an XML doc that supposedly conforms to the definition of MyFolder:MyRecord, you invoke:
pub.web:stringToDocument
…receivedString –> xmldata
…do not set/map to $filedata
…do not set/map to $filestream
…set encoding if desired
…do not set/map to expandDTD
…set isXML to ‘true’
Map the output variable named node to any pipeline variable or just let it default to being in the pipeline as ‘node’.
Then invoke:
pub.web:documentToRecord
…output node from stringToDocument –> node
…do not set/map to attrPrefix
…do not set/map to arrays
…set makeArrays to false
…do not set/map to collect
…do not set/map to nsDecls
…do not set/map to records
…set recordName to MyFolder:MyRecord
…do not set/map to mixedModel
Map the output variable named boundNode to a variable that is a record reference to MyFolder:MyRecord and drop boundNode. The pipeline will now have a properly structured record, with a record list even when only one record is present in the XML string SubRecList1 list.
Note that the recordName parameter for documentToRecord is the fully-qualified name of your full record. Do not use the name of any sub-records.
If this doesn’t help, perhaps you can post the fully-qualified name of your record definition, a snippet of the XML that you’re trying to process, and the parameters you’re passing to documentToRecord and we can figure what’s happening.
#webMethods#Integration-Server-and-ESB#Flow-and-Java-services