PP模块学习笔记-更新中

一、基本业务流程

主数据->需求计划->可用性检查->订单创建->订单下达->车间文档打印->生产领料->确认->产成品入库->订单结算

工艺路线

  • 定义:原材->成品需要哪些工序,每个工序的顺序,每个工序所需要的资源和工具及对应的工作中心信息的集合(描述了生产一种产品需要经过哪几道工序,每道工序需要消耗哪些料),包括工序,工序顺序,生产资源/工具
  • 作用:1.用于能力需求计划  2.用于BOM物料的提前期计算 3.用于下达车间的作业计划4.用于加工成本的计算 5.用于生产状态的跟踪

PDM

  •   定义:产品数据管理系统

BOM

  • 定义物料清单,描述组成一个产品或装配的完整、正式的零部件结构清单。该清单包括每个零部件的项目号、数量和计量单位。

工作中心

  • 定义:工序实施的场所,可以是生产设备、班组、人员。工作中心同时是计划下达,能力核算,成本核算的基本单位。

MPS

  • 定义:主生产计划,在对全部产品运行物料需求计划之前,对关键件单独运行生产计划,以确保关键件的产出期.

MRP

  • 定义物料需求计划,按照BOM、零部件采购或加工时间、及产品的最终产出期,计算出所有相关零部件的采购或加工的起始时间与数量,形成相应的计划订单的过程.

计划订单

  • 定义:MRP/MPS运行以后产生的相关零部件的采购或加工的计划,包括物料号、数量、及日期等信息.

工序外协

  • 定义:将某道工序转移到其它公司执行

SAP APO

  • SAP APO 全称是SAP Advanced Planner and Optimizer(SAP 高级计划优化器)。SAP APO是供应链计划工具,帮助组织管理其供应链。主要有四个模块DP(Demand Planning需求计划),SNP(Supply Network Planning供应网络计划),GATP(Global Available to Promise全球可承诺),PPDS(Production Planning and Detail Scheduling生产计划和详细计划)

PPDS

  • 定义:(Production Planning and Detail Scheduling)生产计划和详细计划。生成满足生产要求的采购建议,还可以计划关键产品,以缩短交货时间并提高交货时间。
  • 作用:提高关键产品的准时交货性能、减少交货时间、改善资源与更好的采购流程之间的协调、降低库存成本。

启发式(heuristic

  定义:系统的生产计划的排定规则(排产规则)

SAP 库 - 自动化生产计划和优化

二、常用Tcode 

区域Tcode
物料

物料创建:MM01

物料修改:MM02

物料显示:MM03

物料标记删除:MM06

物料清单查询:MM60

取消物料凭证:MBST

ECN

ECN创建:CC01

ECN修改:CC02

ECN显示:CC03

ECN变更明细查询:CC07

BOM

BOM创建:CS01

BOM修改:CS02

BOM显示:CS03

BOM逐层显示:CS11(一层层展开)

BOM多层显示:CS12(遇到半成品就往下展开)

BOM汇总显示:CS13(仅显示最终原材料,不显示半成品)

BOM对比:CS14

BOM使用查询(反向):CS15

BOM批量修改:CS20

BOM更改凭证查看:CS80

工作中心

工作中心创建:CR01

工作中心修改:CR02

工作中心显示:CR03

工作中心批量查询:CR05

工作中心信息系统:CR60

反向查询工作中心被使用的工艺路线:CA80

任务清单/订单标准文本:CA10

工艺路线

工艺路线创建:CA01

工艺路线修改:CA02

工艺路线显示:CA03

工艺路线批量替换工作中心:CA85

ECN变更管理:CC01

生产版本生产版本创建、修改、显示:C223
独立需求

独立需求创建:MD61

独立需求修改:MD62

独立需求显示:MD63

独立需求删除:MD74

库存清单显示:MD04

MRP

(物料需求计划)

MRP创建:MD01

MRP修改:MD02

MRP显示:MD03

计划订单

计划订单创建:MD11

计划订单修改:MD12

计划订单查看:MD13

计划订单批量修改:MD19

计划订单批量显示:MD16

长期计划

长期计划创建:MS31

长期计划执行:MS02

库存需求清单检查:MS04

容量状况检查:MS38

容量负载检查:CM01

容量均衡:CM21

生产订单

生产订单货物移动:MIGO 收货:移动类型101 发货:移动类型:261

取消发货:移动类型:262(MB1A)

生产订单创建:CO01(有料)

生产订单修改:CO02(下达)

生产订单显示:CO03

生产订单返修:CO07

生产订单创建:CO10(带项目)

生产订单变更记录查询:ZPP005

生产订单批量操作:COHV

计划订单转生产订单:CO41,MD16

生产订单确认:CO15

采购申请

采购申请创建:ME51N

采购申请修改:ME52N

采购申请查看:ME53N

采购申请单个审批:ME54N

采购申请批量审批:ME55

采购申请清单:ME5A

APO

查询产线资源:/SAPAPO/RES01

.执行排序计划,下达整车计划:ZPDU0002

订单下达失败后重广播或者变更广播:ZPDU0006

生产订单详细情况查看:SAPAPO/POM1

报警监测:/SAPAPO/AMON1

PPDS启发式配置 /n/sapapo/cdpsc11  SM30 维护表/SAPAPO/VHEURFNC 
 启发式执行 /N/SAPAPO/CDPSB0
 产线视图 /N/SAPAPO/PPT1  
设置矩阵 /N/SAPAPO/CDPSC7
生产清单查询  /N/SAPAPO/PPl1
其他

库存查询(单个):MMBE

库存查询(批量):MB52

库存移动记录:MB51

库存期初与期末查询:MB5B

三、常用表

生产订单状态TJ02T
业务状态订单状态说明
创建生产订单CRTD建立
下达生产订单REL(CRTD 消失)已释放
生产订单投料REL、GMPS已释放、已过帐的货物移动
部分报工REL、GMPS PCNF已释放、已过帐的货物移动、部分确认
部分入库REL、GMPS PCNF PDLV已释放、已过帐的货物移动、部分确认 部分入库
完全报工REL、GMPS、CNF PDLV已释放、已过帐的货物移动、完全确认,部分入库
完全入库REL、GMPS、CNF、DLV已释放、已过帐的货物移动、完全确认、完全交货
技术关闭TECO、GMPS、CNF、DLV (REL消失)技术实现、已过帐的货物移动、完全确认、完全交货
财务结算

CLSD GMPS CNF DLV

(TECO消失)

工單关闭,已过帐的货物移动、完全确认、完全交货
区域表名
计划订单 计划订单:PLAF
生产订单

生产订单表头:AFKO PP订单

生产订单行项目:AFPO

生产订单主数据:AUFK

生产订单工序:AFVC

工序中日期/数量值:AFVV

加工单顺序:AFFL

订单-流程指令:AFFT

订单-流程指令值:AFVV

生产订单确认后的数据:AFRU

预定/相关需求:RESB

采购

采购申请行项目:EBAN

采购凭证行项目:EKPO

物料

常规物料数据:MARA

物料工厂数据:MARC

物料描述:MAKT

物料的MRP范围:MDMA

MRP范围仓库:MDLG

工厂数据:T001W

物料独立需求表:PBIM

独立需求数据:PBED

无批次物料库存:MARD

批次库存:MCHB

供应商寄售特殊库存:MKOL

客户寄售库存:MSKU

工艺工序

任务清单 - 表头:PLKO

任务清单 - 工序/作业:PLPO

任务清单 - 工序/作业选择:PLAS

分配BOM项目到工序:PLMZ

分配任务清单到物料:MAPL

工序/作业选择:PLAS

IPQC检验计划特性:PLMK

工作中心

工作中心表头:CRHD

工作中心工具文本:CRTX

工作中心能力:CRCA

工作中心分配到成本中心:CRCO

生产版本

生产版本:MKAL

生产版本更改记录:MKAL_AEND

BOM

BOM 表头:STKO

BOM 项目:STPO

BOM 链接物料:MAST

永久 BOM :STZU

BOM项目选择:STAS

永久BOM数据:STZU

PPDS产线信息表 /SAPAPO/RESKEY  
矩阵信息表 /SAPAPO/SET_MID  
物料凭证

订单确认:AFRU

过账的确认货物移动:AFWI

确认不正确的成本核算:AFRC

确认的错误的货物移动:AFFW

物料移动记录表头:MKPF

生产订单的物料移动:AUFM

物料移动MSEG

四、常用BAPI 

区域BAPI
生产订单

生产订单创建:BAPI_PRODORD_CREATE

生产订单修改:BAPI_PRODORD_CHANGE

生产订单详详情:BAPI_PRODORD_GET_DETAIL

生产订单下达(不缺料):BAPI_PRODORD_RELEASE

生产订单关闭:BAPI_PRODORD_CLOSE

删除计划订单:BAPI_PLANNEDORDER_DELETE

工艺工序

工艺工序创建:BAPI_ROUTING_CREATE

工艺工序修改:CPCC_S_TASK_LIST_MAINTAIN

工艺工序查询:CARO_ROUTING_READ

工作中心工作中心表头:CRHD
其他

BAPI回滚:BAPI_TRANSACTION_ROLLBACK 

BAPI提交:BAPI_TRANSACTION_COMMIT

https://www.cnblogs.com/StephenAmell/p/16629860.html

五、常用函数

区域函数
BOM相关

BOM创建:CSAP_MAT_BOM_CREATE

BOM修改:CSAP_MAT_BOM_MAINTAIN 

BOM删除:CSAP_MAT_BOM_DELETE

BOM查询:CSAP_MAT_BOM_READ

BOM打开:CSAP_MAT_BOM_OPEN

BOM关闭:CSAP_MAT_BOM_CLOSE

BOM展开:CS_BOM_EXPL_MAT_V2

BOM反查:CS_WHERE_USED_MAT

生产订单生产订单状态读取:STATUS_TEXT_EDIT
PPDS/SAPAPO/RRP_PT_RESID_GET_PEGID 
/SAPAPO/RRP_LC_ORDER_GET_DATA
/SAPAPO/RRP_PT_PRODUCTION_LIST  
物料物料代码增加前导零:CONVERSION_EXIT_MATN1_INPUT 
其他

将标准日期格式转换为数字格式:CONVERT_DATE_TO_INTERNAL
将数字日期格式转换为系统日期格式:CONVERT_DATE_TO_EXTERNAL

上载Excel文件:ALSM_EXCEL_TO_INTERNAL_TABLE (每个CELL只能导入前50个字符,二是如果超过9999行,行号会初始化为从零开始)

日期有效性检查:DATE_CHECK_PLAUSIBILITY 

工作遇到的问题 

1.函数CSAP_MAT_BOM_MAINTAIN的不提交控制。

需求需要在BOM创建修改之前进行BOM递归校验,调用函数CSAP_MAT_BOM_MAINTAIN进行BOM的递归校验,但是此函数中已包含COMMIT语句,需求只需校验,但是不需要写到数据表中,调用此函数的话会写到表中,没有办法回滚,但是有一个办法可以满足上述需求,在函数调用的子程序CSAP_MAIN_INIT (包括LCSAPF01 )中,有句代码

import flg_no_commit_work  from memory id 'CS_CSAP'.

flg_no_commit_work的值在后面执行时会被传递到函数模块CS_DI_BOM_VB中调用,设置flg_no_commit_work为'X',即可实现不执行COMMINT WORK提交语句,数据便不会写到数据表中

如下,在调用函数之前,传值到flg_no_commit_work

  lv_zid = 'X'.
  lv_flg_no_commit_work = 'X'.
  EXPORT flg_no_commit_work = lv_flg_no_commit_work TO MEMORY ID 'CS_CSAP'.
  EXPORT lv_zid TO MEMORY ID 'ZTC2SAPBOM_ERR'.
  EXPORT '' TO MEMORY ID 'data_reset_sign'.
  CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
    EXPORTING
      material           = cs_zspp015-matnr
      plant              = cs_zspp015-werks
      bom_usage          = cs_zspp015-stlan
      alternative        = cs_zspp015-stlal
      valid_from         = lv_datuv_bi
      i_stko             = ls_stkol
      fl_commit_and_wait = 'A'
      fl_bom_create      = 'X'
      fl_default_values  = ''
      change_no          = lv_aennr
    TABLES
      t_stpo             = lt_stpo
    EXCEPTIONS
      error_message      = 99
      error              = 1
      OTHERS             = 2.
  IF sy-subrc NE 0 AND sy-msgid EQ '29' AND sy-msgno EQ '110' ."出现递归。返回报错信息
    cs_bom_res-msgty = 'E'.
    CALL FUNCTION 'MESSAGE_TEXT_BUILD'
      EXPORTING
        msgid               = sy-msgid
        msgnr               = sy-msgno
        msgv1               = sy-msgv1
        msgv2               = sy-msgv2
        msgv3               = sy-msgv3
        msgv4               = sy-msgv4
      IMPORTING
        message_text_output = cs_bom_res-msgtx.
  ENDIF.

2.Memory id传值问题

上图 lv_flg_no_commit_work没有传递到值

改成如上则  lv_flg_no_commit_work能传递导致

总结:如果EXPORT/IMPORT两边定义的变量名不同,则需要中间辅助转换一下

备注:

  1. select取数时,动态取值可以使用动lv_where TYPE TABLE OF edpline.动态取表可以定义变量用()来取表名
  2. 去除小数后多余0 
    DATA lv_menge TYPE char18.
    "这变量需定义为字符类型,如果是String类型,会出现1,00.00被截为1,的情况
    SHIFT lv_menge RIGHT DELETING TRAILING '0'.
    SHIFT lv_menge RIGHT DELETING TRAILING '.'.
    SHIFT lv_menge LEFT DELETING LEADING space.
  •    abap数据转JSON 
"abap数据转json
/ui2/cl_json=>serialize( EXPORTING data = ls_data
                                   pretty_name = 'X' "空大写,L小写,X驼峰,Y增强驼峰
                         RECEIVING r_json = lv_json ).
  •    数据查询拼接处理
"查询 2023/01/28 08:40:00到 2023/02/20 17:02:00的数据
SELECT * FROM zt_student
WHERE CAST( concat( createdate,createtime ) AS NUMC( 14 ) ) > '202301028084000'
AND CAST( concat( createdate,createtime ) AS NUMC( 14 ) ) < '202320170200'
INTO TABLE @lt_student.
"截取字段
SELECT substring( schoolcode,5,8 ) AS name
       FROM zt_student
       WHERE name = '02'
       INTO TABLE @lt_student.

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值