Packages

FT FormalTalk ERP.UNO Compiler

Current section

Files

Jump to
ft priv erp.uno bpe input.bpe
Raw

priv/erp.uno/bpe/input.bpe

module input bpe
import kvs/routeProc.kvs
fun action broadcastEvent begin result [ ] proc stop end
fun action messageEvent process userStarted=system:string begin result [ ] proc stop end
fun action messageEvent payload={:next,*} begin output.bpe.action msg proc end
fun action messageEvent name=DocumentStatistics payload=payload
begin personal_stat proc.id executed payload | result [ ] proc stop end
fun action messageEvent name=RemoveDocumentStatistics payload=payload
begin remove_personal_stat proc.id executed payload | result [ ] proc stop end
fun action messageEvent name=Implementation payload=payload
begin doc = proc.docs.hd
| doc:project = projAction execute doc:project msg.payload []
| proc.docs = [doc]
| result [ next { proc.id } ] proc reply end
fun action messageEvent name=Executed
begin result [ generate_history { executed proc.id msg.sender.id proc.docs.hd } spawn Elixir.History
| next { proc.id } ] proc reply end
fun action messageEvent name=TaskCreated
begin newdoc = proc.docs.hd
| doc.modified_by = [doc.modified,msg.payload.notify]
| proc.docs = [doc]
| result [ ] proc stop end
fun action messageEvent begin result [ ] proc stop end
fun action asyncEvent name=ImplementationBlock payload=payload:ERP.bizTask
begin gw_block msg.sender.id "gwConfirmation" proc.id
| newDoc = proc.docs.hd
| newDoc.modified_by = [payload.initiator,payload.executor,payload.subexecutors,payload.notify,payload.control_by]
| newProc = proc
| newProc.docs = [newDoc]
| result [ ] newProc stop end
fun action asyncEvent begin :OutputProc.action action msg proc end
fun action request from=Created to=Registration
begin end
fun action request from=Registration to=gwNeedsDetermination
begin newDoc = proc.docs.hd
| newProc = proc
| newProc.docs = [newDoc]
| indexUrgent newProc newDoc
| newState = actionGen req proc newProc
| result [ general req newState newDoc | stop ] newState reply proc.executors end
fun action request from=InitialConsideration
begin newDoc = proc.docs.hd
| newProc = proc
| newProc.docs = [newDoc]
| newProc = actionGen req proc newProc
| result [ general req newProc newDoc | stop ] newProc reply proc.executors end
fun action request from=Implementation to=gwConfirmation
begin newDoc = proc.docs.hd
| newProc = proc
| newProc.docs = [newDoc]
| newProc = actionGen req proc newProc
| result [ general req newProc newDoc | next proc.id ] newProc reply proc.executors end
fun action request to=Grouping
begin newDoc = proc.docs.hd
| newProc = proc
| newProc.docs = [newDoc]
| broadcast "Complete"
| newProc = actionGen req proc newProc
| result [ general req newProc newDoc | stop ] newProc reply proc.executors end
fun action request to=gwRejected
begin newProc = actionGen req proc proc
| result [ general req newPproc newDoc | next proc.id ] newProc reply proc.executors end
fun action request from=gwRejected to=Implementation
begin newDoc = proc.docs.hd | newProc = proc | newProc.docs = [newDoc]
| broadcast "ImplementationRejected" | newProc = actionGen req proc newProc
| result [ general req newProc newDoc | stop ] newProc reply proc.executors end
fun action request to=Archive
begin newDoc = proc.docs.hd | newProc = proc | newProc.docs = [newDoc]
| unindexUrgent proc newDoc | newState = actionGen req proc newProc
| result [ general req newState newDoc | stop ] newState reply proc.executors end
route routeTo
begin (Cr,R):O,R | (R,gwND):O,R | (gwND,Det):D,[] | (*,InC):A,D
| (gwC,I):V,D,toExecutors | (*,G):G,[];P,M | (*,A):A,[] end
route routeFrom
begin (R,gwND):R,[] | (Det,InC):D,[] | (InC,I):A,D,fromExecutors | (I,gwC):A,D,fromExecutors
| (gwR,I):G,[] | (*,G):A,D | (*,A):G,[];O,R;U,RD;R,[];D,[] end