SAP中ABAP的生产订单调用BAPI进行投料BAPI_GOODSMVT_CREATE(根据生产订单号进行投料,可以修改物料数量)
REPORT z0304.
"定义需要使用的表
TABLES: afko,resb.
*生产订单收货的bapi所用结构
DATA: mat_doc LIKE bapi2017_gm_head_ret-mat_doc,"物料凭证号
itpt LIKE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,"明细表
gmhead LIKE bapi2017_gm_head_01,"头结构
gmcode LIKE bapi2017_gm_code,"头结构
mthead LIKE bapi2017_gm_head_ret,"输出结构
berrmsg LIKE TABLE OF bapiret2 WITH HEADER LINE."输出信息
"定义需要使用的类型池
TYPE-POOLS:slis,truxs.
DATA: BEGIN OF it_display OCCURS 0,
aufnr LIKE afko-aufnr,"生产订单编号
werks LIKE resb-werks,"工厂
lgort LIKE resb-lgort,"库存地点
matnr LIKE resb-matnr,"物料号码
bdmng LIKE resb-bdmng."数量
DATA: END OF it_display.
DATA:it_resb LIKE TABLE OF it_display WITH HEADER LINE.
"开始时候屏幕上显示的 查询条件的 输入框
SELECT-OPTIONS:
"生产订单号
aufnr FOR afko-aufnr.
"设定屏幕事件
START-OF-SELECTION.
"查询收货所需要的字段
SELECT *
FROM afko AS a
INNER JOIN resb AS b ON a~rsnum = b~rsnum
APPENDING CORRESPONDING FIELDS OF TABLE it_resb
WHERE a~aufnr IN aufnr.
"循环读取表中数据添加到bapi的明细表中(根据自己所需进行增删改明细)
LOOP AT it_resb.
CLEAR:itpt.
itpt-move_type = '261'."移动类型
itpt-plant = it_resb-werks."工厂
itpt-stge_loc = it_resb-lgort."库位
itpt-material = it_resb-matnr."物料号
itpt-entry_qnt = it_resb-bdmng."数量
itpt-orderid = it_resb-aufnr."生产订单
itpt-item_text = '项目文本'."项目文本
APPEND itpt.
ENDLOOP.
"抬头文本
gmhead-header_txt = '抬头文本'."抬头文本
gmhead-pstng_date = sy-datum.."凭证中的过帐日期
gmhead-doc_date = sy-datum.."凭证中的凭证日期
gmcode-gm_code = '03'."代码
"调用bapi
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = gmhead
goodsmvt_code = gmcode
IMPORTING
goodsmvt_headret = mthead
materialdocument = mat_doc
TABLES
goodsmvt_item = itpt
return = berrmsg.
READ TABLE berrmsg WITH KEY type = 'E'.
IF sy-subrc <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
"物料凭证号
MESSAGE mat_doc TYPE 'S'.
ELSE.
MESSAGE berrmsg-message TYPE 'E'.
ENDIF.
SAP中ABAP的生产订单调用BAPI进行投料BAPI_GOODSMVT_CREATE(根据生产订单号进行投料,可以修改物料数量)相关推荐
- SAP中程序间的相互调用,SUBMIT关键字的用法
在ABAP中可以用SUBMIT 关键字来实现程序之间的调用,是很好用的一个关键字 (1)调用另一个程序 比如: SUBMIT ZHR_UPDATE_IT0008. "调用更新信息类型0008 ...
- SAP中ABAP开发常用bapi
有些订单SAP提供了Function和BAPI两种方式创建.修改订单,我们建议使用BAPI方式,BAPI会有一些逻辑的检查. 1.MM模块 MM01.MM02 BAPI ...
- SAP中ABAP格式与JSON格式互转方法研究
一.JSON概念 JSON(JavaScript Object Notation) 是一种轻量级的 数据交换 格式. JSON数据格式示例: { "学生": [ {"姓名 ...
- SAP 中 Webservice的发布和调用过程。
20180620 新建程序测试Webservice 服务.REPORT YTEST_WEBSERVICE_N .DATA LS_CONSUMER TYPE REF TO ZCL_CO_ZWS_ZPPT ...
- SAP中ABAP编辑器快捷键及文字大小设置一览
ABAP编辑器没有我们所熟悉的IDE,VSCODE等编辑器那么好用,它的快捷键也很少. 一.快捷键 快捷键 功能 Ctrl + , 一次性注释多行 先选中要注释代码行 Ctrl + . 一次性去掉多行 ...
- SAP中 ABAP 中 跳转到指定事务代码界面2种方式
第一种:调用 TH_CREATE_MODE SET PARAMETER ID 'AUN' FIELD '1'. CALL FUNCTION 'TH_CREATE_MODE' EXPORTING ...
- 【转载】增强中调用BAPI并COMMIT使用
目前有这样一个需求,在销售交货单交货过账后,同时产生一个会计凭证.以前试过在增强程序"MV50AFZ1 "的"USEREXIT_SAVE_DOCUMENT"方法 ...
- SAP中序时账导出操作过程指导
序时账解释:序时账也叫日记账(Journal),是按照经济业务发生的时间先后顺序逐日逐笔登记的账簿. 在SAP中序时账可理解为所有会计凭证的集合.企业日常生产经营通常不会产生导出序时账的需求.该需求通 ...
- SAP中实例展示采购收货价格舍入差
在采购处理过程中,收货按照采购订单中的价格来计算.通过本例展示一下及记录说明一下舍入差是怎生产生的? 简单来说,舍入差就是由于系统处理的限制(SAP可处理小数点后两位)导致计算时四舍五入后出现的差异. ...
最新文章
- 微服务之consul(一)
- Java基本语法(15)--while循环结构do-while循环结构
- apache 编译php mysql_apache静/动态编译在apache+php+mysql应用
- ODBC、OLEDB、ADO的区别和联系
- ListView IllegalStateException
- Julia :HDF5数据文件读写与更新
- 矩阵转置与矩阵相乘数学理解及Java实现
- Django 使用 squashmigrations 合并 migration 文件
- Go语法·类型选择(type switch)
- 数组公式和普通公式,差别在于思维方式的不同! 要用看数组的方式看待数据
- CG100具体功能介绍
- 西安工业大学计算机学院科协,卢文科
- AltiumDesigner下载安装
- c++学习笔记- 自制魔兽显血改键
- 牛客支招 | 面试时,如何在线考核程序员代码能力?
- ImageJ如何数值化色谱图
- ffmpeg实例,alphamerge实现溶图效果
- java0606-homework
- 【Linux网络编程】TCP带外数据
- IBeacon技术使如何实现室内蓝牙定位?室内蓝牙定位真的如此简单?