批次更新BAPI_OBJCL_CHANGE
FORM frm_edit_batch TABLES pt_field STRUCTURE dfies
USING ps_batch TYPE ty_batch
CHANGING ps_rturn TYPE bapiret2. DATA : lv_key TYPE bapi1003_key-object,
lv_table TYPE bapi1003_key-objecttable VALUE 'MCH1',
lv_class TYPE bapi1003_key-classnum VALUE 'Z_CLASS_BATCH',
lv_class_type TYPE bapi1003_key-classtype VALUE '',
lv_status TYPE bapi1003_key-status,
*--------------------TUS-CHARG-BEGIN---------------------------------*
lt_alloc_curr TYPE TABLE OF zbapi1003_alloc_values_curr,
lt_alloc_num TYPE TABLE OF zbapi1003_alloc_values_num,
lt_alloc_char TYPE TABLE OF zbapi1003_alloc_values_char,
*--------------------TUS-CHARG-END-----------------------------------*
lt_return TYPE TABLE OF bapiret2,
ls_return TYPE bapiret2.
DATA:ls_field TYPE dfies,
lv_field() TYPE c. *--------------------TUS-CHARG-BEGIN---------------------------------*
FIELD-SYMBOLS:
<fs_s_alloc_curr> TYPE zbapi1003_alloc_values_curr,
<fs_s_alloc_char> TYPE zbapi1003_alloc_values_char,
<fs_s_alloc_num> TYPE zbapi1003_alloc_values_num,
<fs_value>.
*--------------------TUS-CHARG-END-----------------------------------*
REFRESH:lt_alloc_curr,lt_return,lt_alloc_num,lt_alloc_char.
CLEAR:lv_key,lv_status,ls_return. lv_key+() = ps_batch-matnr.
lv_key+() = ps_batch-charg.
*--------------------TUS-CHARG-BEGIN---------------------------------*
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
objectkey = lv_key
objecttable = lv_table
classnum = lv_class
classtype = lv_class_type
keydate = sy-datum
language = sy-langu
IMPORTING
status = lv_status
TABLES
allocvaluesnum = lt_alloc_num
allocvalueschar = lt_alloc_char
allocvaluescurr = lt_alloc_curr
return = lt_return.
*--------------------TUS-CHARG-END-----------------------------------*
LOOP AT pt_field INTO ls_field.
CLEAR lv_field.
CONCATENATE 'Z_' ls_field-fieldname INTO lv_field. ASSIGN COMPONENT ls_field-fieldname OF STRUCTURE ps_batch TO <fs_value>.
IF sy-subrc EQ .
CASE ls_field-datatype.
WHEN 'CHAR'.
READ TABLE lt_alloc_char ASSIGNING <fs_s_alloc_char> WITH KEY charact = lv_field.
IF sy-subrc = .
IF <fs_value> IS NOT INITIAL.
<fs_s_alloc_char>-charact = lv_field.
<fs_s_alloc_char>-value_char = <fs_value>.
<fs_s_alloc_char>-value_neutral = <fs_value>.
ENDIF.
ELSE.
APPEND INITIAL LINE TO lt_alloc_char ASSIGNING <fs_s_alloc_char>.
<fs_s_alloc_char>-charact = lv_field.
<fs_s_alloc_char>-value_char = <fs_value>.
<fs_s_alloc_char>-value_neutral = <fs_value>.
ENDIF.
IF <fs_value> EQ ''.
CLEAR : <fs_s_alloc_char>-value_char,<fs_s_alloc_char>-value_neutral.
ENDIF. WHEN 'DEC' OR 'QUAN'.
READ TABLE lt_alloc_num ASSIGNING <fs_s_alloc_num> WITH KEY charact = lv_field.
IF sy-subrc = .
IF <fs_value> IS NOT INITIAL.
<fs_s_alloc_num>-charact = lv_field.
<fs_s_alloc_num>-value_from = <fs_value>.
<fs_s_alloc_num>-value_to = <fs_value>.
ENDIF.
ELSE.
APPEND INITIAL LINE TO lt_alloc_num ASSIGNING <fs_s_alloc_num>.
<fs_s_alloc_num>-charact = lv_field.
<fs_s_alloc_num>-value_from = <fs_value>.
<fs_s_alloc_num>-value_to = <fs_value>.
ENDIF.
IF <fs_value> EQ .
CLEAR: <fs_s_alloc_num>-value_from,<fs_s_alloc_num>-value_to.
ENDIF. WHEN 'CURR'.
READ TABLE lt_alloc_curr ASSIGNING <fs_s_alloc_curr> WITH KEY charact = lv_field.
IF sy-subrc = .
IF <fs_value> IS NOT INITIAL.
<fs_s_alloc_curr>-charact = lv_field.
<fs_s_alloc_curr>-value_from = <fs_value>.
<fs_s_alloc_curr>-currency_from = 'CNY'.
<fs_s_alloc_curr>-currency_from_iso = 'CNY'.
ENDIF.
ELSE.
APPEND INITIAL LINE TO lt_alloc_curr ASSIGNING <fs_s_alloc_curr>.
<fs_s_alloc_curr>-charact = lv_field.
<fs_s_alloc_curr>-value_from = <fs_value>.
<fs_s_alloc_curr>-currency_from = 'CNY'.
<fs_s_alloc_curr>-currency_from_iso = 'CNY'.
ENDIF.
IF <fs_value> EQ .
CLEAR <fs_s_alloc_curr>-value_from .
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDIF.
ENDLOOP. *--------------------TUS-CHARG-BEGIN---------------------------------*
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
EXPORTING
objectkey = lv_key
objecttable = lv_table
classnum = lv_class
classtype = lv_class_type
status = ''
keydate = sy-datum
IMPORTING
classif_status = lv_status
TABLES
allocvaluesnumnew = lt_alloc_num
allocvaluescharnew = lt_alloc_char
allocvaluescurrnew = lt_alloc_curr
return = lt_return.
*--------------------TUS-CHARG-END-----------------------------------*
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'. LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'.
ps_rturn = ls_return.
EXIT.
ENDLOOP. ENDFORM. " FRM_EDIT_BATCH
这个批次可以在CL01/02/03 处查看,批次修改和创建参数基本一致。
批次更新BAPI_OBJCL_CHANGE的更多相关文章
- 详解EBS接口开发之库存事务处理批次更新
库存事务处理批次有时候出现导入错误需要更新可使用次程序更新,批次导入可参考博客 详解EBS接口开发之库存事务处理-物料批次导入 http://blog.csdn.net/cai_xingyun/art ...
- Python003-测试辅助示例应用数据库更新语句创建
上周同事又问一个问题:表 C_Application 中数据量较大,需要批量更新 load_start_time 的时间为 '1900-01-01 18:43:49' 为初始值,以一定时间间隔且每次更 ...
- Spring JDBC多批次操作
以下示例将演示如何使用spring jdbc在单个调用中进行多批次更新. 我们将在批量大小为1的多批次操作中更新student表中的记录. student表的结果如下 - CREATE TABLE s ...
- React中setState同步更新策略
setState 同步更新 我们在上文中提及,为了提高性能React将setState设置为批次更新,即是异步操作函数,并不能以顺序控制流的方式设置某些事件,我们也不能依赖于this.state来计算 ...
- Deployment之滚动更新策略。
1.Deployment控制器详细信息中包含了其更新策略的相关配置.kubectl describe命令中输出的StrategyType.RollingUpdateStrategy字段等: root@ ...
- SQL Server 的 Statistics 簡介
當你要清空「資料表(table)」,或倒入大量「資料(data;record)」,或公司「資料庫(database)」改用新版本要資料大搬家…等情形,不只是要重建「索引(index)」,還應要重建或更 ...
- 20145205 《Java程序设计》第9周学习总结
教材学习内容总结 第十六章 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Java程序设计人员在撰写数据库操作程序时可以有个统一的接口,无须依赖特 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330第九周《Java学习笔记》
20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...
随机推荐
- tomcat源码导入eclipse步骤
1. 获取源代码 方式一:从官网http://tomcat.apache.org/download-70.cgi 直接下载,官网提供了Binary 和 Source Code两种下载方式,要研究tom ...
- [Effective Java]第八章 通用程序设计
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- CUBRID学习笔记 39 net使用dataset 返回查询的数据
using CUBRID.Data.CUBRIDClient; namespace DataSetExample { class Program { static ...
- hdu 1869 (Floyd)
http://acm.hdu.edu.cn/showproblem.php?pid=1869 六度分离 Time Limit: 5000/1000 MS (Java/Others) Memory ...
- FJNU 1155 Fat Brother’s prediction(胖哥的预言)
FJNU 1155 Fat Brother’s prediction(胖哥的预言) Time Limit: 1000MS Memory Limit: 257792K [Description] [ ...
- HNOI2006-鬼谷子的钱袋
鬼谷子的钱袋 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起 ...
- scala的传名参数
scala如果你想实现像if ,while等类似的控制结构,根本没有值要传入花括号{}直接的代码里.要怎么实现. 比如说,我们要实现一个断言的控制结构,myAssert(), myAssert函数参考 ...
- Json-lib使用 转载
1.从Object到String 要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可 (1)示例一 1 Book book=new ...
- LCD控制器与驱动器
这回我再讲讲从 MCU 到 LCD 之间是怎样一个控制流程,即我们的位图数据是怎样显示到 LCD 上的.前面我们了解到 LCD 显示是用动态扫描的方式来实现的,每次显示一整行,在一帧里每行一次扫描一遍 ...
- C++—函数探幽
一.内联函数 1.内联函数的机制 内联函数是C++为提高程序运行速度而做的一项改进. 函数调用机制:常规函数调用使程序使程序跳到被掉函数的地址,并在函数结束时返回. 内联函数的机制:内联函数的代码与其 ...