FLIST to XML Transformation
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.0.1 /plan -1 0
0 PIN_FLD_FLAGS INT [0] 0
0 PIN_FLD_NAMEINFO ARRAY [1] allocated 8, used 8
1 PIN_FLD_LAST_NAME STR [0] "Smith"
1 PIN_FLD_COUNTRY STR [0] "USA"
1 PIN_FLD_FIRST_NAME STR [0] "Joe"
1 PIN_FLD_ZIP STR [0] "10020"
1 PIN_FLD_STATE STR [0] "NY"
1 PIN_FLD_CITY STR [0] "New York"
1 PIN_FLD_ADDRESS STR [0] "100 Broadway"
Oracle BRM provides API functions to manipulate FLIST. At the simplest level, the flist below can be convert 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 have done it in many different ways as well. One of our earlier approaches, if the API in use is Java, is to use JAXB, JiBX or one of many Java XML libraries to parse the XML into Java data objects, then we use 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 then we just call BRM API to read it in. This approach is definitely from flexible as the mapping between XML elements and FLIST fields is maintained externally and there are standard XSLT engines in most programming languages, or we can even run standalone XSLT engines.
IT Consulting

Knowledge Base

Support & Training







