ME41询价单创建BAPI

关于ME41创建询价单系统并没有准备标准的BAPI,这一点在note:2115337中有说明。 

但是通过查阅相关资料找到一个BAPI:BS01_MM_QUOTATION_CREATE,可以为ME41进行创建,但是如果不做一些增强,会有一些额外的错误,比如创建出的单据数量为0,报错必须输入价格等。此外,该函数属于服务清单,是行业解决方案DIMP的一部分,只有在SFW5中激活DIMP才能正常使用,但是不建议仅针对要使用该函数而激活DIMP。

但是创建ME41没有比这个函数更合适的了,所以不激活DIMP的情况下,只需要做两个增强即可。

增强点1:

Main Program:            SAPMM06E

Include:                       MM06EF0N_NEUE_POS_BESTELLUNG

Enhancement Spot:    ES_SAPMM06E

Enhancement Point:   MM06EF0N_NEUE_POS_BESTELLUN_05

增强点2:

Main Program:            SAPMM06E

Include:                       MM06EF0E_EKPO-NETWR_MOD

Enhancement Spot:    ES_MM06EF0E_EKPO_NETWR_MOD

Enhancement Point:   MM06EF0E_EKPO_NETWR_MOD_01

BAPI调用参考代码:

*&---------------------------------------------------------------------*
*& Form FRM_BAPI_RFQ_MAINTAIN
*&---------------------------------------------------------------------*
*& Using BAPI to create RFQ
*&---------------------------------------------------------------------*
FORM frm_bapi_rfq_maintain USING us_head            TYPE zprmmsrfq_head_in
                                 ut_item            TYPE zprmmtrfq_item_in
                                 ut_item_text       TYPE zprmmtcontract_item_text_in
                        CHANGING cs_resp TYPE zprbcsrest_out.

  DATA:
    ls_header   TYPE bs01mmhead,
    ls_address  TYPE bapiaddress,
    lt_items    TYPE STANDARD TABLE OF bs01mmitem,
    ls_items    TYPE bs01mmitem,
    lt_schdules TYPE STANDARD TABLE OF bs01mmschedule,
    ls_schdules TYPE bs01mmschedule,
    lt_text     TYPE STANDARD TABLE OF bs01mmitemtx,
    ls_text     TYPE bs01mmitemtx,
    lt_return   TYPE STANDARD TABLE OF bapiret2.

  DATA:
    lv_ponumber TYPE ebeln.

  DATA:
    ls_addr_sel TYPE addr1_sel,
    ls_addr_val TYPE addr1_val.

  CONSTANTS:
    lc_doc_type TYPE ebstyp VALUE 'A'.

**********************************************************************
* Head data
**********************************************************************
  ls_header-doc_cat    = lc_doc_type.                                 "
  ls_header-doc_type   = us_head-bsart.                                 "Purchasing Document Category
  ls_header-created_on = sy-datum.                                      "Purchasing Document Type
  ls_header-created_by = sy-uname.                                      "Create user
  ls_header-vendor     = us_head-lifnr.                                 "Vendor
  ls_header-purch_org  = us_head-ekorg.                                 "Purchasing organization
  ls_header-pur_group  = us_head-ekgrp.                                 "Purchasing Group
  ls_header-language   = sy-langu.                                      "Language Key
  ls_header-doc_date   = us_head-bedat.                                 "Create Date
  ls_header-quot_dead  = us_head-angdt.                                 "Deadline for Submission of Bid/Quotation
  ls_header-currency   = us_head-waers.                                 "Currency
  ls_header-mast_cond  = abap_true.                                     "Document with time-dependent conditions

**********************************************************************
* Address Data
**********************************************************************
  SELECT SINGLE
         adrnr
    INTO ls_addr_sel-addrnumber
    FROM lfa1
   WHERE lifnr = ls_header-vendor.

  CALL FUNCTION 'ADDR_GET'
    EXPORTING
      address_selection = ls_addr_sel
    IMPORTING
      address_value     = ls_addr_val
    EXCEPTIONS
      parameter_error   = 1
      address_not_exist = 2
      version_not_exist = 3
      internal_error    = 4
      address_blocked   = 5
      OTHERS            = 6.

  IF sy-subrc <> 0.
*   Implement suitable error handling here
  ENDIF.

  MOVE-CORRESPONDING ls_addr_val TO ls_address.

**********************************************************************
* Item Data
**********************************************************************
  LOOP AT ut_item INTO DATA(us_item).
    ls_items-doc_item   = us_item-ebelp.                                "Item Number
    ls_items-pur_mat    = us_item-matnr.                                "Material Number
    ls_items-plant      = us_item-werks.                                "Plant
    ls_items-store_loc  = us_item-lgort.                                "Storage location
    ls_items-unit       = us_item-meins.                                "Unit
    APPEND ls_items TO lt_items.

    ls_schdules-doc_item   = us_item-ebelp.                             "Item Number
    ls_schdules-serial_no  = 1.                                         "Delivery Schedule Line Counter
    ls_schdules-deliv_date = us_item-eindt.                             "Item delivery date
    ls_schdules-quantity   = us_item-ktmng.                             "Scheduled Quantity
    APPEND ls_schdules TO lt_schdules.

    LOOP AT ut_item_text INTO DATA(us_item_text) WHERE item_no = us_item-ebelp.
      ls_text-doc_item  = us_item_text-item_no.                         "Item Number
      ls_text-text_id   = us_item_text-text_id.                         "Text Id
      ls_text-text_line = us_item_text-text_line.                       "Text Value
      APPEND ls_text TO lt_text.
      CLEAR ls_text.
    ENDLOOP.

    CLEAR:
      ls_items,
      ls_schdules.
  ENDLOOP.

*--------------------------------------------------------------------*
* Note: This BAPI is not designed to create RFQ functions. If you need
* to use this function to create MM RFQ documents, you need to implement
* the following enhancements:
* ①
* Program:    MM06EF0N_NEUE_POS_BESTELLUNG
* Enhancement:ENHANCEMENT-POINT MM06EF0N_NEUE_POS_BESTELLUN_05 SPOTS ES_SAPMM06E.
* Code:       EKPO-REPOS = ''.(Should be only use for create RFQ)
*
* ②
* Program:    MM06EF0E_EKPO-NETWR_MOD
* Enhancement:ENHANCEMENT-POINT MM06EF0E_EKPO_NETWR_MOD_01 SPOTS ES_MM06EF0E_EKPO_NETWR_MOD INCLUDE BOUND.
* Code:       RM06E-ANMNG = EKPO-MENGE.(Should be only use for create RFQ)
*--------------------------------------------------------------------*
* Create RFQ
  CALL FUNCTION 'BS01_MM_QUOTATION_CREATE'
    EXPORTING
      quotation_header         = ls_header
      quotation_address        = ls_address
      skip_items_with_error    = ''
    IMPORTING
      quotation                = lv_ponumber
    TABLES
      quotation_items          = lt_items
      quotation_item_schedules = lt_schdules
      quotation_item_text      = lt_text
      return                   = lt_return.

  LOOP AT lt_return INTO DATA(ls_return)
    WHERE type CA gc_err_ty.

    cs_resp-msgty = gc_msgty_e.
    CONCATENATE cs_resp-msgtx ls_return-message INTO cs_resp-msgtx.
  ENDLOOP.

  IF lv_ponumber IS NOT INITIAL.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = abap_true.

    cs_resp-msgty = gc_msgty_s.

*   & created under the number &
    MESSAGE s017(06) WITH sy-msgv1 sy-msgv2 INTO cs_resp-msgtx.

    cs_resp-sapnum = lv_ponumber.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ENDIF.
ENDFORM.

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/65818.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue 整合 Element UI 、路由嵌套、参数传递、重定向、404和路由钩子(五)

一、整合 Element UI 1.1 工程初始化 使用管理员的模式进入 cmd 的命令行模式&#xff0c;创建一个名为 hello-vue 的工程&#xff0c;命令为&#xff1a; # 1、目录切换 cd F:\idea_home\vue# 2、项目的初始化&#xff0c;记得一路的 no vue init webpack hello-vue 1.2 安装…

【代码】表格封装 + 高级查询 + 搜索 +分页器 (极简)

一、标题 查询条件按钮&#xff08;Header&#xff09; <!-- Header 标题搜索栏 --> <template><div><div class"header"><div class"h-left"><div class"title"><div class"desc-test">…

Flutter系列文章-实战项目

在本篇文章中&#xff0c;我们将通过一个实际的 Flutter 应用来综合运用最近学到的知识&#xff0c;包括保存到数据库、进行 HTTP 请求等。我们将开发一个简单的天气应用&#xff0c;可以根据用户输入的城市名获取该城市的天气信息&#xff0c;并将用户查询的城市列表保存到本地…

语音同声翻译软件到底谁更胜一筹呢

嘿&#xff01;你是否曾经遇到过需要在不同语言之间进行实时翻译的情况&#xff1f;别担心&#xff0c;现在有许多翻译软件可供选择&#xff0c;让你的沟通变得更加简便和愉快。无论你是旅行者、国际商务人士还是语言爱好者&#xff0c;这些软件都将成为你的得力助手&#xff0…

领航优配:暑期旅游市场热度持续攀升,相关公司业绩有望持续释放

到发稿&#xff0c;海看股份涨停&#xff0c;中广天择、探路者、众信旅行等涨幅居前。 8月8日&#xff0c;在线旅行板块震动上涨&#xff0c;到发稿&#xff0c;海看股份涨停&#xff0c;中广天择、探路者、众信旅行等涨幅居前。 今年以来&#xff0c;国内旅行商场逐渐恢复。文…

arcgis--数据库构建网络数据集

1、打开arcmap软件&#xff0c;导入数据&#xff0c;如下&#xff1a; 该数据已经过处理&#xff0c;各交点处均被打断&#xff0c;并进行了拓扑检查。 2、在文件夹下新建文件数据库&#xff0c;名称为路网&#xff0c;在数据库下新建要素类&#xff0c;并导入道路shp文件&…

网络编程的使用

文章目录 基础代码URL类进行传输编码解码 协议TCPUDPhttp PORT端口协议的实现TCPUDP 模拟服务器 基础代码 最后一个是&#xff1a;只要再timeout时间内连接上就是true URL类 导了一个common-iojar包&#xff0c;那个IOUtils就是那个里面的工具类 进行传输编码解码 协议 TC…

应用在室外LED电子显示屏中的MiniLED背光

LED电子显示屏是一种通过控制半导体发光二极管的显示方式&#xff0c;是由几万–几十万个半导体发光二极管像素点均匀排列组成。它利用不同的材料可以制造不同色彩的LED像素点&#xff0c;以显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。 LED显示屏…

前端进阶html+css04----盒子模型

1.一个盒子由content&#xff08;文本内容)&#xff0c;padding,border,margin组成。 2.盒子的大小指的是盒子的宽度和高度。一般由box-sizing属性来控制。 1&#xff09;默认情况下, 也就是box-sizing: content-box时&#xff0c;盒子的宽高计算公式如下&#xff1a; 盒子宽…

rocketMq消息队列详细使用与实践整合spring

文章目录 一、RocketMQ原生API使用1、测试环境搭建2、RocketMQ的编程模型3、RocketMQ的消息样例3.1 基本样例3.2 顺序消息3.3 广播消息3.4 延迟消息3.5 批量消息3.6 过滤消息3.7 事务消息3.8 ACL权限控制 二、SpringBoot整合RocketMQ1、快速实战2、其他更多消息类型&#xff1a…

axios接受文件流并下载

需求场景 前端发送请求&#xff0c;后端传回文件流&#xff0c;前端接受到后立刻打开下载窗口下载文件 注意事项 请求api需要添加&#xff1a;responseType:blob&#xff0c; axios拦截器拦截错误状态码 (假设是code) 那里的if从res.code ! 200改为res.code && res.…

AI和GPT的崛起,对未来项目管理的影响与变革︱原微软项目经理陆敏

原微软项目经理和产品经理人才顾问陆敏先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;AI和GPT的崛起&#xff0c;对未来项目管理的影响与变革。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1…

Not All Features Matter:Enhancing Few-shot CLIP with Adaptive Prior Refinement

APE是ICCV2023的一篇文章&#xff0c;也是我在这个领域里接触的第一篇文章&#xff0c;这里主要做一下记录。 论文链接&#xff1a;2304.01195.pdf (arxiv.org) 代码链接&#xff1a;yangyangyang127/APE: [ICCV 2023] Code for "Not All Features Matter: Enhancing Fe…

Java多线程(七)

目录 一、线程池参数介绍 二、线程池的工作流程 三、使用Executors创建常见的线程 一、线程池参数介绍 为了深入的了解线程池&#xff0c;这里就需要明白线程中的各种参数的含义。下述的图片中是来自于Java标准库中对线程池描述。 1.corePoolSize 与 maximumPoolSize 其中core…

pytorch模型转化为tensorflow模型

前言 目前大多数模型都是pytorch格式&#xff0c;部署上很多tfserving用的比较多&#xff0c;因此模型格式需要是save_model.pb的格式&#xff0c;本篇文章介绍将pytorch转化为tensorflow格式模型方式。 核心过程&#xff1a;pytorch>onnx>tensorflow 一、pytorch转onn…

git clean 命令

git clean -n //显示要删除的文件&#xff0c;clean的演习&#xff0c;告诉哪些文件删除&#xff0c;只是一个提醒。 git clean -dn //显示要删除的文件和目录 git clean -f //删除未追踪的文件 git clean -dff //删除未追踪的目录 git clean -df //清除所有未跟踪文件&#xf…

开源数据集分类汇总(医学,卫星,分割,分类,人脸,农业,姿势等)

本文汇总了医学图像、卫星图像、语义分割、自动驾驶、图像分类、人脸、农业、打架识别等多个方向的数据集资源&#xff0c;均附有下载链接。 该文章仅用于学习记录&#xff0c;禁止商业使用&#xff01; 1.医学图像 疟疾细胞图像数据集 下载链接&#xff1a;http://suo.nz/2V…

Java基础(七)排序算法

排序 1. 冒泡排序 >> 冒泡排序的思想 冒泡排序是一种简单的排序算法&#xff0c;其基本思想是通过多次遍历待排序序列&#xff0c;依次比较相邻的元素并交换位置&#xff0c;使得每次遍历后最大&#xff08;或最小&#xff09;的元素冒泡到序列的末尾。具体步骤如下&a…

uniapp发布插件显示components/xxx文件没找到,插件格式不正确

uniapp发布插件显示components/xxx文件没找到&#xff0c;插件格式不正确 将插件文件这样一起选中&#xff0c;然后右键压缩成zip文件&#xff0c;而不是外层文件压缩

构建Docker容器监控系统 (1)(Cadvisor +InfluxDB+Grafana)

目录 Cadvisor InfluxDBGrafana 1. Cadvisor 2.InfluxDB 3.Grafana 开始部署&#xff1a; 下载组件镜像 创建自定义网络 创建influxdb容器 创建数据库和数据库用户 创建Cadvisor 容器 准备测试镜像 创建granafa容器 访问granfana 添加数据源 Add data source 新建 …