SAP_ABAP_MM_BAPI清单案例教程——框架协议-计划协议_BAPI_SAG_CREATE_ME31L

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读423次。目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提参考ALV/REPORT|SMARTFROM|SCREEN|OLE|BAPI|BDC|PI|IDOC|RFC|API|WEBSERVICE|Enhancement|UserExits|Badi|Debughttps://blog.csdn.net/java_zhong1990/article/details/132469977目标: 掌握SAP MM模块,主要流程相关的BAPI 函数的使用,主要有如下模块

询价 报价 货源清单 配额安排 采购信息记录 框架协议-合同 框架协议-计划协议 采购订单 采购收货  发票校验 发票过账


一 背景说明

1.1 什么是SAP BAPI.

        BAPI是SAP系统标准函数,比如:采购申请创建函数、采购订单创建函数等等。

1.2 SAP采购模块标准流程

1.2.1 模块导航
采购信息记录修改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博客
采购发票付款SAP_ABAP_FI_BAPI清单案例教程——采购付款/销售收款_BAPI_ACC_DOCUMENT_POST_F-02-CSDN博客
1.2.2 BAPI清单
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采购发票过账
BAPI_ACC_DOCUMENT_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.

三 业务理解

3.1 概念理解

        计划协议在SAP MM模块中的作用是为企业提供一种有效的方式来管理按需采购和供应链活动。它们使采购流程更加灵活,有助于优化库存管理,提高供应链的透明度,同时提供了更好的供应商关系管理。这种方法适用于那些需要定期采购相同或类似物料或服务的企业,特别是对于长期供应关系的建立和管理。通过SAP MM模块,企业可以有效地创建、维护和监控计划协议,以支持其采购和供应链策略

  1. 按需采购管理: 计划协议允许企业与供应商建立长期协议,但不需要在协议签署时明确规定每次采购的具体数量。相反,它规定了一段时间内需要采购的物料或服务的交货计划,包括交货日期和数量范围。

  2. 灵活性: 计划协议非常灵活,允许企业根据实际需求进行采购和交付的调整。这使得企业能够根据需求的变化进行灵活的采购和库存管理,而无需每次都创建新的采购订单。

  3. 采购订单生成: 根据计划协议中的交货计划,企业可以随时生成相应的采购订单。这些采购订单通常根据需要自动生成,以满足特定交货日期和数量的需求。

  4. 供应链透明度: 计划协议提供了供应链的透明度,供应商能够了解客户的采购计划,这有助于更好地协调生产和交付。

  5. 减少采购复杂性: 计划协议减少了采购流程的复杂性,特别适用于那些需要定期从供应商那里采购相同或类似物料或服务的企业。

  6. 价格协商: 虽然计划协议不一定需要在协议签署时明确规定价格,但它们可以包括价格协商,允许企业和供应商协商一段时间内的价格。

  7. 库存管理: 通过计划协议,企业可以更好地管理物料的库存,因为它们可以根据实际需求生成采购订单,避免了库存积压或不足的问题。

  8. 供应商关系管理: 计划协议有助于建立更密切的供应商关系,使供应商能够更好地满足客户的需求。

四  常用Tcode

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 - 审批

鸣谢:感谢查阅,请多多指教,有用请收藏、点赞哦 ! 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry谈企业数字化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值