触发output type的代码 - WFMC_MESSAGES_PROCESS示例

 

本例是触发Delivery的output Type, 示例代码如下, 详细逻辑可参SAP标准程序SD70AV2A.
   

  DATA: " internal table for message from NAST processing
        lt_msg   TYPE STANDARD TABLE OF msg0,
        ls_msg   TYPE msg0,   " work area for lt_msg
        lt_dsp   TYPE STANDARD TABLE OF naliv2,
        ls_dsp   TYPE naliv2,
        ls_nast  TYPE nast.

  FIELD-SYMBOLS: <ls_msg> TYPE msg0.

  " transfer pt_nast data to  lt_msg
  LOOP AT pt_nast INTO ls_nast.

    MOVE-CORRESPONDING ls_nast TO ls_msg.
    APPEND ls_msg TO lt_msg.
    CLEAR ls_msg.

  ENDLOOP.

  CALL FUNCTION 'WFMC_MESSAGES_EXTEND'
    TABLES
      tx_messages = lt_msg.

  SORT lt_msg BY objky kschl.

* create display
  LOOP AT lt_msg ASSIGNING <ls_msg>.
*    tabix = sy-tabix.
    MOVE-CORRESPONDING <ls_msg> TO ls_dsp.

    ls_dsp-vbeln = <ls_msg>-objky(10).
    ls_dsp-posnr = <ls_msg>-objky+10(6).
    ls_dsp-tabix = sy-tabix.
    <ls_msg>-tabix = sy-tabix.

    APPEND ls_dsp TO lt_dsp.
    CLEAR ls_dsp.

  ENDLOOP.

  " delivery output type processing
  CALL FUNCTION 'WFMC_MESSAGES_PROCESS'
    EXPORTING
      pi_display_id = gc_display_id                         "'NALIV2'
      pi_no_dialog  = gc_true  " 'X'
    TABLES
      tx_messages   = lt_msg
      tx_display    = lt_dsp.

 return_code = 0.

注: 1 . 本代码取自实际代码的一部分, 若想直接使用, 需略作修改.

      2. 这种方法只适用例如VT70一样的程序中, 不能使用在Normal TCODE的UPDATE TASK Process中, 例如VT02N- Repeat output, 我们需要DEBUG标准程序找到合适的地方来CALL 'WFMC_MESSAGES_PROCESS' .     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值