目标: 掌握SAP MM模块,主要流程相关的BAPI 函数的使用,主要有如下模块
询价 报价 货源清单 配额安排 采购信息记录 框架协议-合同 框架协议-计划协议 采购订单 采购收货 发票校验 发票过账
BAPI是SAP系统标准函数,比如:采购申请创建函数、采购订单创建函数等等。
采购信息记录修改 | SAP_ABAP_MM_BAPI清单案例教程——采购信息记录_企业数字化建设者的博客-CSDN博客 |
框架协议-合同创建 | SAP_ABAP_MM_BAPI清单案例教程——框架协议-合同_企业数字化建设者的博客-CSDN博客 |
框架协议-合同修改 | SAP_ABAP_MM_BAPI清单案例教程——框架协议-合同_企业数字化建设者的博客-CSDN博客 |
框架协议-计划协议创建 | SAP_ABAP_MM_BAPI清单案例教程——框架协议-计划协议_企业数字化建设者的博客-CSDN博客 |
采购申请创建 | SAP_ABAP_MM_BAPI清单案例教程——采购申请_企业数字化建设者的博客-CSDN博客 |
采购订单创建 | SAP_ABAP_MM_BAPI清单案例教程——采购订单_企业数字化建设者的博客-CSDN博客 |
采购订单收货创建 | SAP_ABAP_MM_BAPI清单案例教程——采购订单收货_企业数字化建设者的博客-CSDN博客 |
采购发票预制 | SAP_ABAP_MM_BAPI清单案例教程——采购发票校验_企业数字化建设者的博客-CSDN博客 |
采购发票过账 | SAP_ABAP_MM_BAPI清单案例教程——采购发票校验_企业数字化建设者的博客-CSDN博客 |
ME_INFORECORD_MAINTAIN | 采购信息记录修改 |
BAPI_CONTRACT_CREATE | 框架协议-合同创建 |
BAPI_CONTRACT_CHANGE | 框架协议-合同修改 |
BAPI_SAG_CREATE | 框架协议-计划协议创建 |
BAPI_PR_CREATE | 采购申请创建 |
BAPI_PO_CREATE1 | 采购订单创建 |
BAPI_GOODSMVT_CREATE | 采购订单收货创建 |
BAPI_INCOMINGINVOICE_PARK | 采购发票预制 |
BAPI_INCOMINGINVOICE_POST | 采购发票过账 |
1.3.1 创建
1.3.2 修改
1.3.3 删除
FUNCTION zfm_sag.
*"----------------------------------------------------------------------
*"*"本地接口:
*"----------------------------------------------------------------------
DATA: ls_header TYPE bapimeoutheader,
ls_headerx TYPE bapimeoutheaderx,
ls_item TYPE bapimeoutitem,
lt_item TYPE bapimeout_t_item,
ls_itemx TYPE bapimeoutitemx,
lt_itemx TYPE bapimeout_t_itemx,
ls_item_con TYPE bapimeoutcondition,
lt_item_con TYPE TABLE OF bapimeoutcondition,
ls_item_conx TYPE bapimeoutconditionx,
lt_item_conx TYPE TABLE OF bapimeoutconditionx,
lt_validity TYPE TABLE OF bapimeoutvalidity, "条件的有效期间
ls_validity TYPE bapimeoutvalidity,
lt_validityx TYPE TABLE OF bapimeoutvalidityx, "更改参数 - 条件的有效期间
ls_validityx TYPE bapimeoutvalidityx,
ls_schedule TYPE bapimeoutschedule,
lt_schedule TYPE bapimeout_t_schedule,
ls_schedulex TYPE bapimeoutschedulex,
lt_schedulex TYPE bapimeout_t_schedulex,
ls_head_cond_validity TYPE bapimeoutheadvalidity,
lt_head_cond_validity TYPE TABLE OF bapimeoutheadvalidity,
ls_head_cond_validityx TYPE bapimeoutheadvalidityx,
lt_head_cond_validityx TYPE TABLE OF bapimeoutheadvalidityx,
ls_head_condition TYPE bapimeoutheadercond,
lt_head_condition TYPE TABLE OF bapimeoutheadercond,
ls_head_conditionx TYPE bapimeoutheadercondx,
lt_head_conditionx TYPE TABLE OF bapimeoutheadercondx,
l_ebeln TYPE bapimeoutheader-number,
lt_return TYPE bapiret2_t,
ls_return TYPE bapiret2.
*---------------------------------------------------------------------*
* Header赋值
*---------------------------------------------------------------------*
CLEAR: ls_header,ls_headerx.
"ls_header-our_ref = 'WTPB00223'. "我方参考
ls_header-vendor = '100234'. "供应商
"供应商.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = ls_header-vendor
IMPORTING
output = ls_header-vendor.
ls_header-comp_code = '2010'. "公司代码
ls_header-doc_type = 'LP'. "采购凭证类型 协议类型
* ls_header-pmnttrms = 'W01'. "收付条件代码
ls_header-purch_org = '2010'. "采购组织
ls_header-pur_group = '100'. "采购组
ls_header-currency = 'CNY'. "货币码
ls_header-doc_date = sy-datum. "采购凭证日期
ls_header-vper_start = sy-datum. "有效起始日期
ls_header-vper_end = '99991231'. "有效截至日期
ls_headerx-our_ref = 'X'. "我方参考
ls_headerx-vendor = 'X'. "供应商
ls_headerx-comp_code = 'X'. "公司代码
ls_headerx-doc_type = 'X'. "采购凭证类型
ls_headerx-pmnttrms = 'X'. "收付条件代码
ls_headerx-purch_org = 'X'. "采购组织
ls_headerx-pur_group = 'X'. "采购组
ls_headerx-currency = 'X'. "货币码
ls_headerx-doc_date = 'X'. "采购凭证日期
ls_headerx-vper_start = 'X'. "有效起始日期
ls_headerx-vper_end = 'X'. "有效截至日期
*---------------------------------------------------------------------*
* Header赋值 - 条件
*---------------------------------------------------------------------*
CLEAR:lt_item[],lt_itemx[],lt_schedule[],lt_schedulex[],ls_item_con,lt_item_con[].
CLEAR:lt_validityx,lt_validity.
CLEAR:ls_item,ls_itemx.
ls_item-item_no = '00010' . "项目编号
"ls_item-material_long = 'A001210'. "物料编号
ls_item-material = '000003005003000051'. "物料编号
ls_item-item_cat = ''.
ls_item-plant = '2012'. "工厂
ls_item-stge_loc = '3001'. "存储地点
ls_item-target_qty = 1000. "采购订单数量
ls_item-net_price = 10.
ls_item-tax_code = 'J1'. "税代码
* ls_item-firm_zone = '42'. "确定的域
* ls_item-trade_off = '56'. "平衡区域
* ls_item-binding_mrp = '1'. "捆绑在MRP.
APPEND ls_item TO lt_item.
ls_itemx-item_no = '00010'. "项目编号
"ls_itemx-material_long = 'X'. "物料编号
ls_itemx-material = 'X'. "物料编号
ls_itemx-plant = 'X'. "工厂
ls_itemx-stge_loc = 'X'. "存储地点
ls_itemx-target_qty = 'X'. "采购订单数量
ls_itemx-net_price = 'X'. "净价
ls_itemx-tax_code = 'X'. "税代码
* ls_itemx-firm_zone = 'X'. "确定的域
* ls_itemx-trade_off = 'X'. "平衡区域
* ls_itemx-binding_mrp = 'X'. "捆绑在MRP.
APPEND ls_itemx TO lt_itemx.
*---------------------------------------------------------------------*
* Item赋值
*---------------------------------------------------------------------*
ls_head_cond_validity-serial_id = ''.
ls_head_cond_validity-valid_from = '20230727'.
ls_head_cond_validity-valid_to = '99991231'.
APPEND ls_head_cond_validity TO lt_head_cond_validity.
ls_head_cond_validityx-serial_id = ''.
ls_head_cond_validityx-valid_from = 'X'.
ls_head_cond_validityx-valid_to = 'X'.
APPEND ls_head_cond_validityx TO lt_head_cond_validityx.
ls_head_condition-serial_id = ''.
ls_head_condition-cond_count = '01'.
ls_head_condition-cond_type = 'RA01'.
ls_head_condition-scale_type = 'A'.
ls_head_condition-calctypcon = 'A'.
ls_head_condition-cond_value = -5.
ls_head_condition-currency = '%'.
APPEND ls_head_condition TO lt_head_condition.
ls_head_conditionx-serial_id = 'X'.
ls_head_conditionx-cond_count = 'X'.
ls_head_conditionx-cond_type = 'X'.
ls_head_conditionx-scale_type = 'X'.
ls_head_conditionx-calctypcon = 'X'.
ls_head_conditionx-currency = 'X'.
ls_head_conditionx-cond_value = 'X'.
APPEND ls_head_conditionx TO lt_head_conditionx.
"调用bipi.
BREAK-POINT.
CALL FUNCTION 'BAPI_SAG_CREATE'
EXPORTING
header = ls_header
headerx = ls_headerx
* testrun = l_testrun
IMPORTING
purchasingdocument = l_ebeln
TABLES
return = lt_return
item = lt_item
itemx = lt_itemx
item_condition = lt_item_con
item_conditionx = lt_item_conx
item_cond_validity = lt_validity
item_cond_validityx = lt_validityx
head_cond_validity = lt_head_cond_validity
head_cond_validityx = lt_head_cond_validityx
head_condition = lt_head_condition
head_conditionx = lt_head_conditionx.
LOOP AT lt_return INTO ls_return WHERE type CA 'EA'.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true.
WRITE:l_ebeln.
ENDIF.
ENDFUNCTION.
计划协议在SAP MM模块中的作用是为企业提供一种有效的方式来管理按需采购和供应链活动。它们使采购流程更加灵活,有助于优化库存管理,提高供应链的透明度,同时提供了更好的供应商关系管理。这种方法适用于那些需要定期采购相同或类似物料或服务的企业,特别是对于长期供应关系的建立和管理。通过SAP MM模块,企业可以有效地创建、维护和监控计划协议,以支持其采购和供应链策略
按需采购管理: 计划协议允许企业与供应商建立长期协议,但不需要在协议签署时明确规定每次采购的具体数量。相反,它规定了一段时间内需要采购的物料或服务的交货计划,包括交货日期和数量范围。
灵活性: 计划协议非常灵活,允许企业根据实际需求进行采购和交付的调整。这使得企业能够根据需求的变化进行灵活的采购和库存管理,而无需每次都创建新的采购订单。
采购订单生成: 根据计划协议中的交货计划,企业可以随时生成相应的采购订单。这些采购订单通常根据需要自动生成,以满足特定交货日期和数量的需求。
供应链透明度: 计划协议提供了供应链的透明度,供应商能够了解客户的采购计划,这有助于更好地协调生产和交付。
减少采购复杂性: 计划协议减少了采购流程的复杂性,特别适用于那些需要定期从供应商那里采购相同或类似物料或服务的企业。
价格协商: 虽然计划协议不一定需要在协议签署时明确规定价格,但它们可以包括价格协商,允许企业和供应商协商一段时间内的价格。
库存管理: 通过计划协议,企业可以更好地管理物料的库存,因为它们可以根据实际需求生成采购订单,避免了库存积压或不足的问题。
供应商关系管理: 计划协议有助于建立更密切的供应商关系,使供应商能够更好地满足客户的需求。
4.1 基于Tcode的顺序排列
供应商主数据 | 物料主数据 | 货源清单 | 配额安排 | 采购信息记录 | 采购订单 | 框架协议 | 采购询价/报价 | 采购申请 | 订单收货 | 发票校验 | 物料需求计划 |
BP-供应商主数据 | MM01 - 物料主数据新增 | ME01 - 维护 | MEQ1 - 维护 | ME11 - 创建 | ME21N - 创建 | 框架协议-合同: | 询价: | ME51N - 创建采购申请 | MIGO - 货物移动 | MIRO - 发票校验 | MD01 - 联机 |
XK01 - 创建 | MM02 - 物料主数据修改 | ME03 - 显示 | MEQ3 - 显示 | ME12 - 修改 | ME22N - 更改 | ME31K - 创建 | ME41 - 创建 | ME52N - 更改采购申请 | MB03 - 显示物料凭证 | MD04 - 显示库存/需求状况 | |
XK02 - 更改 | MM03 - 物料主数据查询 | ME0M - 清单查询 | MEQ4 - 更改 | ME13 - 查询 | ME23N - 显示 | ME32K - 更改 | ME42 - 更改 | ME53N - 显示采购申请 | MB51 - 物料凭证清单 | ||
XK03 - 显示 | MM04 - 物料主数据冻结与解冻 | ME04 - 修改记录查询 | MEQM - 按物料 (清单显示) | ME14 - 修改记录查询 | ME29N - 审批 | ME33K - 显示 | ME43 - 显示 | ME54N - 批准采购请求 | MMBE - 库存总览 | ||
XK04 - 修改 | MM50 - 扩充物料视图 | ME15 - 删除 | ME34K - 维护补充 | ME44 - 维护补充 | ME5A - 清单查询 | MB52 - 现有仓库库存清单 | |||||
XK05 - 冻结 | MM06 - 删除物料标记 | ME1L - 清单查询 | ME35K - 审批 | ME45 - 审批 | |||||||
XK06 - 删除标记 | MM60 - 物料清单 | 框架协议-计划协议: | 报价: | ||||||||
XK07 - 科目组改变 | MM17 - 成批维护 | ME31L - 已知供应商 | ME47 - 维护 | ||||||||
ME37 - 库存传送计划协议 | ME48 - 显示 | ||||||||||
ME32L - 更改 | ME49 - 价格比较 | ||||||||||
ME33L - 显示 | |||||||||||
ME34L - 维护补充 | |||||||||||
ME35L - 审批 |
鸣谢:感谢查阅,请多多指教,有用请收藏、点赞哦 !