入库过账

FUNCTION ZPP_BAPI_PRODUCT_STOCK_IN.
*"----------------------------------------------------------------------
*"*"本地接口:
*" EXPORTING
*" VALUE(CZ_MESS) TYPE CHAR40
*" TABLES
*" INPUT STRUCTURE ZPP_BAPI_PRODUCT_STOCK_INPUT
*" OUTPUT STRUCTURE ZPP_BAPI_PRODUCT_STOCK_OUTPUT
*"---------------------------------------------------------------------- DATA: GOODSMVT_HEADER TYPE BAPI2017_GM_HEAD_01,
GOODSMVT_CODE TYPE BAPI2017_GM_CODE,
GOODSMVT_HEADRET TYPE BAPI2017_GM_HEAD_RET,
MATERIALDOCUMENT TYPE BAPI2017_GM_HEAD_RET-MAT_DOC,
MATDOCUMENTYEAR TYPE BAPI2017_GM_HEAD_RET-DOC_YEAR,
GOODSMVT_ITEM TYPE STANDARD TABLE OF BAPI2017_GM_ITEM_CREATE,
GOODSMVT_SERIALNUMBER TYPE STANDARD TABLE OF BAPI2017_GM_SERIALNUMBER,
RETURN TYPE STANDARD TABLE OF BAPIRET2 ,
W_CRETURN TYPE BAPIRET2,
W_GOODSMVT_ITEM TYPE BAPI2017_GM_ITEM_CREATE,
W_GOODSMVT_SERIALNUMBER TYPE BAPI2017_GM_SERIALNUMBER,
W_RETURN TYPE BAPIRET2.
* 接口调用日志
DATA: LT_LOG TYPE STANDARD TABLE OF ZZT_INFLOG,
LW_LOG TYPE ZZT_INFLOG. CLEAR:GOODSMVT_HEADER,
GOODSMVT_CODE,
GOODSMVT_HEADRET,
MATERIALDOCUMENT,
MATDOCUMENTYEAR,
GOODSMVT_ITEM ,
RETURN,W_RETURN,
GOODSMVT_SERIALNUMBER,
W_GOODSMVT_SERIALNUMBER."LT_TPMSG,LT_RETMSG. REFRESH:GOODSMVT_ITEM,RETURN,GOODSMVT_SERIALNUMBER.
"事物码
GOODSMVT_CODE-GM_CODE = ''. "MB31
* **********gm_code取值含义*******
* *******01 MB01
* *******02 MB31
* *******03 MB1A
* *******04 MB1B
* *******05 MB1C
* *******06 MB11
* *******07 MB04
"头
GOODSMVT_HEADER-HEADER_TXT = INPUT-BKTXT.
GOODSMVT_HEADER-PSTNG_DATE = SY-DATUM.
GOODSMVT_HEADER-DOC_DATE = SY-DATUM.
"明细
DATA:LV_ENTRY_QNT TYPE I.
CLEAR: LV_ENTRY_QNT,INPUT.
LV_ENTRY_QNT = LINES( INPUT ).
READ TABLE INPUT INDEX .
IF SY-SUBRC EQ .
W_GOODSMVT_ITEM-MOVE_TYPE = ''.
W_GOODSMVT_ITEM-STCK_TYPE = 'F'.
W_GOODSMVT_ITEM-MVT_IND = 'F'.
W_GOODSMVT_ITEM-PLANT = INPUT-WERKS.
W_GOODSMVT_ITEM-ORDERID = INPUT-AUFNR.
W_GOODSMVT_ITEM-ENTRY_QNT = LV_ENTRY_QNT.
*** 生产订单信息
SELECT SINGLE PWERK LGORT MATNR MEINS
INTO (W_GOODSMVT_ITEM-PLANT,W_GOODSMVT_ITEM-STGE_LOC,W_GOODSMVT_ITEM-MATERIAL,W_GOODSMVT_ITEM-ENTRY_UOM)
FROM AFPO
WHERE AUFNR = INPUT-AUFNR. APPEND W_GOODSMVT_ITEM TO GOODSMVT_ITEM.
ENDIF.
*** 称重数据更新
IF INPUT-SERNR IS INITIAL AND INPUT-BRGEW IS INITIAL AND INPUT-GEWEI IS INITIAL.
CZ_MESS = 'E:序列号 或 重量 或 单位为空!'.
ELSE.
UPDATE EQUI SET AEDAT = SY-DATUM
AENAM = SY-UNAME
BRGEW = INPUT-BRGEW
GEWEI = INPUT-GEWEI
WHERE EQUNR = INPUT-SERNR.
IF SY-SUBRC EQ .
CZ_MESS = 'S:产品重量数据传输成功!'.
COMMIT WORK.
ELSE.
CZ_MESS = 'E:产品重量数据传输失败!'.
ENDIF.
ENDIF. LOOP AT INPUT.
W_GOODSMVT_SERIALNUMBER-MATDOC_ITM = ''.
W_GOODSMVT_SERIALNUMBER-SERIALNO = INPUT-SERNR.
APPEND W_GOODSMVT_SERIALNUMBER TO GOODSMVT_SERIALNUMBER.
ENDLOOP. "执行操作
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = GOODSMVT_HEADER
GOODSMVT_CODE = GOODSMVT_CODE
IMPORTING
GOODSMVT_HEADRET = GOODSMVT_HEADRET
MATERIALDOCUMENT = MATERIALDOCUMENT
MATDOCUMENTYEAR = MATDOCUMENTYEAR
TABLES
GOODSMVT_ITEM = GOODSMVT_ITEM
GOODSMVT_SERIALNUMBER = GOODSMVT_SERIALNUMBER
RETURN = RETURN
. READ TABLE RETURN WITH KEY TYPE = 'E' INTO W_RETURN.
IF SY-SUBRC <> . CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
IF MATERIALDOCUMENT IS NOT INITIAL.
OUTPUT-FLAG = 'S'.
OUTPUT-NOTES = '成品入库成功!'.
OUTPUT-MBLNR = MATERIALDOCUMENT.
APPEND OUTPUT.
ENDIF.
***填写日志
CLEAR LW_LOG.
LW_LOG-INTTY = 'SI'.
LW_LOG-DIRECT = ''.
LW_LOG-INFTX = '扫码自动入库&更新重量'.
LW_LOG-OKEY1 = MATERIALDOCUMENT.
LW_LOG-OKEY2 = CZ_MESS.
LW_LOG-IKEY1 = INPUT-AUFNR.
LW_LOG-IKEY2 = INPUT-WERKS.
LW_LOG-IKEY3 = INPUT-SERNR.
LW_LOG-IKEY4 = INPUT-BRGEW.
LW_LOG-LOGST = 'S'. "日志状态
LW_LOG-LOGTX = '成品扫码入库成功!'. "日志文本
LW_LOG-CAFUN = 'ZPP_BAPI_PRODUCT_STOCK_IN'. "调用函数
APPEND LW_LOG TO LT_LOG.
CLEAR OUTPUT.
ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. OUTPUT-FLAG = 'E'.
CONCATENATE '成品入库失败:' W_RETURN-MESSAGE INTO OUTPUT-NOTES.
APPEND OUTPUT. CLEAR LW_LOG.
LW_LOG-INTTY = 'SI'.
LW_LOG-DIRECT = ''.
LW_LOG-INFTX = '扫码自动入库&更新重量'.
* LW_LOG-OKEY1 = .
LW_LOG-OKEY2 = CZ_MESS.
LW_LOG-IKEY1 = INPUT-AUFNR.
LW_LOG-IKEY2 = INPUT-WERKS.
LW_LOG-IKEY3 = INPUT-SERNR.
LW_LOG-IKEY4 = INPUT-BRGEW.
LW_LOG-LOGST = 'E'. "日志状态
LW_LOG-LOGTX = OUTPUT-NOTES. "日志文本
LW_LOG-CAFUN = 'ZPP_BAPI_PRODUCT_STOCK_IN'. "调用函数
APPEND LW_LOG TO LT_LOG.
CLEAR OUTPUT.
ENDIF. IF INPUT[] IS NOT INITIAL.
CALL FUNCTION
TABLES
IT_LOG = LT_LOG
.
IF SY-SUBRC EQ .
COMMIT WORK.
ENDIF.
ENDIF.
CLEAR:INPUT[]. ENDFUNCTION.

成品入库过账bapi的更多相关文章

  1. VL02N发货过账BAPI

    使用BAPI函数: BAPI_OUTB_DELIVERY_CONFIRM_DEC 进行delivery的发货过账,可能会有如此的需求,就是修改实际的发货日期.规划的GI.交货日期.装载日期.传输计划日 ...

  2. PDA手持终端在ERP系统仓库管理出入库盘点环节的应用

    PDA手持终端在ERP系统仓库管理出入库盘点环节的应用 传统库存管理的数据录入过程,常采用PC机录入数据,或在电脑上结合条码枪扫描条码进行管理(非实时),造成管理上的不便.因而,采用无线(WIFI)手 ...

  3. SAP 物料 移动类型

    [转自 http://blog.sina.com.cn/s/blog_494f9a6b0102edf7.html] SAP 物料 移动类型 (2013-12-03 10:15:01) 转载▼   分类 ...

  4. 供应链需求调研CheckList

    总体(General) 基本情况 1.    企业地址.邮编.电话.传真,项目联系人等基本资料. 2.    企业经营范围,产品线和主导产品. 3.    企业近几年的产值及销售额. 4.    企业 ...

  5. SIMATIC IT HISTORIAN在烟用二醋酸纤维素生产中应用

    原文转载自:http://www.soft6.com/tech/5/54287.html 本文介绍了西门子MES核心产品SIMATIC IT HISTORIAN实时数据库及客户端工具在流程生产中的具体 ...

  6. openerp经典收藏 OpenERP库存管理的若干概念讲解(新增库存价值)(转载)

    OpenERP库存管理的若干概念讲解(新增库存价值) 原文:http://shine-it.net/index.php/topic,2425.0/topicseen.html 一.复式库存(Doubl ...

  7. ERP实施规范化及示例——邮件沟通

    上门服务前 上门服务计划,要详细,提前发给客户,反复确定双方的行程 上门服务所需的常规文档(培训SOP,培训记录) 项目组内反复确认本次上门要完成的事项 …… 上门服务中 先跟老板沟通项目进展,本次上 ...

  8. 全网首发! Odoo 订单分解执行及供应链管理免费开源解决方案

    引言 前一篇介绍了佛山王朝家具的案例背景.佛山王朝家具公司在全国有30多家门店,三个生产工厂.王朝家具有六大痛点问题: 订单迫切需要实现电子化管理及在线签名 总部分单工作量大,供应链效率低 配送和售后 ...

  9. 免费下载获取Odoo中文实施 应用 指南 手册

    引言 Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块.Odoo适用于各种规 ...

随机推荐

  1. java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186646784)(ERR=12505)(ERR

    dbc 链接orcal出错 java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186646784)( ...

  2. 在JSP中使用BootStrap

    1. 下载BootStrap,然后再Jsp标签中添加如下标签: <html> <head lang="zh-cn"> <meta charset=&q ...

  3. java 使用正则表达式从网页上提取网站标题

    如何从网页上抓取有价值的东西?看懂了下面的程序(非常简单),想从网页上抓取什么信息(标题.内容.Email.价格等)就能抓取什么信息. package catchhtml; import java.i ...

  4. XBMC 最新版本错误

    1. Syntax error: "(" unexpected 修改 tools/depends下的makefile.include 将NDK_VER=0x9d

  5. access to modified closure 闭包的问题

    ; i < listBoxDevices.Items.Count; i++) { var tempDeviceId = listBoxDevices.Items[i].ToString(); i ...

  6. poj3037

    首先到每个点的速度实际上是一个定值,就是v0*2^(起点与当前点高度差) 所以当前点i到任意一个相邻点的时间都是一个定值, 不难想到构图最短路径 ..] ,,,);       dy:..] ,,-, ...

  7. WordPress 3.5.1远程代码执行漏洞

    漏洞版本: WordPress 3.5.1 漏洞描述: WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL 数据库的服务器上架设自己的网志.也可以把 WordPre ...

  8. 【 D3.js 选择集与数据详解 — 1 】 使用datum()绑定数据

    选择集和数据的关系是 D3 最重要的基础,在[入门 - 第 7 章]时进行过些许讲解,对于要掌握好 D3 是远远不够的.故此开设一个新的分类,专门讨论选择集与数据的关系,包括数据绑定的使用和工作原理, ...

  9. Mac OS X 10.10(yosemite)更新后,cocoapods出错, 及cocoapods更新至0.34后, 错误情况整理

    1:Mac升级10.10后,执行pod install出错如下 QTX-Will-mini:NewHishop willbin$ pod install [!] Unable to load a sp ...

  10. RMAN综合学习之备份

    rman是最经济实惠的oracle备份工具,在这里做一个rman的整体学习. 文章中大多是rman命令的语法,还是最好做做实验,以便印象深刻,因为大多数数据库的备份就是按时跑脚本,恢复也不是经常能遇到 ...