SAP FICO预制凭证界面隐藏过账按钮

331 篇文章 151 订阅

会计凭证一旦过账了就不能再进行修改,但其也提供了类似国内财务软件同样的预制功能,预制凭证过账之前不会更新会计系统。预制凭证虽然不更新科目余额,但同样会生成凭证编号,其凭证内容可以随意更改,也可以删除。一旦过账,则会更新科目余额,但凭证编号不会改变。

预制凭证的相关后台表:

 

此前用户在使用事务代码“FV70”预制客户发票时发现界面中直接有“过账”按钮,点击后会立即生成正式会计凭证,无需财务部同事通过事务代码“FBV0”审批,完全不符合企业内审的要求,能否对此进行控制?

 

可以通过用户的参数文件设置指定参数实现,不过暂时没有尝试成功。

 

这里为了快速相应用户需求,本人采用了如下方式进行处理。

首先找到事务代码“FV70”涉及的程序名称“SAPMF05A”和屏幕编号“1200”,进入查看其PBO逻辑。

PROCESS BEFORE OUTPUT.
 
*------------ Most of the modules of Dynpro 1100 can be used ... -------
  MODULE INIT_1100.
  MODULE DYNPRO_MODIFICATION_1100.
  MODULE TREE.
  MODULE STATUS.
  MODULE EXPORT_TO_APAR_DIALOG_PBO.
  MODULE EXPORT_TO_TAX_DIALOG_PBO.
  MODULE DETERMINE_SUBSCREEN_APAR.
  CALL SUBSCREEN PAGE  INCLUDING PROGNR     DYNNRD.
  CALL SUBSCREEN ADR   INCLUDING 'SAPLFDCB' DYNNRA.
  MODULE IMPORT_FROM_APAR_DIALOG_PBO.
  MODULE EXPORT_TO_GL_DIALOG_PBO.
  CALL SUBSCREEN ITEMS INCLUDING 'SAPLFSKB' '0100'.
  MODULE FIRST_CALL_CLEAR.
PROCESS AFTER INPUT.
  MODULE EXIT_1100 AT EXIT-COMMAND.
  FIELD OK-CODE MODULE CHECK_STATE.
  MODULE OKCODE_SEND_AT_PAI.
  FIELD RF05A-BUSCS MODULE EXPORT_TO_APAR_DIALOG_PAI.
  CALL SUBSCREEN PAGE.
  CALL SUBSCREEN ADR.
  MODULE IMPORT_FROM_APAR_DIALOG_PAI.
  MODULE IMPORT_FROM_TAX_DIALOG_PAI.
  MODULE EXPORT_TO_GL_DIALOG_PAI.
  CALL SUBSCREEN ITEMS.
  MODULE IMPORT_FROM_GL_DIALOG_PAI.
  MODULE CONTROL_DISPATCH.
  MODULE DOCUMENT_MERGE.
  MODULE BALANCE.
  MODULE ACTIVETAB_PROCESS.
  MODULE SAVE_CONTEXT_1100_1200.
  FIELD OK-CODE MODULE USER_COMMAND_1100.

 可以根据表“T020”找到相应事务代码使用的“GUI状态”(T020-STATU)。

我们所需要做的就是想办法将功能码“BU”(过账)隐藏。

 

一开始为了快速实现需求,采用了直接添加ENHANCEMENT代码的方式实现,虽然效果上可以满足需求,但总觉得不够灵活。

 

仔细阅读PBO模块中的“SET_EXCTAB”方法,发现其中有涉及相关权限控制的逻辑:

* Check posting
  CALL FUNCTION 'DOCHEADER_AUTHORITY_CHECK'
    EXPORTING
      I_BUKRS      = BKPF-BUKRS
      I_BLART      = BKPF-BLART
      I_BRGRU      = T003-BRGRU
      I_STATUS     = CHAR_1
    EXCEPTIONS
      NO_AUTHORITY = 4.
  IF SY-SUBRC NE 0.
    EXCTAB-OKCOD = 'BU'.
    COLLECT EXCTAB.
  ENDIF.
 
* Check parking
  CALL FUNCTION 'DOCHEADER_AUTHORITY_CHECK'
    EXPORTING
      I_BUKRS      = BKPF-BUKRS
      I_BLART      = BKPF-BLART
      I_BRGRU      = T003-BRGRU
      I_STATUS     = CHAR_2
    EXCEPTIONS
      NO_AUTHORITY = 4.
  IF SY-SUBRC NE 0.
* posting to single ledger exclude document parking
*  or ( not bkpf-ldgrp is initial.                             "/glflex/
*  and tcode = 'FB50L' ).                                      "n961805
    EXCTAB-OKCOD = 'BP'.
    COLLECT EXCTAB.
    EXCTAB-OKCOD = 'PBBP'.
    COLLECT EXCTAB.
  ENDIF.
* Note 409909: End of insertion

 

 

经测试可以通过权限对象“F_BKPF_BUK”来控制相关按钮的隐藏/显示。

 

经过权限控制后的“FV70”预制画面。

 

如有更为简便有效的方法,请留言告知 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值