bea.com | products | dev2dev | support | askBEA

Download Docs | Site Map | Glossary
Search

Translating Data

Supported Data Types

WebLogic Integration supports the following data types:

- MFL Data Types

- COBOL Copybook Importer Data Types

- C Structure Importer from Importing Metadata

This section describes them.

MFL Data Types

Table A-1 lists the MFL data types supported by WebLogic Integration. These types are specified in the type attribute of a FieldFormat element.

Table A-1 Supported MFL Data Types

Data Type | Description | Example
--- | --- | ---
Binary (Base64 encoding) | Any character value accepted. Requires a length, length field, delimiter, or a delimiter field. Resulting XML data for this field is encoded using base-64. | N/A
Binary (Hex encoding) | Any character value accepted. Requires a length, length field, delimiter, or delimiter field. Resulting XML data for this field is encoded using base-16. | N/A
DateTime: MM/DD/YY hh:mm | String defining a date and time | 01/22/00 12:24
DateTime: MM/DD/YY hh:mi AM | String defining a date and time | 01/22/00 12:24 AM
DateTime: MM/DD/YY hh:mm:ss | String defining a date and time | 01/22/00 12:24:00
DateTime: MM/DD/YY hh:mm:ss AM | String defining a date and time | 01/22/00 12:24:00 AM
DateTime: DD/MM/YY hh:mm | String defining a date and time | 22/01/00 12:24
DateTime: DD/MM/YY hh:mm AM | String defining a date and time | 22/01/00 12:24 AM
DateTime: DD/MM/YY hh:mm:ss | String defining a date and time | 22/01/00 12:24:00
DateTime: DD/MM/YY hh:mm:ss AM | String defining a date and tim | 22/01/00 12:24:00 AM
DateTime: MMDDYYhhmm | A string of numeric digits defining a date and time | 0122001224
DateTime: YYYYMMDDhhmmss | A 14-byte numeric string of the format YYYYMMDDHHMISS. A Base data type may be specified. |
DateTime: MMDDYYhhmmss | A string of numeric digits defining a date and time | 012200122400
Date: DDMMMYY | String defining a date | 22JAN00
Date: DDMMMYYYY | String defining a date | 22JAN2000
Date: DD/MM/YY | String defining a date | 22/01/00
Date: DD/MM/YYYY | String defining a date | 22/01/2000
Date: DD-MMM-YY | String defining a date | 22-JAN-00
Date: DD-MMM-YYYY | String defining a date | 22-JAN-2000
Date: MMDDYY | Six-digit numeric string defining a date | 012200
Date: MMDDYYYY | Eight-digit numeric string defining a date | 01222000
Date: MM/DD/YY | String defining a date | 01/22/00
Date: MM/DD/YYYY | String defining a date | 01/22/2000
Date: MMM-YY | String defining a date | JAN-00
Date: MMM-YYYY | String defining a date | JAN-2000
Date: MMMYY | String defining a date | JAN00
Date: MMMYYYY | String defining a date | JAN2000
Date: MMMDDYYYY | String defining a date | JAN222000
Date: YYYYMMDD | Eight-byte numeric string of the format YYYYMMDD. Base data of String or EBCDIC type may be specified to indicate the character encoding. |
Date: Wed Nov 15 10:55:37 CST 2000 | Default date format of the Java platform | 'WED NOV 15 10:55:37 CST 2000'
EBCDIC | A string of characters in IBM Extended Binary Coded Decimal Interchange Code. Requires a length, length field, delimiter, or delimiter field. |
Filler | Sequence of bytes that is not translated to XML. This data field is skipped over when binary data is being translated to XML. When XML is being translated to binary data, this field is written to the binary output stream as a sequence of spaces. |
FloatingPoint: 4-byte, Big-Endian | Four-byte big endian floating point number that conforms to IEEE Standard 754 |
FloatingPoint, 4-byte, Little-Endian | Four-byte little endian floating point number that conforms to IEEE Standard 754 |
FloatingPoint: 8-byte, Big-Endian | Eight-byte big endian floating point number that conforms to IEEE Standard 754 |
FloatingPoint: 8-byte, Little-Endian | Eight-byte little endian floating point number that conforms to IEEE Standard 754 |
Floating point IBM 4-byte IBM 8-byte | IBM mainframe floating point |
Integer: Signed, 1-byte | One-byte signed integer | '56' is 0x38
Integer: Unsigned, 1-byte | One-byte unsigned integer | '128' is 0x80
Integer: Signed, 2-byte, Big-Endian | Signed two-byte integer in big endian format | '4660' is 0x1234
Integer: Signed, 4-byte, Big-Endian | Signed four-byte integer in big endian format | '4660' is 0x00001234
Integer: Signed, 8-byte, Big-Endian | Signed eight-byte integer in big endian format | '4660' is 0x0000000000001234
Integer: Unsigned, 2-byte, Big-Endian | Unsigned two-byte integer in big endian format | '65000' is 0xFDE8
Integer: Unsigned, 4-byte, Big-Endian | Unsigned four-byte integer in big endian format | '65000' is 0x0000FDE8
Integer: Unsigned, 8-byte, Big-Endian | Unsigned eight-byte integer in big endian format | '65000' is 0x000000000000FDE8
Integer: Signed, 2-byte, Little-Endian | Signed two-byte integer in little endian format | '4660' is 0x3412
Integer: Signed, 4-byte, Little-Endian | Signed four-byte integer in little endian format | '4660' is 0x34120000
Integer: Signed, 8-byte, Little-Endian | Signed eight-byte integer in little endian format | '4660' is 0x3412000000000000
Integer: Unsigned, 2-byte, Little-Endian | Unsigned two-byte integer in little endian format | '65000' is 0xE8FD
Integer: Unsigned, 4-byte, Little-Endian | Unsigned four-byte integer in little endian format | '65000' is 0xE8FD0000
Integer: Unsigned, 8-byte, Little-Endian | Unsigned eight-byte integer in little endian format | '65000' is 0xE8FD000000000000
Literal | A literal value determined by the contents of the value attribute. When binary data is translated to XML, the presence of the specified literal in the binary data is verified by WebLogic Integration. The literal is read, but it is not translated into XML data. When XML data is translated to a binary format, and a literal is defined as part of that format, WebLogic Integration writes the literal in the resulting binary byte stream. |
Numeric | String of characters containing only digits (0-9). Requires a length, length field, delimiter, or delimiter field. |
Packed Decimal: Signed | IBM signed packed format. Requires a length, length field, delimiter, or delimiter field to be specified. The length or length field should specify the size of this field in bytes. |
Packed Decimal: Unsigned | IBM unsigned packed format. Requires a length, length field, delimiter, or delimiter field to be specified. The length or length field should specify the size of this field in bytes. |
String | Set of characters. Requires a length, length field, delimiter, or delimiter field. If no length is specified, a length field or delimiter is defined for a String data type, and a delimiter of \x00 (a NUL character) is assumed. |
String: NUL terminated | String of characters, optionally NUL (\x00) terminated, residing in a fixed-length field. This field type requires a length attribute or length field that determines the amount of data read for the field. This data is then examined for a NUL delimiter. If a delimiter is found, the data after the delimiter is discarded. Otherwise, the fixed-length data is used as the value of the field. |
Time: hhmmss | String defining a time | 122400
Time: hh:mm AM | String defining a time | 12:24 AM
Time: hh:mm | String defining a time | 12:24
Time: hh:mm:ss AM | String defining a time | 12:24:00 AM
Time: hh:mm:ss | String defining a time | 12:24:00
Zoned Decimal: Leading sign | IBM signed zoned decimal format where the sign indicator is in the first nibble. Requires a length, length field, delimiter, or delimiter field to be specified. The length or length field should specify the size of this field in bytes. |
Zoned Decimal: Leading separate sign | IBM signed zoned decimal format where the sign indicator is in the first byte. The first byte only contains the sign indicator and is separated from the numeric value. Requires a length, length field, delimiter, or delimiter field to be specified. The length or length field should specify the size of this field in bytes. |
Zoned Decimal: Signed | IBM signed zoned decimal format. Requires a length, length field, delimiter, or delimiter field to be specified. The length or length field should specify the size of this field in bytes. |
Zoned Decimal: Trailing separate sign | IBM signed zoned decimal format in which the sign indicator is in the last byte. The last byte contains only the sign indicator; it is separated from the numeric value. Requires a length, length field, delimiter, or delimiter field to be specified. The length or length field should specify the size of this field in bytes. |
Zoned Decimal: Unsigned | IBM unsigned zoned decimal format. Requires a length, length field, delimiter, or delimiter field to be specified. The length or length field should specify the size of this field in bytes. |

COBOL Copybook Importer Data Types

The following table lists the COBOL data types and the support provided by the Importer.

Table A-2 COBOL Data Types

COBOL Type | Support
--- | ---
BLANK WHEN ZERO (zoned) | Supported
COMP-1, COMP-2 (float) | Supported
COMP-3, PACKED-DECIMAL | Supported
COMP, COMP-4, BINARY (integer) | Supported
COMP, COMP-4, BINARY (fixed) | Supported
COMP-5, COMP-X | Supported
DISPLAY (alphanumeric) | Supported
DISPLAY numeric (zoned) | Supported
Edited alphanumeric | Supported
Edited float numeric | Supported
Edited numeric | Supported
Group record | Supported
INDEX | Supported
JUSTIFIED RIGHT | Ignored
OCCURS (fixed array) | Supported
OCCURS DEPENDING (variable-length) | Supported
OCCURS INDEXED BY | Ignored
OCCURS KEY IS | Ignored
POINTER | Supported
PROCEDURE-POINTER | Supported
REDEFINES | Supported
SIGN IS LEADING SEPARATE (zoned) | Supported
SIGN IS TRAILING (zoned) | Supported
SIGN IS TRAILING SEPARATE (zoned) | Supported
SIGN IS LEADING (zoned) | Supported
SYNCHRONIZED | Ignored
66 RENAMES | Ignored
66 RENAMES THRU | Ignored
77 level | Supported
88 level (condition) | Ignored

Support for these data types is limited. Data presented in either of the following formats is converted to an unsigned four-byte integer type:

- 05 pic 9(5) comp-5

- 05 pic 9(5) comp-x

Data presented in the following formats generates errors:

- 05 pic X(5) comp-5

- 05 pic X(5) comp-x

In these samples, pic9(5) can be substituted for pic x(5).

The following table defines the three levels of support for these data types.

Table A-3 Data Type Support Levels

Level of Support

Definition

Supported

Data type is parsed correctly by the importer and converted to a message format field or group.

Unsupported

Data type is not supported; the importer reports an error when the copybook is imported.

Ignored

Data type is parsed and a comment is added to the message format. No corresponding field or group is created.

Some vendor-specific extensions are not recognized by the importer. Any copybook statement that conforms to ANSI standard COBOL, however, is parsed correctly by the importer. The importer's default data model, which is based on the IBM mainframe model, can be changed in the Format Builder to compensate for the endian nature of characters set and data.

When importing copybooks, the importer may identify fields generically, although those fields can easily be identified as specific data types. For this reason, the copybook importer creates comments for each field found in the copybook. This information is useful when you are editing the MFL data, helping you to improve upon the formats used in the original copybook. For example, suppose an original copybook contains the following entry:

>     05 birth-date    picxx/xx/xx

After the copybook is imported, this entry is shown in a field of type EBCDIC with a length of 8. Close inspection reveals that this entry is intended as a date that can be formatted in either of the following ways:

- MM/DD/YY

- DD/MM/YY

C Structure Importer from Importing Metadata

The C struct importer does not parse files containing anonymous unions, bit fields, or in-line assembler code. The following samples of unsupported structures are taken from the preprocessor output of a hello.c file that contained a #include <windows.h> statement:

- Anonymous unions

>     #line 353 "e:\\program files\\microsoft visual studio\\vc98\\include\\winnt.h"
>     typedef union_LARGE_INTEGER{
>       struct {
>         DWORD LowPart;
>         LONG HighPart;
>       };
>       struct {
>         DWORD LowPart;
>         LONG HighPart;
>       } u;
>     #line 363 "e:\\program files\\microsoft visual studio\\vc98\\include\\winnt.h"
>         LONGLONG QuadPart;
>     } LARGE_INTEGER

- Bit fields

>     typedef struct_LDT_ENTRY {
>       WORD LimitLow;
>       WORD BaseLow;
>       union {
>         struct {
>           BYTE BaseMid;
>           BYTE Flags1;
>           BYTE Flags2;
>           BYTE BaseHi;
>         } Bytes;
>         struct
>           DWORD BaseMid : 8;
>           DWORD Type : 5;
>           DWORD Dpl : 2;
>           DWORD Pres : 1;
>           DWORD LimitHi : 4;
>           DWORD Sys : 1;
>           DWORD Reserved_0 : 1;
>           DWORD Default_Big : 1;
>           DWORD Granularity : 1;
>           DWORD BaseHi : 8;
>         } Bits;
>       } HighWord;
>     } LDT_ENTRY, *PLDT_ENTRY;

- Inline assembler code

>     _inline ULONGLONG
>     _stdcall
>     Int64ShrlMod32(
>       ULONGLONG Value,
>       DWORD ShiftCount
>       )
>     {
>       _asm {
>        mov ecx, ShiftCount
>        mov eax, dword ptr [Value]
>        mov edx, dword ptr [Value+4]
>        shrd eax, edx, cl
>        shr edx, cl
>       }
>     }