Direct links to fixes
APAR status
Closed as program error.
Error description
In IBM Process Designer, you can define business object types with property names of your choice. The editor validates the property names that you enter so that you see a validation error when you use a JavaScript-reserved word, for example "else", "for", or "while". However, the IBM Business Property Manager (BPM) runtime environment also reserves certain property names, for example "isDirty", "metadata", and "propertyNames" because they are used as function names. For these function names, you don't see validation errors. When you uses one of these property names, you can't access or update the property by using the common syntax: tw.local.variableName.<propertyName>. Also, you see the value of the IBM BPM reserved property instead of the business object property even for properties that are relevant only for lists, not objects. For example, you can't use a property named "listLength" because business object lists use this is a reserved word to retrieve the number of items in a list. Setting a reserved word function incorrectly may result in the following errors: "Property listLength in class xxxxx is not declared. It must be declared to be used "The object is created as an array. Only array functions are available" PRODUCTS AFFECTED IBM BPM Advanced IBM BPM Standard IBM BPM Express
Local fix
Do not use any name of predefined functions or properties of lists and objects as a property name in a business object type. The list of predefined functions and properties for lists are - arrayLength - arrayToNativeArray - describe - insertIntoArray - insertIntoList - isDirty - length - listAddSelected - listAllSelected - listAllSelectedIndices - listClearAllSelected - listIsSelected - listLength - listRemoveSelected - listSelected - listSelectedIndex - listToNativeArray - metadata - removeIndex - toJSONString - toString - toXML - toXMLString Note: Because some of these names are deprecated, the auto-completion function in the JavaScript editor does not offer them.
Problem summary
The JavaScript API in IBM BPM uses the same implementation class for business objects independent of whether the object is a list of objects or an individual JavaScript object. As a result, properties that are relevant only for lists also affect objects. PRODUCTS AFFECTED IBM BPM Advanced IBM BPM Standard IBM BPM Express
Problem conclusion
A fix will be included in IBM BPM V8.5.7 cumulative fix 2017.03 that enhances the validation in Process Designer to warn you about using reserved names. The fix also separates the JavaScript API for objects and lists, allowing you to use the names of predefined functions and properties predefined for lists as names only for properties in a business object type. For the predefined functions and properties of objects, consider using different names for properties of a business object type. If you must use such a property name, you must use the getPropertyValue and setPropertyValue functions to retrieve and update the property value. When you try to set a predefined property or function, you see an exception that is similar to the exception you see when you try to access a non-existing property. The predefined functions and properties of an object are - defineSOAPProperty - describe - getPropertyValue - getTypeName - isDirty - load - metadata - propertyNames - propertyValues - removeProperty - save - setPropertyValue - setSOAPElementName - setSOAPElementNS - setSOAPType - toJSON - toJSONString - toString - toXML - toXMLString - tw_ObjectName - tw_ObjectVersion Note: Because some of these names are deprecated, the auto-completion function in the JavaScript editor does not offer them. To determine whether the cumulative fix is available and download it if it is, complete the following steps on Fix Central (http://www.ibm.com/support/fixcentral): 1. On the Select product tab, select WebSphere as the product group, IBM Business Process Manager with your edition from the WebSphere options, All as the installed version, and All as the platform, and then click Continue. 2. In the Text field, enter "cumulative fix", and click Continue.
Temporary fix
Comments
APAR Information
APAR number
JR57243
Reported component name
BPM STANDARD
Reported component ID
5725C9500
Reported release
857
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-01-10
Closed date
2017-07-06
Last modified date
2019-03-20
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
BPM STANDARD
Fixed component ID
5725C9500
Applicable component levels
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSFTDH","label":"IBM Business Process Manager Standard"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"857","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
04 September 2023