FLIST or field list is an Oracle BRM data structure that is used for all internal and external communications. It is a field value data type. It supports C primary data types, a BRM internal object ID type and a sparse array type, which can be nested to any level.
Ex: FLIST text representation for a NAMEINFO array containing address information.
0 PIN_FLD_POID POID  0.0.0.1 /plan -1 0
0 PIN_FLD_FLAGS INT  0
0 PIN_FLD_NAMEINFO ARRAY  allocated 8, used 8
1 PIN_FLD_LAST_NAME STR  “Smith”
1 PIN_FLD_COUNTRY STR  “USA”
1 PIN_FLD_FIRST_NAME STR  “Joe”
1 PIN_FLD_ZIP STR  “10020”
1 PIN_FLD_STATE STR  “NY”
1 PIN_FLD_CITY STR  “New York”
1 PIN_FLD_ADDRESS STR  “100 Broadway”
Oracle BRM provides API functions to manipulate FLIST. At the simplest level, the FLIST above can be converted from a string to an in-memory object, which is then used as input/output to BRM op-codes.
This approach worked well in the old days where applications defined their own data structure and communication protocols. Nowadays when web services and XML are industry standard for integration, we usually end up with XML to FLIST and FLIST to XML translation.
Going from FLIST to XML is a simple task since there is an API function to do it. Going from XML to FLIST is more interesting because depending on the API language, there can be more than one XML mapping framework.
In our various projects, we’ve done the translation many different ways. One of our earlier approaches (if the API in use is Java) was to use JAXB, JiBX or one of many Java XML libraries to parse the XML into Java data objects. Then we used the data objects to build the FLIST. This approach has drawbacks, as it is not easy to adapt to the changing content of the XML data.
Later on when XSLT became the standard toolkit for XML transformation, we started using it to transform the XML into FLIST text format. From there, we just call BRM API to read it in. This approach is definitely more flexible, as the mapping between XML elements and FLIST fields is maintained externally and there are standard XSLT engines in most programming languages. We can even run standalone XSLT engines.
Transform Your Business Today
Please contact us today to learn how Congero Technology Group can help your business succeed.