功能详细设计说明书
1.1表结构关系
相关数据表 | 表描述 | 字段名称 | 字段描述 |
EBAN | 采购申请抬头表 | ||
EBKN | 采购申请项目明细表 | ||
EKKO | 采购订单抬头表 | ||
EKPO | 采购订单项目明细表 | KNTTP | 科目设置类型 |
EKKN | 采购订单科目分配数据 | EBELN | |
EBELP | |||
ZEKKN | 帐户分配的序列号 | ||
PS_PSP_PNR | 工作分解结构元素 (WBS 元素) | ||
NPLNR | 科目分配的网络号 | ||
AFKO | 生产抬头文件 | AUFNR | 生产订单号 |
PRONR | WBS元素指针 | ||
AUFK | 生产订单长文本 | ||
MSPRH | 项目库存:历史(无价值字段) | SOBKZ | 特殊库存标识 |
PSPNR | 工作分解结构元素 (WBS 元素) | ||
LFGJA | 当前期间的会计年度 |
LFMON | 当前期间 (记帐期间) | ||
PRLAB | 非使用的估价的库存 | ||
PRINS | 质量在检的库存 | ||
PRSPE | 冻结库存 | ||
PREIN | 所有批次的总计库存 | ||
MSPR | 项目库存(无价值字段) | (当前期存储位置层次项目库存) | |
MSSQ | 项目库存(无价值字段) | (当前期工厂层次项目库存) | |
MSSQH | |||
QBEW | 项目库存的分开评估(仅包含项目库存及估价数据) | ||
QBEWH | 项目库存的分开评估(历史记录) | ||
EBEW | 销售订单库存的分开评估 | ||
EBEWH | 销售订单库存的分开评估(历史记录) | ||
MBEW | 常规库存的评估(仅包含常规库存价值数据,不包含项目库存的相关数据) | ||
MBEWH | 常规库存的评估(历史记录) | ||
PRPS | WBS结构数据 | POSID | WBS元素 |
MSEG-PSPNR 搜索此表可得到WBS号码; | |||
PROJ | 项目定义结构表 | ||
MSEG-PSPNR,搜索此表可得到项目定义; WBS元素(24码)找其项目定义,也必须透过指针来寻找项目定义; | |||
MKPF | 物料凭证抬头数据 | ||
MSEG | 物料凭证行项目数据 | ||
EKET | 采购订单收货 | ||
QINF | 物料和供应商的 QM 信息记录 | MATNR | 物料号 |
LIEFERANT | 供应商帐户号 | ||
WERK | 工厂 | ||
FREI_DAT | 下达的有效到期日 | ||
NOINSP | QM 信息记录中的检验控制 | ||
MARC | 物料工厂数据 | QMATV | 物料工厂的质检设置是否存在 |
QMAT | 检验类型 - 物料参数 | MATNR | 物料号 |
WERKS | 工厂 | ||
ART | 检验类型 | ||
APA | 首选的检验类型 | ||
AFR | 处理单位的检验 |
AKTIV | 检验类型 - 物料合并已激活 | ||
RBKP | 抬头数据 | ||
RSEG | 行项目 | ||
MB52 – 库存综览显示
MB51 – 物料凭证清单
1.2自定义表清单及结构定义
程序处理逻辑內表一:
字段名称 | 字段描述 | |
字段名称 | 字段描述 | 值 |
源 数 据 | SAP系 统 | ||||||
序号 | 域名 | 类型 (长度) | 描述 | 字段名 | 类型 (长度) | 描述 | 转换关系 |
1) | |||||||
2) | |||||||
3) | |||||||
4) | |||||||
5) | |||||||
6) | |||||||
7) | |||||||
8) | |||||||
9) |
输入/输出画面格式设计要求
2.1报表选择屏幕
以下是本程序的第一个画面:初始化画面
名 称 | 属 性 | 必输项 (是/否) | 默认值 | 其他特殊要求 | 参考表字段 |
工厂 | (多值) | 权限检查 | MSEG-WERKS | ||
存储位置 | (多值) | ||||
WBS元素 | (多值) | MSEG- PS_PSP_PNR | |||
物料类型 | (多值) | ||||
物料组 | (多值) | ||||
评估类 | (多值) | ||||
期间(YYYYMM) | (单值) | MKPF- BUDAT之年月 | |||
输出明细资料 | (单值) | N | (核选框) |
“属性”字段注明: 多选, 单选, 单选钮/, 选框或其他等;
2.2客户化增强功能画面设计
(以下是格式化画面设计要求)
3程序处理逻辑说明
1.生成选择输入画面,用户输入参数;检查权限;
2.按用户选择画面参数,选择指定范围的数据,结合如下取数规则,生成报表:
3.取数规则:
安装项目定义掩码:X-XX NN NN
制作项目定义掩码:X-X-XX NN NN
序号 | 字段 | 取数规则 | 备注 |
1) | 物料编号 | ||
2) | 物料描述 | MAKT- | |
3) | 单位 | MARA-MEINS; | |
4) | 物料类型 | MARA-MTART; | |
5) | 单重 | 如果物料类型为ZFS1或ZFS2,则: 其期初库存及相关交易一定是项目库存相关:如果WBS元素的第四位为 “-”,则取WBS元素第5位~第10位;否则取WBS元素的第3位~第8位 作为 WBS 元素“基本编码”; 由 生产订单抬头表中找产品物料编码、WBS元素第5位~第10位 与上述 WBS 元素“基本编码”一致的订单,取其生产订单抬头文本的第四行,如果为零,再找下一个生产订单直到取值非零为止; 如果最终由生产订单中不能取值,则取 采购订单行项目: 由EKKN/EKKO表中找:物料编码、WBS元素第5位~第10位 与上述 WBS 元素“基本编码”一致的采购订单,取其采购该项目文本的第四行(第一页标签),如果为零,再找下一个采购订单直到取值非零为止; 最终找不到,则置零; 如果是其他物料类型,则取物料主数据中基本数据视图之毛重; | |
6) | 物料组 | MARA-MATKL; | |
7) | 商务分类 | 如果物料类型为ZFS1或ZFS2,则由物料号码+WBS元素找任一生产订单文本的第六行,压缩空格后取前15位; 可在取单重时同时取商务分类:生产订单文本的第六行或采购订单相应文本标签下的第六行; 如果物料类型为其他,则置空; | |
8) | 评估类 | 由MBEWH/QBEWH中取(分别对于常规库存和项目库存); | |
9) | 工厂 | ||
10) | WBS元素 | ||
11) | 项目定义 | ||
12) | 项目描述 | ||
13) | 期初数量 期初金额 | 对于常规库存,按用户选取的物料/工厂/存储位置/评估类型范围,按如下规则取期初库存数据: 1) 截取报表期间的的年份、月份,按“物料”+“工厂“+ “仓库”+“年份”+“月份-1” 读取MARDH 表的数据. 注:“月份-1”是指报表期间的前一个月 1.1)如果读取成功,保存至“上月期末库存临时字段”, 1.2)如果读取不成功,再从MARDH找“=月份”或“>月份且最接近的纪录”, 1.2.1)如果找到了,就保存至“上月期末库存临时字段” 1.2.2)如果找不到,则取MARD的当前库存保存至”上月期末库存临时字段”(非库存/质检库存); 参照上述规则,按物料/工厂/期间年份/期间月份,由表MBEWH/MBEW中取期初单价数据; 对于项目库存,按用户选取的物料/工厂/存储位置/WBS元素范围,由表MSPR/MSPRH中期初数量数据,由QBEW/QBEWH中取单价数据(VERPR-移动平均价); 按前一字段取值规则得到的数量*单价即为期初金额; | |
14) | 收入数量 收入金额 | 以下取第一部分:由表MSEG中按移动类型取物料编号不为空的记录: 收入数量&收入金额: 由表MKPF/MSEG中按选择的数据范围,取以下移动类型记录其对应字段 MSEG-MENGE/DMBTR的值,如果MSEG- SHKZG 为 “S”,则记为本字段的正项,如果为 “H”,则为本字段的负项: 移动类型范围为 100 ~ 199 , 561/562, 501/502, 921/922, 301~499,541~544 ; 对于确认对收入金额的影响部分取值规则,请参照 “发出数量”字段的取值说明。 | |
15) | 发出数量 发出金额 | 由MSEG中取物料编号非空的记录: 收入数量&收入金额: 由表MKPF/MSEG中按选择的数据范围,取以下移动类型记录其对应字段 MSEG-MENGE/DMBTR的值,如果MSEG- SHKZG 为 “S”,则记为本字段的负项,如果为 “H”,则为本字段的正项: 移动类型范围为 201 ~ 299 , 551/552, 5/6, 901~914 , 923/924 , 301~499, 541~544 ; 第二部分: 还要取移动类型为101/102/122/161/162, 物料号非空,但MSEG- KZVBR字段为 “V”的记录(对应的MSEG-KNTTP= “K/P/S/R”之一) :其数量和价值分别累加到相应的 “物料/工厂(可能还有WBS元素)” 记录的 “发出数量/发出金额”中, 如果MSEG- SHKZG 为 “S”,则记为本字段的正项,如果为 “H”,则为本字段的负项; 以下取第三部分(由校验的差异调整部分,RSEG- KNTTP =K/P/R/S 的记录): 由RBKP取当期的所有凭证号码。由RBKP-BELNR找表RSEG:如果RSEG-KNTTP 为 “K/P/R/S”之一,且RSEG-MATNR 非空且RSEG-EFKOR 非空,则说明确认有对直接采购消耗的存货物资的金额调整记账,但此部分的调整记账,是同时反映在收入金额和(消耗)发出金额上,没有经过库存帐。所以以下继续处理取得的值必须要同时累加到 “收入金额”和 “发出金额”上,但收入数量和发出数量不变更(交易不会带来数量变化): 由 RSEG- BELNR + RSEG- GJAHR 搜索 BKPF-BWKEY, 取BKPF- BELNR(会计凭证号码);由 BKPF-BELNR 取表BSEG 中 BSEG-MATR = RSEG-MANR .AND. BSEG- EBELN = RSEG-EBELN .AND. BSEG-EBELP=RSEG-EBELP 的记录,如果BSEG- SHKZG = “S”则取 BSEG- DMBTR 的值为调整金额暂存值;如果BSEG- SHKZG = “H”: BSEG- DMBTR 的负值为调整金额暂存值; 如果RSEG-KNTTP = “Q” ,或为空,则舍弃此 “调整金额暂存值”;否则,分别将此金额累加到 “收入金额”和“发出金额”中(对应关键字段:物料+工厂(或者加WBS元素)); | |
16) | 盘点数量 | 按指定期间和数据范围,由MKPF/MSEG中取移动类型为 “701/702/711/712” 的交易记录字段MSEG-MENGE/ DMBTR(基本单位数量/本位币金额); 如果MSEG- SHKZG 为 “S”,则记为本字段的正项,如果为 “H”,则为本字段的负项; | |
17) | 盘点金额 | 参照前一字段的说明; | |
18) | 调整金额 | 库存价值调整: 不对应库存交易,对应确认时因采购订单价格与价格差异导致的对库存金额的调整(此时库存数量不变), 或者调整库存物料的单价时也导致库存金额变化; 库存价值调整金额,仅当按公司出具报表时,该字段值才有效。因为系统没有记录各存储位置的价格更改和价值更新(价值更改是在评估范围层次或WBS元素层次有效); 以下是第一部分: 单价修改的凭证上 "价值修改"可能对应: 存货价值的改变及差异的改变: 无论是按S或V计价, 只要是价格改变, 存货价值一定是变化的. 取MLCR-BDATJ/POPER为报告期间的所有记录,得到凭证号+会计年度+项目号(MLCR-BELNR/KJAHR/POSNR)+存货价值修改(MLCR-SALK3); 再按上述 三个字段(MLCR-BELNR/KJAHR/POSNR) 取 表 MLIT-MATNR/BWKEY(评估范围)/WBS号; 如果上述过程由MLCR中取得的金额为零(SALK3),则以相同的(MLCR-BELNR /KJAHR /POSNR) 及前一期间再取MLCR-SALK3, 以该值置换符号(乘以 -1),则得到报告期间的库存调整金额; 单价调整:可能针对常规库存或项目库存。取值时要将物料号码及WBS元素和工厂代码一同取值; 以下是第二部分: 由表RSEG/RBKP中取价值修改记录。 由表RBKP中取当前报表期间的凭证抬头数据记录,由此表的凭证号找表RSEG-STOCK POSTING 非零的记录,得到 RSEG-WERKS/RSEG-MATNR 的库存价值变更。如果RSEG-KNTTP为空,则累加到此报表的工厂+物料的 “调整金额”中(该字段的值有正项,也可能有负项,直接累加到“调整金额”中);如果RSEG-KNTTP= “Q”,则该调整金额属于项目库存金额的调整,必须由RSEG-EBELN 和 RSEG-EBELP(采购订单号码及行项目号码)找PO的行项目的WBS元素号码,而将该 RSEG-STOCK POSTING 的金额写入 “工厂+物料+WBS元素” 的值中; | |
19) | 期末数量 | =期初数量+收入数量-发出数量 |
20) | 期末金额 | =期初金额+收入金额-发出金额+调整金额; | |
21) | 差异数量 | =期末数量-(画面输入期间的下一期间)期初数量(按期初数量取数规则得到) | |
22) | 差异金额 | =期末金额-(画面输入期间的下一期间)期初金额(按期初金额取值规则得到) | |
23) | 构件吨位 | 单重*期末数量 / 1000 |
5. 如果用户输入了存储位置,则取值表字段 “工厂代码/存储位置/物料编码/WBS元素/商务分类”,相应的取数结果均按物料+工厂+存储位置+WBS元素+商务分类层次累计;对于 “收入数量”“收入金额”“发出数量”“发出金额”字段,所统计的移动类型无;
6. 最终输出方式:
如果用户在画面上选择了 “输出明细资料”(Y”,则首先按取数规则表的字段格式输出清单;
否则不执行明细清单资料的输出;
接下来,在同一清单上,再附加如下分类统计表:
除了列出上表格式的按料号的明细外,还需要列出如下分类小计报表:
附加清单一:按WBS元素分类汇总的收发存明细表(仅对WBS元素非空的记录进行小计并分类汇总输出);
附加清单二:按商务分类汇总的收发存明细表(仅列出物料类型为 “ZFS1/ZF2”的每一商务分类的小计);
附加清单三:按商务分类+项目定义分类汇总的收发存明细表;
附加清单四:按评估类分类汇总的收发存明细资料;
请依次输出。相应清单字段如下:
附加清单一 | 附加清单二 | 附加清单三 | 附加清单四 | ||
1) | 物料编号 | ||||
2) | 物料描述 | ||||
3) | 单位 | ||||
4) | 物料类型 | ||||
5) | 单重 | ||||
6) | 物料组 | ||||
7) | 商务分类 | X | X | ||
8) | 评估类 | X | |||
9) | 工厂 | ||||
10) | WBS元素 | X | |||
11) | 项目定义 | X | |||
12) | 项目描述 | O |