ME21N服务类采购订单

1、订单介绍

服务类采购订单:是用于采购“服务”的单据,比如软件费、维修费、物流费等无形的商品。
作用:

流程标准化与规范化: 为服务的采购提供了一个从申请、审批、执行到付款的标准化流程,确保合规性。

成本控制与预算管理: 在创建订单时即可指定成本中心、内部订单、WBS元素等成本对象,便于事前预算控制和事中成本归集。

服务执行的监控: 通过服务确认流程,业务部门可以监控服务的进度、检查服务质量,确保供应商履行合同。

精确的发票校验: 供应商发票必须与采购订单及已确认的服务数量/金额匹配,财务部门才能进行付款,避免了超额支付。

服务主数据管理: 建立可重复使用的服务主数据(如“高级SAP开发-人天”),提高采购效率和数据一致性。

2、订单创建

ME21N

image

代码实现

"--------------------@斌将军--------------------
DATA: ls_poheader  TYPE bapimepoheader,
      ls_poheaderx TYPE bapimepoheaderx,
      lt_poitem    TYPE TABLE OF bapimepoitem,
      ls_poitem    TYPE bapimepoitem,
      lt_poitemx   TYPE TABLE OF bapimepoitemx,
      ls_poitemx   TYPE bapimepoitemx,
      lt_polimits  TYPE TABLE OF  bapiesuhc,
      ls_polimits  TYPE bapiesuhc,
      lt_return    TYPE TABLE OF bapiret2,
      ls_return    TYPE bapiret2.

DATA: lv_ebeln   LIKE bapimepoheader-po_number,
      lv_check   TYPE char1,
      lv_message TYPE char255. "行项目

ls_poheader-doc_type    = 'NB'."采购凭证类型
ls_poheader-vendor = '0002012980'.
ls_poheader-purch_org  = '8030'."采购组织
ls_poheader-pur_group  = 'P22'."采购组
ls_poheader-comp_code = '8030'."公司代码
ls_poheader-currency = 'CNY'."货币
ls_poheader-doc_date   = sy-datum."采购凭证日期
ls_poheader-langu = sy-langu."语言代码

ls_poheaderx-doc_type    = abap_true.
ls_poheaderx-vendor       = abap_true.
ls_poheaderx-purch_org  = abap_true.
ls_poheaderx-pur_group  = abap_true.
ls_poheaderx-comp_code = abap_true.
ls_poheaderx-currency = abap_true.
ls_poheaderx-doc_date   = abap_true.
ls_poheaderx-langu =  abap_true.

ls_poitem-po_item =  1."采购凭证的项目编号
ls_poitem-acctasscat = 'U'."科目分配类别
ls_poitem-item_cat = 'D'."采购凭证项目类别 服务
ls_poitem-short_text = '自动生成 - 运费服务'."短文本
ls_poitem-quantity = 1."采购订单数量
ls_poitem-po_unit = 'LE'." 采购订单的计量单位 AU
ls_poitem-gr_ind = 'X'." 货物收据标识
ls_poitem-ir_ind = 'X'." 发票收据标识
ls_poitem-gr_basediv = 'X'." 标识:基于收货的发票验证
ls_poitem-plant = '8030'." 工厂
ls_poitem-matl_group = '809'." 物料组 在建工程-设备
ls_poitem-pckg_no = '0000000010'." 包编号
APPEND ls_poitem TO lt_poitem.

ls_poitemx-po_item =  1.
ls_poitemx-item_cat = abap_true.
ls_poitemx-acctasscat = abap_true.
ls_poitemx-short_text = abap_true.
ls_poitemx-quantity = abap_true.
ls_poitemx-po_unit = abap_true .
ls_poitemx-gr_ind = abap_true .
ls_poitemx-ir_ind = abap_true .
ls_poitemx-gr_basediv = abap_true .
ls_poitemx-plant = abap_true .
ls_poitemx-matl_group = abap_true .
ls_poitemx-pckg_no = abap_true .
APPEND ls_poitemx TO lt_poitemx.

ls_polimits-pckg_no = '0000000010'." 包编号 与行项目的包编号对应
ls_polimits-no_limit = 'X'."不限制
ls_polimits-exp_value = '5'."期望值
APPEND ls_polimits TO lt_polimits.

CLEAR:lv_ebeln.
CALL FUNCTION 'BAPI_PO_CREATE1'
  EXPORTING
    poheader         = ls_poheader
    poheaderx        = ls_poheaderx
  IMPORTING
    exppurchaseorder = lv_ebeln
  TABLES
    poitem           = lt_poitem
    poitemx          = lt_poitemx
    polimits         = lt_polimits
    return           = lt_return.

CLEAR:lv_check,lv_message.
LOOP AT lt_return INTO ls_return WHERE type CA 'EAX'.
  lv_message = lv_message && ls_return-message.
  lv_check = 'E'.
  CLEAR:ls_return.
ENDLOOP.

IF lv_check = 'E'.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDIF.

REFRESH:lt_poitem,lt_poitemx,lt_polimits,lt_return.
"--------------------@斌将军--------------------

3、服务确认

ML81N

输入对应的采购订单进行确认

image

在采购订单历史中可以看到产生的物料凭证

image

同时也产生了对应的会计凭证(暂估)和成本控制凭证。

image

直接产生会计凭证是未勾选“收获,未评估”

image

会计凭证分录为,借:在建工程,贷:设备工程暂估

因为采购订单选择的是设备物料组,所以此处进设备工程暂估科目

image

使用MIRO进行发票校验

image

将产生新的会计凭证,借:设备工程暂估,贷:应付国内供应商

image

ML81N服务确认创建代码参考

"--------------------@斌将军--------------------
DATA: ls_heetheader LIKE bapiessrc,
      lt_esll       LIKE TABLE OF bapiesllc,
      ls_esll       LIKE bapiesllc,
      lt_eskn       LIKE TABLE OF bapiesknc,
      ls_eskn       LIKE bapiesknc,
      lt_eskl       LIKE TABLE OF  bapiesklc,
      ls_eskl       LIKE bapiesklc,
      lt_return     TYPE TABLE OF bapiret2,
      ls_return     TYPE bapiret2,
      lv_pckg_no    LIKE bapiesllc-pckg_no  VALUE 1,
      lv_line_no    LIKE bapiesllc-line_no  VALUE 1,
      lv_entrysheet LIKE bapiessr-sheet_no,
      lv_tknum      TYPE vttk-tknum.

DATA:lv_check   TYPE char1,
     lv_message TYPE char255.

"抬头
CLEAR:ls_heetheader.
ls_heetheader-pckg_no    = lv_pckg_no."包编号
ls_heetheader-po_number  = '4501000304'."PO编号
ls_heetheader-po_item    = 10."PO项目编号
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = '900003111E'
  IMPORTING
    output = lv_tknum.
ls_heetheader-short_text = lv_tknum."短文本
ls_heetheader-ref_doc_no = lv_tknum."短文本
ls_heetheader-acceptance = 'K'."承诺标识
ls_heetheader-accasscat = 'K'."科目分配类别
ls_heetheader-post_date  = sy-datum."凭证中的凭证日期
ls_heetheader-doc_date   = sy-datum."凭证中的过帐日期

"行项目 相当于总行项目
CLEAR:ls_esll.
ls_esll-pckg_no    = lv_pckg_no."包编号
ls_esll-line_no    = lv_line_no.
*ls_esll-ext_line   = 0.
*ls_esll-outl_level = '0'.
ls_esll-outl_ind   = 'X'.
ls_esll-subpckg_no = 2. "子包编号 等于第二个行项目的包编号
APPEND ls_esll TO lt_esll.

"科目分配
CLEAR:ls_eskn.
ls_eskn-pckg_no    = lv_pckg_no."包编号
ls_eskn-serial_no = 1."科目分配的序号
ls_eskn-gl_account    = '0066013306'."总账科目
ls_eskn-costcenter    = '0080301712'."成本中心
APPEND ls_eskn TO lt_eskn.

"行项目
CLEAR:ls_esll.
ls_esll-pckg_no    = 2."等于 上述子包编号
ls_esll-line_no    = 10."内部行编号
ls_esll-quantity   = 1."数量
ls_esll-base_uom   = 'LE'."单位 AU
ls_esll-gr_price   = '5'."总价
ls_esll-short_text = lv_tknum."短文本
APPEND ls_esll TO lt_esll.

CLEAR:ls_eskl.
ls_eskl-pckg_no     = 2."等于 上述子包编号
ls_eskl-line_no     = 10."行号
ls_eskl-serno_line  = 1."帐户分配规范序号:服务行
ls_eskl-serial_no   = 1."科目分配的序号
ls_eskl-quantity    = 1."数量
APPEND ls_eskl TO lt_eskl.

CALL FUNCTION 'BAPI_ENTRYSHEET_CREATE'
  EXPORTING
    entrysheetheader            = ls_heetheader
  IMPORTING
    entrysheet                  = lv_entrysheet
  TABLES
    entrysheetaccountassignment = lt_eskn
    entrysheetservices          = lt_esll
    entrysheetsrvaccassvalues   = lt_eskl
    return                      = lt_return.

CLEAR:lv_check,lv_message.
LOOP AT lt_return INTO ls_return WHERE type CA 'EAX'.
  lv_message = lv_message && ls_return-message.
  lv_check = 'E'.
ENDLOOP.
IF lv_check = 'E'.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDIF.

REFRESH:lt_eskn,lt_esll,lt_eskl,lt_return.
"--------------------@斌将军--------------------

以上就是关于服务类采购订单的介绍,希望对你有所帮助

内容概要:本研究聚焦于绿电直连型电氢氨园区的优化运行,提出一种集成绿色电力直接供给、电解水制氢及氢气合成氨工艺的综合能源系统架构。通过建立包含风光发电、电解槽、氨合成反应器、储氢罐、电网交互及多类型负荷在内的系统模型,综合考虑绿电直供优先、能量梯级利用与多能互补原则,构建以系统综合运行成本最小化为目标的优化调度模型。研究采用Matlab与Python工具进行算法求解和仿真分析,利用实际气象与负荷数据完成案例验证,评估了不同运行策略下系统的经济性、可再生能源消纳能力与碳减排效益,为新型电氢氨一体化园区的规划与运行提供了理论依据和技术支撑。; 适合人群:具备一定电力系统、新能源或化工背景的研究生、科研人员及从事综合能源系统规划与优化工作的工程技术人员。; 使用场景及目标:①用于科研学习,理解电-氢-氨多能转换系统的建模与优化方法;②为工业园区的低碳化、智能化改造提供技术参考与决策支持;③作为开发类似综合能源管理系统的理论基础。; 阅读建议:此资源包含完整的模型代码、数据与论文,使用者应结合代码仔细研读论文中的模型构建部分,重点关注目标函数与约束条件的设计逻辑,并尝试修改参数进行仿真,以深入掌握优化算法在实际系统中的应用。
内容概要:本文深入探讨了RS485通信协议在芯片行业自动化测试系统中的实际开发与应用,涵盖其关键概念、电气特性、通信机制及与Modbus RTU协议的结合使用。文章重点介绍了差分信号完整性设计、主从时序控制、CRC校验与重传机制等核心技术要点,并通过一个基于Python的完整代码实例,展示了如何实现RS485主站对探针台、自动分选机等芯片测试设备的控制与数据采集。此外,还分析了RS485在晶圆探针台、ATE设备集群和环境监控等典型场景的应用,并展望了其与工业以太网融合、智能化诊断、高速化及AI集成的发展趋势。; 适合人群:具备一定嵌入式系统或工业通信基础,从事芯片测试、自动化设备开发及相关领域的研发人员,尤其是工作1-3年希望提升现场总线应用能力的工程师。; 使用场景及目标:①理解RS485在高干扰芯片测试环境中稳定通信的设计原理;②掌握Modbus RTU协议在Python下的实现方法,用于实际控制探针台、Handler等设备;③构建可靠的数据采集与设备控制系统,支持CRC校验、异常处理和日志追踪;④为后续向高速通信和智能诊断系统升级提供技术储备。; 阅读建议:此资源强调实战开发,建议结合硬件环境动手调试代码,重点关注线程锁、CRC计算、帧解析和超时控制等关键环节,在真实产线中验证通信稳定性,并利用日志系统进行故障分析与优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值