SAP FICO增强 ,包括激活增强字段GB01

T-CODE:GGB1---所有FICO的增强

 

T-CODE:OBBH---会计凭证增强--注意点,FB08,FBRA等冲销的程序基本不会走OBBH,冲销的替代一般在第四代增强里面T-CODE:FIBF

会计凭证的增强:一般情况所有的正向产生的会计凭证都可以在这里做增强,一些自开发的功能在生成凭证时,入参都在一个大结构里面,可以通过出口的方式把参数传入到这里。

1、抬头 应用场景--主要是BKPF抬头上面的替代

2、行项目 应用场景--会计凭证行上面每一行去review,只能取到这一行的数据+凭证抬头,出口可  以取逻辑.

具体事例:自开发清账程序通过FB05录屏的方式实现时,应收账款科目,利润中心BSEG-PRCTR和开票凭证BSEG-VBELN字段录不到(F-02做的时候有没有)SAP回复:1、对于AP和AR来说,利润中心BSEG-PRCTR不可输入,除非启用凭证分割,这个是SAP标准的配置(可以增强,但是不可以输入)。2、开票凭证BSEG-VBELN系统不允许增强(问题升级,不允许增强),现在业务需求,需要把原凭证的利润中心和开票凭证传到新的行项目里面。

实现方式:1、利润中心通过OBBH替代出口实现,

                   2、开票凭证通过,1、把GB01表里面的字段放出来--放出来代表可增强,放出来后再通过OBBH替代出口实现

系统层面:1、利润中心处理

 

系统层面:2、开票凭证处理

ABAP-会计凭证替代字段GB01设置

1.GB01表字段设置

 SM30:VWTYGB01

 

 

    找到需要替代的字段,设置bexclude勾选为空

2.用SE38运行程序 RGUGBR00 激活

 

字段启用后,其余走正常的OBBH替代了

3、完全凭证 应用场景--整个会计凭证做完后再review,比如某一行凭证利润中心是空的,可以跨行取其他行的利润中心。

第四代增强:T-CODE:FIBF

 

SE37可以把功能模块复制出来,进去看看

像我们公司,

1、FB08,FBRA冲销的抬头文本增强写在这里

2、采购发票过账冲销的暂估科目的增强也写在这里

FUNCTION zsample_process_00001120.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_BKDF) TYPE  BKDF OPTIONAL
*"  TABLES
*"      T_BKPF STRUCTURE  BKPF
*"      T_BSEG STRUCTURE  BSEG
*"      T_BKPFSUB STRUCTURE  BKPF_SUBST
*"      T_BSEGSUB STRUCTURE  BSEG_SUBST
*"      T_BSEC STRUCTURE  BSEC OPTIONAL
*"  CHANGING
*"     REFERENCE(I_BKDFSUB) TYPE  BKDF_SUBST OPTIONAL
*"----------------------------------------------------------------------
  "add by yqs 2022.5.7  --begin

  DATA:lv_tabix TYPE sytabix.

  LOOP AT t_bkpf INTO DATA(lw_bkpf) WHERE belnr(1) EQ '$'.

    lv_tabix = sy-tabix.

    IF lw_bkpf-blart = 'AB' AND lw_bkpf-tcode = 'FB08' AND lw_bkpf-xblnr = 'ZFI065'.

      READ TABLE t_bkpfsub ASSIGNING FIELD-SYMBOL(<fs_bkpfsub1>) INDEX lv_tabix.
      IF sy-subrc EQ 0.
        <fs_bkpfsub1>-bktxt = '冲销' && <fs_bkpfsub1>-bktxt.
      ENDIF.

    ENDIF.

    CLEAR:lw_bkpf.
  ENDLOOP.

  "add by yqs 2022.5.7  --end









  DATA: lv_xblnr_alt TYPE xblnr_alt,
        ld_index     TYPE i,
        ld_flg       TYPE xfld.

  DATA: lr_hkont TYPE RANGE OF hkont.

  lr_hkont = VALUE #( sign = 'I' option = 'CP' ( low = '220201*' )
                                               ( low = '220202*' )
                                               ( low = '220203*' )
                                               ( low = '220204*' )
                                               ( low = '220296*' )
                                               ( low = '140*' )
                                               ( low = '2241020400' ) ).


  FIELD-SYMBOLS: <f_bsegsub> TYPE bseg_subst.

  IMPORT xblnr_alt = ld_flg FROM MEMORY ID 'BAPIPOST'.

  FREE MEMORY ID 'BAPIPOST'.

  IF ld_flg EQ 'X'.

    LOOP AT t_bkpf WHERE belnr(1) EQ '$'.

      ld_index = sy-tabix.

      CLEAR lv_xblnr_alt.

      IF t_bkpf-xblnr_alt IS INITIAL.

        CALL FUNCTION 'ZFI_GET_XBLNR_CN'
          EXPORTING
            i_bukrs     = t_bkpf-bukrs
            i_blart     = t_bkpf-blart
            i_budat     = t_bkpf-budat
          IMPORTING
            e_xblnr_alt = lv_xblnr_alt.

        IF lv_xblnr_alt NE space.
          READ TABLE t_bkpfsub ASSIGNING FIELD-SYMBOL(<fs_bkpfsub>) INDEX ld_index.

          <fs_bkpfsub>-xblnr_alt = lv_xblnr_alt.
        ENDIF.

      ENDIF.

    ENDLOOP.

  ENDIF.

*采购发票过账增强 MIRO,MRKO,MIR7,MR8M
*复制供应商科目到应付暂估科目行
  LOOP AT t_bkpf WHERE glvor EQ 'RMRP'
                   .
    LOOP AT t_bseg WHERE bukrs EQ t_bkpf-bukrs
                     AND belnr EQ t_bkpf-belnr
                     AND gjahr EQ t_bkpf-gjahr
                     AND koart EQ 'K'
                     AND hkont IN lr_hkont
                     AND lifnr IS NOT INITIAL
                     .


      LOOP AT t_bseg INTO DATA(lw_bseg)
                     WHERE bukrs    EQ t_bkpf-bukrs
                       AND belnr    EQ t_bkpf-belnr
                       AND gjahr    EQ t_bkpf-gjahr
                       AND hkont(6) EQ '220297' "应付暂估科目
                       AND zz001 IS INITIAL.

        ld_index = sy-tabix.

        READ TABLE t_bsegsub ASSIGNING <f_bsegsub> INDEX ld_index.

        IF sy-subrc EQ 0.
          MOVE-CORRESPONDING lw_bseg TO <f_bsegsub>.
          <f_bsegsub>-zz001 = t_bseg-lifnr.
        ENDIF.



      ENDLOOP.

      EXIT.
    ENDLOOP.

  ENDLOOP.

*  Do Substitution by Rule
*  TCODE to Maintan Rules: ZFI119,ZFI120

  DATA: ld_str   TYPE string VALUE '(SAPMF05L)XBSEG[]',
        lt_xbseg TYPE fdc_t_fbseg.

  FIELD-SYMBOLS: <f_xbseg> TYPE fdc_t_fbseg.

  ASSIGN (ld_str) TO <f_xbseg> .
  IF sy-subrc EQ 0.

    PERFORM frm_do_rule TABLES t_bkpf t_bseg t_bkpfsub t_bsegsub <f_xbseg>.

  ELSE.

    PERFORM frm_do_rule TABLES t_bkpf t_bseg t_bkpfsub t_bsegsub lt_xbseg.

  ENDIF.

ENDFUNCTION.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值