1. 概述

SAP财务凭证同时启用了录入视图BSEG和总账视图ACDOCA时, 由于BSEG的行项目BUZEI的999限制,会导致会计凭证创建失败,提示消息:F5727在FI中达到的项目最大编号。
针对以上问题,SAP提出了凭证合并的方案,将BSEG中不重要的字段清除,汇总,明细的正确数据存储到ACDOCA中。

相关的表如下:

表名 描述
TTYPS FI汇总:允许的凭证字段
TTYPV 分录视图的独立汇总
TTYPVX 分录视图的相关汇总

分录视图的独立汇总和相关汇总不允许同时存在

2. 以分录视图的独立汇总为例,

TCODE : OBCY (表 :TTYPV)
IMG 路径 : 财务会计 >> 财务会计全局设置 >> 凭证>> 汇总>> 分录视图的独立汇总

3. 合并原理

SAP通过函数FI_DOCUMENT_PROJECT实现凭证合并。
实现的原理也很简单,下面详细分析。

  1. 在子例程DOCUMENT_PROJ 中,根据参考过程AWTYP读取TTYPV或TTYPVX中配置的表和字段名;
   "read summarization settings                              "note 892315PERFORM read_ttypv.                                    "note 892315
 " begin of note 1779136LOOP AT gt_ttypv WHERE awtyp EQ acchd_fi-awtyp.EXIT.ENDLOOP.CHECK NOT sy-subrc IS INITIAL.CLEAR gt_ttypv.                                         "note 1369659REFRESH gt_ttypv.SELECT * FROM ttypv INTO CORRESPONDING FIELDS OF TABLE gt_ttypvWHERE awtyp EQ acchd_fi-awtyp.CHECK NOT sy-subrc IS INITIAL.SELECT * FROM ttypvx INTO CORRESPONDING FIELDS OF TABLE gt_ttypvWHERE awtyp EQ acchd_fi-awtyp.
"  end of note 1779136
  1. 在子例程FI_DOCUMENT_COLLECT合并凭证
    循环传输的凭证行项目,先调用子例程COMPRESS ,将配置表中字段的值清空;
*---------------------------------------------------------------------*
*       FORM COMPRESS                                                 *
*---------------------------------------------------------------------*
*       Verdichtung des FI-Beleges gemäß Einstellung des Kunden       *
*       - Kein Eintrag in TTYPV        -> keine Verdichtung           *
*       - Maskierter Eintrag in TTYPV  -> COLLECT                     *
*       - Spezifizier Eintrag in TTYPV -> Feldinhalt löschen + COLLECT*
*---------------------------------------------------------------------*
FORM compress CHANGING compres LIKE boole.DATA: field(20) TYPE c.FIELD-SYMBOLS <f>.
*LOOP AT gt_ttypv WHERE   awtyp EQ p_acc-awtyp           "note 1779136AND   ( blart EQ p_acc-blart           "note 1779136OR      blart EQ space )               "note 1779136AND   ( bukrs EQ p_acc-bukrs           "note 1779136OR      bukrs EQ space )               "note 1779136AND     tabname NE 'BSET'.             "note 1431727
*
* Feste SAP-Felder (Tabelle TTYPS)
*CASE gt_ttypv-fieldname.                               "note 892315WHEN '*    '.WHEN 'WERKS'.CLEAR p_acc-werks.WHEN 'MATNR'.CLEAR p_acc-matnr.WHEN 'MENGE'.CLEAR p_acc-menge.CLEAR field.                                      "note 2185343field+00(06) = 'P_ACC-'.                          "note 2185343field+06(10) = 'SQUAN'.                           "note 2185343ASSIGN (field) TO <f>.                            "note 2185343IF sy-subrc IS INITIAL.                           "note 2185343CLEAR <f>.                                      "note 2185343ENDIF.                                            "note 2185343WHEN 'MEINS'.CLEAR p_acc-meins.WHEN 'BPMNG'.CLEAR p_acc-bpmng.WHEN 'BPRME'.CLEAR p_acc-bprme.WHEN 'PPRCT'.CLEAR p_acc-pprct.WHEN OTHERS.
*
* Kundenfelder
*CLEAR field.field+00(06) = 'P_ACC-'.field+06(10) = gt_ttypv-fieldname.                 "note 892315ASSIGN (field) TO <f>.IF NOT sy-subrc IS INITIAL.MESSAGE e843 WITH gt_ttypv-fieldname 'LFACIGEN' 'SAPFACCG'.ENDIF.CLEAR <f>.ENDCASE.ENDLOOP.                                                 "note 892315
*
* Wird überhaupt komprimiert?
*IF sy-subrc IS INITIAL
* always compress tax items from SDOR ( p_acc-mwart NE space
* AND ACCHD_FI-GLVOR EQ 'SD00' ).                          "N1477287AND ( acchd_fi-glvor EQ 'SD00'                            "N1477287OR NOT g_badi_tax_compress IS INITIAL ) ).            "N1477287compres = char_x.ELSE.compres = space.ENDIF.
ENDFORM.                    "COMPRESS
  1. 然后将凭证行使用COLLECT汇总;
    PERFORM compress CHANGING compres.IF compres IS INITIAL.APPEND p_acc.ELSE.COLLECT p_acc.ENDIF.

4. 异常处理

  1. 现象: 在OBCY配置了合并的字段,理论上BSEG合并后应该只有60多行,但是通过BAPI创建会计凭证,程序依然报错, F5727在FI中达到的项目最大编号。
  2. 排查方式:进入调试模式,将表汇总后的内表p_acc下载下来,去除金额和数字字段,然后排重,检查发现有一个字段RFZEI。
  3. 原因:在子例程FI_DOCUMENT_COLLECT 中调用子例程FI_ITEM_FILL时给RFZEI赋值。

从业务上分析,这个字段不影响,直接将这个字段配置到OBCY,如果业务上有影响,则不能合并。

*
* Credit Card - Referenzzeile
*LOOP AT CCLTAB WHERE AWTYP = ACCHD_FI-AWTYPAND   AWREF = ACCHD_FI-AWREFAND   AWORG = ACCHD_FI-AWORGAND   POSNR = ACCIT_FI-POSNR.
* begin of note 1570210IF ACCHD_FI-AWTYP EQ 'BKPFF'.                         "Note 1636190IF GS_CCREF-BUKRS NE ACCIT_FI-BUKRS ORGS_CCREF-BELNR NE ACCIT_FI-BELNR ORGS_CCREF-GJAHR NE ACCIT_FI-GJAHR.GS_CCREF-BUKRS = ACCIT_FI-BUKRS.GS_CCREF-BELNR = ACCIT_FI-BELNR.GS_CCREF-GJAHR = ACCIT_FI-GJAHR.GS_CCREF-RFZEI = 1.ELSE.GS_CCREF-RFZEI = GS_CCREF-RFZEI + 1.ENDIF.P_ACC-RFZEI = GS_CCREF-RFZEI.ELSE.                                                 "Note 1636190P_ACC-RFZEI = CCLTAB-RFZEI.                         "Note 1636190ENDIF.                                                "Note 1636190
* end of note 1570210ENDLOOP.
  1. 修复方法:通过OBCY将RFZEI配置到参考过程BKPFF中.

会计凭证合并OBCY相关推荐

  1. SAP中如何合并会计凭证(Summarizing FI documents)

    今天在微信群里有个朋友问了一个问题,说SAP中如何合并会计凭证,因为有些会计凭证的行项目太多了,或者会计凭证量太大了,希望能够进行合并,减少一些会计凭证的量(不管是会计凭证抬头还是行项目吧). 笔者查 ...

  2. SAP License:BW/BCS(BO)难在那里--SAP中的公司和会计凭证

    SAP不是财务系统,是业务会计集成系统,是独立的但数据共享的系统 物料凭证产生会计凭证 不产生会计凭证如何进行会计分析 经济考核对象 成本中心是公司之成本中心 利润中心是公司之利润中心 物料帐是成本和 ...

  3. 帆软相同列合并_合并报表软件有哪些深受欢迎

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

  4. sap中re凭证是什么意思_详解SAP ERP中的会计凭证

    SAP ERP 中关于会计凭证的讲解 SAP 系统在数据处理,无论是业务处理,还是财务处理都会产生大量的凭证,无论是 什么凭证,最终的反映形式就是会计凭证. 1. 凭证原则 Code 每笔记账都一直以 ...

  5. php批量导出pdf文件大小,php完美导出pdf,pdf合并批量导出

    使用到的工具 pdftk      https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/      pdf合并工具 wkhtmltopdf      ...

  6. Git 常用操作(3)- 本地分之显示、创建、切换、合并和删除操作

    1. 分支简介 Git 的 "master" 分支并不是一个特殊分支.它就跟其它分支完全没有区别.之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创 ...

  7. Python+OpenCV 图像处理系列(5)—— 图像 ROI 操作及通道的拆分合并

    1. 图像 ROI 有时你需要对一幅图像的特定区域进行操作.例如我们要检测一副图像中眼睛的位置,我们首先应该在图像中找到脸,再在脸的区域中找眼睛,而不是直接在一幅图像中搜索.这样会提高程序的准确性和性 ...

  8. 数组的拼接合并 numpy

    Python中numpy数组的合并有很多方法,如 np.append() np.concatenate() np.stack() np.hstack() np.vstack() np.dstack() ...

  9. dataframe多列合并成一列

    DataFrame的几列数据合并成为一列 DataFrame的几列数据合并成为一列 1.1 方法归纳 1.2 .str.cat函数详解 1.2.1 语法格式: 1.2.2 参数说明: 1.2.3 核心 ...

最新文章

  1. [Google Guava] 6-字符串处理:分割,连接,填充
  2. jacoco底层原理解析
  3. TCP的TIME_WAIT状态
  4. 自带容器_什么是衬胶容器罐以及质量标准?
  5. 41 MM配置-采购-采购订单-STO配置-定义凭证类型和可用性检查设置
  6. JavaSE03: Arrays工具类的使用及简单数组算法
  7. 高中同窗被叫“码子”的!如今转行软件测试,不止是年轻,还有拼搏的勇气
  8. 20个最棒的英文电子书免费下载网站
  9. CS5211中文规格书
  10. Spark基本工作流程和作业调度
  11. 2022 IDLE 配置
  12. AI面试锦囊|网易互娱AI Lab人工智能研究工程师两面分享
  13. 加盐密码哈希:如何正确使用 (密码加密的经典文章)
  14. 奥鹏福师计算机应用基础在线作业答案,福师11秋《计算机应用基础》在线作业一、二...
  15. 小猿圈Java讲师分享开发9年Java进阶大全
  16. python闲鱼二手爬虫_Python 爬虫咸鱼版
  17. 天正加载时在tshowbar卡死的解决方案
  18. 安科瑞企业能源管理系统在水泥企业中的设计与应用-Susie 周
  19. VBA中MsgBox的几个用法
  20. 大学生玩计算机游戏的现状,大学生网络游戏的现状分析

热门文章

  1. 义乌购指数:保暖产品席卷欧洲市场,“羽绒服”挤进热搜前十,交易额同比增长45% | 美通社头条...
  2. 微信公众号调用地图:导航
  3. C#之Console
  4. fedora 21 实现双屏显示
  5. 《iOS取证实战:调查、分析与移动安全》一2.5 与iTunes的交互
  6. 点睛挖雷 PSP 1.1 版(For 3.xx)
  7. .Net调用Office Com组件的原理及问题检索com类工厂组件检索 COM 类工厂中 CLSID 为 {XXX} 的组件失败
  8. 几美元激动了她的心,天真的小学生
  9. java的多线程机制_Java多线程开发(一)| 基本的线程机制
  10. AWS EKS ALB使用场景(持续更新)