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的更多相关文章

  1. 详解EBS接口开发之库存事务处理批次更新

    库存事务处理批次有时候出现导入错误需要更新可使用次程序更新,批次导入可参考博客 详解EBS接口开发之库存事务处理-物料批次导入 http://blog.csdn.net/cai_xingyun/art ...

  2. Python003-测试辅助示例应用数据库更新语句创建

    上周同事又问一个问题:表 C_Application 中数据量较大,需要批量更新 load_start_time 的时间为 '1900-01-01 18:43:49' 为初始值,以一定时间间隔且每次更 ...

  3. Spring JDBC多批次操作

    以下示例将演示如何使用spring jdbc在单个调用中进行多批次更新. 我们将在批量大小为1的多批次操作中更新student表中的记录. student表的结果如下 - CREATE TABLE s ...

  4. React中setState同步更新策略

    setState 同步更新 我们在上文中提及,为了提高性能React将setState设置为批次更新,即是异步操作函数,并不能以顺序控制流的方式设置某些事件,我们也不能依赖于this.state来计算 ...

  5. Deployment之滚动更新策略。

    1.Deployment控制器详细信息中包含了其更新策略的相关配置.kubectl describe命令中输出的StrategyType.RollingUpdateStrategy字段等: root@ ...

  6. SQL Server 的 Statistics 簡介

    當你要清空「資料表(table)」,或倒入大量「資料(data;record)」,或公司「資料庫(database)」改用新版本要資料大搬家…等情形,不只是要重建「索引(index)」,還應要重建或更 ...

  7. 20145205 《Java程序设计》第9周学习总结

    教材学习内容总结 第十六章 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Java程序设计人员在撰写数据库操作程序时可以有个统一的接口,无须依赖特 ...

  8. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  9. 20145330第九周《Java学习笔记》

    20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...

随机推荐

  1. ServiceStack.OrmLite 笔记5 改

    修改 db.Update(new Person { Id = 1, FirstName = "Jimi", LastName = "Hendrix", Age ...

  2. LINQ之路 5:LINQ查询表达式

    书写LINQ查询时又两种语法可供选择:方法语法(Fluent Syntax)和查询表达式(Query Expression). LINQ方法语法的本质是通过扩展方法和Lambda表达式来创建查询.C# ...

  3. eclipse 设置jvm 内存

    Eclipse 中设置JVM 内存 今天在eclipse 中测试把文档转换为图片的时候,报出了下面的错误: java.lang.OutOfMemoryError: Java heap space 从上 ...

  4. Javascript中typeof instanceof constructor的区别

    typeof typeof,是一个运算符,运算中需要一个操作数,运算的结果就是这个操作数的类型,运算的结果是一个字符串.他有一定的局限性,对于对象类型的值,只能得到一个object结果,却不能精确得到 ...

  5. CentOS7静默安装oracle11g

    操作系统: [root@docker ~]# uname -m x86_64 [root@docker ~]# cat /etc/redhat-release CentOS Linux release ...

  6. (一)stm32之CMSIS标准、库目录、GPIO

    一.CMSIS标准 ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU.该内核是ARM公司设计的一种处理器体系架构.内核与外设的关系就像PC上的CPU与硬盘.主板.内存等的 ...

  7. PHP SPL标准库之SplFixedArray使用实例

    SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快. 看看我本机的Benchmark测试: i ...

  8. java语法体系

    乱写的不具备参考性,只是一个备忘录

  9. AD组策略添加本地账号、设置允许ping回显

    AD组策略添加本地账号 1. 管理工具--组策略管理--选择相应GPO(编辑)----首选项--控制面板设置--本地用户和组--右键添加账号 2.域成员计算机刷新组策略(gpupdate/force) ...

  10. 图片左右滚动的js代码

    html代码 <div class="demo" id="demo" style="overflow:hidden; width:660px; ...