入库过账

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. Handlebars 介绍

    最新项目用到了Ember.js前端框架,第一次使用这样的框架,准备国庆节花2天时间,研究一下它的用法. Ember框架的模板引擎用到了handlebars, 先看国外的一篇介绍文章:An Introd ...

  2. linux登录后出现_bash-4.1#终端提示符异常

    如果使用root用户登录出现上述提示,则需要需要重建 /root .bash_profile文件: 1. vi /root .bash_profile 2. 输入如下内容 # .bashrc # Us ...

  3. 【NOIP 2012 国王游戏】 贪心+高精度

    题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 成一排,国王站在队伍 ...

  4. 使用NSURLSession实现断点续传

    在sb中创建按钮,并且连线到.m文件中

  5. 快速扫描文本文件,统计行数,并返回每一行的索引位置(Delphi、C#)

    由项目需要,需要扫描1200万行的文本文件.经网友的指点与测试,发现C#与Delphi之间的差距并不大.不多说,列代码测试: 下面是Delphi的代码: //遍历文件查找回车出现的次数 functio ...

  6. VC 无标题栏对话框移动(在OnLButtonDown里再次发送消息)

    操作系统:Windows 7软件环境:Visual C++ 2008 SP1本次目的:实现无框移动 所谓的无标题栏对话框,是基于对话框的工程,对话框属性Border设置为None,对话框如下所示: 为 ...

  7. 自定义NavigationView's item 的高度

    http://stackoverflow.com/questions/31204320/how-can-i-change-the-navigationviews-item-text-size 自定义s ...

  8. Android 图片从网页中获取并动态加载到listview中

    实现功能: 效果图: 代码:这里

  9. 【原创】FPGA开发手记(二) VGA接口

    以下内容均以Xilinx的Nexys3作为开发板 1.VGA接口介绍 首先,先看电路图(3*5为例): 标准VGA一共15个接口,但是实际应用的接口信号只用五个:HSYNC,行同步信号:VSYNC,场 ...

  10. php include include_once require require_once 的区别与联系

    一.require 与 include 的区别: The require() function is identical to include(), except that it handles er ...