IBM Support

JR57243: YOU OBSERVE UNEXPECTED BEHAVIOR AT RUN TIME WHEN YOU USE PROPERTY NAMES THAT ARE USED AS FUNCTION NAMES

Subscribe

You can track all active APARs for this component.

 

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