1.  
  1. FORM frm_edit_batch TABLES pt_field STRUCTURE dfies
  2. USING ps_batch TYPE ty_batch
  3. CHANGING ps_rturn TYPE bapiret2.
  4.  
  5.  DATA : lv_key TYPE bapi1003_key-object,
  6. lv_table TYPE bapi1003_key-objecttable VALUE 'MCH1',
  7. lv_class TYPE bapi1003_key-classnum VALUE 'Z_CLASS_BATCH',
  8. lv_class_type TYPE bapi1003_key-classtype VALUE '',
  9. lv_status TYPE bapi1003_key-status,
  10. *--------------------TUS-CHARG-BEGIN---------------------------------*
  11. lt_alloc_curr TYPE TABLE OF zbapi1003_alloc_values_curr,
  12. lt_alloc_num TYPE TABLE OF zbapi1003_alloc_values_num,
  13. lt_alloc_char TYPE TABLE OF zbapi1003_alloc_values_char,
  14. *--------------------TUS-CHARG-END-----------------------------------*
  15. lt_return TYPE TABLE OF bapiret2,
  16. ls_return TYPE bapiret2.
  17. DATA:ls_field TYPE dfies,
  18. lv_field() TYPE c.
  19.  
  20. *--------------------TUS-CHARG-BEGIN---------------------------------*
  21. FIELD-SYMBOLS:
  22. <fs_s_alloc_curr> TYPE zbapi1003_alloc_values_curr,
  23. <fs_s_alloc_char> TYPE zbapi1003_alloc_values_char,
  24. <fs_s_alloc_num> TYPE zbapi1003_alloc_values_num,
  25. <fs_value>.
  26. *--------------------TUS-CHARG-END-----------------------------------*
  27. REFRESH:lt_alloc_curr,lt_return,lt_alloc_num,lt_alloc_char.
  28. CLEAR:lv_key,lv_status,ls_return.
  29.  
  30. lv_key+() = ps_batch-matnr.
  31. lv_key+() = ps_batch-charg.
  32. *--------------------TUS-CHARG-BEGIN---------------------------------*
  33. CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
  34. EXPORTING
  35. objectkey = lv_key
  36. objecttable = lv_table
  37. classnum = lv_class
  38. classtype = lv_class_type
  39. keydate = sy-datum
  40. language = sy-langu
  41. IMPORTING
  42. status = lv_status
  43. TABLES
  44. allocvaluesnum = lt_alloc_num
  45. allocvalueschar = lt_alloc_char
  46. allocvaluescurr = lt_alloc_curr
  47. return = lt_return.
  48. *--------------------TUS-CHARG-END-----------------------------------*
  49. LOOP AT pt_field INTO ls_field.
  50. CLEAR lv_field.
  51. CONCATENATE 'Z_' ls_field-fieldname INTO lv_field.
  52.  
  53. ASSIGN COMPONENT ls_field-fieldname OF STRUCTURE ps_batch TO <fs_value>.
  54. IF sy-subrc EQ .
  55. CASE ls_field-datatype.
  56. WHEN 'CHAR'.
  57. READ TABLE lt_alloc_char ASSIGNING <fs_s_alloc_char> WITH KEY charact = lv_field.
  58. IF sy-subrc = .
  59. IF <fs_value> IS NOT INITIAL.
  60. <fs_s_alloc_char>-charact = lv_field.
  61. <fs_s_alloc_char>-value_char = <fs_value>.
  62. <fs_s_alloc_char>-value_neutral = <fs_value>.
  63. ENDIF.
  64. ELSE.
  65. APPEND INITIAL LINE TO lt_alloc_char ASSIGNING <fs_s_alloc_char>.
  66. <fs_s_alloc_char>-charact = lv_field.
  67. <fs_s_alloc_char>-value_char = <fs_value>.
  68. <fs_s_alloc_char>-value_neutral = <fs_value>.
  69. ENDIF.
  70. IF <fs_value> EQ ''.
  71. CLEAR : <fs_s_alloc_char>-value_char,<fs_s_alloc_char>-value_neutral.
  72. ENDIF.
  73.  
  74. WHEN 'DEC' OR 'QUAN'.
  75. READ TABLE lt_alloc_num ASSIGNING <fs_s_alloc_num> WITH KEY charact = lv_field.
  76. IF sy-subrc = .
  77. IF <fs_value> IS NOT INITIAL.
  78. <fs_s_alloc_num>-charact = lv_field.
  79. <fs_s_alloc_num>-value_from = <fs_value>.
  80. <fs_s_alloc_num>-value_to = <fs_value>.
  81. ENDIF.
  82. ELSE.
  83. APPEND INITIAL LINE TO lt_alloc_num ASSIGNING <fs_s_alloc_num>.
  84. <fs_s_alloc_num>-charact = lv_field.
  85. <fs_s_alloc_num>-value_from = <fs_value>.
  86. <fs_s_alloc_num>-value_to = <fs_value>.
  87. ENDIF.
  88. IF <fs_value> EQ .
  89. CLEAR: <fs_s_alloc_num>-value_from,<fs_s_alloc_num>-value_to.
  90. ENDIF.
  91.  
  92. WHEN 'CURR'.
  93. READ TABLE lt_alloc_curr ASSIGNING <fs_s_alloc_curr> WITH KEY charact = lv_field.
  94. IF sy-subrc = .
  95. IF <fs_value> IS NOT INITIAL.
  96. <fs_s_alloc_curr>-charact = lv_field.
  97. <fs_s_alloc_curr>-value_from = <fs_value>.
  98. <fs_s_alloc_curr>-currency_from = 'CNY'.
  99. <fs_s_alloc_curr>-currency_from_iso = 'CNY'.
  100. ENDIF.
  101. ELSE.
  102. APPEND INITIAL LINE TO lt_alloc_curr ASSIGNING <fs_s_alloc_curr>.
  103. <fs_s_alloc_curr>-charact = lv_field.
  104. <fs_s_alloc_curr>-value_from = <fs_value>.
  105. <fs_s_alloc_curr>-currency_from = 'CNY'.
  106. <fs_s_alloc_curr>-currency_from_iso = 'CNY'.
  107. ENDIF.
  108. IF <fs_value> EQ .
  109. CLEAR <fs_s_alloc_curr>-value_from .
  110. ENDIF.
  111. WHEN OTHERS.
  112. ENDCASE.
  113. ENDIF.
  114. ENDLOOP.
  115.  
  116. *--------------------TUS-CHARG-BEGIN---------------------------------*
  117. CALL FUNCTION 'BAPI_OBJCL_CHANGE'
  118. EXPORTING
  119. objectkey = lv_key
  120. objecttable = lv_table
  121. classnum = lv_class
  122. classtype = lv_class_type
  123. status = ''
  124. keydate = sy-datum
  125. IMPORTING
  126. classif_status = lv_status
  127. TABLES
  128. allocvaluesnumnew = lt_alloc_num
  129. allocvaluescharnew = lt_alloc_char
  130. allocvaluescurrnew = lt_alloc_curr
  131. return = lt_return.
  132. *--------------------TUS-CHARG-END-----------------------------------*
  133. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  134. EXPORTING
  135. wait = 'X'.
  136.  
  137. LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'.
  138. ps_rturn = ls_return.
  139. EXIT.
  140. ENDLOOP.
  141.  
  142. ENDFORM. " FRM_EDIT_BATCH
  1.  
  1.  

这个批次可以在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. 5.5.3使用terminfo功能标志

    当使用terminfo时,需要做的第一件事就是调用函数setupterm来设置终端类型.这将为当前的终端类型初始化一个TERMINAL结构.然后,你就可以查看当前终端的功能标志并使用他们的功能了. # ...

  2. Mybatis+struts2+spring整合

    把student项目改造成ssm  struts2 +mybatis+spring 1,先添加spring支持:类库三个,applicationContext.xml写在webinf下四个命名空间,监 ...

  3. ALV详解:Function ALV(二)

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

  4. [ZJOI2006]物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5999  Solved: 2473[Submit][Stat ...

  5. Codeforces Round #379 (Div. 2) C. Anton and Making Potions 二分

    C. Anton and Making Potions time limit per test 4 seconds memory limit per test 256 megabytes input ...

  6. 写XML配置文件时的一个乱码问题

    首先我们用文本文档写一个xml文件如下: <?xml version="1.0" encoding="gb2312"?> <a> < ...

  7. Spring字符集过滤器CharacterEncodingFilter

    Spring中的字符集过滤器可以很方便的为我们解决项目中出现的中文乱码问题,而且使用方法也很简单,只需要在web.xml文件中配置一下该过滤器,设置两个重要的参数(encoding和forceEnco ...

  8. [转载] google mock CheatSheet

    原文: https://code.google.com/p/googlemock/wiki/CheatSheet Defining a Mock Class Mocking a Normal Clas ...

  9. web设计经验<七>13步打造优雅的WEB字体

    今天,大多数浏览器已经默认支持Web字体,日趋增多的字体特性被嵌入最新版HTML和CSS标准中,Web字体即将迎来一个趋于复杂的崭新时代.下面是一些基本的关于字体的规则,特别适用于Web字体. 原文地 ...

  10. mysql Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    错误原因:/var/lib/mysql目录中socket文件不存在.连接mysql服务器有两种方式:tcp连接,通过socket文件连接.通过socket文件,启动mysql服务,mysql服务会自动 ...