在KO88结算成本之后,对特定的内部订单类型,替换默认的统驭科目

BTE增强 1120可以直接解决。

除了BTE1120之外,下面的做法更复杂点。

 

 

 

 

 

 

 

 

 

 

 

 

代码参考:

ENHANCEMENT 1  ZEN_KO88.    "active version
*
*  BREAK DS01.

  DATA:e_aufk TYPE AUFK,
       LR_co_acdoc_post_data Type Ref To CL_FINS_ACDOC_POST_DATA,
       LR_IO_ACDOC_DATA      TYPE Ref To CL_FINS_ACDOC_DATA,
       LT_ACDOC_ITEM         TYPE FINST_ACDOC_ITEM.

 IMPORT e_aufk TO e_aufk FROM MEMORY ID 'KO88'.
 IF e_aufk-AUART = '11111111'.

 LR_IO_ACDOC_DATA      = co_acdoc_post_data->MO_ACDOC_DATA.
 LT_ACDOC_ITEM         = LR_IO_ACDOC_DATA->MT_ACDOC_ITEM.

 LOOP AT LT_ACDOC_ITEM ASSIGNING FIELD-SYMBOL(<FS_ITEM>).
   CASE <FS_ITEM>-KOART.
     WHEN 'D'.
      SELECT SINGLE BU_GROUP INTO @DATA(V_BU_GROUP) FROM BUT000 WHERE PARTNER = @<FS_ITEM>-KUNNR.
          IF V_BU_GROUP = 'Z003'.
            <FS_ITEM>-HKONT = '11111111'.
          ELSEIF V_BU_GROUP = 'Z004'.
            <FS_ITEM>-HKONT = '11111111'.
          ENDIF.
          <FS_ITEM>-ALTKT = '0012310000'.

     WHEN 'K'.
      SELECT SINGLE BU_GROUP INTO V_BU_GROUP FROM BUT000 WHERE PARTNER = <FS_ITEM>-LIFNR.
          IF V_BU_GROUP = 'Z003'.
            <FS_ITEM>-HKONT = '111111111'.
          ELSEIF V_BU_GROUP = 'Z004'.
            <FS_ITEM>-HKONT = '111111111'.
          ENDIF.
          <FS_ITEM>-ALTKT = '011111111'.
     WHEN OTHERS.
   ENDCASE.
 ENDLOOP.

 LR_IO_ACDOC_DATA->MT_ACDOC_ITEM = LT_ACDOC_ITEM.
 co_acdoc_post_data->MO_ACDOC_DATA = LR_IO_ACDOC_DATA.

ENDIF.
ENDENHANCEMENT. 
View Code

 

 2)

 

 

 

 

 

posted @ 2021-11-11 16:17  蛀牙首领  阅读(376)  评论(0编辑  收藏  举报