Posts tagged "script"

When working with namespaces in the SetValue and Script objects in LC7, you may receive an error saying the “path” is unreachable, or similar errors pointing to problems in the expressions, after migrating to LC ES.

Reason

These errors can occur in LC ES when using namespaces such as in the following example:

LiveCycle ES now validates XPath expressions more strictly than it did in LiveCycle 7. LC ES requires you to define the namespaces in the process, whereas Lc7 did not have this requirement.

Solution

Adding the namespace to the process properties will fix the issue. You only need to add these namespaces once for each process, and all the Script and SetValue activities in that process will be able to reference those namespaces.

To add the namespaces:

Open the process properties and go to the Advanced > Registered Prefixes for Namespaces used in XPaths and enter the prefix (i.e. soap), and the namespace (i.e. “http://schemas.xmlsoap.org/soap/envelope/“).

This script works fine in LiveCycle 7, but after upgrading to LiveCycle ES, the script throws the error.

Reason

There are some unexpected characters in the XML data stream.

Solution

In this case there were quotation marks at the start and end of the XML stream. Such characters were stripped away automatically in LiveCycle 7, but LiveCycle ES is more strict with the format of the incoming XML. You must remove the unexpected characters manually and then it will process the XML without problems.

Additional Information

If a LiveCycle 7.x process, that is upgraded to LiveCycle ES, includes the Script QPAC, the Script QPAC may contain script that was developed using the LiveCycle 7.x API. To ensure compatibility with LiveCycle ES, the script may need to be rewritten based on the LiveCycle ES API.

In this case the getProcessDataStringValue() and setProcessDataValue() methods of the patExecContext embedded object are available in ES just as they were in LiveCycle 7 so there were no changes necessary in the script.