|
Core libraryMain > Modeling guide > Introduction > Architecture > Core library The frePPLe binaries are a collection of shared libraries: a core library frepple.so (frepple.dll on Windows) and an additional shared library for each extension module. The frePPLe shared library can be used in different ways by applications. The core library does NOT have any user interface at all. Command line application![]() The command-line application reads input data from XML files (or from the standard input) and can also execute Python scripts. FrePPLe comes with an embedded interpreter for the Python language (see http://www.python.org). Example usage: frepple file1.xml frepple file2.xml file3.xml my_commands.py frepple dir_with_xml_and_python_files command | frepple Use the option "-help" or "-?" to get a list of possible flags that can be passed on the command line. This command line application is used for all test cases.
Use frePPLe as a Python extension module![]() After importing the module, your Python program has full access all frePPLe objects and planning algorithms. Example Python program: import frepple
print "Echoing demands:"
for d in frepple.demands():
print " Demand:", d.name, d.due, d.item.name, d.quantity
for i in d.operationplans:
print " Delivery:", i.id, i.operation.name, i.quantity, i.end
An example Python script reading data from a database. An example Python script writing planning results to CSV files.
Your C or C++ application links with frePPLe![]() Your application can be link with the frePPLe shared library. Use the header file plannerinterface.h for the high-level interface declarations. Since frePPLe is coded in C++:
FrePPLe as a web service![]() FrePPLe comes with extension modules that implement a SOAP or REST web service. Your java/perl/ruby/VB/.NET application accesses the frePPLe shared library![]() Most modern languages and tools have the capability to access functions in shared libraries. SWIG (see http://www.swig.org/) is a tool that can help to generate the integration code with a wide range of high-level languages, such as Java, Ruby, Perl, Tcl, PHP, ... This exposed API is not very rich and this interface is not actively maintained any more.
|




