start_agent_info
AgentName = "AU_SALE_COORDINATOR"
AgentDescr = "Sale Coordinator"
AgentLanguage = ""
__timer_interval = 0 {....define
(in seconds
) the timer interval
for the wake up}
__delete_on_termination = 0 {....1=the agent frees itself
when terminates its task}
end_agent_info
start_bpm_activity "New Sale Order"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Sale Approval 1"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisableAllFields
()
call OnOpenForm_EnableField
("APPROVER1_YES"
)
call OnOpenForm_EnableField
("APPROVER1_NO"
)
call OnOpenForm_EnableField
("F_APPROVER2_POS_D"
)
call OnOpenForm_EnableField
("PRICES_CONTROL_FLAG"
)
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
start_bpm_validation
result = 1
yes = LookUpId
("AU_EVENT"
,__params[2]
,"APPROVER1_YES"
)
no = LookUpId
("AU_EVENT"
,__params[2]
,"APPROVER1_NO"
)
yes = val
(yes
)
no = val
(no
)
if (no = 0
) and
(yes = 0
) then
result = 0
call message
("Approve or disapprove sale !"
)
endif
if (no = 1
) and
(yes = 1
) then
result = 0
call message
("Approve or disapprove sale !"
)
endif
if (no = 1
) then
flag = message_yes_no
("You selected
to disapprove the sale ?"
)
if (flag = 0
) then
result = 0
endif
endif
end_bpm_validation
end_bpm_activity
start_bpm_activity "Sale Approval 2"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisableAllFields
()
call OnOpenForm_EnableField
("APPROVER2_YES"
)
call OnOpenForm_EnableField
("APPROVER2_NO"
)
call OnOpenForm_EnableField
("F_APPROVER3_POS_D"
)
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
start_bpm_validation
result = 1
yes = LookUpId
("AU_EVENT"
,__params[2]
,"APPROVER2_YES"
)
no = LookUpId
("AU_EVENT"
,__params[2]
,"APPROVER2_NO"
)
yes = val
(yes
)
no = val
(no
)
if (no = 0
) and
(yes = 0
) then
result = 0
call message
("Approve or disapprove sale !"
)
endif
if (no = 1
) and
(yes = 1
) then
result = 0
call message
("Approve or disapprove sale !"
)
endif
if (no = 1
) then
flag = message_yes_no
("You selected
to disapprove the sale ?"
)
if (flag = 0
) then
result = 0
endif
endif
end_bpm_validation
end_bpm_activity
start_bpm_activity "Sale Approval 3"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisableAllFields
()
call OnOpenForm_EnableField
("APPROVER3_YES"
)
call OnOpenForm_EnableField
("APPROVER3_NO"
)
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
start_bpm_validation
result = 1
yes = LookUpId
("AU_EVENT"
,__params[2]
,"APPROVER3_YES"
)
no = LookUpId
("AU_EVENT"
,__params[2]
,"APPROVER3_NO"
)
yes = val
(yes
)
no = val
(no
)
if (no = 0
) and
(yes = 0
) then
result = 0
call message
("Approve or disapprove sale !"
)
endif
if (no = 1
) and
(yes = 1
) then
result = 0
call message
("Approve or disapprove sale !"
)
endif
if (no = 1
) then
flag = message_yes_no
("You selected
to disapprove the sale ?"
)
if (flag = 0
) then
result = 0
endif
endif
end_bpm_validation
end_bpm_activity
start_bpm_activity "Sale Order"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisablePost
()
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Goods S
ending"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisablePost
()
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Goods S
ending"
rec = __params[2]
call OpenFormTop
("ptBrowse"
,"
AU_SALE_GOODRECEIPT_B.FM"
,"QRY.DATA"
,"SORDER_MODE"
,rec
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Approved Ssle"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisablePost
()
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Goods S
ending"
rec = __params[2]
call OpenFormTop
("ptBrowse"
,"
AU_SALE_GOODRECEIPT_B.FM"
,"QRY.DATA"
,rec
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Approved Sale"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisablePost
()
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Goods S
ending"
rec = __params[2]
call OpenFormTop
("ptBrowse"
,"
AU_SALE_GOODRECEIPT_B.FM"
,"QRY.DATA"
,"SORDER_MODE"
,rec
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Sale Cover"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisablePost
()
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Sale Cover"
rec = __params[2]
call OpenFormTop
("ptBrowse"
,"
AU_SALE_COVER_B.FM"
,"QRY.DATA"
,"SORDER_MODE"
,rec
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Production of Sale"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisablePost
()
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Production Orders"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OpenFormTop
("ptBrowse";"
AU_PROD_ORDER_B.FM";"QRY.DATA"
,"SORDER_MODE"
,rec
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Sale in Progress"
start_bpm_subactivity "Sale Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisablePost
()
expr = strcat
(rec
,"=AU_EVENT"
)
call OpenFormTop
("ptEdit"
,form
,"WORK.AU_EVENT"
,1
,expr
)
end_bpm_subactivity
end_bpm_activity
start_action
{...........sale coordinator....}
{.........pr_type = 1
(general
) pr_type = 2
(materials
)....}
pr_type = __params[1]
rec_id = __params[2]
form = __params[3]
call bpm_setprocedureowner
(__activation_user
) {.....set the procedure owner}
call bpm_setprocedurecomment
("Sale Order"
) {.....set the procedures comment}
user_id = SelectFrom
("
SELECT AU_USER
FROM AU_USER
WHERE (UNAME='"
,__activation_user
,"'
)"
)
call UpdateTable
("AU_EVENT"
, rec_id
, "REQUESTER"
, user_id
)
{...................................................define check points}
call bpm_addcheckpoint
("Order Setting"
,100
)
call bpm_addcheckpoint
("Aproval 1"
,100
)
call bpm_addcheckpoint
("Aproval 2"
,100
)
call bpm_addcheckpoint
("Aproval 3"
,100
)
call bpm_addcheckpoint
("Advance Payment"
,100
)
call bpm_addcheckpoint
("Production"
,100
)
call bpm_addcheckpoint
("S
ending"
,100
)
call bpm_addcheckpoint
("Completed"
,100
)
{.............initial order form completion.......}
call bpm_setcheckpoint
("Order Setting"
,1
)
call bpm_openatonce
()
callwait bpm_assign_job
( "New Sale Order"
, __activation_user
, ""
, 0
, pr_type
, rec_id
, form
)
comm = LookUpId
("AU_EVENT"
,rec_id
,"SUBJECT"
)
business_id = LookUpId
("AU_EVENT"
,rec_id
,"BUSINESS_FROM"
)
appr_id = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER1"
)
appr_name = LookUpId
("AU_POS"
,appr_id
,"POS_D"
)
call bpm_setprocedurecomment
(comm
) {.....set the procedures comment}
call bpm_setprocedurebusiness
(business_id
)
{.....................First approval....................}
call bpm_setcheckpoint
("Approval 1"
,1
)
callwait bpm_assign_job
( "Sale Approval 1"
, ""
, appr_name
, 0
, pr_type
, rec_id
, form
)
yes1 = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER1_YES"
)
no1 = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER1_NO"
)
approved_flag = True {....suppose its approved}
if (yes1 = 1
) then
appr_id = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER2"
)
if (appr_id > 0
) then
appr_name = LookUpId
("AU_POS"
,appr_id
,"POS_D"
)
{...................Second approval.....................}
call bpm_setcheckpoint
("Approval 2"
,1
)
callwait bpm_assign_job
( "Sale Approval 2"
, ""
, appr_name
, 0
, pr_type
, rec_id
, form
)
yes2 = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER2_YES"
)
no2 = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER2_NO"
)
if (yes2 = 1
) then
appr_id = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER3"
)
if (appr_id > 0
) then
appr_name = LookUpId
("AU_POS"
,appr_id
,"POS_D"
)
{....................Third approval....................}
call bpm_setcheckpoint
("Approval 3"
,1
)
callwait bpm_assign_job
( "Sale Approval 3"
, ""
, appr_name
, 0
, pr_type
, rec_id
, form
)
yes3 = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER3_YES"
)
no3 = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER3_NO"
)
if (no3 = 1
) then
approved_flag = False
endif
endif
endif
if (no2 = 1
) then
approved_flag = False
endif
endif
endif
if (no1 = 1
) then
approved_flag = False
endif
if (approved_flag = True
) then
{.................cashier involvement..................}
{....maybe a cash deposit is neccessary in order the order
to proceed!...}
cashier_comm = LookUpId
("AU_EVENT"
,rec_id
,"COMM_CASHIER_INFO"
)
if (cashier_comm <> ""
) then
call bpm_setcheckpoint
("Advance Payment"
,1
)
call bpm_assign_job
( "Sale Order"
, ""
, "Cashier"
, 0
, pr_type
, rec_id
, form
)
endif
{...................receipt of goods and invoice............................}
s
ending_pos = LookUpId
("AU_EVENT"
,rec_id
,"DELIVERED_TO"
)
s
ending_pos = LookUpId
("AU_POS"
,s
ending_pos
,"POS_D"
)
x = bpm_assign_info
( "Sale in Progress"
, ""
, "Sales Department"
, 0
, pr_type
, rec_id
, form
)
split_in_branch
call bpm_setcheckpoint
("Production"
,1
)
callwait bpm_assign_job
( "Production of Sale"
, ""
, "Production Department"
, 0
, pr_type
, rec_id
, form
)
and_branch
callwait bpm_assign_job
( "Approved Sale"
, ""
, "Accounting Department"
, 0
, pr_type
, rec_id
, form
)
and_branch
callwait bpm_assign_job
( "Sale Cover"
, ""
, "Accounting Department"
, 0
, pr_type
, rec_id
, form
)
join_branches
call bpm_setcheckpoint
("S
ending"
,1
)
callwait bpm_assign_job
( "Goods S
ending"
, ""
, s
ending_pos
, 0
, pr_type
, rec_id
, form
)
call bpm_setcheckpoint
("Completed"
,1
)
endif
end_action