项目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. Ubuntu系统---C++之Eclipse IDE 编译器安装

    Ubuntu系统---C++之Eclipse IDE 编译器安装 Eclipse是一个基于Java的.开放源码的.可扩展的应用开发平台,它为编程人员提供了一流的Java集成开发环境(Integrate ...

  2. 算法笔记--BSGS && exBSGS 模板

    https://www.cnblogs.com/sdzwyq/p/9900650.html 模板: unordered_map<int, int> mp; LL q_pow(LL n, L ...

  3. 从c到c++<四>

    总结一下:内联函数实际上就是用inline修饰的函数,这些函数会在编译时由编译器来将代码展开,而不用像上面第二点提到的人工展开,它的使用场景:代码很短.使用频率高. 具体代码如下: 对于这两者实际上还 ...

  4. SmtpClient 发送邮件

    利用SmtpClient 代码发送邮件. 简单测试代码: static void Main(string[] args) { MailMessage msg = new MailMessage(); ...

  5. Linux系统chmod 777 误操作目录权限 - 恢复方法

    小白操作Linux,手抖导致误修改了系统文件和目录权限,导致系统宕机的修复. -R / -R / test 有的是真不懂,执行了上面的第一条命令,有的是懂,但是操作太快或者粗心大意,或者有乱敲空格的恶 ...

  6. cursor: hand和cursor:pointer的区别

    cursor:hand 与 cursor:pointer 的效果是一样的,都像光标指向链接一样,光标变成手行. cursor:hand :IE完全支持.但是在firefox是不支持的,没有效果. cu ...

  7. MVC的一些有用代码

    1.将patial view转成字符串 protected string RenderPartialViewToString(string viewName, object model) { if ( ...

  8. 安装YII

    吸收了其它php网站的搭建经验,没想到安装yii的时候还是状况频出 yii2 安装 http://www.yiichina.com/tutorial/324 1.下载了个yii2 advance的版本 ...

  9. 【概率论】3-7:多变量分布(Multivariate Distributions Part II)

    title: [概率论]3-7:多变量分布(Multivariate Distributions Part II) categories: Mathematic Probability keyword ...

  10. LOJ3120. 「CTS2019」珍珠 [容斥,生成函数]

    传送门 思路 非常显然,就是要统计有多少种方式使得奇数的个数不超过\(n-2m\).(考场上这个都没想到真是身败名裂了--) 考虑直接减去钦点\(n-2m+1\)个奇数之后的方案数,但显然这样会算重, ...