MIGO生产订单入库写入批次特性增强
一、生产订单入库
MIGO根据生产订单入库时,将生产订单中的字段,写入到批次特性中
二、BADI:MB_MIGO_BADI
调用BADI中的IF_EX_MB_MIGO_BADI~POST_DOCUMENT方法
"-----------------------------------------@斌将军--------------------------------------------
METHOD if_ex_mb_migo_badi~post_document.
"MIGO生产订单入库时产品编号写入批次特性 DATA: ls_mseg TYPE mseg.
DATA: lv_object TYPE bapi1003_key-object.
DATA:gv_objek TYPE cuobn,
gs_objek TYPE bapi1003_key-object,
gv_obtab TYPE tabelle,
gv_klart TYPE klassenart,
gv_class TYPE klasse_d, objectkey TYPE bapi1003_key-object,
gs_objectkeytable TYPE bapi1003_object_keys,
gt_objectkeytable TYPE STANDARD TABLE OF bapi1003_object_keys, gt_values_char TYPE TABLE OF bapi1003_alloc_values_char,
gs_values_char TYPE bapi1003_alloc_values_char,
gt_values_num TYPE TABLE OF bapi1003_alloc_values_num,
gs_values_num TYPE bapi1003_alloc_values_num,
gt_values_curr TYPE TABLE OF bapi1003_alloc_values_curr,
gs_values_curr TYPE bapi1003_alloc_values_curr,
gs_status TYPE bapi1003_key-status, gt_return TYPE STANDARD TABLE OF bapiret2,
gt_return2 TYPE STANDARD TABLE OF bapiret2,
gt_return3 TYPE STANDARD TABLE OF bapiret2,
gt_return4 TYPE STANDARD TABLE OF bapiret2,
gs_return TYPE bapiret2. DATA:return_message TYPE char200, "返回消息
lv_value TYPE char70,
lv_check TYPE char2. IF it_mseg[] IS NOT INITIAL.
SELECT
aufnr,
zgh,
zxz
FROM aufk
INTO TABLE @DATA(lt_aufk)
FOR ALL ENTRIES IN @it_mseg
WHERE aufnr = @it_mseg-aufnr.
ENDIF. LOOP AT it_mseg INTO ls_mseg WHERE charg IS NOT INITIAL
AND aufnr IS NOT INITIAL AND bwart = '101'
AND ( werks = 'XXXX' OR werks = 'XXXX' ). READ TABLE lt_aufk INTO DATA(ls_aufk) WITH KEY aufnr = ls_mseg-aufnr.
IF sy-subrc EQ 0.
CLEAR:gv_objek,gv_obtab,gv_klart,gv_class.
CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'
EXPORTING
i_matnr = ls_mseg-matnr
i_charg = ls_mseg-charg "批次
i_werks = ls_mseg-werks
IMPORTING
e_objek = gv_objek
e_obtab = gv_obtab
e_klart = gv_klart
e_class = gv_class. IF gv_objek IS INITIAL AND gv_obtab IS INITIAL AND gv_klart IS INITIAL AND gv_class IS INITIAL.
return_message = '批次维护失败:未查询到相关类别'.
MESSAGE e001(00) WITH return_message.
ENDIF. "当批次创建成功,获取物料和批次,获取key值
FREE:gt_objectkeytable.
CLEAR : gs_objectkeytable.
gs_objectkeytable-key_field = 'MATNR'.
gs_objectkeytable-value_int = ls_mseg-matnr."物料
APPEND gs_objectkeytable TO gt_objectkeytable. CLEAR : gs_objectkeytable.
gs_objectkeytable-key_field = 'WERKS'.
gs_objectkeytable-value_int = ls_mseg-werks.
APPEND gs_objectkeytable TO gt_objectkeytable. CLEAR : gs_objectkeytable.
gs_objectkeytable-key_field = 'CHARG'.
gs_objectkeytable-value_int = ls_mseg-charg.
APPEND gs_objectkeytable TO gt_objectkeytable. FREE gt_return.
CLEAR:objectkey.
CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY'
EXPORTING
objecttable = gv_obtab "表名
IMPORTING
objectkey_conc = objectkey
TABLES
objectkeytable = gt_objectkeytable
return = gt_return. LOOP AT gt_return INTO gs_return WHERE type CA 'EAX'.
return_message = '批次维护失败:未查询到分类密钥'.
MESSAGE e001(00) WITH return_message.
ENDLOOP. "获取特征
REFRESH:gt_values_num[], gt_values_char[], gt_values_curr[],gt_return[].
gs_objek = objectkey.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
objectkey = gs_objek
objecttable = gv_obtab
classnum = gv_class
classtype = gv_klart
* IMPORTING
* status = gs_status
TABLES
allocvaluesnum = gt_values_num
allocvalueschar = gt_values_char
allocvaluescurr = gt_values_curr
return = gt_return. READ TABLE gt_values_char ASSIGNING FIELD-SYMBOL(<fs_char>) WITH KEY charact = 'ZPP_ZGH'.
IF sy-subrc EQ 0.
CLEAR:lv_value.
lv_value = ls_aufk-zgh.
<fs_char>-value_char = lv_value.
<fs_char>-value_neutral = lv_value.
<fs_char>-value_char_long = lv_value.
<fs_char>-value_neutral_long = lv_value.
ELSE.
CLEAR gs_values_char.
gs_values_char-charact = 'ZPP_ZGH'."产品编号
gs_values_char-value_char = ls_aufk-zgh.
APPEND gs_values_char TO gt_values_char.
ENDIF. READ TABLE gt_values_char ASSIGNING <fs_char> WITH KEY charact = 'ZPP_ZXZ'.
IF sy-subrc EQ 0.
CLEAR:lv_value.
lv_value = ls_aufk-zxz.
<fs_char>-value_char = lv_value.
<fs_char>-value_neutral = lv_value.
<fs_char>-value_char_long = lv_value.
<fs_char>-value_neutral_long = lv_value.
ELSE.
CLEAR gs_values_char.
gs_values_char-charact = 'ZPP_ZXZ'."行走机构编号
gs_values_char-value_char = ls_aufk-zxz.
APPEND gs_values_char TO gt_values_char.
ENDIF. "更新特征值
FREE:gt_return.
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
EXPORTING
objectkey = objectkey
objecttable = gv_obtab
classnum = gv_class
classtype = gv_klart
* status = gs_status
TABLES
allocvaluesnumnew = gt_values_num
allocvaluescharnew = gt_values_char
allocvaluescurrnew = gt_values_curr
return = gt_return. lv_check = 'S'.
return_message = '批次维护失败:'.
LOOP AT gt_return INTO gs_return WHERE type CA 'AEX'.
CONCATENATE return_message gs_return-message INTO return_message.
lv_check = 'E'.
CLEAR:gs_return.
ENDLOOP. IF lv_check = 'S'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
MESSAGE e001(00) WITH return_message.
ENDIF.
ENDIF.
ENDLOOP. ENDMETHOD.
"-----------------------------------------@斌将军--------------------------------------------
MIGO生产订单入库写入批次特性增强的更多相关文章
- PP生产订单的BADI增强 WORKORDER_UPDATE
METHOD if_ex_workorder_update~before_update. *---------------------->增强1 开始* "当生产订单类型为PP01时, ...
- S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析
题目这个增强的输入参数很恐怖,长长的一串: CALL BADI l_badi->BEFORE_UPDATE EXPORTING IT_PIINSTRUCTIONVALUE = IT_PIINST ...
- 增强篇4 CO01生产订单屏幕增强
Step1. 结构 CO_AUFK 里增加自定义字段:ZZZ_TRIAL 然后激活结构 查看AUFK是激活状态, 字段增强完成: Step2. CMOD 使用客户增强:PPCO0012 生产订 ...
- PP生产订单创建、下达、报工、收货、投料
转自http://blog.sina.com.cn/s/blog_69fb8eb60102vpjd.html SAP 物料订单创建.下达.报工.收货与投料(ABAP代码) (2015-06-03 22 ...
- SAP生产订单状态
SAP系统的常见订单状态如下: · CRTD (创建):标识生产订单刚刚创建,此时禁止做后续发料和报工确认等操作: · PREL (部分下达):当生产订单部分下达时,如仅下 ...
- SAP 生产订单变更管理 OCM Order Changement Management
SAP OCM Order Changement Management 一.目的 订单变更管理系统是当我们的订单(生产订单.计划订单.采购订单)已经存在的时候,其物料主数据或销售数据有变更时,我们可 ...
- 为什么S/4HANA的销售订单创建会触发生产订单的创建
调用S/4HANA销售订单创建函数SD_SALES_DOCU_MAINTAIN创建一个销售订单时,会触发生产订单的创建. 销售订单的每个行项目对应一个独立的生产订单,SD_SALES_DOCU_MAI ...
- java高级特性增强
第4天 java高级特性增强 今天内容安排: 1.掌握多线程 2.掌握并发包下的队列 3.了解JMS 4.掌握JVM技术 5.掌握反射和动态代理 java多线程增强 .1. java多线程基本知识 . ...
- PP-判断生产订单状态(关闭)
方法一.工单号通过 resb找到对象号 然后找到状态为I0045利用表JEST与TJ02T . 方法二.函数'STATU_CHECK' 检查工单状态为'I0045' 则为已做技术性关闭. READ T ...
- SAP生产订单没有目标成本的原因解释
首先,OKV6察看一下目标成本的配置,默认是当期成本估算,见下图: 其次,没有目标成本的原因还可能是下列原因导致: 1.该物料没有成本估算和发布2.工艺路线维护日期晚于这个物料估算日期3.没有做CO1 ...
随机推荐
- Leetcode回文数
直接上python代码 class Solution: def isPalindrome(self, x: int) -> bool: if x<0: //负数必不是回文数 return ...
- 用友U8和旺店通·企业奇门单据接口对接
用友U8和旺店通·企业奇门单据接口对接 对接系统旺店通·企业奇门 旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力零售企业数字化 ...
- mac中删除本地maven库中下载失败的.lastUpdated文件
在 macOS 中,要删除本地 Maven 仓库中所有的 .lastUpdated 文件,您可以使用 find 命令结合 rm 命令来执行这个操作.这可以在终端(Terminal)中完成. 打开您的终 ...
- Google Colab 现已支持直接使用 🤗 transformers 库
Google Colab,全称 Colaboratory,是 Google Research 团队开发的一款产品.在 Colab 中,任何人都可以通过浏览器编写和执行任意 Python 代码.它尤其适 ...
- 解决URLEncoder.encode 编码空格变 + 号
jdk自带的URL编码工具类 URLEncoder 在对字符串进行URI编码的时候,会把空格编码为 + 号. 空格的URI编码其实是:%20 解决办法:对编码后的字符串,进行 + 号替换为 %20.总 ...
- 从零开始封装 vue 组件
对于学习 Vue 的同学来说,封装 vue 组件是实现代码复用的重要一环.在 Vue 官网中非常详细地介绍了 vue 组件的相关知识,我这里简单摘取使用最频繁的几个知识点,带大家快速入门 vue 组件 ...
- 数字孪生为何需要融合GIS?以智慧城市项目为例说明
数字孪生和地理信息系统(GIS)是两个在现代科技中崭露头角的概念,它们的融合为智慧城市项目带来了革命性的机会.本文将解释数字孪生为何需要融合GIS,并以智慧城市项目为例进行说明. 数字孪生是一种虚拟模 ...
- Intellij IDE 对接SVN
1.安装SVN(SVN安装包见附件) 注意安装时需要选择第二个选项进行安装 2.安装SVN中文包(见附件) 安装完成后随便找个文件夹右键确认SVN安装是否生效 3.Intellij IDE得Setti ...
- Kernel Memory 入门系列:异步管道
Kernel Memory 入门系列:异步管道 前面所介绍的处理流程都是基于同步管道的,即文档导入的时候,会等到文档处理完成之后才会返回. 但是在实际的应用中,文档很多,而且文档的处理时间也不确定,如 ...
- cookie的一些知识点总结
一.cookie的种类 sessionID 这个ID是会话性的,只要关闭了当前浏览器,这个ID会消失,需要调用getSessoin重新获取一个新的session 会话性cookie 这个cookie也 ...