Rules for Internal Value Object

This list identifies the rules for internal value objects:

  • The structure of an internal value object has a flatter hierarchy than the published value object, because the internal value object has few if any compounds or components.

  • The collections within the internal value object can be created using either ArrayList or Array. An ArrayList is easier to work with because it can be dynamically sized. Arrays are necessary when the internal value object will be serialized. A business service that exposes JD Edwards EnterpriseOne functionality to a third party can use an ArrayList. A business service called from a business function (for example, using web service callout when JD EnterpriseOne is a web service consumer) must use an Array because the ArrayList data type cannot be serialized.

    For example, you can use the following code sample to declare the compound for phones:

    Private ArrayList internalPhones = null;
    

    ArrayList is populated during business service processing, and in the preceding code sample, the collection contains InternalPhone objects.

    Or you can use this code sample to declare the compound for phones:

    Private InternalPhone[] internalPhones = null;
    
  • The data types for internal value object classes match the types used in the JD Edwards EnterpriseOne data structures, as identified in the following table:

    Internal Value Object Data Type

    Usage

    oracle.e1.bssvfoundation.util.MathNumeric

    Use for all fields that are declared as numeric in JD Edwards EnterpriseOne.

    java.lang.String

    Use for string and char fields.

    java.util.Date

    Use for all JDEDate fields in JD Edwards EnterpriseOne.

    java.util.GregorianCalendar

    Use for all UTIME fields in JD Edwards EnterpriseOne.