如何將訊息紀錄於 JobLog ? (API Qp0zLprintf(Print Formatted Job Log Data))
將訊息紀錄於 JobLog 有幾種方式, 可以呼叫 CL 指令 SNDPGMMSG 或 API QMHSNDPM ,
但是有一 API Qp0zLprintf (Print Formatted Job Log Data) 更容易使用, 其參數
使用方式如同 C 函式 printf, 但必須於字串尾端加上 X'25' 表示訊息結尾.
File : QRPGLESRC
Member: WRTJOBLOGR
Type : RPGLE
Usage : CRTBNDRPG WRTJOBLOGR
: CALL WRTJOBLOGR
H DEBUG OPTION(*SRCSTMT:*NODEBUGIO) DFTACTGRP(*NO) ACTGRP(*CALLER)
D Qp0zLprintf PR 10I 0 ExtProc('Qp0zLprintf')
D szOutputStg * Value OPTIONS(*STRING)
D * Value OPTIONS(*STRING:*NOPASS)
D * Value OPTIONS(*STRING:*NOPASS)
D * Value OPTIONS(*STRING:*NOPASS)
D * Value OPTIONS(*STRING:*NOPASS)
D * Value OPTIONS(*STRING:*NOPASS)
D * Value OPTIONS(*STRING:*NOPASS)
D * Value OPTIONS(*STRING:*NOPASS)
D * Value OPTIONS(*STRING:*NOPASS)
D * Value OPTIONS(*STRING:*NOPASS)
D * Value OPTIONS(*STRING:*NOPASS)
D ProdNo S 5 0 Inz(1234)
D ProdName S 30 Inz('Testing')
C Callp Qp0zLprintf('Hello OS/400'+X'25')
C callp Qp0zLprintf('ProdNo: %s %s' + X'25' :
C %char(ProdNo):%Trimr(ProdName))
C Eval *InLr = *On
執行 CALL WRTJOBLOGR 後, DSPJOBLOG 會有如下訊息:
Hello OS/400
ProdNo: 1234 Testing
此 API 非常方便於除錯或紀錄程式執行狀態.
A blog about IBM i (AS/400), MQ and other things developers or Admins need to know.
星期一, 11月 06, 2023
2004-11-20 如何將訊息紀錄於 JobLog ? (API Qp0zLprintf(Print Formatted Job Log Data))
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言