更改BAPI_CONTRACT_CHANGE的条件金额

2020-09-05 10:24发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在尝试更新ME32K上合同的项目条件的金额值。

为此,我正在使用BAPI_CONTRACT_CHANGE。

我创建了一个程序来测试BAPI,但是它无法正常工作。

执行后,返回表没有错误信息,但是当我转到ME33K时,金额没有改变。

我已经搜索了整个论坛,但没有找到答案。

tks

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在尝试更新ME32K上合同的项目条件的金额值。

为此,我正在使用BAPI_CONTRACT_CHANGE。

我创建了一个程序来测试BAPI,但是它无法正常工作。

执行后,返回表没有错误信息,但是当我转到ME33K时,金额没有改变。

我已经搜索了整个论坛,但没有找到答案。

tks

付费偷看设置
发送
4条回答
太Q了
1楼 · 2020-09-05 11:14.采纳回答

这是我用来测试BAPI的程序:

 数据:v_po TYPE bapimeoutheader-number VALUE'4600000001'。
 数据:带有标题行的bapimeoutitem的t_item类型表,
       t_itemx带有标题行的bapimeoutitemx类型表,
       t_item_condition带标题行的bapimeoutcondition类型表,
       t_item_condition_s带有标题行的bapimeoutcondition类型表,
       t_item_conditionx带有标题行的bapimeoutconditionx的类型表,
       t_item_cond_validity带有标题行的bapimeoutvalidity类型表,
       t_item_cond_validityx带有标题行的bapimeoutvalidityx的类型表,
       t_return带有标题行的bapiret2类型表。



 通话功能'BAPI_CONTRACT_GETDETAIL'
   出口
     Purchasedocument = v_po
     item_data ='X'
     condition_data ='X'
   桌子
     项目= t_item
     item_cond_validity = t_item_cond_validity
     item_condition = t_item_condition_s
     返回= t_return。


 读取表t_item_condition_s索引1。
 读取表t_item_cond_validity索引1。

 t_item_cond_validityx-serial_id = t_item_condition_s-serial_id。
 t_item_cond_validityx-item_no = 10。

 附录t_item_cond_validityx。

 t_item_condition-item_no = 10。
 t_item_condition-cond_value = 51。
 t_item_condition-serial_id = t_item_condition_s-serial_id。
 t_item_condition_cond_count = t_item_condition_s-cond_count。
 * T_ITEM_CONDITION-COND_TYPE ='PB00'。
 t_item_condition-change_id ='U'。
 APPEND t_item_condition。

 t_item_conditionx-item_no = 10。
 t_item_conditionx-serial_id = t_item_condition_s-serial_id。
 t_item_conditionx-cond_count = t_item_condition_s-cond_count。
 t_item_conditionx-cond_value ='X'。
 附加t_item_conditionx。


 通话功能'BAPI_CONTRACT_CHANGE'
   出口
     Purchasedocument = v_po
   桌子
     item_condition = t_item_condition
     item_conditionx = t_item_conditionx
     返回= t_return。


 通话功能'BAPI_TRANSACTION_COMMIT'
   出口
     等待='X'。

 

我正在尝试将条件值更改为合同'4600000001'的'51'。

callcenter油条
2楼-- · 2020-09-05 11:06

嗨Naresh,

谢谢。

现在可以了。

我正在传递ITEM_COND_VALIDITY(不需要X,但给出W消息),而且我还必须传递整个ITEM_CONDITION数据,而不仅仅是我想要更改的数据(在这种情况下为COND_VALUE)。

感谢您的帮助

灬番茄
3楼-- · 2020-09-05 11:19

您好

我知道这是一篇过时的文章,但是我面临着同样的问题,看来您设法解决了该问题。

我想更改条件值。 我了解我需要发送条件有效性(相同)。 我知道我需要发送所有项目条件数据(并且X结构完全填充吗?)。

但是我得到了一个简短的转储(重复密钥...)。 似乎无论我尝试了什么,BAPI都会尝试插入新记录而不是对其进行更新。 如果有人可以帮助我...

haha101010
4楼-- · 2020-09-05 11:23

谢谢您抽出宝贵的时间回答我。

我得出的结论是,BAPI无法在完全相同的有效期内更改该值。 我设法通过添加一项增强功能来强制执行此操作,以在过程结束时强制执行更新标志...脏。

一周热门 更多>