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 ...
随机推荐
- C语言假设今天是星期日,编写一个程序,求2019天后是星期几。
#include<stdio.h> void main() { int n = 2019, d;//定义变量和常量 d = n % 7;//计算余数 switch (d)//选择星期 { ...
- Proj4:改进LiteOS中物理内存分配算法
Proj4:改进LiteOS中物理内存分配算法 实验目的 掌握LiteOS系统调用的自定义方法 实验环境 Ubantu和IMX6ULL mini 实验内容 (从代码角度详细描述实验的步骤和过程) 原先 ...
- RLHF · PBRL | B-Pref:生成多样非理性 preference,建立 PBRL benchmark
论文题目:B-Pref: Benchmarking Preference-Based Reinforcement Learning,2021 NeurIPS Track Datasets and Be ...
- ES到底是个什么东西
概念:全文检索服务器(是基于Lucene开发的全文检索服务器),它可以近乎实时存储.检索数据,底层仍然是Lucene来实现的所以索引和搜索功能,他的目的是通过的简单的RESTFul API 来隐藏Lu ...
- Kafka集群调优+能力探底
一.前言 我们需要对4个规格的kafka能力进行探底,即其可以承载的最大吞吐:4个规格对应的单节点的配置如下: 标准版: 2C4G 铂金版: 4C8G 专业版: 8C16G 企业版: 16C32G 另 ...
- 通信技术 Communication
缩写 全称 翻译 备注 I2C Inter-Integrated Circuit 集成电路总线 通信协议 SPI Serial Peripheral Interface 串行外设接口 通信协议 QSP ...
- Ubuntu 22.04 LTS 安装lnmp
Ubuntu 22.04 LTS 安装最新稳定版本nginx.mysql5.7和php7.2 全部apt-get安装,就是快,迅速.前提是需要在有网络环境的情况下哈!! 操作系统版本:Ubuntu 2 ...
- Python——第四章:迭代器(Iterators)
迭代器iterator: 提到迭代器,最典型的就是for循环 for 变量 in 可迭代: pass 可迭代对象iterable: 是指可以使用 for 循环进行遍历的对象.除了字符串 (str).列 ...
- Ubuntu安装Maridb 10.5版本
以20.04版本为例 Ubutun20.04自带源默认安装的mariadb版本为10.3不符合安装zabbix6.0的要求 打开MariaDB的官方网站:https://mariadb.org/mar ...
- android Handler应用
android在运行时改变ui需要在ui线程中修改才行,不然就会报错或者无法启动应用. 我们怎么可以做事不管呢? 既然不能在ui线程外的地方运行修改ui的代码,我们可以用Handler解决这个问题, ...