SAP端用于查询某采购组下某供应商待检物料数目的Function

简介: 本文的内容虽然用来描述SAP中采购相关的内容但是由于业余,所以很业余。待检,不清楚是不是SAP中的一个专业术语,反正我们公司的工厂的采购入库,会用到这个概念。你们公司如果拥有一个工厂进行制造,那么很可能会从其他公司采购一些零件,运到你们公司的工厂里进行加工或者组装。

本文的内容虽然用来描述SAP中采购相关的内容但是由于业余,所以很业余。
待检,不清楚是不是SAP中的一个专业术语,反正我们公司的工厂的采购入库,会用到这个概念。
你们公司如果拥有一个工厂进行制造,那么很可能会从其他公司采购一些零件,运到你们公司的工厂里进行加工或者组装。
采购人员向供应商下采购订单,供应商派一辆大货车拉着零件来到你们公司。
大货车司机到了公司门口,就给采购人员打电话:“呆B,你买的货到了,过来点点货。”
然后你们公司的采购人员率领库房的检验人员和大货车司机汇合,一看没问题,采购人员就要登陆SAP系统,对这车货物,对照着单子,进行入库。
入库的过程分为有前后顺序的两步:103入库和105入库。
因为库房分两块:待检库 和 存储库
采购人员确认了大货车司机运来的货物以后,进行103入库,也就是把货物从货车上卸货到 待检库中。
然后采购人员,就该干嘛干嘛去了。
检验人员,这时候接手,按照公司的检验规则,对货物进行抽样检验
如果合格,那么检验人员登陆SAP,进行105入库,也就是把货物从待检库,移动到存储库。
存放在存储库的物料,才能够被工厂的流水线使用。
下面说说具体的编码过程
SAP端进行abap编码,创建Function Group和Function Module,上一片文章已经说过了。
具体代码的逻辑是这样的:
输入参数:采购组+供应商编号+日期+工厂
_
依据EKGRP和LIFNR查询出采购凭证,然后用采购凭证作为输入参数查询采购凭证的历史
_
也就是说,某一个采购凭证里面对应了很多条记录,比如你购买了20个螺丝,供应商可能分三次给你,分别给你10个,2个,8个。
这样虽然你的采购凭证上只有一条记录,但是你的采购凭证历史对应了至少三条收货记录,而且是至少。如下图就是EKBE也就是sap中存放采购凭证历史记录的表。
_
这里面记录的历史,很可能很复杂,比如:
除了分三次给你发货之外,
比如第一次送来的10个货一点问题没有,那么检验人员就会进行105入库,把物料从待检库移动到存储库。
很可能第二次送来的2个货是残次品,你们公司的检验人员给检查出来了,要求直接退货。这时候,虽然采购人员已经103入库,但是检验人员会登陆sap进行104退库,也就是把货物从 待检库中移走。
过了两天,可能发现检验标准变了,需要从新检验,那么检验人员还会再次登陆sap进行106退库,也就是把第一次送来的10个货物,从存储库中,退回待检库。
上述婆婆妈妈的叙述说明,EKBE这个表中的数据很复杂,我们要处理。
我们要获取103+106的数据,减去104减去105,这样计算的结果就是待检库中,这个物料,还剩下几个,也就是待检单上要写的数目。
你可能问,我靠,为什么没有一个字段直接记录一下,待检库中有几个物料不就完了?我怎么知道为什么?反正应该没有这样一个字段。
abap代码怎么处理这部分逻辑,详情就不说了,反正最后会将查询的结果,存放在sap自定义的结构中
也就是function Module的返回值中。
写完abap代码,abaper需要使用事务码se10将代码释放。
这里涉及到sap的基础知识:你们公司的sap系统有几个服务器
通常有三个服务器:
DEV 用于开发,也就是abaper们写代码的地方。
PRD 用于正式生产机,也就是最终代码运行的地方。
QAS 用于校验,也就是,普通低端abaper代码写完se10提交以后,你们公司sap的basis会在生产机上使用事务码stms,将你提交的代码,提交给QAS机验证,然后才能发布到PRD机上。
运行stms事务,长这个样子
_
点击红框中的小汽车按钮,其实它的学名叫做:F5输入概览
就看到了三个服务器
_

SAP中写好了Function Module以后,其实可以测试一下上节已经写了测试方法。但是我们如何在sap的事务码上,验证一下呢?
我们需要找一个供应商,查到它的采购组,然后查一查今天的待检情况,找到一个物料,使用MM03看看它的采购tab,可以看到采购组的情况:
_
那么这个物料的供应商是谁呢?使用事务码ME1M,输入物料号查询一下:
_
采购组这个概念应该是和物料绑定在一起,而不是和供应商绑定的。

目录
相关文章
|
4月前
|
SQL JavaScript 前端开发
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
|
7月前
|
SQL 人工智能 JSON
【AI大模型应用开发】2.2 Function Calling连接外部世界 - 【实战】查询数据库
【AI大模型应用开发】2.2 Function Calling连接外部世界 - 【实战】查询数据库
170 0
|
存储 分布式计算 搜索推荐
ES自定义评分机制:function_score查询详解
ES自定义评分机制:function_score查询详解
1339 0
ES自定义评分机制:function_score查询详解
SAP 解决物料主数据扩展字段无法写入到MARA配置问题详解
配置物料主数据的自建字段(避免创建时传入字段但是无法写入MARA表)
510 0
SAP 库存类物资采购和消耗类物资采购区别
库存类物资采购和消耗类物资采购明明都是标准采购,那么他们的区别又在何处呢??
SAP 更新已过账物料凭证文本
更新已过账物料凭证文本
234 0
SAP采购发票跨期冲销问题的解决方案
笔者在实际工作中用户反馈在月初做上月的采购发票冲销时,冲到了本月,造成供应商上期有余额,询问如何处理?解决后我把解决方案记录下供大家参考!!
SAP采购发票跨期冲销问题的解决方案
SAP 批量更改物料描述
由于公司业务部门需要,向我提出的这个要求,我就在网上查了下,看到了一位知乎的前辈大神写了但是不是特别详细,笔者测试了下,把过程更详细的记录了一下,也挺好用,就在这里记录和分享一下! 比如现在业务部门提出物料主数据中物料描述维护错了,要批量进行修改,而且每个物料这个字段的值是不一样的,此时可以使用MASS事物码通过EXCEL进行批量维护。经常使用MASS将主数据的某个字段修改为相同的值,其实可以使用MASS导入EXCEL进行字段修改,也可将统一字段修改为不同的值,主数据的更改可以不通过LSMW实现。MASS可以实现很多主数据的修改,进入事物码MASS选择对象类型,可实现对不同主数据的更改!
SAP 批量更改物料描述
SAP WM中阶明明设置了TO自动产生为啥冻结物料后没有TO单据产生?
SAP WM中阶明明设置了TO自动产生为啥冻结物料后没有TO单据产生?
SAP WM中阶明明设置了TO自动产生为啥冻结物料后没有TO单据产生?
SAP WM高阶IM层面冻结物料库存过账后WM层面有三个不同的移动类型?
SAP WM高阶IM层面冻结物料库存过账后WM层面有三个不同的移动类型?
SAP WM高阶IM层面冻结物料库存过账后WM层面有三个不同的移动类型?