Jerry的SAP One Order框架重构的几版代码
时间:2022-06-22
本文章向大家介绍Jerry的SAP One Order框架重构的几版代码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.blog.csdn.net/article/details/87894832
关于SAP One Order重构的介绍,请参考我的文章:
Hello World, S/4HANA for Customer Management 1.0
我的第一版:
FIELD-SYMBOLS: <global_to_insert> TYPE ANY TABLE,
<global_to_update> TYPE ANY TABLE,
<global_to_delete> TYPE ANY TABLE.
LOOP AT it_header_guid_to_save INTO iv_single_header_guid.
lt_supported_component = get_component_by_guid( iv_single_header_guid).
LOOP AT lt_supported_component INTO ls_supported_component.
lv_convert_class = get_conv_class_by_comp( ls_supported_component-name).
CHECK lv_convert_class IS NOT INITIAL.
CALL METHOD lo_convertor->convert_1o_to_s4
EXPORTING
iv_ref_guid = iv_single_header_guid
iv_ref_kind = 'A'
CHANGING
ct_to_insert = <global_to_insert>
ct_to_update = <global_to_update>
ct_to_delete = <global_to_delete>.
ENDLOOP.
ENDLOOP.
CALL FUNCTION 'CRM_SRVO_H_UPDATE_DU' IN UPDATE TASK
EXPORTING
it_to_insert = <global_to_insert>
it_to_update = <global_to_update>
it_to_delete = <global_to_delete>.
和首席架构师Carsten讨论后的第二版:
FIELD-SYMBOLS: <global_to_insert> TYPE ANY TABLE,
<global_to_update> TYPE ANY TABLE,
<global_to_delete> TYPE ANY TABLE.
LOOP AT it_header_guid_to_save INTO iv_single_header_guid.
lt_supported_component = get_component_by_guid( iv_single_header_guid).
LOOP AT lt_supported_component INTO ls_supported_component.
lv_convert_class = get_conv_class_by_comp( ls_supported_component-name).
CHECK lv_convert_class IS NOT INITIAL.
CALL METHOD lo_convertor->convert_1o_to_s4
EXPORTING
iv_ref_guid = iv_single_header_guid
iv_ref_kind = 'A'
CHANGING
cs_workarea = ls_local_change.
CALL METHOD merge_local_change_2_global
EXPORTING
is_local_change = ls_local_change
CHANGING
ct_to_insert = <global_to_insert>
ct_to_update = <global_to_update>
ct_to_delete = <global_to_delete>.
ENDLOOP.
ENDLOOP.
CALL FUNCTION 'CRM_SRVO_H_UPDATE_DU' IN UPDATE TASK
EXPORTING
it_to_insert = <global_to_insert>
it_to_update = <global_to_update>
it_to_delete = <global_to_delete>.
2017年5月15号的第三版,非常接近最终版了:
FIELD-SYMBOLS: <global_to_insert> TYPE ANY TABLE,
<global_to_update> TYPE ANY TABLE,
<global_to_delete> TYPE ANY TABLE.
LOOP AT it_header_guid_to_save INTO iv_single_header_guid.
lt_supported_component = get_component_by_guid( iv_single_header_guid).
LOOP AT lt_supported_component INTO ls_supported_component.
lv_convert_class = get_conv_class_by_comp( ls_supported_component-name).
CHECK lv_convert_class IS NOT INITIAL.
CALL METHOD lo_convertor->convert_1o_to_s4
EXPORTING
iv_ref_guid = iv_single_header_guid
iv_ref_kind = 'A'
CHANGING
cs_workarea = ls_whole_header_change. ---- new header work area!!!
ENDLOOP.
CASE mv_header_change_mode.
WHEN ‘A’.
INSERT ls_whole_header_change INTO TABLE <global_to_insert>.
WHEN ‘B’.
INSERT ls_whole_header_change INTO TABLE <global_to_update>.
WHEN ‘D’.
INSERT ls_whole_header_change INTO TABLE <global_to_delete>.
ENDCASE.
ENDLOOP.
CALL FUNCTION 'CRM_SRVO_H_UPDATE_DU' IN UPDATE TASK
EXPORTING
it_to_insert = <global_to_insert>
it_to_update = <global_to_update>
it_to_delete = <global_to_delete>.
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 实战远程文件同步(Remote File Sync)
- nginx cache的玩法
- PHP共享内存详解 前言
- 为了--force-pivoting参数,我问候了sqlmap开发者
- flexible array柔性数组、不定长的数据结构Struct详解
- 如何优雅打印nginx header和body
- Go的CSP并发模型实现:M, P, G
- Golang依赖管理工具:glide从入门到精通使用
- Redis的Multi的内幕真相
- shell expect权威指南和实战
- 3种方式限制ip访问Oracle数据库
- 服务发现之consul的介绍、部署和使用
- Mybatis处理查询map 为null 导致查询map无该key对象
- 深入对比TOML,JSON和YAML
- consul配置参数大全、详解、总结