I'm attempting to use patExecContext.getProcessDataDocumentValue() in a script. The input argument I'm using is simply the root node of the init_form. This method is returning null, so I assume I have the argument wrong.
What should the input arg look like to return the entire input Document?
I've tried as many variations on the arguments string as I can think of. The root element of the document is the purchaseOrder.
The problem I'm really trying to solve is that the PO has an unbounded collection of lineItems, and I want to iterate over that collection to calculate a subtotal. I was thinking I could make a DOM from the Document and then do whatever I need to with the DOM, since I already have experience with that.
getProcessDataDocumentValue only works on a Document type of variable. It looks like your "inputform" variable is of type "form", so this is never going work. Also, you need to prefix all process variables with "/process_data/" i.e. "/process_data/inputform/form-data/..." Non XML variables require an additional ampersand i.e. "/process_data/@myint".
I'm pretty sure that if you call getProcessDataValue(/process_data/inputform/form-data/data/xdp/datase ts/data/purchaseOrder") you'll get a DOM node, and from there you should be able to navigate through the rest of the document. (I don't have the environment set up on my current machine to validate this - let me know if you have problems.)
Thanks for your answer.But I have tested that "print" can work and I found that the method "getProcessDataStringValue" in my code can not work.If I add the first line ,nothing printed out and If I commented it, "aa" was printed.
So ,Could anyone tell me how to make "getProcessDataStringValue" work?
Woops, sorry. I wasn't aware of print(). As you can see, I'm not an expert on the Script qpac :-)
One problem you might have is that @status is an integer, and you're trying to get it as a string. I would hope that the script qpac would cast it for you, but maybe not. Perhaps try getProcessIntValue()?
That looks like it should work.
Try the same expression in the SetValue QPAC, making sure that the expression is correct and that the element has a value. You can use the VariableLogger QPAC (http://www.avoka.com/avoka/qpac_library.shtml) to verify that you're getting the value you expect.
LiveCycle 7.2 introduced the concept of Lists and Maps. These are separate types of variables to repeating sections within the XML of a form. It would be nice if you could use them interchangably, but you can't.
Setting repeating sections in a Form is quite difficult, requiring quite detailed knowledge of the internals of Form Variables. What is it that you're trying to achieve, there might be an easier way to do it?
Setting a repeating section in an XML variable is a little easier, but you still basically need to get an org.w3c.Document object, and manipulate it using the Document apis. Fiddly.
Let me know what you're tyring to achieve, I let you know if I can think of a simple way of doing it.
I am just trying to set the repeating fields in my form. Acrobat Reader does not let using web services(requires reader extensions) so I try to find alternative ways of importing data into my form. I can set some fields by using setProcessDataStringValue method. I just wonder is there a method in the api to set repeating fields in the form.
Where is the data coming from that you're trying to insert into the form? If it's coming from a SQL query, our SQLPlus qpac will correctly do this. If it's just some data you want to set, a special QPAC would probably be the best solution. We can talk about this separately if you want: htreisman-at-avoka.com