SD开票BAPI增强问题

背景:

用户需要批量销售开票,用到VF01,

BAPI:BAPI_BILLINGDOC_CREATEMULTIPLE。

需求:

销售开票,用户要求保存外部发票号。

问题:

  1. 客户化增强写入外部发票号。

  2. 把call bapi生成的开票凭证号及时更新到自建表中。

解决问题1:

  • 因为BAPI_BILLINGDOC_CREATEMULTIPLE中是有EXTENSIONIN,一般传增强字段的,大家都应该清楚。不过,添加好增强字段,运行BAPI,发现值写不进VBRP上,测试过很多次,debug看BAPI传值,传给VBRP时,就丢失外部发票号了(目前就这个BAPI写不进)。

    真想直接Update啊~~~。

    2.只得找其他增强点,想使用FREE MEMORY ID传值,

  • 于是Debug找到RV60AFZC程序下,可给直接赋值到标准表中增强字段上

    这样就完成增强了,其实跟Update没两样,都是赋值,只是比直接Update标准表好些。

    解决问题2:

  • 发现call完bapi之后,就更新自建表的开票凭证字段,然而自建表未写值;

    奇怪的事,就来了:

    就是Debug下断点在select VBRK那时,都能从VBRK中取到数据,也就能同步更新到自建表中。

    但是一旦单独运行整个事务码,就不行,就猜想出,运行整个事务码时,call完bapi时,VBRK表便没有产生数据,导致select VBRK,抓不到数据。所以导致后面塞自建表便没有数据塞进去!!!!

    解决方案:

    就是在call bapi之前,加上SET UPDATE TASK LOCAL.就能解决。加上这个,整支程序运行时,call bapi时,就能及时塞进VBRK表,然后select VBRK能及时抓到数据。

  • SET UPDATE TASK LOCAL:同步更新数据库表。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 11:32:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 11:32:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 11:32:01       58 阅读
  4. Python语言-面向对象

    2024-07-16 11:32:01       69 阅读

热门阅读

  1. validator参数校验

    2024-07-16 11:32:01       21 阅读
  2. 【力扣C语言】每日一题

    2024-07-16 11:32:01       18 阅读
  3. 力扣第七题——整数反转

    2024-07-16 11:32:01       22 阅读
  4. SQL Server存储过程中WHILE的使用

    2024-07-16 11:32:01       18 阅读
  5. Vue3 使用emoji表情包 emoji-mart-vue-fast

    2024-07-16 11:32:01       31 阅读
  6. 前端面试题

    2024-07-16 11:32:01       29 阅读
  7. Linux开发:Ubuntu22.04安装Fuse3

    2024-07-16 11:32:01       27 阅读
  8. VSCODE驯服笔记(一)

    2024-07-16 11:32:01       20 阅读