1 Reply Latest reply on May 19, 2013 11:00 AM by kiransaravi

    Error in adding multiple attachments to Human Task in BPM


      Hope you are doing fine.
      My version is without Feature Pack.
      I have a scenario where I get a set of documents from UCM, and I have all of them in an array(of type GetFileByIDResult(UCM GetFile Webservice response type)).

      Please note that for a single attachment, I'm not getting this problem.

      I know that ExecData.Attachments[] takes array of Attachment types.
      But I could not create an Attachments[](array type) type data object, What I could create is of type '<>Attachments' which I thought was an array, but not, as it is not letting me associate to ExecData.attachments
      So, I've created a variable of type ExecData(say PDOExecData), used a script task, and did XSLT between the array and this new PDOExecData
      I've used for-each on the arrayOfUCMOutput, mapped the content, name, etc.
      And, now, in the human task association, I've assigned PDOExecData.attachments to Human Task's ExecData.attachments

      But I'm getting the following error

      XPath query string returns multiple nodes. The assign activity part and query bpmn:getDataObject('taskExecData2')/ns:attachment are returning multiple nodes. The assign activity part and query named in the error message returned multiple nodes. It should return single node. According to BPEL4WS specification 1.1 section 14.3, the assign activity part and query named in the error message should not return multiple nodes. Verify the part and xpath query named in the error message at line number -1 in the BPEL source.

      This means htat attachments take a single element, but it should take array of elements, and that is what is showin in the mapper file indicated by attachments[] in the ExecData

      Would you please help me in this regard.
      One possible solution could be, if I'm able to create an array of 'Attachment' type, I could map to it and finally map this var to ExecData.attachments, but how to create an array of a type in BusinessObjects/ProcessDataObjects