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_MAILCAMP_MASS_AGENT

AutoScript

start_agent_info
   AgentName = "AU_MAILCAMP_MASS_AGENT"
   AgentDescr = "Massive Mail Campaign"
   PR_FNAME = "AU_MAILCAMP_MASS_E.FM"
   PR_TNAME = "AU_MAILCAMP_MASS"
   AgentLanguage = ""
   __timer_interval =   {....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 "Define Participant Contacts"
start_bpm_subactivity "Campaign Form"
                        
    rec = __params[1]        
    expr = strcat(rec,"=AU_MAILCAMP_MASS")
    call OpenFormTop("ptEdit","AU_MAILCAMP_MASS_E.FM","WORK.AU_MAILCAMP_MASS",1,expr)
    
end_bpm_subactivity
start_bpm_subactivity "Define Participants"

    call OpenFormTop("ptBrowse","AU_SELLCONTACT_TO_MAIL_B.FM","QRY.DATA")

end_bpm_subactivity
start_bpm_validation

    result = 1
    ag = agent_askexpert("AU_MAIlCAMP_MASS_AGENT","CREATE",__params[1])
    
end_bpm_validation
end_bpm_activity

start_bpm_activity "Inspect Drafts"
start_bpm_subactivity "Campaign Form"
    
    rec = __params[1]
    expr = strcat(rec,"=AU_MAILCAMP_MASS")
    call OpenFormTop("ptEdit","AU_MAILCAMP_MASS_E.FM","WORK.AU_MAILCAMP_MASS",1,expr)
    
end_bpm_subactivity
start_bpm_subactivity "Inspect Drafts"
    
    call OpenFormTop("ptBrowse","AU_MAIL_DRAFT_B.FM","QRY.DATA")
    
end_bpm_subactivity
start_bpm_validation

    result = 1
    ag = agent_askexpert("AU_MAIlCAMP_MASS_AGENT","STATISTICS",__params[1])                                
    
end_bpm_validation
end_bpm_activity

start_bpm_activity "Statistic Results"
start_bpm_subactivity "Process Form"
    
    rec = __params[1]
    expr = strcat(rec,"=AU_MAILCAMP_MASS")

' call OnOpenForm_DisableAllFields()
' call OnOpenForm_EnableField("SEND_MAIL_COUNT")
' call OnOpenForm_EnableField("BOUNCED_MAIL_COUNT")
' call OnOpenForm_EnableField("EFFECT_MAIL_COUNT")
' call OnOpenForm_EnableField("OPEN_COUNT")
' call OnOpenForm_EnableField("SESSION_COUNT")
    
    call OpenFormTop("ptEdit","AU_MAILCAMP_MASS_E.FM","WORK.AU_MAILCAMP_MASS",1,expr)
    
end_bpm_subactivity
end_bpm_activity

start_action

    mode = __params[1]
    rec_id = __params[2]

    {...............................................define campaign variables and contact participants..}
    if (mode = "START") then

        str = SelectFrom("SELECT SUBJECT, AU_USER, AU_POS FROM AU_MAILCAMP_MASS WHERE (AU_MAILCAMP_MASS=",rec_id,")")

        comm = GetSQLSelectItem(str,1)
        uname = GetSQLSelectItem(str,2)
        rname = GetSQLSelectItem(str,3)

        uname = LookUpId("AU_USER",uname,"UNAME")
        rname = LookUpId("AU_POS",rname,"POS_D")

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

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

        call bpm_setprocedureowner(uname) {.....set the procedure owner}
        call bpm_setstepcomment(comm)
        call bpm_assign_job ( "Define Participant Contacts", uname, rname, 0, rec_id )

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

    {...............................................create the mails}
    if (mode = "CREATE") then

       {.............get campaign variables..........}
       str = SelectFrom("SELECT SMAIL, AU_POS, AU_USER, MSUBJECT, COLL_TYPE, HTML_FILE, CSOURCE, CMEDIUM, CCAMPAIGN, NO_SUBPROCESSES_FLAG, AU_PROCESS FROM AU_MAILCAMP_MASS WHERE (AU_MAILCAMP_MASS=",rec_id,")")

       smail = GetSQLSelectItem(str,1)
       pos_id = GetSQLSelectItem(str,2)
       user_id = GetSQLSelectItem(str,3)
       msubj = GetSQLSelectItem(str,4)
       coll_type = GetSQLSelectItem(str,5)
       html_file = GetSQLSelectItem(str,6)
       csource = GetSQLSelectItem(str,7)
       cmedium = GetSQLSelectItem(str,8)
       ccampaign = GetSQLSelectItem(str,9)
       no_subpr = GetSQLSelectItem(str,10)
       no_subpr = val(no_subpr)
       __au_process = GetSQLSelectItem(str,11)

       uname = LookUpId("AU_USER",user_id,"UNAME")
       rname = LookUpId("AU_POS",pos_id,"POS_D")

        start_sql "*" "KOSMOS"
         SELECT AU_MAILADDRESS.MADDRESS, AU_CONTACT.DISP_NAME, AU_CONTACT_MAILADDR.AU_BUSINESS,
         AU_CONTACT_MAILADDR.AU_CONTACT, AU_CONTACT_MAILADDR.SEND_MAIL_FLAG,
         AU_CONTACT_MAILADDR.AU_CONTACT_MAILADDR
         FROM AU_MAILADDRESS INNER JOIN (AU_CONTACT INNER JOIN AU_CONTACT_MAILADDR
         ON AU_CONTACT.AU_CONTACT = AU_CONTACT_MAILADDR.AU_CONTACT)
         ON AU_MAILADDRESS.AU_MAILADDRESS = AU_CONTACT_MAILADDR.AU_MAILADDRESS
         WHERE (SEND_MAIL_FLAG = '1')
        end_sql
        q0 = QueryByName()
        call TExecute(q0)
        count = TRecordCount(q0)

        call TFirst(q0)
        for i = 1 to count

         cont_id = TGetFld(q0,"AU_CONTACT")
         bus_id = TGetFld(q0,"AU_BUSINESS")
         subj = TGetFld(q0,"DISP_NAME")
         cmail = TGetFld(q0,"MADDRESS")
         send_id = TGetFld(q0,"AU_CONTACT_MAILADDR")

         {............................create AU_MAILCAMP record...}
         start_sql "*" "KOSMOS"
                INSERT INTO AU_MAILCAMP
         end_sql
         q1 = QueryByName()
         call TSetFld(q1,"AU_MAILCAMP_MASS","Float",rec_id)
         call TSetFld(q1,"AU_CONTACT","Float",cont_id)
         call TSetFld(q1,"AU_BUSINESS","Float",bus_id)
         call TSetFld(q1,"AU_POS","Float",pos_id)
         call TSetFld(q1,"SUBJECT","String",subj)
         call TSetFld(q1,"SMAIL","String",smail)
         call TSetFld(q1,"CMAIL","String",cmail)
         call TSetFld(q1,"MSUBJECT","String",msubj)
         call TSetFld(q1,"HTML_FILE","String",html_file)
         call TSetFld(q1,"COLL_TYPE","String",coll_type)
         call TSetFld(q1,"DRAFT_FLAG","String","1")
         call TSetFld(q1,"CSOURCE","String",csource)
         call TSetFld(q1,"CMEDIUM","String",cmedium)
         call TSetFld(q1,"CCAMPAIGN","String",ccampaign)
         call TExecute(q1)
         call FreeEmbSQL(q1)

         id = SelectLastId("AU_MAILCAMP")

         if (no_subpr = 1) then

         call mail_createandsend ( "immediately", "mass", rec_id, cmail, cont_id, bus_id )

         elseif (no_subpr = 0) then
         {..............start mail campaign process...(do not resent email).}
         resend_flag = 0
         ag = agent_askexpert("AU_MAIL_CAMPAIN_FSM_AGENT","SEND_MAIL_AND_WAIT",id,0,resend_flag)
         call agent_free(ag)

         endif

         {........blank again "SEND_MAIL_FLAG"...........}

         call UpdateField ( "AU_CONTACT_MAILADDR", send_id, "SEND_MAIL_FLAG", "0", "" )

         call TNext(q0)
        next
        call FreeEmbSQL(q0)

        {......inspect drafts............}
        call bpm_setstepcomment(comm)
        call bpm_assign_job ( "Inspect Drafts", uname, rname, 0, rec_id )

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

    if (mode = "STATISTICS") then

        str = SelectFrom("SELECT SUBJECT, AU_USER, AU_POS, AU_PROCESS FROM AU_MAILCAMP_MASS WHERE (AU_MAILCAMP_MASS=",rec_id,")")

        comm         = GetSQLSelectItem(str,1)
        uname        = GetSQLSelectItem(str,2)
        rname        = GetSQLSelectItem(str,3)
        __au_process = GetSQLSelectItem(str,4)

        uname = LookUpId("AU_USER",uname,"UNAME")
        rname = LookUpId("AU_POS",rname,"POS_D")

        call bpm_setstepcomment(comm)
        call bpm_assign_job ( "Statistic Results", uname, rname, 0, rec_id )

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

end_action