start_action
call bpm_setprocedureowner(__activation_user) {.....set the procedure owner}
{(1)....any user can put a new service request}
callwait bpm_assign_job ( "new service request" , __activation_user , "" , 0)
serv_id = bpm_getrecid(1,__au_step) {......get the record id of the service request}
app_date = LookUp("SERV","SERV",serv_id,"ADATE","")
customer = LookUp("SERV","SERV",serv_id,"CUSTOMER","")
car_no = LookUp("SERV","SERV",serv_id,"CAR_NO","")
comm = strcat(customer," with car ",car_no)
call bpm_setprocedurecomment(comm) {.....set the procedures comment}
{(2)....at date (app_date) the GATE SECURITY waits the customer to come for the appoinment}
app_date_num = DateToNum(app_date)
callwait bpm_assign_job ( "service appointment" , "" , "GATE SECURITY" , app_date_num , serv_id )
{(3)....the CHIEF MECHANIC makes the first estimation of labor and materials, assigns a mechanic}
callwait bpm_assign_job ( "service estimation" , "" , "CHIEF MECHANIC" , 0 , serv_id )
disas_mechanic = LookUp("SERV","SERV",serv_id,"MECHANIC1","") {....disassemble mechanic}
reass_mechanic = LookUp("SERV","SERV",serv_id,"MECHANIC2","") {....reassemble mechanic}
{split activities....at the same time, the warehouse prepares the materials,}
{ the mechanic starts working, the cafeteria hosts the cutomer}
split_in_branch {parallel split....the technical department does the job while in...}
split_in_branch {parallel split...(4) the warehouse prepares the required parts while ...}
callwait bpm_assign_job ( "collect parts" , "" , "WAREHOUSE" , 0 , serv_id )
and_branch {(5).... the assigned mechanic disassebles the engine}
callwait bpm_assign_job ( "disassemble" , disas_mechanic , "" , 0 , serv_id )
join_branches
{(6).... the assigned mechanic puts the parts and reassebles the engine}
callwait bpm_assign_job ( "reassemble" , reass_mechanic , "" , 0 , serv_id )
and_branch {(7).... the cafeteria the customer takes a cofee}
callwait bpm_assign_job ( "host customer" , "" , "HOSTESS" , 0 , serv_id )
join_branches {...the customer finished his/her coffee and the job has been done}
{(8)....the customer goes to the office in order to pay}
callwait bpm_assign_job ( "payment and goodbye" , "" , "OFFICE" , 0 , serv_id )
end_action
|