![]() ![]() ![]() ![]() ![]() ![]() ![]() |
This topic includes the following sections:
Field Manipulation Language, or FML, is a set of C language functions for defining and manipulating storage structures called fielded buffers, which contain attribute-value pairs in fields. The attribute is the field’s identifier, and the associated value represents the field’s data content.
Fielded buffers provide an excellent structure for communicating parameterized data between cooperating processes, by providing named access to a set of related fields. Programs that need to communicate with other processes can use the FML software to provide access to fields without concerning themselves with the structures that contain them.
FML also provides a facility called VIEWS that allows you to map fielded buffers to C structures or COBOL records, and vice-versa. The VIEWS facility lets you perform lengthy manipulations of data in structures rather than in fielded buffers; applications run faster if data is transferred to structures for manipulation. Thus the VIEWS facility allows the data independence of fielded buffers to be combined with the efficiency and simplicity of classic record structures.
Two interfaces are available for FML and the VIEWS facility:
Within the Oracle Tuxedo system, FML functions are used to manipulate fielded buffers in the context of ATMI applications.
Data entry programs written for the core portion of the Oracle Tuxedo system use FML functions; these programs use fielded buffers to forward user data entered at a terminal to other processes. If you write ATMI applications that receive input in fielded buffers from data entry programs, you will need to use FML functions.
Even if you choose to develop your own applications programs for handling user input and output or if programs are written to pass messages between processes, you may still decide to use FML to deal with fielded buffers passed between these programs.
Typed buffers is a feature of the Oracle Tuxedo system that grew out of the FML idea of a fielded buffer. Two of the standard buffer types delivered with the Oracle Tuxedo system are FML typed buffers and VIEW typed buffers. One difference between the two is that Oracle Tuxedo VIEW buffers can be totally unrelated to an FML fielded buffer.
In this text we show how a VIEW is a structured version of an FML record. In other documents, such as Programming an Oracle Tuxedo ATMI Application Using C, we present VIEW as one of several available Oracle Tuxedo buffer types.
fldid
) is a tag for an individual data item in an FML record or fielded buffer. The field identifier consists of the name of the field (a number) and the type of data in the field.
short
, long
float
, double
, and char
. The following types are also supported: string
(a series of characters ending with a NULL character), carray
(a character array), mbstring
(a multibyte character array—available in Tuxedo release 8.1 or later), ptr
(a pointer to a buffer), fml32
(an embedded FML32 buffer), and view32
(an embedded VIEW32 buffer). The mbstring
, ptr
, fml32
, and view32
types are supported only for the FML32 interface. The corresponding types in COBOL are COMP-5
, COMP-1
, COMP-2
, and PIC X
with the following exceptions: currently, no corresponding types in COBOL exist for mbstring
, ptr
, fml32
, and view32
. A C packed decimal type is also supported in VIEWS for integration with COBOL COMP-3
.
![]() ![]() ![]() |