This chapter describe the frePPLe data entities, their fields and relationships.
A couple of initial remarks:
- The frePPLe data model is designed to be pretty “atomic” in order to be as generic as possible. Quite often an entity in a source system will map into a collection or sequence of frePPLe entities.
For instance, frePPLe doesn’t have a model to represent a bill-of-material. Instead the material relations from the BOM are represented as flows on the manufacturing operations.
- The native data format is XML.
The files frepple.xsd and frepple_core.xsd define the XML Schema structure for the frePPLe data files.
The XML-data can be placed in any namespace.
To support subclassing the namespace xsi must be defined as “http://www.w3.org/2001/XMLSchema-instance”.
FrePPLe XML files thus typically start with the following lines:
<?xml version="1.0" encoding="UTF-8"?> <plan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ... </plan>
The following encodings are supported for XML data: ASCII, UTF-8, UTF-16 (Big/Small Endian), UTF-32(Big/Small Endian), EBCDIC code pages IBM037, IBM1047 and IBM1140, ISO-8859-1 (aka Latin1) and Windows-1252. UTF-8 will be the best choice in most situations.
- FrePPLe has a very rich Python API.
Detailed programming and scripting of the frePPLe application is possible in this way. For complex integration tasks and for customization of the algorithms using Python is the recommended way of working.
Before diving into the details, have a look at the domain model diagrams. They show clear and simple the main entities and their relationships.