产生SAP系统标准信息

FUNCTION ZMESSAGE.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(BAL_S_LOG) TYPE  BAL_S_LOG
*"  TABLES
*"      RETURN STRUCTURE  BAPIRET2
*"----------------------------------------------------------------------
  DATA: C_LOG_HANDLE   TYPE BALLOGHNDL.
  DATA:
    L_S_MSG     TYPE BAL_S_MSG,
    L_S_PAR     TYPE BAL_S_PAR,
    L_S_MY_DATA TYPE BAL_S_EX06.
  DATA:
    L_T_LOG_HANDLE     TYPE BAL_T_LOGH,
    L_S_NEW_LOGNUMBER  TYPE BAL_S_LGNM,
    L_T_NEW_LOGNUMBERS TYPE BAL_T_LGNM.
* types of callback routines
  CONSTANTS:
    CONST_CALLBACK_FORM     TYPE BALUET          VALUE ' ',
    CONST_NAME_MSG_IDENT(9) TYPE C                   VALUE 'MSG_IDENT',
    CONST_CALLBACK_FUNCTION TYPE BALUET          VALUE 'F'.
  DATA:
    G_IDENTIFIER(10) TYPE N,
    G_LOGNUMBER      TYPE BALHDR-LOGNUMBER.
* create the log header
  LOOP AT RETURN.
    CALL FUNCTION 'BAL_LOG_CREATE'
      EXPORTING
        I_S_LOG      = BAL_S_LOG
      IMPORTING
        E_LOG_HANDLE = C_LOG_HANDLE
      EXCEPTIONS
        OTHERS       = 1.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

*****************************************************************************************
* create a message

    CLEAR L_S_MSG.
    L_S_MSG-MSGTY = RETURN-TYPE.
    L_S_MSG-MSGID = RETURN-ID.
    L_S_MSG-MSGNO = RETURN-NUMBER.
    L_S_MSG-MSGV1 = RETURN-MESSAGE_V1.
    L_S_MSG-MSGV2 = RETURN-MESSAGE_V2.
    L_S_MSG-MSGV3 = RETURN-MESSAGE_V3.
    L_S_MSG-MSGV4 = RETURN-MESSAGE_V4.
* define callback routine
    L_S_MSG-PARAMS-CALLBACK-USEREXITP = SY-REPID.
    L_S_MSG-PARAMS-CALLBACK-USEREXITF = 'CALLBACK_MSG_DETAIL'.
    L_S_MSG-PARAMS-CALLBACK-USEREXITT = CONST_CALLBACK_FORM.

* define an identifer. This is used to establish the link between
* the message and its additional data
    ADD 1 TO G_IDENTIFIER.

* put his identifier into the parameters of the message
    L_S_PAR-PARNAME = CONST_NAME_MSG_IDENT.
    L_S_PAR-PARVALUE   = G_IDENTIFIER.
    APPEND L_S_PAR TO L_S_MSG-PARAMS-T_PAR.

* create the message
    CALL FUNCTION 'BAL_LOG_MSG_ADD'
      EXPORTING
        I_LOG_HANDLE = C_LOG_HANDLE
        I_S_MSG      = L_S_MSG
      EXCEPTIONS
        OTHERS       = 1.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

* save this log
    INSERT C_LOG_HANDLE INTO TABLE L_T_LOG_HANDLE.
    CALL FUNCTION 'BAL_DB_SAVE'
      EXPORTING
        I_T_LOG_HANDLE   = L_T_LOG_HANDLE
      IMPORTING
        E_NEW_LOGNUMBERS = L_T_NEW_LOGNUMBERS
      EXCEPTIONS
        OTHERS           = 1.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ENDLOOP.
ENDFUNCTION.

导入:BAL_S_LOG TYPE BAL_S_LOG
表:RETURN LIKE BAPIRET2
使用:

  DATA: BAL_S_LOG TYPE BAL_S_LOG.
  BAL_S_LOG-OBJECT    = 'ZFSD0010'.
  BAL_S_LOG-EXTNUMBER =
* define callback routine
  BAL_S_LOG-PARAMS-CALLBACK-USEREXITP = SY-REPID.
  BAL_S_LOG-PARAMS-CALLBACK-USEREXITF = 'CALLBACK_LOG_DETAIL'.
  BAL_S_LOG-PARAMS-CALLBACK-USEREXITT = ''.
        BAL_S_LOG-SUBOBJECT    = 'Z01'.
      CALL FUNCTION 'ZMESSAGE'
        EXPORTING
          BAL_S_LOG = BAL_S_LOG
        TABLES
          RETURN    = RETURN.

配置使用的T-CODE:SLG0
查看使用的T-CODE:SLG1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值