
| Current Path : /home/ift/52_procpy/dataninja/docs/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //home/ift/52_procpy/dataninja/docs/material_procpy.md |
(Remark: The old version (with the only one module dyndb.py) is still
in that directory and available: by oc for oa, and oy for ot.)
Installation and example
------------------------
Install Python 2.7 from www.python.org.
Install get-pip.py from the internet.
Add C:\Python27 to the path (Systemeinstellungen -> Umgebungsvariablen)
Copy the files in C:\Python27\Scripts to C:\Python27
Install modules:
pip install xlwt
pip install xlrd
pip install dill
pip install ws4py
pip install --no-use-wheel cherrypy
pip install jsonpickle
pip install mysql (windows: download installation package from https://pypi.python.org/pypi/MySQL-python/)
Create directory C:\Python27\Lib\procpy
Copy the content of the procpy.zip
into C:\Python27\Lib\procpy
Copy the files scripts\o* to C:\Python27
ProcPy - what it is
-------------------
ProcPy is a storage system for python objects. It has the
general architecture:
SCRIPTS LAYER: ot ot.bat oa oa.bat
CALLER LAYER: caller.py
CLIENT LAYER: prcmanager.py xlsmanager.py
DB DRIVER LAYER: mysqlite.py mongoconn.py .....
SERIALIZATION LAYER: objpickle.py
The DB Driver Layer contains the central upsert function which
takes a python object and stores its objpickle'd version
(function objpickle.to_mongo_dict) into the db layer via
a db driver like mysqlite.py. It gets a query_data-function
from the db layer, stores the respective cursor in self,
and offers a next_obj function which re-objectfies the
objpickle'd objects coming from the db layer (function
objpickle.from_mongo_dict).
The Client Layer acts on top of the Storage Layer. Until
now we have two different Client layers:
1. prcmanager.py: Stores and restarts python processes
represented by python objects with
special object variables JUMP, NEXT, ...
2. xlsmanager.py: Reads, stores and presents data als
excel and csv files.
The Caller Layer offers a console layer interface which is
called by the caller scripts.
1. Client prcmanager.py
------------------------
The prcmanager is a runtime environment for special python classes.
A prcmanager useable class instance has special object variables:
self.JUMP The next method to jump
self.SLEEP Sleep time before jumping
A simple example is:
class Test (object):
def __init__ (self,par):
self.JUMP = "run"
self.SLEEP = 13
def run (self):
self.QUERY = "Ist das Geraet eingeschaltet?"
self.JUMP = "t02"
self.SLEEP = 10
def t02 (self):
pass
A prcmanager runtime environment runs the instance through
the named functions in the sequence of the self.JUMP settings.
'Between' the function executions, there is the chance to change
object variables in a manner which depends on the runtime environment.
You can run the example testfall.py (from directory examples)
from everywhere with:
ot procpy.examples.testfall.Test
Then you ge a test instance procpy.examples.testfall.Test.001 which you
can proceed by:
ot procpy.examples.testfall.Test.001
until the process ends up.
It is mandatory to set the environment variable PROCDB to a file name, then
the processes will be dumped in that database 'between' the function calls.
2. Client xlsmanager
---------------------
The xlsmanager handles csv- and excel-files, reads them into the
Data Store, filters data and outputs again in csv- and excel-files
as also onto the console.
First of all, you should set the environment variable PROCDB to a certain
file name in which the data will be stored.
The main API call for the xlsmanager is:
oa <sourcefile1> <sourcefile2> .... <filter> <template> <sort>
There may be 0 up to n sourcefiles with excel/csv-data (say adressfiles).
The data inside will be stored in the database. The output will be generated
by filtering all entries in the database by <filter>. The <template> replaces
placeholders of the form -<COLUMNNAME>- with the respective values,
<sort> is also a template expression which sorts the output.
The 'field' DEL is special: If it is set, then the entry in the database
will be deleted, unless it is 'M': Then that entry will be merged to
the last row in the csv/xls-file to be entered instead of being
entered itself.
Each entries with the same sort-value will be marked as to be merged by
setting the 'field' DEL to the value 'M'.
==========================================================================
Saurabh meeting minutes: (201603)
Command:
python –m procpy.loop_tk.py abc xxx.db oh 100x
In above command
1) procpy.loop_tk.py: is event_machine
2) abc is identifier of complete business process
3) xxx.db is database file
4) oh is a command
5) 100 : is time for which process “x” will be put in sleep mode
==========================================================================
Requirements list Renuka: (201512)
BPM Requirements
1. Graphical Editor
a. Shapes:
Rectangle box, decision Box, Swimlane , Link( arrows etc), Gateways(optional) , Start and End icons, Header/footer(optional)
b. Worksheet Templates( optional)
c. Option to "Rearrangement of graph"
d. Font/block resizing option
e. Option to attach docs/files to task
f. Quick Modeling -> Enter the info in text format(say in table) on the fly graph is also created. ( one who has no knowledge on creating workflow , can generate the graph just entering the info in table)
g. Search option (Optional)
h. Import / Export Option
i. Save Workflow in PDF format
j. Print Option
k. Structuring all Processes and Docs/info
2. Database:
a. Webserver (centralized server) / Cloud based
b. or can be any database
3. Publishing:
a. publish via html file
b. Can be Collaborative ( Reader has option to comment on workflow )
c. or email communication option
d. Supports on different webbrowsers (explorer, chrome, mozilla etc.. )