start_agent_info
AgentName = "AU_PURCHASE_COORDINATOR"
AgentDescr = "Purchase 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 Purchase Order"
start_bpm_subactivity "Purchase 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 "Purchase Approval 1"
start_bpm_subactivity "Purchase 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 purchase !"
)
endif
if (no = 1
) and
(yes = 1
) then
result = 0
call message
("Approve or disapprove purchase !"
)
endif
if (no = 1
) then
flag = message_yes_no
("You selected
to disapprove the purchase ?"
)
if (flag = 0
) then
result = 0
endif
endif
end_bpm_validation
end_bpm_activity
start_bpm_activity "Purchase Approval 2"
start_bpm_subactivity "Purchase 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 purchase !"
)
endif
if (no = 1
) and
(yes = 1
) then
result = 0
call message
("Approve or disapprove purchase !"
)
endif
if (no = 1
) then
flag = message_yes_no
("You selected
to disapprove the purchase ?"
)
if (flag = 0
) then
result = 0
endif
endif
end_bpm_validation
end_bpm_activity
start_bpm_activity "Purchase Approval 3"
start_bpm_subactivity "Purchase 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 purchase !"
)
endif
if (no = 1
) and
(yes = 1
) then
result = 0
call message
("Approve or disapprove purchase !"
)
endif
if (no = 1
) then
flag = message_yes_no
("You selected
to disapprove the purchase ?"
)
if (flag = 0
) then
result = 0
endif
endif
end_bpm_validation
end_bpm_activity
start_bpm_activity "S
end Order
to supplier"
start_bpm_subactivity "Purchase 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 "Purchase Order"
start_bpm_subactivity "Purchase 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 Receipt"
start_bpm_subactivity "Purchase 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 Receipt"
rec = __params[2]
call OpenFormTop
("ptBrowse"
,"
AU_PURCHASE_GOODRECEIPT_B.FM"
,"QRY.DATA"
,"PORDER_MODE"
,rec
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Approved Purchase"
start_bpm_subactivity "Purchase 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 Receipt"
rec = __params[2]
call OpenFormTop
("ptBrowse"
,"
AU_PURCHASE_GOODRECEIPT_B.FM"
,"QRY.DATA"
,"PORDER_MODE"
,rec
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Purchase Approval 1"
start_bpm_subactivity "Form"
prom_type = __params[1]
rec = __params[2]
form = __params[3]
call OnOpenForm_DisableAllFields
()
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 purchase !"
)
endif
if (no = 1
) and
(yes = 1
) then
result = 0
call message
("Approve or disapprove purchase !"
)
endif
if (no = 1
) then
flag = message_yes_no
("You selected
to disapprove the purchase ?"
)
if (flag = 0
) then
result = 0
endif
endif
end_bpm_validation
end_bpm_activity
start_bpm_activity "Prices Control"
start_bpm_subactivity "Purchase 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 "Prices Comments"
call message
("Add Notes or attach a
document with prices commenting!"
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Purchase Cover"
start_bpm_subactivity "Purchase 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 "Purchase Cover"
rec = __params[2]
call OpenFormTop
("ptBrowse"
,"
AU_PURCHASE_COVER_B.FM"
,"QRY.DATA"
,"PORDER_MODE"
,rec
)
end_bpm_subactivity
end_bpm_activity
start_action
{...........purchase 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
("Purchase 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
)
{.............initial order form completion.......}
call bpm_openatonce
()
callwait bpm_assign_job
( "New Purchase 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....................}
callwait bpm_assign_job
( "Purchase 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"
)
pc_flag = LookUpId
("AU_EVENT"
,rec_id
,"PRICES_CONTROL_FLAG"
)
approved_flag = True {....suppose its approved}
if (yes1 = 1
) then
{.....................Prices Control........................}
if (pc_flag = True
) then
callwait bpm_assign_job
( "Prices Control"
, ""
, "Prices Control Department"
, 0
, pr_type
, rec_id
, form
)
endif
appr_id = LookUpId
("AU_EVENT"
,rec_id
,"APPROVER2"
)
if (appr_id > 0
) then
appr_name = LookUpId
("AU_POS"
,appr_id
,"POS_D"
)
{...................Second approval.....................}
callwait bpm_assign_job
( "Purchase 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....................}
callwait bpm_assign_job
( "Purchase 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
{.................S
end order
to the supplier............................}
callwait bpm_assign_job
( "S
end Order
to supplier"
, __activation_user
, ""
, 0
, pr_type
, rec_id
, form
)
{.................cashier involvement..................}
cashier_comm = LookUpId
("AU_EVENT"
,rec_id
,"COMM_CASHIER_INFO"
)
if (cashier_comm <> ""
) then
call bpm_assign_job
( "Purchase Order"
, ""
, "Cashier"
, 0
, pr_type
, rec_id
, form
)
endif
{...................receipt of goods and invoice............................}
receipt_pos = LookUpId
("AU_EVENT"
,rec_id
,"DELIVERED_TO"
)
receipt_pos = LookUpId
("AU_POS"
,receipt_pos
,"POS_D"
)
split_in_branch
callwait bpm_assign_job
( "Approved Purchase"
, ""
, "Accounting Department"
, 0
, pr_type
, rec_id
, form
)
and_branch
callwait bpm_assign_job
( "Purchase Cover"
, ""
, "Accounting Department"
, 0
, pr_type
, rec_id
, form
)
and_branch
callwait bpm_assign_job
( "Goods Receipt"
, ""
, receipt_pos
, 0
, pr_type
, rec_id
, form
)
join_branches
endif
end_action