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_SMALLTASK

AutoScript

start_agent_info
   AgentName = "AU_SMALLTASK"
   AgentDescr = "Small Task Assignment"
   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 "Task"
start_bpm_subactivity "Task"
    
    rec = __params[1]
    fin = SelectFrom("SELECT FINISHED FROM AU_STEP WHERE (AU_STEP=",rec,")")
    
    if (fin = 1) then
       call OnOpenForm_DisableAllFields()
    else
       call OnOpenForm_DisableField("FINISHED")
    endif        
    
    expr = strcat(rec,"=AU_STEP")        
    call OpenFormTop("ptEdit","AU_NEWTASK_E.FM","WORK.AU_STEP",1,expr)
    
end_bpm_subactivity
start_bpm_subactivity "New Child Task"
                                
    rec = __params[1]
    fin = SelectFrom("SELECT FINISHED FROM AU_STEP WHERE (AU_STEP=",rec,")")
    fin = val(fin)
    
    if (fin = 0) then
       call OpenFormTop("ptAppend","AU_NEWTASK_E.FM","WORK.AU_STEP",1,"?=AU_STEP","NEW_CHILD",rec)
    endif
    
end_bpm_subactivity
start_bpm_subactivity "New Parallel Task"
    
    rec = __params[1]
    fin = SelectFrom("SELECT FINISHED FROM AU_STEP WHERE (AU_STEP=",rec,")")
    fin = val(fin)
    
    if (fin = 0) then
       call OpenFormTop("ptAppend","AU_NEWTASK_E.FM","WORK.AU_STEP",1,"?=AU_STEP","NEW_PARALLEL",rec)
    endif
    
end_bpm_subactivity
start_bpm_validation
                                
    flag = message_yes_no("Does this creates a new Task?")
    if (flag = 1) then
       user = GetUserName()
       call bpm_startfsm ( "AU_SMALLTASK", "NEW_NEXT", __params[1], user )
    endif    
        
    result = 1
    
end_bpm_validation
end_bpm_activity

start_action

     mode = __params[1]

     if (mode = "START") then

         rec_id = __params[2]
         user = __params[3]

         str = SelectFrom("SELECT COMM, UNAME, RNAME, AU_BUSINESS FROM AU_STEP WHERE (AU_STEP=",rec_id,")")
         sep = Escape(1,-1)
         comm = GetStrArgumentNo(str,sep,1)
         uname = GetStrArgumentNo(str,sep,2)        
         rname = GetStrArgumentNo(str,sep,3)                        
         bus_id = GetStrArgumentNo(str,sep,4)

         __au_process = bpm_createprocess("AU_SMALLTASK","",user,1) {expert_activ_flag = 1}

         parent_step = GetThrVal("__parent_step")
         call UpdateField("AU_PROCESS",__au_process,"COMM",comm,"USER_OWNER",user,"AU_STEP_PARENT",parent_step,"")

         if (bus_id > 0) then
         call bpm_setprocessbusiness(bus_id)
         endif
         call bpm_setprocedureowner(user) {.....set the procedure owner}
         call bpm_setstepcomment(comm)
         call bpm_setstepid(rec_id)
         call bpm_assign_job ( "Task" ,uname ,rname , 0 , rec_id )

     endif

     {....................................NEW_PARALLEL..create new Activity parallel to current (before current closes)}
     if (mode = "NEW_PARALLEL") then

         rec_id = __params[2]
         user = __params[3]
         rec0_id = __params[4]

         sep = Escape(1,-1)
         str = SelectFrom("SELECT AU_PROCESS, AU_STEP_PARENT FROM AU_STEP WHERE (AU_STEP=",rec0_id,")")
         __au_process = GetStrArgumentNo(str,sep,1)
         parent_id = GetStrArgumentNo(str,sep,2)

         str = SelectFrom("SELECT COMM, UNAME, RNAME FROM AU_STEP WHERE (AU_STEP=",rec_id,")")
         comm         = GetStrArgumentNo(str,sep,1)
         uname        = GetStrArgumentNo(str,sep,2)
         rname        = GetStrArgumentNo(str,sep,3)

         call UpdateField("AU_STEP",rec_id,"AU_PROCESS",__au_process,"")
         call UpdateField("AU_PROCESS",__au_process,"COMM",comm,"")

         call bpm_setstepparent(parent_id)
         call bpm_setstepcomment(comm)
         call bpm_setstepid(rec_id)
         call bpm_assign_job ( "Task" ,uname ,rname , 0 , rec_id )

     endif

     {....................................NEW_NEXT......create new Activity after the current closes}
     if (mode = "NEW_NEXT") then

         rec0_id = __params[2]
         user = __params[3]

         sep = Escape(1,-1)
         str = SelectFrom("SELECT AU_PROCESS, AU_STEP_PARENT FROM AU_STEP WHERE (AU_STEP=",rec0_id,")")
         __au_process = GetStrArgumentNo(str,sep,1)
         parent_id = GetStrArgumentNo(str,sep,2)

         str = SelectFrom("SELECT COMM, UNAME, RNAME, AU_BUSINESS, AU_PROCESS FROM AU_STEP WHERE (AU_STEP=",rec0_id,")")
         sep = Escape(1,-1)
         comm         = GetStrArgumentNo(str,sep,1)                                                
         uname        = GetStrArgumentNo(str,sep,2)
         rname        = GetStrArgumentNo(str,sep,3)
         bus_id = GetStrArgumentNo(str,sep,4)
         __au_process = GetStrArgumentNo(str,sep,5)

         comm = strcat("NEXT - ",comm)

         start_sql "*" "KOSMOS"
         INSERT INTO AU_STEP
         end_sql
         q = QueryByName()
         call TSetFld(q,"COMM","String",comm)
         call TSetFld(q,"UNAME","String",uname)
         call TSetFld(q,"RNAME","String",rname)
         call TSetFld(q,"FINISHED","String","0")
         call TSetFld(q,"AU_BUSINESS","Float",bus_id)
         call TSetFld(q,"AU_PROCESS","Float",__au_process)
         call TExecute(q)
         call FreeEmbSQL(q)

         rec_id = SelectIdentity()

         call bpm_setstepcomment(comm)
         call bpm_setstepparent(parent_id)
         call bpm_setstepid(rec_id)
         call bpm_openatonce()
         call bpm_assign_job ( "Task" ,uname ,rname , 0 , rec_id )

     endif

     {........................................create new child Activity}
     if (mode = "NEW_CHILD") then

         rec_id = __params[2]
         user = __params[3]
         rec0_id = __params[4]

         __au_process = SelectFrom("SELECT AU_PROCESS FROM AU_STEP WHERE (AU_STEP=",rec0_id,")")

         str = SelectFrom("SELECT COMM, UNAME, RNAME FROM AU_STEP WHERE (AU_STEP=",rec_id,")")
         sep = Escape(1,-1)
         comm         = GetStrArgumentNo(str,sep,1)
         uname        = GetStrArgumentNo(str,sep,2)
         rname        = GetStrArgumentNo(str,sep,3)

         call UpdateField("AU_STEP",rec_id,"AU_PROCESS",__au_process,"")

         call bpm_setstepcomment(comm)
         call bpm_setstepparent(rec0_id)
         call bpm_setstepid(rec_id)
         call bpm_assign_job ( "Task" ,uname ,rname , 0 , rec_id )

     endif

     return {....fsm must never reach end_action }

end_action