SAP ABAP FICO 常见增强整理

目录

1、替代 ( Substitution )

配置实现

出口实现

2、校验 ( Validation )

配置实现

3、BTE ( Business Transaction Event )

BTE 增强分类

BTE实现

4、SMOD 及 CMOD

出口增强实现


SAP 财务模块对应的增强,常见有 替代、校验、BTE 及 SMOD 部分。

下面对常用增强的运用范围及常见案例进行说明,如有不妥,敬请指正。

1、替代 ( Substitution )

Substitution is the process of checking values (when they are entered into the SAP System) against a user-defined prerequisite.  If the prerequisite is fulfilled, the system replaces the specified values with other values, and the subsituted values are copied to the FI-SL system.

常用T-CODE:

1、事务代码GCX2,维护应用区域GBLS退出程序ZRGGBS000。

2、事务代码GGB1,维护替代。

3、事务代码GGB4/OBBH,激活替代。

配置实现

使用T-CODE: GCX2,复制RGGBS000到ZRGGBS000,并完成GBLS行出口程序名的替换。 (第一次实现,根据需求选择)

使用T-CODE: OBBH,分配公司及其可调用替代(Header、ITEM、Complete Document)

使用T-CODE: GGB1, 新建Step,根据需求完成先决条件和替代字段和对应值配置。

Ps.

如替代字段对应的值为固定值或凭证字段,如下图Baseline Date,可直接配置(业务顾问完成)

如替代字段对应的值存在复杂逻辑,可通过出口完成,如下图Assignment.

出口实现

根据需求,在 ZRGGBS000 新增出口编号信息,新增对应FORM,然后再回到GGB1完成配置。

  • 在FORM get_exit_titles 完成新出口定义

  exits-name  = 'U903'.
  exits-param = c_exit_param_none.
  exits-title = TEXT-903.             "Cons. transaction type
  APPEND exits.

*       TYPE                                 Description                          Usage                  *
*    ---------------------------------------------------------------------------------------------      *
*       C_EXIT_PARAM_NONE   Use no parameter              Subst. and Valid.  *
*                                                  except B_RESULT                                          *
*       C_EXIT_PARAM_FIELD   Use one field as param.     Only Substitution  *
*       C_EXIT_PARAM_CLASS  Use a type as parameter   Subst. and Valid   *

  • 新增FORM,完成需求逻辑,激活

*&---------------------------------------------------------------------*
*&      Form  u903
*&---------------------------------------------------------------------*
*       会计凭证利润中心替代
*----------------------------------------------------------------------*
FORM u903 .
  "RE 类型的凭证,供应商行 分配字段 自动使用发票号赋值
  DATA: lv_zuonr TYPE dzuonr.
  FIELD-SYMBOLS: <fs_zuonr> TYPE dzuonr.
  FIELD-SYMBOLS: <fs_belnr> TYPE rbkp-belnr.

  DATA: c_invfo(21) TYPE c VALUE '(SAPLFDCB)INVFO-BELNR'.
  DATA: c_rbkp_v(21) TYPE c VALUE'(SAPLMR1M)RBKPV-BELNR'.


  IF sy-tcode <> 'MR8M'.
    ASSIGN (c_invfo) TO <fs_belnr>.
    IF sy-subrc = 0.
      lv_zuonr = <fs_belnr>.
    ENDIF.
  ELSE.
    ASSIGN (c_rbkp_v) TO <fs_belnr>.
    IF sy-subrc = 0.
      lv_zuonr = <fs_belnr>.
    ENDIF.
  ENDIF.

  CHECK lv_zuonr IS NOT INITIAL.

  bseg-zuonr = lv_zuonr.

ENDFORM.
  •  返回GGB1 完成STEP中出口绑定

图略(见上STEP截图)

2、校验 ( Validation )

Using the validation function, you can check values and value intervals entered in the SAP environment.  When data is entered into the system, the Integration Manager checks the data against validation rules. Since the validation takes place before the posting, only data that has been checked is posted to the FI-SL system.

常用T-CODE:

1、事务代码GCX2,维护应用区域GBLR退出程序ZRGGBR000。

2、事务代码GGB0,维护有效性验证。

3、事务代码GGB4/OB28,激活有效性验证。

配置实现

使用T-CODE: GCX2,复制RGGBR000到ZRGGBR000,并完成GBLR行出口程序名的替换。 (第一次实现,根据需求选择)

使用T-CODE: OB28,分配公司及其可调用校验(Header、ITEM、Complete Document) 

使用T-CODE: GGB0, 新建Step,根据需求完成先决条件和判断条件和对应消息配置。

(如果第一次创建,在新建Z001时完成消息类的配置,Z001下所有消息都需在该消息类中维护)

3、BTE ( Business Transaction Event )

BTE 增强分类

  • Publish and Subscribe Interface(P/S接口)

用于告诉外部软件在SAP标准应用中触发了某些事件,并且把产生的数据提供给它们。外部软件不能给R/3系统返回任何数据。例如可以用在以下地方,主数据被创建、修改或锁定、凭证被输入、预制、修改或冲销、项目被清除或重置。也可以在附加的开发中基于此事件和数据产生附加的处理: 启动工作流、产生或修改附加数据、请求通信

  • Process Interface(处理接口)

用于控制与标准R/3系统处理方法不同的业务流程,也就是用process  interface替换标准处理。它们干预(修改)标准流程,并返回数据给SAP应用

Note:在标准程序中查找String ‘OPEN_FI_PERFORM’,找到的函数如果最后是’_E’,则说明这是Publishand Subscribe Interface:,如果是’_P’,则是ProcessInterface。

BTE实现

  • T-CODE: FIBF

(Setting 用于配置对应增强,Environment 用于查询对应预留增强场景)

根据需求,如果需要新函数,这继续。如果已有函数,则跳过到配置。

  • (Environment部分)

查询对应Event(P/S 针对抛出数据,不可改凭证;Process 可用于改凭证,但需要找对对应时间点),并根据Sample函数复制创建自己的函数。

选中可能的Event,点击 Pathern function moudle, 查看sample函数

 检查函数传参入参,如果满足要求,即可点击 复制 按钮。

完成复制函数,并激活。

注意:1、新函数的名称不建议过长

               2、能修改的只有 T_BKPFSUB 和 T_BSEGSUB,若需修改字段不在其中,则需在SE11中通过附加结构添加

  • (Settings部分)

 检查Product,如果没有可用的,自己维护一条。

(如果不是RFC,不用维护RFC detination)

根据需求,将新函数配置到对应的位置,参数如下。

 至此,常规BTE配置及开发已完成。

4、SMOD 及 CMOD

SMOD - SAP Enhancements, 对应具体的增强出口

CMOD - Project Management for SAP Enhancements, 根据业务归集并启用出口。

User exits (Function module exits)是sap其命名规则如下:

EXIT_<program name><3 digit suffix>

eg.

SD模块VA01事务,程序名:SAPMV45A,调用出口函数 CALL CUSTOMER-FUNCTION '003',则exit calls function module名称为:EXIT_SAPMV45A_003

出口增强实现

  • 查找出口增强

SMOD增强名查找方法:

1、通过表TADIR、MODSAP组合查找

  • 使用T-CODE到 SE93 查找对应Package 或者 通过程序名在SE38中属性查找Package
  • 根据Package到表 TADIR找到增强名(PGMID='R3TR' OBJECT='SMOD' DEVCLASS=Package的值)
  • 根据增强名到表 MODSAP查找出口函数(NAME=增强名)或者 直接使用SMOD依次查看增强名

2、通过T-CODE: SMOD 查找

  • 使用T-CODE到 SE93 查找对应Package 或者 通过程序名在SE38中属性查找Package
  • SMOD -> Utilities -> Find, 输入Package, 直接查找对应的 增强名

3、通过函数 MODX_FUNCTION_ACTIVE_CHECK Debug查找

  • 在函数 MODX_FUNCTION_ACTIVE_CHECK中开始的地方先设置断点
  • 运行对应事务码,点击对应功能码,进入断点后,查看内表 F_TAB 中 出口函数

备注:以上所有方法均仅适合大部分情况,并非完全有效。

这里分享一个 自定义查找出口和BADI的程序 ,快捷方便,居家必备。(见文章顶部)

  • CMOD创建或扩展

 输入对应的增强名:COPCP005 (以此为例)

 

点击 组件 按钮,找到对应增强名及其出口函数,双击进入出口函数

双击 INCLUDE 程序,完成逻辑代码,并激活(如果第一次实现,自动黄色提示新建,回车新建即可

  • CMOD激活

依次激活 出口函数,CMOD,最后测试

另外,ABAP增强基础知识,可以看大神总结:

ABAP 增强

  • 6
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些常见SAP ABAP面试题,但并不会提供答案,因为这些问题需要您自己思考和回答。以下是一些可能会被问到的SAP ABAP面试题: 1. SAP ABAP是什么? 2. 如何在SAP ABAP中定义变量? 3. 什么是函数模块? 4. 如何在SAP ABAP中处理异常? 5. 如何在SAP ABAP中进行调试? 6. 什么是内表?如何定义内表? 7. 如何在SAP ABAP中处理日期和时间? 8. 如何在SAP ABAP中处理字符串? 9. 如何在SAP ABAP中使用SELECT语句? 10. 如何在SAP ABAP中使用LOOP语句? 11. 如何在SAP ABAP中使用IF语句? 12. 如何在SAP ABAP中使用CASE语句? 13. 如何在SAP ABAP中使用BREAK-POINT语句? 14. 如何在SAP ABAP中使用MESSAGE语句? 15. 如何在SAP ABAP中使用CATCH语句? 16. 什么是数据字典?如何定义数据字典对象? 17. 如何在SAP ABAP中使用ABAP OO? 18. 如何在SAP ABAP中使用ALV报表? 19. 如何在SAP ABAP中使用BAPI? 20. 如何在SAP ABAP中使用RFC? 21. 如何在SAP ABAP中使用IDoc? 22. 如何在SAP ABAP中使用ALE? 23. 如何在SAP ABAP中使用EDI? 24. 如何在SAP ABAP中使用BDC? 25. 如何在SAP ABAP中使用LSMW? 26. 如何在SAP ABAP中使用用户退出? 27. 如何在SAP ABAP中使用BADI? 28. 如何在SAP ABAP中使用Enhancement Spot? 29. 如何在SAP ABAP中使用Enhancement Section? 30. 如何在SAP ABAP中使用Function Exit? 31. 如何在SAP ABAP中使用事件? 32. 如何在SAP ABAP中使用ABAP List Viewer(ALV)? 33. 如何在SAP ABAP中使用SAP Query? 34. 如何在SAP ABAP中使用Smart Forms? 35. 如何在SAP ABAP中使用Adobe Forms? 36. 如何在SAP ABAP中使用BSP? 37. 如何在SAP ABAP中使用Web Dynpro? 38. 如何在SAP ABAP中使用SAPUI5? 39. 如何在SAP ABAP中使用Fiori Launchpad? 40. 如何在SAP ABAP中使用SAP HANA?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值