这个例子是在合同号中新增项目号:

1、先要读取该合同号的信息用一个BAPI

BAPI_CONTRACT_GETDETAIL

2、调用修改合同号的BAPI。

代码如下:

  1. REPORT ztest_class.
  2. DATA: lv_docnumber TYPE bapimeoutheader-number,
  3. lt_item_condition TYPE TABLE OF bapimeoutcondition,
  4. lt_item_conditionc TYPE TABLE OF bapimeoutcondition,
  5. ls_item_condition TYPE bapimeoutcondition,
  6. ls_item_conditionc TYPE bapimeoutcondition.
  7.  
  8. DATA: lt_cond_validity TYPE TABLE OF bapimeoutvalidity,
  9. lt_cond_validityc TYPE TABLE OF bapimeoutvalidity,
  10. ls_cond_validity TYPE bapimeoutvalidity.
  11.  
  12. DATA: lt_cond_validityx TYPE TABLE OF bapimeoutvalidityx,
  13. ls_cond_validityx TYPE bapimeoutvalidityx.
  14.  
  15. DATA: lt_item_conditionx TYPE TABLE OF bapimeoutconditionx,
  16. ls_item_conditionx TYPE bapimeoutconditionx.
  17.  
  18. DATA: lt_ctr_item TYPE TABLE OF bapimeoutitem,
  19. lt_ctr_itemc TYPE TABLE OF bapimeoutitem,
  20. ls_ctr_item TYPE bapimeoutitem.
  21.  
  22. DATA: lt_ctr_itemx TYPE TABLE OF bapimeoutitemx,
  23. ls_ctr_itemx TYPE bapimeoutitemx.
  24.  
  25. DATA: lt_returnt TYPE TABLE OF bapiret2,
  26. ls_returnt TYPE bapiret2.
  27.  
  28. *DATA: ls_upload LIKE LINE OF gt_upload.
  29.  
  30. DATA: lv_has_error TYPE xfeld.
  31.  
  32. CALL FUNCTION 'BAPI_CONTRACT_GETDETAIL'
  33. EXPORTING
  34. purchasingdocument = lv_docnumber
  35. item_data = 'X'
  36. * ACCOUNT_DATA = ' '
  37. condition_data = 'X'
  38. * TEXT_DATA = ' '
  39. * PARTNER_DATA = ' '
  40. * RELEASE_DATA = ' '
  41. * IMPORTING
  42. * HEADER =
  43. TABLES
  44. item = lt_ctr_item
  45. * ACCOUNT =
  46. * DELIVERY_ADDRESS =
  47. item_cond_validity = lt_cond_validity
  48. item_condition = lt_item_condition
  49. * ITEM_COND_SCALE_VALUE =
  50. * ITEM_COND_SCALE_QUAN =
  51. * ITEM_TEXT =
  52. * HEADER_TEXT =
  53. * HEAD_COND_VALIDITY =
  54. * HEAD_CONDITION =
  55. * HEAD_COND_SCALE_VAL =
  56. * HEAD_COND_SCALE_QUAN =
  57. * PARTNER =
  58. * RELEASE_DOCU =
  59. * EXTENSIONOUT =
  60. * RETURN =
  61. .
  62.  
  63. " 设置要更新的字段
  64. " 行项目
  65. LOOP AT lt_ctr_item INTO ls_ctr_item.
  66. APPEND ls_ctr_item TO lt_ctr_itemc.
  67.  
  68. CLEAR ls_ctr_itemx.
  69. ls_ctr_itemx-item_no = ls_ctr_item-item_no.
  70. APPEND ls_ctr_itemx TO lt_ctr_itemx.
  71.  
  72. CLEAR ls_ctr_item.
  73. ENDLOOP.
  74.  
  75. " 条件日期
  76. LOOP AT lt_cond_validity INTO ls_cond_validity.
  77. APPEND ls_cond_validity TO lt_cond_validityc.
  78.  
  79. CLEAR ls_cond_validityx.
  80. ls_cond_validityx-item_no = ls_cond_validity-item_no.
  81. ls_cond_validityx-serial_id = ls_cond_validity-serial_id.
  82. APPEND ls_cond_validityx TO lt_cond_validityx.
  83.  
  84. CLEAR ls_cond_validity.
  85. ENDLOOP.
  86.  
  87. " 项目条件
  88. LOOP AT lt_item_condition INTO ls_item_condition.
  89.  
  90. CLEAR ls_item_conditionc.
  91. MOVE-CORRESPONDING ls_item_condition TO ls_item_conditionc.
  92.  
  93. CLEAR ls_item_conditionx.
  94. ls_item_conditionx-item_no = ls_item_condition-item_no.
  95. ls_item_conditionx-serial_id = ls_item_condition-serial_id.
  96. ls_item_conditionx-cond_count = ls_item_condition-cond_count.
  97.  
  98. * IF ls_item_condition-cond_type EQ 'PB00' AND ls_item_condition-deletion_ind EQ ''.
  99. * READ TABLE gt_upload INTO ls_upload
  100. * WITH KEY ebelp = ls_item_condition-item_no.
  101. * IF sy-subrc EQ 0 AND ls_item_condition-cond_unit NE ls_upload-bprme.
  102. * ls_item_conditionc-cond_unit = ls_upload-bprme.
  103. * ls_item_conditionc-change_id = 'U'.
  104. *
  105. * ls_item_conditionx-cond_unit = 'X'.
  106. * ENDIF.
  107. * ENDIF.
  108. ls_item_conditionc-change_id = 'I'.
  109. APPEND ls_item_conditionc TO lt_item_conditionc.
  110. ls_item_conditionx-cond_unit = 'X'.
  111. APPEND ls_item_conditionx TO lt_item_conditionx.
  112.  
  113. CLEAR ls_item_condition.
  114. ENDLOOP.
  115.  
  116. " 修改合同
  117. CALL FUNCTION 'BAPI_CONTRACT_CHANGE'
  118. EXPORTING
  119. purchasingdocument = lv_docnumber
  120. * HEADER =
  121. * HEADERX =
  122. * VENDOR_ADDRESS =
  123. * TESTRUN =
  124. * TECHNICAL_DATA =
  125. * IMPORTING
  126. * EXP_HEADER =
  127. TABLES
  128. item = lt_ctr_itemc
  129. itemx = lt_ctr_itemx
  130. * ACCOUNT =
  131. * ACCOUNTPROFITSEGMENT =
  132. * ACCOUNTX =
  133. * DELIVERY_ADDRESS =
  134. item_cond_validity = lt_cond_validityc
  135. item_cond_validityx = lt_cond_validityx
  136. item_condition = lt_item_conditionc
  137. item_conditionx = lt_item_conditionx
  138. * ITEM_COND_SCALE_VALUE =
  139. * ITEM_COND_SCALE_QUAN =
  140. * ITEM_TEXT =
  141. * HEADER_TEXT =
  142. * HEAD_COND_VALIDITY =
  143. * HEAD_COND_VALIDITYX =
  144. * HEAD_CONDITION =
  145. * HEAD_CONDITIONX =
  146. * HEAD_COND_SCALE_VAL =
  147. * HEAD_COND_SCALE_QUAN =
  148. * PARTNER =
  149. * PARTNERX =
  150. * RELEASE_DOCU =
  151. * EXTENSIONIN =
  152. * EXTENSIONOUT =
  153. return = lt_returnt
  154. .
  155.  
  156. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  157. EXPORTING
  158. wait = 'X'
  159. IMPORTING
  160. return = ls_returnt.

修改合同号的bapi的更多相关文章

  1. abap 常用 function

    ABAP常用函数总结  alv .smartform. excel .text.邮件 .远程访问,FTP服务器...  **********常用功能function REUSE_ALV_GRID_DI ...

  2. 使用BAPI批量修改采购信息记录的税率

    业务方面提出需求:由于国家税率从5月份开始16%更改为13%.要求开发一个批量修改采购信息记录税率的功能. 税代码就是税率,J2代表13% 这个需求在ME13里面就可以单个修改,所以可以用BDC,但后 ...

  3. 【ABAP系列】SAP VA02修改销售订单的BAPI举例

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP VA02修改销售订单的B ...

  4. 如何利用BAPI SD_SALESDOCUMENT_CHANGE修改Sales Order的字段

    假设我想修改S/4HANA里Sales Order抬头的Service Date字段SERV_DATE: 首先从数据库表VBKD里查找到SERV_DATE修改之前的值为2020年1月1日 使用如下代码 ...

  5. BAPI

    MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...

  6. SAP 各模块常用的BAPI

    MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...

  7. ABAP 生产订单的创建与修改函数

    ABAP 生产订单的创建与修改函数转自http://www.cnblogs.com/aBaoRong/archive/2012/04/11/2441946.html   如果生产订单过多,可以批量创建 ...

  8. 业务对象和BAPI

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. [SAP ABAP开发技术总结]BAPI调用

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. BZOJ 2631: tree( LCT )

    LCT...略麻烦... -------------------------------------------------------------------------------- #inclu ...

  2. Codeforces 482 - Diverse Permutation 构造题

    这是一道蛮基础的构造题. - k         +(k - 1)      -(k - 2) 1 + k ,    1 ,         k ,             2,    ....... ...

  3. td

    http://jameswxx.iteye.com/blog/1041173 http://crane-ding.iteye.com/blog/968862 http://www.ibm.com/de ...

  4. 基于visual Studio2013解决C语言竞赛题之0505选数

     题目

  5. Android之Camera控制拍照

    package com.android.xiong.cameratest; import java.io.File; import java.io.FileOutputStream; import j ...

  6. 判断程序是否在VMWare内运行

    现在有许多用户都喜欢用虚拟机来测试他们的软件,以避免对真实机器环境造成损害.但是在虚拟机中,有些功能是受限,甚至不可能完成的,因此,需要在程序中判断虚拟机的环境,如果程序在虚拟机内运行,则就要把虚拟机 ...

  7. 在OpenShift平台开发Node.js程序

    设置process.env方便本地调试 --------------------- 修改~/.profile,增加下面两行,然后执行`. ~/.profile`: export OPENSHIFT_N ...

  8. cocos2d-x游戏开发系列教程-中国象棋06-游戏规则

    前情回顾 上一个博文我们提到象棋运动的函数dealWithChess,但是只是说该函数完成了棋子的选择和移动功能 其实在这个函数里,在移动棋子之前,是要对棋子的移动是否合法进行判断的,我们一起来看看如 ...

  9. STM32启动模式

    STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash.2)SRAM = 芯片内置的RAM区,就是内存啦.3)系统存储器 = 芯片内部一块特定的区域,芯片 ...

  10. C#由变量捕获引起对闭包

    C#由变量捕获引起对闭包的思考   前言 偶尔翻翻书籍看看原理性的东西确实有点枯燥,之前有看到园中有位园友说到3-6年工作经验的人应该了解的.NET知识,其中就有一点是关于C#中的闭包,其实早之前在看 ...