start_agent_info
AgentName = "AU_ITPROCESS_COORDINATOR"
AgentDescr = "Process 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 "Process Workflow Coding"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OnOpenForm_DisableAllFields
()
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Code"
agent = __params[2]
descr = __params[3]
interv = __params[4]
fname = __params[5]
tname = __params[6]
call agent_code
(agent
,descr
,interv
,fname
,tname
)
end_bpm_subactivity
start_bpm_validation
rec = __params[1]
tname = LookUpId
("AU_ITPROCESS"
,rec
,"PR_TNAME"
)
if (tname = ""
) then
flag = message_yes_no
("Without a table! Do you agree?"
)
if (flag = 1
) then
result = 1
else
result = 0
endif
else
result = 1
endif
end_bpm_validation
end_bpm_activity
start_bpm_activity "New Process"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OnOpenForm_HideAllFields
()
call OnOpenForm_ShowField
("SUBJECT"
)
call OnOpenForm_ShowField
("PDESCR"
)
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Process Defininition"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OnOpenForm_DisableField
("SUBJECT"
)
call OnOpenForm_DisableField
("PDESCR"
)
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
start_bpm_validation
rec = __params[1]
str = SelectFrom
("
SELECT APROVED_FLAG
, REJECT_FLAG
FROM AU_ITPROCESS
WHERE (AU_ITPROCESS="
,rec
,"
)"
)
aprove = GetSQLSelectItem
(str
,1
)
reject = GetSQLSelectItem
(str
,2
)
sum = aprove + reject
if (sum = 1
) then
result = 1
else
call message
("You must either approve or reject!"
)
result = 0
endif
end_bpm_validation
end_bpm_activity
start_bpm_activity "Process Data Schema"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OnOpenForm_DisableAllFields
()
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Code"
agent = __params[2]
call agent_code
(agent
,descr
,interv
,fname
,tname
)
end_bpm_subactivity
start_bpm_subactivity "Data"
rec = __params[6]
sys = __params[7]
expr = strcat
(rec
,"=FILENAME"
)
if (sys = 0
) then
call OpenFormTop
("ptEdit"
,"
AU_PINPYR_E01.FM"
,"WORK.AU_KOS21"
,1
,expr
)
else
call OpenFormTop
("ptEdit";"
AU_DBSCHEMA_E0.FM";"WORK.AU_SYS21";1;expr
)
endif
end_bpm_subactivity
start_bpm_subactivity "1 - Read Database Schema"
call OpenDatabaseManager
( "ONLY_READ_SCHEMA"
)
end_bpm_subactivity
start_bpm_subactivity "2 - Upgrade Database"
tname = __params[3]
call OpenDatabaseManager
( "ONLY_TABLE_UPGRADE"
, tname
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Process User Interface"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OnOpenForm_DisableAllFields
()
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Form Used"
fname = __params[2]
tname = __params[3]
uname = __params[4]
dq = Escape
(34
,-1
) {...............double quote ascii}
acomm = strcat
("
call OpenFormTop
("
,dq
,"ptApp
end"
,dq
,"
,"
,dq
,fname
,dq
,"
,"
,dq
,"WORK."
,tname
,dq
,"
,1
,"
,dq
,"?="
,uname
,dq
,"
)"
)
call Exec
(acomm
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Process Action Map Entry"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Action Map"
rec = __params[2]
expr = strcat
(rec
,"=AU_ACTMAP"
)
call OpenFormTop
("ptEdit"
,"
AU_ACTMAP_E.FM"
,"WORK.AU_ACTMAP"
,1
,expr
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Process Action Permissions"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OnOpenForm_DisableAllFields
()
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Action Map"
rec = __params[2]
expr = strcat
(rec
,"=AU_ACTMAP"
)
call OpenFormTop
("ptEdit"
,"
AU_ACTMAP_E.FM"
,"WORK.AU_ACTMAP"
,1
,expr
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Process Action Map Entry"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Action Map"
rec = __params[2]
expr = strcat
(rec
,"=AU_ACTMAP"
)
call OpenFormTop
("ptEdit"
,"
AU_ACTMAP_E.FM"
,"WORK.AU_ACTMAP"
,1
,expr
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Process Testing"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OnOpenForm_DisableAllFields
()
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Code"
agent = __params[2]
call agent_code
(agent
,descr
,interv
,fname
,tname
)
end_bpm_subactivity
start_bpm_subactivity "Data"
rec = __params[6]
sys = __params[7]
expr = strcat
(rec
,"=FILENAME"
)
if (sys = 0
) then
call OpenFormTop
("ptEdit"
,"
AU_PINPYR_E01.FM"
,"WORK.AU_KOS21"
,1
,expr
)
else
call OpenFormTop
("ptEdit";"
AU_DBSCHEMA_E0.FM";"WORK.AU_SYS21";1;expr
)
endif
end_bpm_subactivity
start_bpm_subactivity "1 - Read Database Schema"
call OpenDatabaseManager
( "ONLY_READ_SCHEMA"
)
end_bpm_subactivity
start_bpm_subactivity "2 - Upgrade Database"
tname = __params[3]
call OpenDatabaseManager
( "ONLY_TABLE_UPGRADE"
, tname
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Process Publishing"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OnOpenForm_DisableAllFields
()
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
end_bpm_activity
start_bpm_activity "Process Documentation"
start_bpm_subactivity "Process"
rec = __params[1]
expr = strcat
(rec
,"=AU_ITPROCESS"
)
call OnOpenForm_DisableAllFields
()
call OpenFormTop
("ptEdit"
,"
AU_ITPROCESS_E.FM"
,"WORK.AU_ITPROCESS"
,1
,expr
)
end_bpm_subactivity
start_bpm_subactivity "Documentation"
rec = __params[2]
call OpenFormTop
("ptBrowse";"
AU_ACTIVHELP_B.FM";"QRY.DATA"
,"PROCESS"
,rec
)
end_bpm_subactivity
start_bpm_subactivity "IT Documentation"
call Documentor
()
end_bpm_subactivity
end_bpm_activity
start_action
rec_id = __params[1] {....get input parameter
(usualy the record id of starting form
)}
comm = LookUpId
("AU_ITPROCESS"
,rec_id
,"SUBJECT"
)
call bpm_setprocedurecomment
(comm
) {.....set the procedures comment}
call bpm_setprocedureowner
(__activation_user
) {.....set the procedure owner}
{...........................define the process in text...........................}
call bpm_openatonce
()
callwait bpm_assign_job
( "New Process"
, __activation_user
, ""
, 0
, rec_id
)
callwait bpm_assign_job
( "Process Defininition"
, ""
, it_manager
, 0
, rec_id
)
approve_flag = LookUpId
("AU_ITPROCESS"
,rec_id
,"APROVED_FLAG"
)
if (approve_flag = 1
) then
sql = ""
sql = strcatln
(sql
,"
SELECT PR_PNAME
, PR_DESCR
, PR_INTERVAL
, PR_FNAME
, PR_TNAME
, FAST_FLAG "
)
sql = strcatln
(sql
,"
FROM AU_ITPROCESS
WHERE (AU_ITPROCESS="
,rec_id
,"
)"
)
str = SelectFrom
(sql
)
pr_name = GetSQLSelectItem
(str
,1
)
pr_descr = GetSQLSelectItem
(str
,2
)
pr_int = GetSQLSelectItem
(str
,3
)
fname = GetSQLSelectItem
(str
,4
)
tb_name = GetSQLSelectItem
(str
,5
)
fast_flag = GetSQLSelectItem
(str
,6
)
{.....................................
for quick process demonstration purposes!!!!}
fast_flag = val
(fast_flag
)
if (fast_flag = 0
) then
it_manager = "IT MANAGER"
it_datamaster = "IT DATAMASTER"
it_resdesigner = "IT RESOURCE DESIGNER"
it_tester = "IT TESTER"
it_documentor = "IT DOCUMENTOR"
user = ""
elseif (fast_flag = 1
) then
it_manager = ""
it_datamaster = ""
it_resdesigner = ""
it_tester = ""
it_documentor = ""
user = __activation_user
endif
{...........................process coding or drawing..........
(here created the agent with the code
)..................}
callwait bpm_assign_job
( "Process Workflow Coding"
, user
, it_coder
, 0
, rec_id
, pr_name
, pr_descr
, pr_int
, fname
, tb_name
)
{...........................create table......................}
tb_name = LookUpId
("AU_ITPROCESS"
,rec_id
,"PR_TNAME"
)
if (tb_name <> ""
) then
p1 = Pos
("AU_"
,tname
)
if (p1 = 1
) then
sys_flag = 1
else
sys_flag = 0
endif
call UpdateTable
("AU_ITPROCESS"
,rec_id
,"SYS_FLAG"
,sys_flag
,""
)
if (sys_flag = 0
) then
tname = SelectFrom
("
SELECT FILENAME
FROM AU_KOS21
WHERE (FILENAME='"
,tb_name
,"'
)"
)
if (tname = ""
) then
start_sql "*" "KOSMOS"
INSERT INTO AU_KOS21
end_sql
q = QueryByName
()
call TSetFld
( q
, "FILENAME"
, "String"
, tb_name
)
call TSetFld
( q
, "DESCR"
, "String"
, tb_name
)
call TSetFld
( q
, "UFIELD"
, "String"
, tb_name
)
call TExecute
(q
)
call FreeEmbSQL
(q
)
start_sql "*" "KOSMOS"
INSERT INTO AU_KOS22
end_sql
q = QueryByName
()
call TSetFld
( q
, "TABLE"
, "String"
, tb_name
)
call TSetFld
( q
, "FLDNAME"
, "String"
, tb_name
)
call TSetFld
( q
, "DESCR"
, "String"
, tb_name
)
call TSetFld
( q
, "DTYPE"
, "Float"
, 6
)
call TExecute
(q
)
call FreeEmbSQL
(q
)
start_sql "*" "KOSMOS"
INSERT INTO AU_KOS23
end_sql
q = QueryByName
()
call TSetFld
( q
, "TABLE"
, "String"
, tb_name
)
call TSetFld
( q
, "FIELDS"
, "String"
, tb_name
)
call TSetFld
( q
, "INDEXNAME"
, "String"
, tb_name
)
call TSetFld
( q
, "PROP"
, "String"
, "Asc;Un"
)
call TExecute
(q
)
call FreeEmbSQL
(q
)
endif
endif
if (sys_flag = 1
) then
tname = SelectFrom
("
SELECT FILENAME
FROM AU_SYS21
WHERE (FILENAME='"
,tb_name
,"'
)"
)
if (tname = ""
) then
start_sql "*" "KOSMOS"
INSERT INTO AU_SYS21
end_sql
q = QueryByName
()
call TSetFld
( q
, "FILENAME"
, "String"
, tb_name
)
call TSetFld
( q
, "DESCR"
, "String"
, tb_name
)
call TSetFld
( q
, "UFIELD"
, "String"
, tb_name
)
call TExecute
(q
)
call FreeEmbSQL
(q
)
start_sql "*" "KOSMOS"
INSERT INTO AU_SYS22
end_sql
q = QueryByName
()
call TSetFld
( q
, "TABLE"
, "String"
, tb_name
)
call TSetFld
( q
, "FLDNAME"
, "String"
, tb_name
)
call TSetFld
( q
, "DESCR"
, "String"
, tb_name
)
call TSetFld
( q
, "DTYPE"
, "Float"
, 6
)
call TExecute
(q
)
call FreeEmbSQL
(q
)
start_sql "*" "KOSMOS"
INSERT INTO AU_SYS23
end_sql
q = QueryByName
()
call TSetFld
( q
, "TABLE"
, "String"
, tb_name
)
call TSetFld
( q
, "FIELDS"
, "String"
, tb_name
)
call TSetFld
( q
, "INDEXNAME"
, "String"
, tb_name
)
call TSetFld
( q
, "PROP"
, "String"
, "Asc;Un"
)
call TExecute
(q
)
call FreeEmbSQL
(q
)
endif
endif
tname = tb_name
uname = tb_name
{..........................process data schema requirements......................}
callwait bpm_assign_job
( "Process Data Schema"
, user
, it_datamaster
, 0
, rec_id
, pr_name
, pr_descr
, pr_int
, fname
, tb_name
, sys_flag
)
{..........................process user interface
(form drawing
).................}
callwait bpm_assign_job
( "Process User Interface"
, user
, it_resdesigner
, 0
, rec_id
, fname
, tname
, uname
)
endif
{..........................process starting command..............................}
dq = Escape
(34
,-1
) {...............double quote ascii}
acomm = strcat
("
call OpenFormTop
("
,dq
,"ptApp
end"
,dq
,"
,"
,dq
,fname
,dq
,"
,"
,dq
,"WORK."
,tname
,dq
,"
,1
,"
,dq
,"?="
,uname
,dq
,"
)"
)
adescr = strcat
("New "
,pr_descr
)
start_sql "*" "KOSMOS"
INSERT INTO AU_ACTMAP
end_sql
q = QueryByName
()
call TSetFld
(q
,"ADESCR"
,"String"
,adescr
)
call TSetFld
(q
,"ACOMMAND"
,"String"
,acomm
)
call TExecute
(q
)
call FreeEmbSQL
(q
)
am_id = SelectLastId
("AU_ACTMAP"
)
{..........................process starting permissions..........................}
callwait bpm_assign_job
( "Process Action Permissions"
, user
, it_manager
, 0
, rec_id
, am_id
)
{.........................process testing........................................}
callwait bpm_assign_job
( "Process Testing"
, user
, it_tester
, 0
, rec_id
, pr_name
, pr_descr
, pr_int
, fname
, tb_name
, sys_flag
)
{.........................process
documentation........................................}
callwait bpm_assign_job
( "Process Documentation"
, user
, it_documentor
, 0
, rec_id
, pr_name
)
{.........................process publishing........................................}
callwait bpm_assign_job
( "Process Publishing"
, user
, it_manager
, 0
, rec_id
)
endif
end_action