浅谈函数模块增强程序系统(需求计划订单生产物料)

浅谈函数模块增强程序系统(需求计划订单生产物料)

本文主要介绍A作者在各项目及业务支持过程中常用的函数等,汇总了一段时期所做开发文档,选择主要部分对函数的功能、使用方法等进行一个简单的说明。
( 一) 生产 BOM 相关先介绍与生产 BOM 查询有关的函数,而查询主要分为正查和反查,正查 BOM 是模拟事务代码 CS12 那样的多层展开,而反查 BOM 则是模拟 CS15。
1 正查 BOM函数:CS_BOM_EXPL_MAT_V2功能:BOM 展开关键参数说明:IMPORT:CAPID :Application ID(BOM 应用程序)DATUV :Validity date(有效开始日)EMENG :Required quantity(需求数量)MEHRS :Multi-level explosion(X:BOM 多层展开;空:单层展开)MTNRV :Material(物料专用号)STLAN :BOM usage (BOM 用途)STLAL :Alternative BOM(BOM 可选)WERKS :Plant(工厂)TOPMAT:抬头明细STB:BOM 子件行项目明细,包含子件编码、子件描述、子件物料类型、需求数量等MATCAT:BOM 下挂 E 类型且带子件的半成品明细。
另一个函数“CS_BOM_EXPLOSION_MAT”,其功能及关键参数与上面介绍的函数CS_BOM_EXPL_MAT_V2 差不多,在此就不展开介绍了。
2 反查 BOM函数:CS_WHERE_USED_MAT功能:单层反查物料 BOM关键参数说明:IMPORT:DATUB :Date 'valid to'(有效日期至)DATUV :Date 'valid from'(有效日期从)MATNR :Material(物料专用号)STLAN :BOM usage(BOM 用途)WERKS :Plant(工厂)TOPMAT:抬头明细表WULTB:反查出的子件上层物料明细,包含上层编码、上层编码描述、上层需求数量(默认是 BOM抬头基本数量)、子件需求数量等。
MATCAT:反查出的子件上层物料明细(按物料号汇总后的结果)3 BOM 删除函数:CSAP_MAT_BOM_DELETE功能:物料 BOM 删除关键参数说明:IMPORT:MATERIAL :Material(物料)PLANT :Plant(工厂)BOM_USAGE :BOM Usage(BOM 用途)ALTERNATIVE :Alternative BOM(BOM 可选)VALID_FROM :Valid-from date(有效起始日期)CHANGE_NO :Change number(BOM 更改号)注:上述函数功能强大,在没有启用 ECM 的情况下,需要慎用,在进行调用开发时,建议至少将 MATERIAL、PLANT、BOM_USAGE、ALTERNATIVE 这四个字段对应的输入项设置成必填。
( 二) 生产订单相关本小节将挑选三个具有代表性的 BAPI 进行简要介绍,希望对读者起到抛砖引玉的作用。
4 生产订单查询BAPI: BAPI_PRODORD_GET_LIST功能:生产订单抬头信息查询关键参数说明:输入TABLE:ORDER_NUMBER_RANGESIGN:范围包含标识符,I(包含范围),E(排除范围)OPTION:操作运算符EQ:等于NE:不等GT:大于GE:大于等于LE:小于等于LT:小于BT:在…之间NB:不在…之间CP:包含NP:不包含LOW:下阶生产订单号HIGH:上阶生产订单号其他输入TABLE不做介绍,按实际查询需求选择输入TABLE即可。
输出TABLE:ORDER_HEADER订单抬头信息基本都在此表中进行存放了,如:生产订单日期、生产版本、生产订单状态等都在此输出表可获取到,可按实际业务需求挑选相关的字段应用即可,本文不再做详细介绍。
5 生产订单创建BAPI:BAPI_PRODORD_CREATE功能:生产订单创建关键参数说明:Import:在结构 ORDERDATA 中进行参数的输入ORDER_NUMBER:生产订单号(可输入自定义的订单号,前提是配置订单编号为外部输入;若订单号自动生成,则此参数为空即可)MATERIAL:物料号PLANT:工厂PLANNING_PLANT:计划工厂ORDER_TYPE:生产订单类型BASIC_START_DATE:基本开始日期BASIC_START_TIME:基本开始时间BASIC_END_DATE:基本结束日期BASIC_END_TIME:基本结束时间QUANTITY:需求数量PROD_VERSION:生产版本SALES_ORDER:销售订单号SALES_ORDER_IT:销售订单行项目其他参数略补充:当调试 BAPI 的时候,需要增加 COMMIT 操作,这样才能真正使 BAPI 在系统中创建数据。
SE37:1. 输入 Function Module:BAPI_PRODORD_CREATE2. 指定 Test Sequence按正常的步骤测试后,在 BAPI_TRANSACTION_COMMIT 执行界面下对 WAIT 字段赋予X 值,即可完成数据的创建。
6 生产订单修改BAPI:API_PRODORD_CHANGE功能:生产订单修改关键参数说明:Import:NUMBER:生产订单号ORDERDATA:需要更改的订单抬头信息结构,有多个字段值可以填写BASIC_START_DATE:基本开始日期BASIC_END_DATE:基本结束日期QUANTITY:数量PROD_VERSION:生产版本其他略……ORDERDATAX:确认 ORDERDATA 中要更新的字段BASIC_START_DATE:X 或空,如果选 X 则表示需要更新基本开始日期为ORDERDATA- BASIC_START_DATE 的值其他略……Export:RETURN:返回值信息注:在生产订单更改的 BAPI 中增加了更新控制机制。
此机制原则:并不是在 ORDERDATA中的字段输入值就可以更新生产订单信息,而必须在 ORDERDATAX 中相对应的字段值输入 X 后,生产订单相对应的字段才真正地被更新。
( 三) 计划独立需求相关计划独立需求(Planning Independent Requirements)是需求的一种体现形式,属于 PP 的需求管理的范畴,本段讲解 PIR 的查询、创建、修改等。
7 计划独立需求查询BAPI:BAPI_REQUIREMENTS_GETDETAIL功能:显示计划独立需求细节关键参数说明:ImportMATERIAL:物料专用号PLANT:工厂REQUIREMENTSTYPE:需求类型VERSION:需求版本(可以用需求版本来区分不同的业务需求)REQMTSPLANNUMBER:需求计划号(唯一区分一个 PIR 抬头)MRP_AREA:MRP 区域TABLE:REQUIREMENTS_OUT此表按输入的 MRP 区域、 需求版本、 需求类型、 需求计划号等而输出一条 PIR 抬头信息所对应的所有的行项目。
输出字段有:需求日期、需求数量、是否激活等。
注:唯一确定一条 PIR 抬头信息的主键应为:物料专用号+MRP 范围+ 需求版本+需求类型需求类+ 需求计划号。
PIR 可以存在多个抬头信息,但每个抬头时间是不能重复的。
8 计划独立需求创建BAPI:BAPI_REQUIREMENTS_CREATE功能:计划独立需求创建关键参数介绍:Import:在结构 REQUIREMENTS_ITEM 中进行 PIR 抬头参数的输入MATERIAL:物料专用号PLANT:工厂REQU_TYPE:需求类型VERSION:需求版本VERS_ACTIV:版本是否激活(X:表示版本激活,空:表示版本不激活)REQ_NUMBER:需求计划号MRP_AREA:MRP 范围输入 TABLE:在表 REQUIREMENTS_SCHEDULE_IN 中输入行项目信息DATE_TYPE:日期类型(常用的日期类型值包括“1:日格式,2:周格式,3:月格式“)REQ_DATE:需求日期(输入的格式与用户维护的日期格式相关,本文作者使用的日期格式为 YYYY.MM.DD。
不管 DATE_TYPE 输入的是何种类型值,需求日期字段均按日期格式进行输入,系统存入底表时会自动地解析成相对应的日格式或周格式或月格式)。
REQ_QTY:需求数量UNIT:计量单位(若不填写按默认单位创建)BOMEXPL:BOM 展开号PROD_VES:生产版本注:① 如 果 要 在 已 经 存 在 的 抬 头 下 创 建 新 的 行 项 目 时 不 能 调 用BAPI_REQUIREMENTS_CREATE 这个 BAPI,因为抬头已经存在,所以再创建相同的抬头就会报错,此时应调用 BAPI_REQUIREMENTS_CHANGE 这个 BAPI 进行修改行项目。
②判断物料是否存在某 PIR 抬头的方法:工厂级区域:到表 PBIM 中进行判断MRP 区域级:到表 PBID 中进行判断9 计划独立需求修改BAPI:BAPI_REQUIREMENTS_CHANGE功能:计划独立需求修改关键参数介绍:Import:MATERIAL:物料号PLANT:工厂REQUIREMENTSTYPE:需求类型VERSION:需求版本REQMTSPLANNUMBER:需求计划号VERS_ACTIV:版本是否激活MRP_AREA:MRP 区域输入 TABLE:在 REQUIREMENTS_SCHEDULE_IN 中进行行项目的输入DATE_TYPE:日期类型REQ_DATE:需求日期REQ_QTY:需求数量UNIT:计量单位BOMEXPL:BOM 展开号PROD_VES:生产版本注 :系 统 以 抬 头 信 息 为 主 键 , 以 行 项 目 为 索 引 进 行 更 改 ;在REQUIREMENTS_SCHEDULE_IN 中若存在相同日期的需求,则更新为新的条目信息;若无相同日期的需求,则新增为新的条目信息。
( 四) 计划订单相关10 计划订单查询BAPI:BAPI_PLANNEDORDER_GET_DETAIL功能:计划订单查询关键参数介绍:Import:PLANNEDORDER:计划订单号输出参数:RETURN 结构:此结构输出了 BAPI 执行的状态;HEADERDATA 结构:计划订单抬头信息输出表:COMPONENTSDATA 表:顾名思义,此表中存放的是计划订单组件信息。
11 计划订单创建BAPI:BAPI_PLANNEDORDER_CREATE功能:计划订单创建关键参数介绍:Import:结构 HEADERDATA,计划订单创建的抬头信息PLANNEDORDER_NUM:计划订单号(非外部订单号留空即可)PLDORD_PROFILE:计划参数文件MATERIAL:物料PLAN_PLANT:计划工厂PROD_PLANT:生产工厂TOTAL_PLORD_QTY:需求数量ORDER_START_DATE:基本开始日期ORDER_FIN_DATE:基本结束日期VERSION:生产版本MRP_AREA:MRP 范围FIRMING_IND:计划订单的确定标示(X:标示固定计划订单标示;空:表示计划订单不固定)输出参数:RETURN:此表存放了 BAPI 执行状态;PLANNEDORDER:BAPI 执行成功时创建的计划订单号;CREATEDHEADERDATA:计划订单抬头信息输出表:CREATEDCOMPONENTSDATA:计划订单组件信息12 计划订单修改BAPI:BAPI_PLANNEDORDER_CHANGE功能:计划订单修改关键参数介绍:Import:PLANNEDORDER:计划订单号HEADERDATA 结构:PROD_PLANT:生产工厂TOTAL_PLORD_QTY:需求数量VERSION:生产版本等其他略…HEADERDATAX 结构:确认 HEADERDATA 结构中要更新的字段,此结构中的字段要与 HEADERDATA 输入的要更改的字段一一对应。
输出表:COMPONENTSDATA:计划订单组件( 五) 库存/ 需求清单相关13 库存/ 需求清单查询函数:MD_STOCK_REQUIREMENTS_LIST_API功能:此函数功能可取出 MD04 查询出的所有 MRP 元素记录。
强大的功能,特别推荐~~~关键参数介绍:Import:MATNR:物料专用号WERKS:工厂BERID:MRP 范围ERGBZ:选择规则(此值在 “定义选择规则”中定义)AFIBZ:过滤器的名称(此值在“定义显示过滤器”中定义)输出参数:E_MT61D:物料 MRP 主记录表(包括:物料描述、物料类型、基本计量单位、MRP 类型等)输出表:MDPSX(MRP 凭证中的项目表,存放的是凭证的相关信息,数据与 MDEZX 中数据是按顺序是一条条对应的)DELNR:相关需求号DEL12:MRP 元素号(如果是生产订单预留,则显示为上层需求生产订单号)其他字段略……MDEZX(MRP 要素的行项目表,按 MRP 元素行项目进行数据存放)DELB0:MRP 元素的缩写(如:OrdRes、PlnOrd、PrdOrd 等)其他字段略……注:①本段只做入门级介绍,让读者知道有这么一个函数及其所能实现的功能等。
更详细的参数使用及数据输出只能是实践加实践。
偶的几个项目就曾经多次使用这个函数来满足用户的报表需求。
如取某物料的生产订单预留及上层需求等,就可以用此函数实现,且屡试不爽.

联系我们

在线咨询:点击这里给我发消息