Error when calling EventCollectorReportService.getProcessInstanceAudit

Error when calling EventCollectorReportService.getProcessInstanceAudit

book

Article ID: KB0079143

calendar_today

Updated On:

Products Versions
TIBCO BPM Enterprise (formerly TIBCO ActiveMatrix BPM) 4.0, 4.1, 4.2 HF-1

Description

If a client application called the getProcessInstanceAudit operation (from the
EventCollectorReportService) against a process instance that has itself invoked
a service process, the call failed and the following error was written to the
BPM log file:

   Internal Server Error: Process Runner Failed with the exception
   PVM-XML-106017: Expression Evaluation Error

This error occurred because the getProcessInstanceAudit response returns "nil"
for a service process call, but the EventCollectorReportService schema did not
specify the nillable="true" attribute for the instanceId element used by the
getProcessInstanceAudit operation.

Issue/Introduction

Error when calling EventCollectorReportService.getProcessInstanceAudit

Environment

All supported operating systems and databases

Resolution

If you have developed client applications that use the BPM public web
service API and that call the getProcessInstanceAudit operation, you will need
to modify the EventCollectorReportService schema definition used by your
application to prevent this error from occurring. To do this, you must manually
edit, either:

* your existing XSD (if your application uses the BPM public web service API), or
    
* the in-line schema in your generated WSDL (if your application uses a WSDL
  generated from the EventCollectorReportService running on the ActiveMatrix
  BPM runtime).

Find the following definition of the ProcessInstanceReference:

<xs:complexType name="ProcessInstanceReference">
    <xs:annotation>
        <xs:documentation>An entity representing a reference to a
        ProcessInstance, using the Process Instance Id</xs:documentation>
    </xs:annotation>
    <xs:sequence>
        <xs:element name="instanceId" type="xs:string" minOccurs="1"
        maxOccurs="1">
            <xs:annotation>
                <xs:documentation>The id of this Process Instance Reference
        </xs:documentation>
            </xs:annotation>
        </xs:element>
    </xs:sequence>
</xs:complexType>

and add the nillable="true" attribute, as shown below:

<xs:complexType name="ProcessInstanceReference">
    <xs:annotation>
        <xs:documentation>An entity representing a reference to a
        ProcessInstance, using the Process Instance Id</xs:documentation>
    </xs:annotation>
    <xs:sequence>
        <xs:element name="instanceId" type="xs:string" minOccurs="1"
        maxOccurs="1" nillable="true">
            <xs:annotation>
                <xs:documentation>The id of this Process Instance Reference
        </xs:documentation>
            </xs:annotation>
        </xs:element>
    </xs:sequence>
</xs:complexType>