将日志转化成文档


 
 DATA: L_CSEQNO TYPE I. "当前日志所属数据序号
  LOOP AT T_LOG.
    IF T_LOG-SEQNO NE SPACE.
      L_CSEQNO = T_LOG-SEQNO.  "获取当前日志信息所属数据序号
    ENDIF.
    IF ( T_LOG-MSGID = 'VK' AND T_LOG-MSGNR = '023' ) OR
       ( T_LOG-MSGID = '06' AND T_LOG-MSGNR = '335' ).
*      如果有MSGID = 'VK' 且 MSGNR = '023',则表示,该数据保存成功
      READ TABLE <DYN_TABLE> INTO <DYN_WA> INDEX L_CSEQNO.
      IF SY-SUBRC = 0.
        ASSIGN COMPONENT 'ROWCOLOR' OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.
        <DYN_FIELD> = 'C200'.
        MODIFY <DYN_TABLE> FROM <DYN_WA> INDEX L_CSEQNO.
      ENDIF.
    ENDIF.
  ENDLOOP.

FORM SUB_PROCESS_LOG .
  DATA: L_CSEQNO TYPE I. "当前日志所属数据序号
  DATA: L_ERRNO TYPE I,
        L_TOTNO TYPE I,
        L_SUCNO TYPE I.
  L_ERRNO = 0.
  L_TOTNO = 0.
  L_SUCNO = 0.
  LOOP AT <DYN_TABLE> INTO <DYN_WA>.
    L_TOTNO = L_TOTNO + 1.
    DATA: L_CTABIX LIKE SY-TABIX.
    L_CTABIX = SY-TABIX.
    ASSIGN COMPONENT 'ROWCOLOR' OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.
    IF <DYN_FIELD> <> 'C200'.
      <DYN_FIELD> = 'C610'.
      L_ERRNO = L_ERRNO + 1.
    ELSE.
      L_SUCNO = L_SUCNO + 1.
      <DYN_FIELD> = ''.
    ENDIF.
    MODIFY <DYN_TABLE> FROM <DYN_WA> INDEX L_CTABIX.
  ENDLOOP.

  DATA: L_MSG(100) TYPE C.
  IF L_TOTNO <> L_SUCNO.
    DATA: L_TOTNOC(10) TYPE C VALUE 0.
    DATA: L_ERRNOC(10) TYPE C VALUE 0.
    L_TOTNOC = L_TOTNO.
    L_ERRNOC = L_ERRNO.
    CONCATENATE '共处理数据' L_TOTNOC '条,' '其中失败' L_ERRNOC '条,请查看日志。' INTO L_MSG.
  ELSE.
    L_MSG = '操作已成功。'.
  ENDIF.
  MESSAGE L_MSG TYPE 'I'.
ENDFORM.  

 

*BDC 相关定义
DATA: BEGIN OF bdcdata OCCURS 0.
        INCLUDE STRUCTURE bdcdata.
DATA: END OF bdcdata.

DATA: BEGIN OF t_log OCCURS 0.
        INCLUDE STRUCTURE bdcmsgcoll.
DATA:   keytext(100) TYPE c.
DATA:   seqno TYPE i.
DATA: END OF t_log.

 

FORM sub_show_log .
  CLEAR t_loginfo.
  REFRESH t_loginfo.
  LOOP AT t_log.
    IF t_log-seqno <> 0.
      t_loginfo-seqno = t_log-seqno.
    ELSE.
      DATA: x_msgin LIKE msg_log,
      x_msgout LIKE msg_text.
      CLEAR: x_msgin,x_msgout.
      x_msgin-msgid = t_log-msgid.
      x_msgin-msgno = t_log-msgnr.
      x_msgin-msgty = t_log-msgtyp.
      x_msgin-msgv1 = t_log-msgv1.
      x_msgin-msgv2 = t_log-msgv2.
      x_msgin-msgv3 = t_log-msgv3.
      x_msgin-msgv4 = t_log-msgv4.
      CALL FUNCTION 'MESSAGE_TEXTS_READ'
        EXPORTING
          msg_log_imp  = x_msgin
        IMPORTING
          msg_text_exp = x_msgout.
      t_loginfo-logtx = x_msgout-msgtx.
      APPEND t_loginfo.
      CLEAR: t_loginfo-logtx.
    ENDIF.
  ENDLOOP.
  CALL SCREEN 200 STARTING AT 5 5.
ENDFORM.                    " sub_show_log             

 

MODULE TC_LOGINFO_CHANGE_TC_ATTR OUTPUT.
  DESCRIBE TABLE T_LOGINFO LINES TC_LOGINFO-lines.
ENDMODULE. 

 

MODULE TC_LOGINFO_GET_LINES OUTPUT.
  G_TC_LOGINFO_LINES = SY-LOOPC.
ENDMODULE.

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值