D

来源:互联网 发布:windows模拟器中文版 编辑:程序博客网 时间:2024/04/30 13:39
FUNCTION  t540sub_mail(l_pmm)  DEFINE l_cmd          LIKE type_file.chr1000  DEFINE l_pmc912       LIKE   pmc_file.pmc912  #是否mail  DEFINE l_pmd02        LIKE   pmd_file.pmd02  DEFINE l_pmd07        LIKE   pmd_file.pmd07  DEFINE l_zo02         LIKE   zo_file.zo02  DEFINE l_subject      STRING   #主旨  DEFINE l_body         STRING   #內文路徑  DEFINE l_recipient    STRING   #收件者  DEFINE l_cnt          LIKE   type_file.num5    #SMALLINT  DEFINE l_wc           STRING  DEFINE l_sql          STRING  DEFINE ls_context        STRING  DEFINE ls_temp_path      STRING  DEFINE ls_context_file   STRING  DEFINE l_pmm          RECORD LIKE pmm_file.*  DEFINE i              LIKE type_file.num5      #FUN-870158     #廠商基本資料中如勾選要發mail給廠商,則依連絡人發mail  SELECT pmc912 INTO l_pmc912    FROM pmc_file   WHERE pmc01 = l_pmm.pmm09  IF SQLCA.sqlcode THEN     CALL cl_err3("sel","pmc_file",l_pmm.pmm09,"",SQLCA.sqlcode,"","",0)  ELSE    IF l_pmc912 = 'Y' THEN #要發mail      SELECT COUNT(*) INTO l_cnt FROM pmd_file       WHERE pmd01 = l_pmm.pmm09  AND  pmd07 IS NOT NULL         AND pmd08 = 'Y'                        #FUN-940071      IF l_cnt >0 THEN       #主旨        SELECT zo02 INTO l_zo02  FROM zo_file  WHERE zo01 = g_lang        LET l_subject = cl_getmsg("apm-795",g_lang) CLIPPED,l_zo02 CLIPPED,                        cl_getmsg("apm-796",g_lang) CLIPPED,l_pmm.pmm01        LET g_xml.subject = l_subject        #內文        LET ls_context = cl_getmsg("apm-799",g_lang) CLIPPED        LET ls_temp_path = FGL_GETENV("TEMPDIR")        LET ls_context_file = ls_temp_path,"/report_context_" || FGL_GETPID() || ".txt"        LET l_cmd = "echo '" || ls_context || "' > " || ls_context_file        RUN l_cmd WITHOUT WAITING        LET g_xml.body = ls_context_file        #收件者         LET l_recipient = ''         DECLARE t540sub_pmd_c CURSOR FOR                 SELECT pmd02,pmd07 FROM pmd_file                   WHERE pmd01 = l_pmm.pmm09                     AND pmd07 IS NOT NULL                     AND pmd08 = 'Y'                         #No.FUN-940071                   ORDER BY pmd02         LET i = 0                                           #FUN-870158                            FOREACH t540sub_pmd_c INTO l_pmd02,l_pmd07           LET i = i + 1           IF i = 1 THEN              LET l_recipient = l_recipient CLIPPED,l_pmd07 CLIPPED,":",l_pmd02 CLIPPED ,":","1" CLIPPED           ELSE              LET l_recipient = l_recipient CLIPPED ,";",l_pmd07 CLIPPED,":",l_pmd02 CLIPPED ,":","1" CLIPPED           END IF         END FOREACH         LET g_xml.recipient = l_recipient          LET l_wc = "pmm01='",l_pmm.pmm01 CLIPPED,"'",                    " AND pmm04='",l_pmm.pmm04 CLIPPED,"'",                    " AND pmm12='",l_pmm.pmm12 CLIPPED,"'"         LET l_wc = cl_replace_str(l_wc,"'","\"")         CALL FGL_SETENV("MAIL_TO",l_recipient)               #FUN-870158         LET l_cmd = "apmr900 '",g_today,"' '",g_user CLIPPED,"' '",g_lang,"' 'Y' 'A' '1' '",l_wc CLIPPED,"' 'N' 'Y' '0' 'default' 'default' 'default' '",g_xml.subject,"' '",g_xml.body,"' '",g_xml.recipient,"' 'apmr900_0_std' ''"    #FUN-870158          CALL cl_cmdrun(l_cmd)      END IF    END IF  END IFEND FUNCTION