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:同步更新数据库表。

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BAPI(Business Application Programming Interface)是SAP提供的一种标准编程接口,用于与SAP系统进行集成开发。在开发过程中,可能遇到需要对数字类型字段进行增强处理的情况。以下是对此问题的回答: 增强数字类型字段的处理可以通过以下步骤完成: 第一步,确定需要增强的数字类型字段。可以根据实际需求和业务流程确定需要做增强处理的字段。 第二步,编写增强逻辑。根据业务需求,编写增强逻辑,对数字类型字段进行增强处理。例如,可以进行数据验证、计算、格式化等操作。 第三步,创建自定义扩展BADI。通过SAP GUI中的事务码SE18或SE19,创建自定义扩展BADI(Business Add-In)。在BADI的实现类中,实现增强逻辑。 第四步,关联自定义扩展BADI到需要增强的BADI定义。使用SAP GUI中的事务码SE18,将自定义扩展BADI与需要增强的BADI定义进行关联。这样,在调用BADI时,会触发自定义扩展BADI中的增强逻辑。 第五步,测试增强处理的有效性。在集成开发环境中,模拟实际业务场景,测试增强处理的有效性和正确性。如果有问题,可以根据错误日志进行调试和修复。 需要注意的是,增强数字类型字段的处理是针对具体业务需求而进行的,因此在实际开发中,可能需要根据具体情况进行调整和修改以上步骤。此外,编写增强逻辑时,也要考虑到性能和可维护性的问题,确保增强处理的性能优化和可持续性。最后,在项目上线前,还需要进行充分的测试和验证,确保增强处理的稳定性和正确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值