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

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

BAPI_CONTRACT_GETDETAIL

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

代码如下:

REPORT  ztest_class.
DATA: lv_docnumber TYPE bapimeoutheader-number,
lt_item_condition TYPE TABLE OF bapimeoutcondition,
lt_item_conditionc TYPE TABLE OF bapimeoutcondition,
ls_item_condition TYPE bapimeoutcondition,
ls_item_conditionc TYPE bapimeoutcondition. DATA: lt_cond_validity TYPE TABLE OF bapimeoutvalidity,
lt_cond_validityc TYPE TABLE OF bapimeoutvalidity,
ls_cond_validity TYPE bapimeoutvalidity. DATA: lt_cond_validityx TYPE TABLE OF bapimeoutvalidityx,
ls_cond_validityx TYPE bapimeoutvalidityx. DATA: lt_item_conditionx TYPE TABLE OF bapimeoutconditionx,
ls_item_conditionx TYPE bapimeoutconditionx. DATA: lt_ctr_item TYPE TABLE OF bapimeoutitem,
lt_ctr_itemc TYPE TABLE OF bapimeoutitem,
ls_ctr_item TYPE bapimeoutitem. DATA: lt_ctr_itemx TYPE TABLE OF bapimeoutitemx,
ls_ctr_itemx TYPE bapimeoutitemx. DATA: lt_returnt TYPE TABLE OF bapiret2,
ls_returnt TYPE bapiret2. *DATA: ls_upload LIKE LINE OF gt_upload. DATA: lv_has_error TYPE xfeld. CALL FUNCTION 'BAPI_CONTRACT_GETDETAIL'
EXPORTING
purchasingdocument = lv_docnumber
item_data = 'X'
* ACCOUNT_DATA = ' '
condition_data = 'X'
* TEXT_DATA = ' '
* PARTNER_DATA = ' '
* RELEASE_DATA = ' '
* IMPORTING
* HEADER =
TABLES
item = lt_ctr_item
* ACCOUNT =
* DELIVERY_ADDRESS =
item_cond_validity = lt_cond_validity
item_condition = lt_item_condition
* ITEM_COND_SCALE_VALUE =
* ITEM_COND_SCALE_QUAN =
* ITEM_TEXT =
* HEADER_TEXT =
* HEAD_COND_VALIDITY =
* HEAD_CONDITION =
* HEAD_COND_SCALE_VAL =
* HEAD_COND_SCALE_QUAN =
* PARTNER =
* RELEASE_DOCU =
* EXTENSIONOUT =
* RETURN =
. " 设置要更新的字段
" 行项目
LOOP AT lt_ctr_item INTO ls_ctr_item.
APPEND ls_ctr_item TO lt_ctr_itemc. CLEAR ls_ctr_itemx.
ls_ctr_itemx-item_no = ls_ctr_item-item_no.
APPEND ls_ctr_itemx TO lt_ctr_itemx. CLEAR ls_ctr_item.
ENDLOOP. " 条件日期
LOOP AT lt_cond_validity INTO ls_cond_validity.
APPEND ls_cond_validity TO lt_cond_validityc. CLEAR ls_cond_validityx.
ls_cond_validityx-item_no = ls_cond_validity-item_no.
ls_cond_validityx-serial_id = ls_cond_validity-serial_id.
APPEND ls_cond_validityx TO lt_cond_validityx. CLEAR ls_cond_validity.
ENDLOOP. " 项目条件
LOOP AT lt_item_condition INTO ls_item_condition. CLEAR ls_item_conditionc.
MOVE-CORRESPONDING ls_item_condition TO ls_item_conditionc. CLEAR ls_item_conditionx.
ls_item_conditionx-item_no = ls_item_condition-item_no.
ls_item_conditionx-serial_id = ls_item_condition-serial_id.
ls_item_conditionx-cond_count = ls_item_condition-cond_count. * IF ls_item_condition-cond_type EQ 'PB00' AND ls_item_condition-deletion_ind EQ ''.
* READ TABLE gt_upload INTO ls_upload
* WITH KEY ebelp = ls_item_condition-item_no.
* IF sy-subrc EQ 0 AND ls_item_condition-cond_unit NE ls_upload-bprme.
* ls_item_conditionc-cond_unit = ls_upload-bprme.
* ls_item_conditionc-change_id = 'U'.
*
* ls_item_conditionx-cond_unit = 'X'.
* ENDIF.
* ENDIF.
ls_item_conditionc-change_id = 'I'.
APPEND ls_item_conditionc TO lt_item_conditionc.
ls_item_conditionx-cond_unit = 'X'.
APPEND ls_item_conditionx TO lt_item_conditionx. CLEAR ls_item_condition.
ENDLOOP. " 修改合同
CALL FUNCTION 'BAPI_CONTRACT_CHANGE'
EXPORTING
purchasingdocument = lv_docnumber
* HEADER =
* HEADERX =
* VENDOR_ADDRESS =
* TESTRUN =
* TECHNICAL_DATA =
* IMPORTING
* EXP_HEADER =
TABLES
item = lt_ctr_itemc
itemx = lt_ctr_itemx
* ACCOUNT =
* ACCOUNTPROFITSEGMENT =
* ACCOUNTX =
* DELIVERY_ADDRESS =
item_cond_validity = lt_cond_validityc
item_cond_validityx = lt_cond_validityx
item_condition = lt_item_conditionc
item_conditionx = lt_item_conditionx
* ITEM_COND_SCALE_VALUE =
* ITEM_COND_SCALE_QUAN =
* ITEM_TEXT =
* HEADER_TEXT =
* HEAD_COND_VALIDITY =
* HEAD_COND_VALIDITYX =
* HEAD_CONDITION =
* HEAD_CONDITIONX =
* HEAD_COND_SCALE_VAL =
* HEAD_COND_SCALE_QUAN =
* PARTNER =
* PARTNERX =
* RELEASE_DOCU =
* EXTENSIONIN =
* EXTENSIONOUT =
return = lt_returnt
. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
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 2101: [Usaco2010 Dec]Treasure Chest 藏宝箱( dp )

    dp( l , r ) = sum( l , r ) - min( dp( l + 1 , r ) , dp( l , r - 1 ) ) 被卡空间....我们可以发现 l > r 是无意义的 ...

  2. .NET Core & ASP.NET Core 1.0

    .NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布 众所周知,Red Hat和微软正在努力使.NET Core成为Red Hat企业版Linux (RHEL) ...

  3. QML在XP等显卡明显不好的情况下 可以参考

    http://doc.qt.io/qt-5/windows-requirements.html

  4. c# 数据库编程(通过SqlCommand 执行DML语句)

    原来一直是java,python等语言,最近用c#语言,并编写数据库访问代码.使用了之后,这里总结下,分享下c#如何操作数据库. 在java等其它语言中,有一套标准的api来完成数据库访问,并且一般都 ...

  5. [置顶] Android4.x对长按电源键(挂断键)和短按电源键(挂断键)的详细处理流程

    1. 简介 Android4.x在Framework的PhoneWindowManager对Power(KeyEvent.KEYCODE_POWER)和Home(KeyEvent.KEYCODE_HO ...

  6. iOS开发- 获取精确剩余电量

    [UIDevice currentDevice].batteryMonitoringEnabled = YES; double deviceLevel = [UIDevice currentDevic ...

  7. android平板Home键的监听

    关于android4.2平板Home键的监听 1.android4.0以上的平板Home键是不能屏蔽的,至少在应用层是这样.但是可以监听Home键的触发,主要是通过广播的监听来接受Hone键的触发广播 ...

  8. 10个SQL注入工具(转载)

    众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款SQL注入工具可帮助管理员及时检测存在的漏洞. BSQL Hacker 1 ...

  9. 对背包问题(Knapsack Problem)的算法探究

    对背包问题(Knapsack Problem)的算法探究 至繁归于至简,这次自己仍然用尽可能易理解和阅读的解决方式. 1.问题说明: 假设有一个背包的负重最多可达8公斤,而希望在背包中装入负重范围内可 ...

  10. Google出品的自动Web安全扫描程序 Skipfish 下载及安装使用方法

    Skipfish是由google出品的一款自动化的网络安全扫描工具,该工具可以安装在linux.freebsd.MacOS X系统和windows(cygwin). 谷歌工程师Michal Zalew ...