免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3318 | 回复: 9
打印 上一主题 下一主题

400上产生报表后是否能发EMAIL [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-29 13:54 |只看该作者 |倒序浏览
不知道?在AS400上所产生的报表能不能发送到Email的邮箱里呢?请指教。

谢谢!

论坛徽章:
0
2 [报告]
发表于 2004-10-29 14:03 |只看该作者

400上产生报表后是否能发EMAIL

能 我见过 晚上我找找资料去 可能要配置SMTP等等的东西

论坛徽章:
0
3 [报告]
发表于 2004-10-29 14:40 |只看该作者

400上产生报表后是否能发EMAIL

guopeng不用找了,我手头上有关于这方面的实施例子。

1。先参考这个帖子的配置方法配置你的本地AS/400系统:

《【分享】如何实现直接从AS/400发送信息到指定的邮箱.》
http://www.chinaunix.net/jh/10/372109.html

2。然后请参照如下实施例子:

【转帖】如何將報表(Spooled File) 使用 e-mail 傳輸至使用者?(工具:ESPLF)  

由於 E-mail 的普及,所以常會有 AS/400 報表下載至 PC 並利用 outlook 傳輸,甚為麻煩,所以我將之整合至 AS/400 中,直接利用 AS/400 的 SMTP 功能即可直接傳送報表。SMTP設定方式請參考指令 ESPLF 的原始檔說明。

此程式預設是轉換 繁體中文 "*BG5",若是簡體中文,請將 ESPLFC 中 指令 CPYTOPCD 參數 TRNIGC 值改為 "*SCGS",即可轉換簡體。

File  : QCLSRC

Member: ESPLFC

Type  : CLP

Usage : CRTCLPGM ESPLFC

OS Version: V4R1(含)以後

  1. /**================================================================**/

  2. /* ESPLF ** EMAIL SPOOL FILE                                        */


  3. /* Compile: CRTCLPGM PGM(QGPL/ESPLFC)                               */

  4. /**================================================================**/

  5.              PGM        PARM(&FILE &EMAIL &QJOB &SPLNBRD)


  6.              DCL        VAR(&QJOB) TYPE(*CHAR) LEN(26) /* job name */

  7.              DCL        VAR(&FILE) TYPE(*CHAR) LEN(10) /* spool file +

  8.                           name */

  9.              DCL        VAR(&SPLNBRD) TYPE(*DEC) LEN(5 0) /* spool +

  10.                           file number */

  11.              DCL        VAR(&EMAIL) TYPE(*CHAR) LEN(40) /* to email +

  12.                           address */


  13.              DCL        VAR(&JOB)  TYPE(*CHAR) LEN(10)

  14.              DCL        VAR(&USER) TYPE(*CHAR) LEN(10)

  15.              DCL        VAR(&NBR)  TYPE(*CHAR) LEN(6)


  16.              DCL        VAR(&SPLNBR) TYPE(*CHAR) LEN(6) /* spool +

  17.                           file number */


  18.              DCL        VAR(&FNAME)  TYPE(*CHAR) LEN(12)


  19.              MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))


  20. /**================================================================**/

  21. /* Translate JOB special values                                     */

  22. /**================================================================**/


  23.              IF         COND(&QJOB = '*') THEN(RTVJOBA JOB(&JOB) +

  24.                           USER(&USER) NBR(&NBR))

  25.              ELSE       CMD(DO)

  26.                CHGVAR     VAR(&JOB)  value(%SST(&QJOB 1 10))

  27.                CHGVAR     VAR(&USER) value(%SST(&QJOB 11 10))

  28.                CHGVAR     VAR(&NBR)  value(%SST(&QJOB 21 6))

  29.              ENDDO


  30. /**================================================================**/

  31. /* Translate SPLNBR special values                                  */

  32. /**================================================================**/


  33.              IF         COND(&SPLNBRD = -1) THEN(CHGVAR VAR(&SPLNBR) +

  34.                           value('*ONLY'))

  35.              ELSE       CMD(IF COND(&SPLNBRD = -2) THEN(CHGVAR +

  36.                           VAR(&SPLNBR) value('*LAST')))

  37.              ELSE       CMD(CHGVAR VAR(&SPLNBR) value(&SPLNBRD))


  38. /**================================================================**/

  39. /* E-mail                                                           */

  40. /**================================================================**/


  41.              CHKOBJ     OBJ(QTEMP/ESPLF) OBJTYPE(*FILE)

  42.              MONMSG     MSGID(CPF9801) EXEC(CRTPF FILE(QTEMP/ESPLF) +

  43.                           RCDLEN(198) IGCDTA(*YES) SIZE(*NOMAX))


  44.              CPYSPLF    FILE(&FILE) TOFILE(QTEMP/ESPLF) +

  45.                           JOB(&NBR/&USER/&JOB) SPLNBR(&SPLNBR) +

  46.                           MBROPT(*REPLACE)

  47.              CHGVAR   VAR(&FNAME) value(%SST(&FILE 1 8) *TCAT '.TXT')

  48.              CPYTOPCD   FROMFILE(QTEMP/ESPLF) TOFLR('temp') +

  49.                           TODOC(&FNAME) REPLACE(*YES) +

  50.                           TRNTBL(*NONE) TRNIGC(*BG5)

  51.              SNDDST     TYPE(*DOC) TOINTNET((&EMAIL)) DSTD(&FILE) +

  52.                         LONGMSG(&FILE) DOC(&FNAME) FLR('temp') +

  53.                         SUBJECT(&FILE *BCAT 'TESTED' )

  54.              DLTDLO     DLO(&FNAME) FLR('temp')


  55.              SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Spooled +

  56.                           file' |>; &FILE |>; 'sent to' |>; &EMAIL)


  57.              RETURN


  58. /**================================================================**/

  59. /* Global exception handler                                         */

  60. /**================================================================**/


  61. ERROR:      CALL       PGM(QMHRSNEM) PARM('    ' X'00000000')

  62.              MONMSG     MSGID(CPF0000)


  63.              SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) +

  64.                           MSGDTA('Error(s) occured, see previously +

  65.                           listed messages') MSGTYPE(*ESCAPE)

  66.              ENDPGM
复制代码


File  : QCMDSRC

Member: ESPLF

Type  : CMD

Usage : CRTCMD CMD(ESPLFC) PGM(ESPLFC)

OS Version: V4R1(含)以後


  1. /* sample: ESPLF FILE(QPJOBLOG) EMAIL(support@yahoo.com) */


  2. /* V4R1 or later is required.   */

  3. /*You must create a temporary folder using the command CRTFLR FLR(TEMP) */


  4. /* 1.Using CFGTCP, Option 10=Work with TCP/IP host table entries,   */

  5. /*  verify your mail server name is in the table (add if necessary). */

  6. /*  ADD TWN6CPD  145.172.2.11  MAIL SERVER                           */

  7. /*  ADD WTWNAS01 145.172.1.1   LOCAL AS/400 HOST                     */


  8. /* 2. Ping mail server                                               */

  9. /* 3. CHGSMTPA, verify AUTOSTART(*YES) and MAILROUTER(mail-svr-name) */

  10. /* 4. ADDDIRE USRID(INTERNET SMTPRTE)   +                          */

  11. /*       USRD('Internet SMTP gateway') SYSNAME(INTERNET)   +       */

  12. /*       PREFADR(NETUSRID *IBM ATCONTXT)                           */


  13. /*    CHGDSTA SMTPRTE(INTERNET SMTPRTE)                            */


  14. /* 5. STRTCPSVR *SMTP                                              */

  15. /*    If you changed the mail server address, you need restart SMTP*/


  16. /* 6. Test : SNDDST TYPE(*LMSG) TOINTNET(E-mail address)    +      */

  17. /*                  DSTD('Test message') LMSG('Test message')      */

  18. /*    use the Work with Directory Entries (WRKDIRE) command to     */

  19. /*    enroll you in the system directory.                          */

  20. /*                                                                   */

  21. /* preventing large e-mail messages from splitting                   */

  22. /*           CHGPOPA MSGSPLIT(*NOMAX)                               */

  23. /*                            *DFT size is 128k                     */



  24.              CMD        PROMPT('E-mail Spooled File')


  25.              PARM       KWD(FILE) TYPE(*NAME) MIN(1) PROMPT('Spooled +

  26.                           file')


  27.              PARM       KWD(EMAIL) TYPE(*CHAR) LEN(40) MIN(1) +

  28.                           PROMPT('To e-mail address')


  29.              PARM       KWD(JOB) TYPE(JOB) DFT(*) SNGVAL((*)) +

  30.                           PROMPT('Job name')


  31.              PARM       KWD(SPLNBR) TYPE(*DEC) LEN(4) DFT(*ONLY) +

  32.                           SPCVAL((*ONLY -1) (*LAST -2)) +

  33.                           PROMPT('Spooled file number')


  34. JOB:        QUAL       TYPE(*NAME) DFT(*)

  35.              QUAL       TYPE(*NAME) PROMPT('User')

  36.              QUAL       TYPE(*CHAR) LEN(6) RANGE(000000 999999) +

  37.                           PROMPT('Number')
复制代码

论坛徽章:
0
4 [报告]
发表于 2004-10-29 14:42 |只看该作者

400上产生报表后是否能发EMAIL

存档备用,便于以后有相关需求的朋友参考。。。

论坛徽章:
0
5 [报告]
发表于 2004-10-29 15:36 |只看该作者

400上产生报表后是否能发EMAIL

非常谢谢!

我立马就试试看。

祝周未愉快!

论坛徽章:
0
6 [报告]
发表于 2004-10-29 15:48 |只看该作者

400上产生报表后是否能发EMAIL

我们公司应该也是直接从AS/400中产生文件,然后转换成EXCEL发到用户的LOUTS邮箱中去的.

论坛徽章:
0
7 [报告]
发表于 2004-10-29 16:41 |只看该作者

400上产生报表后是否能发EMAIL

[quote]原帖由 "jamesten"]我们公司应该也是直接从AS/400中产生文件,然后转换成EXCEL发到用户的LOUTS邮箱中去的.[/quote 发表:

原理是一样的吗?

如果方便的话就拿出来参考一下,想到有时自己公司业务方面的确需要如此,我也想在本地环境具体测试一下。

论坛徽章:
0
8 [报告]
发表于 2004-10-30 21:09 |只看该作者

400上产生报表后是否能发EMAIL

有谁试过吗?

论坛徽章:
0
9 [报告]
发表于 2004-10-30 21:27 |只看该作者

400上产生报表后是否能发EMAIL

[quote]原帖由 "hsiang_wang"]有谁试过吗?[/quote 发表:

第1步骤我目前在使用,所以没问题的。

第2步骤关键也是要配置好第1步骤作为前提,其实我们就是改第一步骤的SNDDST命令TYPE参数为TYPE(*DOC)类型,然后稍微写些代码就可以实现了。

我想这个PGM是可行的,改天我拿到我本地环境测试一下,正好要在公司的生产系统上实现这个机能。

你有时间自己也测试一下,感受会更深些。。。

★附加说明:

1.此功能须要 OS/400 V4R1 以后才可使用。

2.若欲传中文,只能以附件方式 SNDDST TYPE(*DOC) 传送;
故须先将信息或 Data 复制到档案夹(Folder);
CRTFLR FLR(TEMP) (指令 CPYTOPCD 参数 DBCS code page : *BG5);

CPYTOPCD FROMFILE(XXXX) TOFLR(TEMP) FROMMBR(XXX) +
               TODOC(XXXX.TXT) TRNTBL(*NONE) TRNIGC(*BG5)

3.SNDDST TYPE(*DOC) TOINTNET(E-mail address)    +
         DSTD(‘Test message’) DOC(XXXX.TXT) FLR(TEMP)

论坛徽章:
0
10 [报告]
发表于 2004-10-31 20:16 |只看该作者

400上产生报表后是否能发EMAIL

有没有谁试过自动转EXCEL的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP