Do not let any software impress you!

Only let it convince your intellect.
Slider img 1
Do not look for a business paradise!

It is a waste of time.
Slider img 2
Only yourself can push you uphill.

There is no easy road to prizes.
Slider img 3
Productivity is the name of the game.

And you have to conquer it.
Slider img 4
As long as you understand it,

you will start to build your know-how.
Slider img 5
We can help with that.

We have the tools and the method.
Slider img 6
Procedure : AU_ITPROCESS_COORDINATOR

AutoScript

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,"ptAppend",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,"ptAppend",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