Current section
Files
Jump to
Current section
Files
src/process/supply.erl
-module(supply).
-include_lib("bpe/include/bpe.hrl").
-include_lib("erp/include/transport.hrl").
-compile(export_all).
action({request,'Init'}, Proc) ->
{reply,Proc};
action({request,'Payment'}, Proc) ->
Payment = bpe:doc({payment_notification},Proc),
case is_tuple(Payment) of
true -> {reply,'Process',Proc};
false -> {reply,'Signatory',Proc} end;
action({request,'Signatory'}, Proc) ->
{reply,'Process',Proc};
action({request,'Process'}, Proc) ->
Account = #'Transport'{id=Proc#process.id},
kvs:add(Account),
{reply,Proc};
action({request,'Final'}, Proc) ->
{reply,Proc}.
def() ->
#process { name = 'Supply Process',
flows = [
#sequenceFlow{source='Init', target='Payment'},
#sequenceFlow{source='Payment', target='Signatory'},
#sequenceFlow{source='Payment', target='Process'},
#sequenceFlow{source='Process', target='Final'},
#sequenceFlow{source='Signatory', target='Process'},
#sequenceFlow{source='Signatory', target='Final'}
],
tasks = [
#userTask { name='Init', module = spawnproc },
#userTask { name='Signatory', module = spawnproc },
#serviceTask { name='Payment', module = spawnproc },
#serviceTask { name='Process', module = spawnproc },
#endEvent { name='Final'}
],
beginEvent = 'Init',
endEvent = 'Final',
events = [
#boundaryEvent{ name = '*', timeout={0,{0,30,0}} },
#messageEvent{name="PaymentReceived"}
]
}.