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. CG绘画笔记

    看一些比较好的作品:看作品哪些部分,部件,盔甲比较吸引人,提取一个比较好的点,进行组合创作. 逆光.切光布局构图 创作:故事.情感.经历.朋友.时代 灵感: 电影.音乐 变化(色彩)透视 空气透视视觉 ...

  2. Ubuntu升级没有声音的解决方法

    自从安装U14.04LTS版本后,每次开机都会弹出update窗,以前因为网络速度慢没更新成功过,这回环境允许就尝试了下这个过程,很顺利,可更新后没声音了,找了N中方法来解决,像更改配置文件/etc/ ...

  3. HDU 2222 Keywords Search(查询关键字)

    HDU 2222 Keywords Search(查询关键字) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K ...

  4. 现在有T1、T2、T3三个线程,怎样保证T2在T1执行完后执行,T3在T2执行完后执行?使用Join

    public class TestJoin { public static void main(String[] args) { Thread t1 = new Thread(new T1(), &q ...

  5. Python基础学习笔记(七)常用元组内置函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-tuples.html 3. http://www.liaoxue ...

  6. java乱码问题(转)

    参考: http://blog.csdn.net/beijiguangyong/article/details/7414247 http://www.zhihu.com/question/202126 ...

  7. fFFmpeg 命令、案例、测试集中营

    gitbook: https://www.gitbook.com/book/xdsnet/other-doc-cn-ffmpeg/details ffmpeg [全局选项] {[输入文件选项] -i ...

  8. http1.1和http1.0区别

    http1.1和服务器建立连接可以获得多个资源 http1.0和服务器建立连接可以获取一个值

  9. UVA 11468【AC自动机+DP】

    dp[i][j]表示走了i步走到j结点的概率.初始值dp[0][0] = 1.当走到的结点不是单词尾结点时,才能走过去. !end[i]&&last[i] == root时,该结点才可 ...

  10. poj2986A Triangle and a Circle&&poj3675Telescope(三角形剖分)

    链接 2986是3675的简化版,只有一个三角形. 这题主要在于求剖分后三角形与圆的相交面积,需要分情况讨论. 具体可以看此博客 http://hi.baidu.com/billdu/item/703 ...