项目MSEG 的 BAPI 表增强结构  BAPI_TE_XMSEG

抬头MKPF 的 BAIP 表增强 BAPI_TE_XMKPF

  • 1. 在结构BAPI_TE_XMSEG中appending structure附加结构 ZMSEG_001,增加字段LSMNG,

LSMEH

In The method IF_EX_MB_Hi, you can update LSMNG quantity using EXTENSIONIN structures of BAPI_GOODSMVT_CREATE. The steps are the following: Add LSMNG field in BAPI_TE_XMSEG structure create an appending structure (char field) By SE19 transaction create the Enhancement Spot starting from MB_GOODSMOVEMENT Define the Badi Implementation choosing MB_BAPI_GOODSMVT_CREATE Badi Definition implementing a new customer class.

---------------------

作者:ChampaignWolf

来源:CSDN

原文:https://blog.csdn.net/champaignwolf/article/details/80676837

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2.SE19 使用MB_GOODSMOVEMENT创建实施,实现新客户类的定义

选中行,点击赋值示例类

  • 3.保存并激活全部对象,

双击实施类,可以看到方法:IF_EX_MB_BAPI_GOODSMVT_CREATE~EXTENSIONIN_TO_MATDOC

方法里面可以看到如下代码:

METHOD IF_EX_MB_BAPI_GOODSMVT_CREATE~EXTENSIONIN_TO_MATDOC.

  DATA:
c_lenstruc TYPE i VALUE ,
wa_bapi_mb_header TYPE bapi_te_xmkpf,
wa_bapi_mb_item TYPE bapi_te_xmseg,
wa_extension_in TYPE bapiparex. FIELD-SYMBOLS:
<fs_imseg> TYPE imseg. CHECK NOT extension_in[] IS INITIAL. * Analyze IMSEG for document structure and assign LINE_IDs if necessary
CALL METHOD cl_mmim_line_id_manager=>analyze_mb_create
CHANGING
ct_imseg = ct_imseg[]
EXCEPTIONS
duplicate_line_id =
OTHERS = . LOOP AT extension_in INTO wa_extension_in.
CASE wa_extension_in-structure.
* extension of MKPF
WHEN 'BAPI_TE_XMKPF'.
MOVE wa_extension_in+c_lenstruc TO wa_bapi_mb_header.
MOVE-CORRESPONDING wa_bapi_mb_header TO cs_imkpf.
* extension of MSEG
WHEN 'BAPI_TE_XMSEG'.
MOVE wa_extension_in+c_lenstruc TO wa_bapi_mb_item.
READ TABLE ct_imseg
WITH KEY line_id = wa_bapi_mb_item-matdoc_itm
ASSIGNING <fs_imseg>.
IF sy-subrc EQ .
MOVE-CORRESPONDING wa_bapi_mb_item TO <fs_imseg>.
ENDIF.
ENDCASE.
ENDLOOP. ENDMETHOD.
  • 3. BAPI_GOODSMVT_CREATE 赋值表extensionin,
* 定义过账BAPI的结构
DATA: lt_item TYPE TABLE OF bapi2017_gm_item_create,
lt_return TYPE TABLE OF bapiret2.
DATA: ls_item TYPE bapi2017_gm_item_create,
ls_return TYPE bapiret2,
ls_head TYPE bapi2017_gm_head_01,
ls_code TYPE bapi2017_gm_code.
DATA: ls_extensionin TYPE bapiparex,
lt_extensionin TYPE TABLE OF bapiparex.
DATA: lv_mblnr TYPE mkpf-mblnr,
lv_mjahr TYPE mkpf-mjahr,
lv_flag TYPE c,
lv_message TYPE string,
lv_testrun TYPE bapi2017_gm_gen-testrun,
lv_date TYPE sy-datum,
lv_meins TYPE lips-meins. LOOP AT gt_doc ASSIGNING <gf_doc> WHERE sel = 'X'.
IF <gf_doc>-zstatus = 'S'.
CONTINUE.
ENDIF. **clear:
CLEAR: lv_message,lv_mblnr,lv_mjahr,
ls_head,ls_code,
ls_item,lt_item,
lv_mblnr,lv_mjahr,
ls_extensionin,lt_extensionin,
ls_return,lt_return. ls_code-gm_code = ''. **set head
ls_head-pstng_date = sy-datum. "过账日期
ls_head-doc_date = sy-datum. "
ls_head-pr_uname = sy-uname. "
ls_head-gr_gi_slip_no = <gf_doc>-vbeln.
ls_head-ref_doc_no = <gf_doc>-vbeln. **set item
ls_item-move_type = ''. "移动类型
ls_item-mvt_ind = 'B'. "移动标识:有关交货通知的货物移动 ls_item-material = <gf_doc>-zmatnr. "物料号码
ls_item-entry_qnt = <gf_doc>-zlfimg. "数量
ls_item-quantity = <gf_doc>-zlfimg.
* ls_item-batch = <gf_doc>-zcharg. "SAP批次
* ls_item-move_stloc = <gf_doc>-zkcd. "库存地点
ls_item-deliv_numb = <gf_doc>-vbeln. "DN
ls_item-deliv_item = <gf_doc>-posnr. "DN item
**输入采购订单
*PO_NUMBER
*PO_ITEM
CLEAR: lv_meins.
SELECT SINGLE vgbel vgpos charg meins
INTO (ls_item-po_number,ls_item-po_item,ls_item-batch,lv_meins)
FROM lips
WHERE vbeln = <gf_doc>-vbeln
AND posnr = <gf_doc>-posnr.
**工厂
SELECT SINGLE werks
INTO ls_item-plant
FROM ekpo
WHERE ebeln EQ ls_item-po_number
AND ebelp EQ ls_item-po_item.
ls_item-stge_loc = <gf_doc>-zkcd."收货库存地点
APPEND ls_item TO lt_item.
CLEAR: ls_item.
**LSMNG LSMEH
ls_extensionin-structure = 'BAPI_TE_XMSEG'.
ls_extensionin-valuepart1+() = ''.
ls_extensionin-valuepart1+() = <gf_doc>-zlfimg.
ls_extensionin-valuepart1+() = lv_meins.
APPEND ls_extensionin TO lt_extensionin. CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = ls_head
goodsmvt_code = ls_code
testrun = lv_testrun
IMPORTING
materialdocument = lv_mblnr
matdocumentyear = lv_mjahr
TABLES
goodsmvt_item = lt_item
return = lt_return
extensionin = lt_extensionin. LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'.
lv_flag = 'E'.
lv_message = lv_message && ls_return-message.
EXIT.
ENDLOOP. <gf_doc>-zendat = sy-datum.
<gf_doc>-zendtm = sy-uzeit.
<gf_doc>-usnam = sy-uname.
IF lv_flag = 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
<gf_doc>-zstatus = 'E'.
<gf_doc>-zmessage = lv_message.
<gf_doc>-icon = '@5C@'.
ELSE.
<gf_doc>-zstatus = 'S'.
<gf_doc>-zmessage = '过账成功'.
<gf_doc>-icon = '@5B@'.
<gf_doc>-mblnr = lv_mblnr.
<gf_doc>-mjahr = lv_mjahr.
ENDIF.
PERFORM frm_update_db.
ENDLOOP.

测试出现DUMP:

要改这一段:

BAPI_GOODSMVT_CREATE物料凭证增强字段的更多相关文章

  1. 【ABAP系列】SAP ABAP 物料凭证增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 物料凭证增强 ...

  2. CALL FUNCTION 'BAPI_GOODSMVT_CREATE'-(物料凭证创建)

    *&---------------------------------------------------------------------* *& Report  YTST_RAI ...

  3. 【MM系列】SAP 物料凭证增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]在SAP里查看数据的方法   前言部 ...

  4. 销售订单增强字段 bapi更新

    如果增强字段在销售订单抬头(vbak)上,则要将增强字段一并append到如下四个表/结构中: VBAKKOZ VBAKKOZX BAPE_VBAK BAPE_VBAKX 在行项目(vbap)上: V ...

  5. 查看物料凭证MB03 /MIGO A04-显示,R02-物料凭证

    当货物移动操作后,可以使用事物码MB03.MIGO查询最近一次生成的物料凭证, 如果未知凭证号,Table:MKPF / AUFM/EKBE MKPF 抬头:物料凭证 KEY: MBLNR 物料凭证编 ...

  6. 「SAP 技术」SAP MM 物料主数据利润中心字段之修改

    SAP MM 物料主数据利润中心字段之修改 近日,收到业务部门报的一个问题,说是MM02去修改物料的利润中心字段值,系统报错说物料库存存在,不让修改. 笔者查询了该物料的库存,当期库存并不存在.MMB ...

  7. CRM INBOX 查询结果增强字段

    参考:https://blogs.sap.com/2013/03/25/how-to-integrate-new-result-list-attributes-into-the-agent-inbox ...

  8. ABAP-会计凭证替代字段GB01设置

    1.GB01表字段设置 SM30:VWTYGB01 找到需要替代的字段,设置bexclude勾选为空 2.运行程序 RGUGBR00 激活

  9. MARA 附加结构(增强字段)

随机推荐

  1. Oracle查询表空间使用情况的一个sql

    select  t1.tablespace_name,curr_b/1024/1024/1024,max_b/1024/1024/1024,curr_b/max_b from(select table ...

  2. Unknown initial character set index '255' received from server. Initial client character 解决方法

    Unknown initial character set index '255' received from server. Initial client character set can be ...

  3. SP116 INTERVAL - Intervals

    题意翻译 区间取数 题目描述 有n个区间,在区间[ai,bi]中至少取任意互不相同的ci个整数.求在满足n个区间的情况下,至少要取多少个正整数. 输入输出格式 输入格式 多组数据. 第一行的一个整数T ...

  4. 基于 es6 的 javascript 实用方法

    一.求数字数组的平均数 - 使用 数组的 reduce() 方法将每个值添加到累加器,初始值为0,总和除以数组长度. const average = arr => arr.reduce((acc ...

  5. Nginx中ngx_stream_core_module和ngx_stream_proxy_module

    ngx_stream_core_module模块该模块模拟基于tcp或udp的服务连接的反向代理理,即⼯工作于传输层的调度器器指令:17.1 streamSyntax: stream { ... }D ...

  6. 【JUC系列第一篇】-Volatile关键字及内存可见性

    作者:毕来生 微信:878799579 什么是JUC? JUC全称 java.util.concurrent 是在并发编程中很常用的实用工具类 2.Volatile关键字 1.如果一个变量被volat ...

  7. febric的使用

    from fabric.api import * from fabric.colors import * from fabric.tasks import execute ''' env.hosts ...

  8. VUE cli 4.x下配置多页面以及同时配置支持element-ui及mint-ui并且优化首页文件大小。

    场景,公司的一个小型项目,需同时支持移动端和PC端.最开始考虑做两个独立的项目.但后来考虑到总共只有4个功能页面,布署起来相对麻烦.所以决定做在一个项目里. 1.升级vue-cli到4.x npm i ...

  9. click([[data],fn]) 触发每一个匹配元素的click事件。

    click([[data],fn]) 概述 触发每一个匹配元素的click事件. 这个函数会调用执行绑定到click事件的所有函数.大理石平台精度等级 参数 fnFunctionV1.0 在每一个匹配 ...

  10. How to change the default browser in Visual Studio

    http://www.hanselman.com/blog/HowToChangeTheDefaultBrowserInVisualStudioProgrammaticallyWithPowerShe ...