SAP-FI模块 处理自动生成会计凭证增强

news2024/12/25 12:54:42

FICO-模块

  • 一. 相关问题概览
    • 1. 固定资产业务过渡科目摘要增强功能-F-02
    • 2. 固定资产业务过渡科目摘要增强功能-MIGO
    • 3. 主营业务收入等科目自动反记账功能
  • 二. 问题图片描述
    • 1. 固定资产业务过渡科目摘要增强功能-F-02
    • 2. 固定资产业务过渡科目摘要增强功能-MIGO
    • 3. 主营业务收入等科目自动反记账功能
  • 三. 增强位置及处理方法
    • 1. MF05AFF0_FCODE_BEARBEITUNG程序-固定资产业务过渡科目摘要增强功能-F-02
    • 2. LMIGOKG1程序-固定资产业务过渡科目摘要增强功能-MIGO
    • 3. ZFIR_GGBS000程序-主营业务收入等科目自动反记账功能

一. 相关问题概览

1. 固定资产业务过渡科目摘要增强功能-F-02

    需用表BKPF、BSEG、T001。通过BUKRS、BELNR、GJAHR三个字段相等关联BKPF与BSEG。通过BKPF-BUKRS = T001-BUKRS关联。
    在做SAP资产购置业务的财务凭证,包括手工凭证、以及集成采购凭证时,产生的科目BSEG-HKONT为1601990001,在资产购置SAP系统自动生成第二张自动凭证时,在BKPF- NUMPG =“ ”BSEG-SGTXT=原凭证摘要+原凭证(XXXXXXXXXX)。

2. 固定资产业务过渡科目摘要增强功能-MIGO

    类似F-02事务码的功能,在做MIGO收货的时候,也会同时生成两张会计凭证,要求自动生成第二张自动凭证时,在BSEG-SGTXT=原凭证摘要+原凭证(XXXXXXXXXX),且总账科目限定在1601990001内。

3. 主营业务收入等科目自动反记账功能

    新建科目反记账配置表ZFI_FJZ,字段包括从科目HKONTF(BSEG-HKONT)、到科目HKONTT(BSEG-HKONT)、SHKZG借贷方(CHAR 1) 值=H或S。
    科目若包含在配置表ZFI_FJZ中,在凭证过账时,按照BSEG-HKONT取出对应ZFI_FJZ-SHKZG:若BSEG-SHKZG=ZFI_FJZ-SHKZG,BSEG-XNEGP=空;若BSEG-SHKZG<>ZFI_FJZ-SHKZG, BSEG-XNEGP=X。

二. 问题图片描述

1. 固定资产业务过渡科目摘要增强功能-F-02

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
    问题概述:这个时候会产生两个财务凭证,一个是100000083,一个是100000084,按照要求需要把100000083原凭证的凭证号+凭证摘要放到100000084凭证上去,效果如下:
在这里插入图片描述
在这里插入图片描述

2. 固定资产业务过渡科目摘要增强功能-MIGO

在这里插入图片描述
在这里插入图片描述

    问题概述:这个时候会产生两个财务凭证,一个是5000000077,一个是5000000078,按照要求需要把5000000078原凭证的凭证号+凭证摘要放到5000000077凭证上去,效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 主营业务收入等科目自动反记账功能

    问题概述:科目若包含在配置表ZFI_FJZ中,在凭证过账时,按照BSEG-HKONT取出对应ZFI_FJZ-SHKZG:若BSEG-SHKZG=ZFI_FJZ-SHKZG,BSEG-XNEGP=空;若BSEG-SHKZG<>ZFI_FJZ-SHKZG, BSEG-XNEGP=X。

三. 增强位置及处理方法

1. MF05AFF0_FCODE_BEARBEITUNG程序-固定资产业务过渡科目摘要增强功能-F-02

    增强位置:MF05AFF0_FCODE_BEARBEITUNG程序3383行的transaktion_verlassen子例程。

    增强类型:隐式增强

    代码逻辑:此处增强是两个会计凭证都生成的地方,当总账科目是1601990001时,根据bkpf和bseg表查询出两张会计凭证,然后用CHANGE_DOCUMENT函数修改第二张会计凭证行项目的sgtxt字段。

ENHANCEMENT 2  ZEHENC_SAPMF05A.    "active version
*  FI 20221215:固定资产业务过渡科目摘要增强功能
WAIT UP TO 1 SECONDS.

READ TABLE xbseg WITH KEY hkont = '1601990001'.
IF sy-subrc = 0.
  DATA: lt_bkdf TYPE TABLE OF bkdf,
        lt_bkpf TYPE TABLE OF bkpf,
        ls_bkpf TYPE bkpf,
        lt_bsec TYPE TABLE OF bsec,
        lt_bsed TYPE TABLE OF bsed,
        ls_bseg TYPE bseg,
        lt_bseg TYPE TABLE OF bseg,
        lt_bset TYPE TABLE OF bset.

  DATA: ls_belnr_second TYPE belnr_d.
  DATA: ls_xbkpf TYPE bkpf.
  CLEAR: ls_bkpf,lt_bkpf[],lt_bseg[],ls_xbkpf.

  DATA: ls_bkpf_judge TYPE bkpf.
  CLEAR: ls_bkpf_judge.

  ls_belnr_second = bkpf-belnr + 1.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = ls_belnr_second
    IMPORTING
      output = ls_belnr_second.

  SELECT SINGLE *
    INTO CORRESPONDING FIELDS OF ls_bkpf_judge
    FROM bkpf
   WHERE bukrs eq bkpf-bukrs
     AND gjahr eq bkpf-gjahr
     AND belnr EQ ls_belnr_second.

  if ls_bkpf_judge IS NOT INITIAL.

    ls_bkpf-mandt = sy-mandt.
    ls_bkpf-bukrs = bkpf-bukrs.
    ls_bkpf-gjahr = bkpf-gjahr.
    ls_bkpf-belnr = ls_belnr_second.
    APPEND ls_bkpf TO lt_bkpf.

    LOOP AT xbseg.
      CLEAR: ls_bseg.
      ls_bseg-mandt = sy-mandt.
      ls_bseg-bukrs = xbseg-bukrs.
      ls_bseg-gjahr = xbseg-gjahr.
      ls_bseg-buzei = xbseg-buzei.
      ls_bseg-belnr = ls_belnr_second.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
        EXPORTING
          input  = xbseg-belnr
        IMPORTING
          output = xbseg-belnr.
      ls_bseg-sgtxt = xbseg-sgtxt && '-原凭证(' && xbseg-belnr && ')'.
      APPEND ls_bseg TO lt_bseg.
    ENDLOOP.

    CALL FUNCTION 'CHANGE_DOCUMENT'
      TABLES
        t_bkdf = lt_bkdf
        t_bkpf = lt_bkpf
        t_bsec = lt_bsec
        t_bsed = lt_bsed
        t_bseg = lt_bseg
        t_bset = lt_bset.

    IF sy-subrc EQ 0.
      COMMIT WORK AND WAIT.
    ENDIF.

  ENDIF.
ENDIF.
*  FI 20221215
ENDENHANCEMENT.

2. LMIGOKG1程序-固定资产业务过渡科目摘要增强功能-MIGO

    增强位置:LMIGOKD1程序的2076行的goods_movement_post方法。然后进入到LMIGOKE1程序的1094行,然后进入到LMIGOKG1程序的goods_movement_post具体方法中,创建Z_MIGO_CREATE_ACC_DOCUMENT隐式增强即可。

    增强类型:隐式增强

    代码逻辑:此处增强是MIGO两个会计凭证都生成的地方,当总账科目是1601990001时,根据bkpf和bseg表查询出两张会计凭证,然后用CHANGE_DOCUMENT函数修改第二张会计凭证行项目的sgtxt字段。

ENHANCEMENT 1  Z_MIGO_CREATE_ACC_DOCUMENT.    "active version
  " FI 20221230MIGO自动生成会计凭证增强 LIANG ED1K924636
  DATA: lt_bkdf TYPE TABLE OF bkdf,
        lt_bsec TYPE TABLE OF bsec,
        lt_bsed TYPE TABLE OF bsed,
        lt_bset TYPE TABLE OF bset.

  DATA: ls_BKPF1 TYPE BKPF,
        ls_BKPF2 TYPE BKPF,
        lt_BKPF TYPE TABLE OF BKPF.
  DATA: LT_BKPF_RESULT TYPE TABLE OF BKPF.

  DATA: ls_bseg TYPE bseg,
        lt_bseg TYPE TABLE OF bseg.

  DATA: ls_bseg_temp TYPE bseg.

  DATA: ls_AWKEY TYPE bkpf-AWKEY.

  CLEAR: lt_BKPF[],ls_BKPF1,ls_BKPF2,ls_AWKEY,ls_bseg_temp,ls_bseg,lt_bseg[],LT_BKPF_RESULT[].

  ls_AWKEY = ls_emkpf-MBLNR && ls_emkpf-MJAHR.

  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE lt_BKPF
    FROM BKPF
   WHERE AWKEY EQ ls_AWKEY.

  SORT lt_BKPF BY BELNR ASCENDING.

  IF sy-subrc EQ 0.
    READ TABLE lt_BKPF INTO ls_BKPF1 INDEX 1.
    READ TABLE lt_BKPF INTO ls_BKPF2 INDEX 2.
    APPEND ls_BKPF2 TO LT_BKPF_RESULT.
    SELECT *
      INTO CORRESPONDING FIELDS OF TABLE lt_bseg
      FROM bseg
     WHERE BUKRS EQ ls_BKPF2-bukrs
       AND BELNR EQ ls_BKPF2-BELNR
       AND GJAHR EQ ls_BKPF2-GJAHR.

    LOOP AT lt_bseg INTO ls_bseg.
      IF ls_bseg-hkont EQ '1601990001'.
        CLEAR: ls_bseg_temp.
        " 取第一个行项目的行项目文本
        SELECT SINGLE *
          INTO CORRESPONDING FIELDS OF ls_bseg_temp
          FROM bseg
         WHERE BUKRS EQ ls_bseg-bukrs
           AND BELNR EQ ls_BKPF1-BELNR
           AND GJAHR EQ ls_bseg-GJAHR
           AND BUZEI EQ ls_bseg-BUZEI.

        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
          EXPORTING
            input  = ls_bseg_temp-belnr
          IMPORTING
            output = ls_bseg_temp-belnr.

        ls_bseg-sgtxt = ls_bseg_temp-sgtxt && '-原凭证(' && ls_bseg_temp-belnr && ')'.
        MODIFY lt_bseg FROM ls_bseg.
      ENDIF.
    ENDLOOP.

    CALL FUNCTION 'CHANGE_DOCUMENT'
      TABLES
        t_bkdf = lt_bkdf
        t_bkpf = LT_BKPF_RESULT
        t_bsec = lt_bsec
        t_bsed = lt_bsed
        t_bseg = lt_bseg
        t_bset = lt_bset.

  ENDIF.
  " FI 20221230 LIANG ED1K924636
ENDENHANCEMENT.

3. ZFIR_GGBS000程序-主营业务收入等科目自动反记账功能

    增强位置:LMIGOKG1程序

在这里插入图片描述
在这里插入图片描述
    增强类型:隐式增强

    代码逻辑:用的是出口增强,创建新的冲销凭证文本替代,替代子例程为U305,字段为bseg-xnegp。

* 反记账替代 Modify By LIANG ED1K924602 20221226
  exits-name  = 'U305'.
  exits-param = c_exit_param_field.
  exits-title = TEXT-305.             "
  APPEND exits.
* FI 20221226 主营业务收入等科目自动反记账功能
* 
FORM u305 USING bseg-xnegp TYPE bseg-xnegp.

  DATA: ls_zfi_fjz1 TYPE zfi_fjz.
  DATA: ls_zfi_fjz2 TYPE zfi_fjz.
  CLEAR: ls_zfi_fjz1,ls_zfi_fjz2.

  SELECT SINGLE *
    INTO CORRESPONDING FIELDS OF ls_zfi_fjz1
    FROM zfi_fjz
   WHERE hkontf <= bseg-hkont
     AND hkontt >= bseg-hkont.

  IF sy-subrc EQ 0.
    IF bseg-shkzg = ls_zfi_fjz1-shkzg.
      bseg-xnegp = ''.
    ELSE.
      bseg-xnegp = 'X'.
    ENDIF.
  ELSE.
    SELECT SINGLE *
      INTO CORRESPONDING FIELDS OF ls_zfi_fjz2
      FROM zfi_fjz
     WHERE hkontf = bseg-hkont.
    IF sy-subrc EQ 0.
      IF bseg-shkzg = ls_zfi_fjz2-shkzg.
        bseg-xnegp = ''.
      ELSE.
        bseg-xnegp = 'X'.
      ENDIF.
    ENDIF.
  ENDIF.
ENDFORM.
* FI 20221226

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/136249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript 作用域-作用域概述,变量作用域,作用域链

JavaScript 作用域-作用域概述&#xff0c;变量作用域&#xff0c;作用域链 目录JavaScript 作用域-作用域概述&#xff0c;变量作用域&#xff0c;作用域链1. 作用域1.1 作用域概述1.2 全局作用域1.3 局部作用域 (函数作用域)1.4 JS 没有块级作用域2. 变量的作用域2.1 变量作用…

校验和之概念、计算原理、检验原理、实例计算、代码编程,力荐力荐力荐

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。不用担心你关注我而我却不关注你&#xff0c;因为我是个诚信互关的人&#xff01;&…

如何用LightningChart创建Android图表数据可视化应用程序?(下)

LightningChart JS 是一款高性能的 JavaScript 图表工具&#xff0c;专注于性能密集型、实时可视化图表解决方案。 LightningChart .JS | 下载试用&#xff08;qun&#xff1a;740060302&#xff09;https://www.evget.com/product/4189/download 在上一篇&#xff0c;我们介…

CDN是什么?用了CDN就一定比不用更快吗?

对于开发同学来说&#xff0c;CDN这个词&#xff0c;既熟悉又陌生。 平时搞开发的时候很少需要碰这个&#xff0c;但却总能听到别人提起。 我们都听说过它能加速&#xff0c;也大概知道个原因&#xff0c;但是往深了问。 用了CDN就一定比不用更快吗&#xff1f; 就感觉有些…

Node.js操作Dom ,轻松hold住简单爬虫

前言 前段时间&#xff0c;我发现一个开源题库&#xff0c;题目非常有意思。我想把它整成一个JSON文件做为数据储备&#xff0c;方便整活。 一共有一百五十多道题目&#xff0c;手动CV我肯定是不想干的。于是写了个脚本&#xff0c;在写脚本的过程中&#xff0c;我发现一个能…

Opencv(C++)笔记--利用分水岭算法实现图像分割

1--分水岭算法的原理详细原理讲解可参考&#xff1a;博客1和视频1&#xff1b;原理简述&#xff1a;分水岭算法的基本思想是把图像视为拓扑地貌&#xff0c;图像中每一点像素的灰度值表示该点的海拔高度&#xff0c;每一个局部极小值及其影响区域称为集水盆&#xff0c;而两个集…

csrf漏洞原理及防御

攻击原理 从上图可以看出&#xff0c;要完成一次CSRF攻击&#xff0c;受害者必须依次完成两个步骤 1.登录受信任网站A&#xff0c;并在本地生成Cookie 2.在不登出A的情况下&#xff0c;访问危险网站B 防御原理 csrf能防御的本质是&#xff0c;黑客虽然携带了合法的cookie&a…

振弦采集模块的辅助功能寄存器

振弦采集模块辅助功能寄存器 1.频率值模拟量输出 VMXXX&#xff08;仅 VM501、 VM511&#xff09; 模块支持将当前实时频率值以模拟量形式从管脚输出&#xff0c;模拟量有电流和电压两种输出形式。为了使用此功能&#xff0c;需要将辅助功能寄存器 AUX.[0]设置为 1&#xff0…

<Linux开发> ubuntu开发工具-EasyConnect使用记录

&#xff1c;Linux开发&#xff1e; ubuntu开发工具-EasyConnect使用记录 1、安装EasyConnect 打开EasyConnect官网EasyConnect 根据当前电脑系统选择对应版本下载 作者这里是ubuntu 22.04版本 右击&#xff0c;选择 “软件安装” 即可安装完成&#xff1b;windows版本类似…

数据可视化:揭开“智慧校园”新篇章,助力新时代教育信息化

随着移动互联网、物联网等新一代信息技术的快速发展&#xff0c;建设智慧校园已经具备了成熟的技术条件。自从教育部启动教育信息化2.0计划后&#xff0c;建设智慧校园已成为我国教育信息化发展目标&#xff0c;无论是国家教育事业发展的十三五规划&#xff0c;还是十四五规划&…

Hadoop高手之路7-Hadoop的新特性

文章目录Hadoop高手之路7-Hadoop的新特性一、Hadoop2.0以上新特性二、Yarn资源管理框架1. yarn体系结构2. yarn的工作流程三、HDFS的高可用HA1. HDFS的高可用&#xff08;HA&#xff09;架构2. 搭建Hadoop高可用HA集群1) 规划集群节点2) 环境准备3) 配置HA集群(1) 修改core-sit…

【ROS】—— ROS通信机制——实践与练习(六)

文章目录前言1. 话题发布1.1 C方式实现1.2 python实现2. 话题订阅2.1 C实现2.2 python实现3. 服务调用3.1 C3.2 python4. 参数设置4.1 C4.2 python4.3 运行4.4 其他方式4.4.1 修改小乌龟节点的背景色(命令行实现)4.4.2 启动节点时&#xff0c;直接设置参数4.4.3 通过launch文件…

Java测试框架——JUnit详解(45)

文章目录前言何为JUnit&#xff1f;官方资料JUnit4常用注解和断言代码测试搭建一个JUnit测试环境生命周期忽略测试断言测试异常测试测试时间套件测试JUnit5JUnit5对比JUnit4的好处导包的改变注解的改变扩展JUnit新功能&#xff1a;参考文章JUnit是Java编程语言的单元测试框架&a…

list的介绍及模拟实现

&#x1f308;感谢阅读East-sunrise学习分享——list的介绍及模拟实现 博主水平有限&#xff0c;如有差错&#xff0c;欢迎斧正&#x1f64f;感谢有你 码字不易&#xff0c;若有收获&#xff0c;期待你的点赞关注&#x1f499;我们一起进步 今天想分享介绍一下STL的容器之一lis…

openharmony GPIO 驱动开发

openharmony GPIO 驱动开发GPIO 基础知识GPIO 基础知识——概念GPIO 基础知识——IO 复用GPIO 基础知识——GPIO 分组和编号GPIO 基础知识——用户态测试HDF 框架下 GPIO 驱动HDF 框架下的 GPIO 驱动——案例描述(以 HI3516DV300 平台为例&#xff0c;提供代码)HDF 框架下的 GP…

为什么jvm需要有栈协程?

旧有的servlet生态的线程模型 首先我们先要聊一聊现在我们用的最多的servlet的执行模型是什么&#xff1a; 这个dispatch其实就是一个EventLoop或者说是一个selector来检测注册到其上的链接状态发生的变化 以Tomcat为例子&#xff0c;当这个selector发现存在一个链接可读时&…

【node.js】fs\path\http模块的使用

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;Node.js的fs\path\http模块的使用&#xff0c;模块化开发概念 目录 一、node.js概念与作…

一个曾经分享动态(2021)的回顾和解释-2023-

虽然看过一些典故&#xff0c;里面有名言道&#xff1a; 解释永远是多余的&#xff0c;理解的人不需要&#xff0c;不理解的更不需要。 但是&#xff0c;误会还是需要沟通来消除的。 例如&#xff0c;曾经分享过&#xff1a; 如下都是误会 ↓↓↓↓↓↓↓↓↓ 有朋友联系我&a…

解决东方财富数据接口激活后仍显示reactive的问题

首先确保代码可以在python中导入这个包&#xff1a; from EmQuantAPI import c如果无法导入&#xff0c;就是python没有配置好东方财富的接口&#xff0c;可以参考&#xff1a; Mac版本&#xff1a;Mac使用Python接入东方财富量化接口Choice&#xff0c;调试与获取数据Window…

北京智和信通:信创运维自动化,全栈适配国产软硬件环境

近年来&#xff0c;新基建和信创产业政策东风席卷神州&#xff0c;国产CPU、操作系统、关键应用软件等核心技术步入发展快车道&#xff0c;一批优秀软硬件产品走进政府机关、国企事业单位。在国产软硬件核心技术崛起的过程中&#xff0c;如何迅速搭建起成熟的生态环境是行业面临…