码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • VF01销售开票发票金额控制增强


    实施隐式增强
    在这里插入图片描述
    全部代码如下:
    method IF_EX_BADI_SD_BILLING~INVOICE_DOCUMENT_CHECK.

    CALL FUNCTION ‘SIPT_DOC_CHECK_SD’
    EXPORTING
    it_xvbrk = fxvbrk
    it_xvbrp = fxvbrp
    it_xkomv = fxkomv
    it_xvbpa = fxvbpa
    IMPORTING
    ev_bad_data = fbad_data.

    “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”" " " "\SE:(1) Class SIPT_SD_BILLING, Interface IF_EX_BADI_SD_BILLING, Method INVOICE_DOCUMENT_CHECK, End A
    ∗ * ∗-Start: (1)--------------------------------------------------------------------------------- ∗ * ∗
    ENHANCEMENT 1 ZE_VF01. "active version
    DATA:lv_netwr TYPE vbrp-netwr.
    DATA:lv_low_netwr TYPE vbrp-netwr.
    DATA:lv_msgv2 TYPE symsgv.
    DATA:lv_dummy TYPE c.

    INCLUDE zenhance_001.

    "VF01销售开票发票金额控制增强
    SELECT SINGLE low INTO @DATA(lv_low)
    FROM tvarvc
    WHERE name = ‘ZSD_ZSD047_JINEKAKONG’.
    IF sy-subrc = 0 AND lv_low IS NOT INITIAL.
    CONDENSE lv_low NO-GAPS.
    lv_low_netwr = lv_low.

    LOOP AT fxvbrk INTO DATA(ls_xvbrk).

    CLEAR:lv_netwr.
    LOOP AT fxvbrp INTO DATA(ls_xvbrp) WHERE vbeln = ls_xvbrk-vbeln.
      lv_netwr += ls_xvbrp-netwr.
      lv_netwr += ls_xvbrp-mwsbp.
    ENDLOOP.
    IF lv_netwr > lv_low_netwr.
      lv_msgv2 = lv_low.
      "记录发票开票日志,如果是BAPI调用,传输日志到BAPI
      MESSAGE e001(00) WITH '发票总金额不能超过' lv_low INTO lv_dummy.
      CALL FUNCTION 'SIPT_VBFS_CREATE_MESSAGE_SD'
        EXPORTING
          iv_vbeln = ls_xvbrk-vbeln
          iv_posnr = '000000'
          iv_msgid = sy-msgid
          iv_msgty = sy-msgty
          iv_msgno = sy-msgno
          iv_msgv1 = sy-msgv1
          iv_msgv2 = lv_msgv2
          iv_msgv3 = sy-msgv3
          iv_msgv4 = sy-msgv4.
      IF sy-batch IS INITIAL AND sy-tcode+0(1) <> 'Z'.
        "标准事务代码前台直接报错
        MESSAGE e001(00) WITH '发票总金额不能超过' lv_low.
      ELSE.
        "后台作业则设置此标记终止该发票的生成
        fbad_data = 'X'.
      ENDIF.
    ENDIF.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    ENDLOOP.
    ENDIF.

    ENDENHANCEMENT.
    ∗ * ∗-End: (1)--------------------------------------------------------------------------------- ∗ * ∗
    ENDMETHOD.

  • 相关阅读:
    Mybatis学习笔记5 面向接口CRUD练习
    【Shell 系列教程】Shell printf 命令( 六)
    Linux内核有什么之内存管理子系统有什么第三回 —— 小内存分配(1)
    bp神经网络怎么看结果,bp神经网络结果不一样
    ES6类的继承
    (续)SSM整合之springmvc笔记(RESTful之RESTful案例)(P148-153)
    6月2(信息差)
    视频和音频使用ffmpeg进行合并和分离(MP4)
    (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
    计算机毕业设计ssm出版社样书申请管理系统023w0系统+程序+源码+lw+远程部署
  • 原文地址:https://blog.csdn.net/HAND_YS/article/details/128111180
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号