首页 > 其他分享 >BAPI_GOODSMVT_CREATE修改创建人的问题

BAPI_GOODSMVT_CREATE修改创建人的问题

时间:2023-08-09 15:33:07浏览次数:42  
标签:ZEXTEN BAPI EXTENSION CREATE LS GOODSMVT

参考自http://www.ut163.com/create-material-movement-voucher-bapi-goodsmvt-create/

在做外围系统入库数据传SAP时候,业务部门发现物料凭证的生成人员不是操作者,提出需要修改,经检查BAPI_GOODSMVT_CREATE函数,发现和人有关的参数就header上的pr_uname,

bapi header  ls_header-pr_uname   = "指定用户"

经过传参发现不起作用,生成的物料凭证,创建人还是接口账号,不是代码中指定的。

1.解决方法

1.事务码SE18,选择Enhancement Spot,打开MB_GOODSMOVEMENT,

 2.选择MB_BAPI_GOODSMVT_CREATE->实施,右键,点击”创建BADI实施”,结果如图。

 3.双击新生成的实施“ZMB_BAPI_GOODSMVT_CREATE”,打开实施方法IF_EX_MB_BAPI_GOODSMVT_CREATE~EXTENSIONIN_TO_MATDOC,编辑代码如下。

 

method IF_EX_MB_BAPI_GOODSMVT_CREATE~EXTENSIONIN_TO_MATDOC.
  DATA: LT_EXTENSION type standard table of BAPIPAREX,
        LS_EXTENSION type  BAPIPAREX,
        LS_ZEXTEN TYPE ZBAPI_TE_XMKPF.
 
 
  LOOP AT EXTENSION_IN INTO LS_EXTENSION WHERE STRUCTURE  = 'ZBAPI_TE_XMKPF'.
    LS_ZEXTEN = LS_EXTENSION-VALUEPART1.
    IF LS_ZEXTEN-USNAM IS NOT INITIAL.
      CS_IMKPF-USNAM = LS_ZEXTEN-USNAM.
    ENDIF.
    EXIT.
  ENDLOOP.
endmethod.

4,在上面的代码中使用了结构,ZBAPI_TE_XMKPF,此结构是从标准结构BAPI_TE_XMKPF复制来的,并增加字段USNAM,结构如下

 5.现在,只要在BAPI_GOODSMVT_CREATE中把物料凭证创建人写到增强结构中,就可以了,

DATA:   LT_EXTENSION type standard table of BAPIPAREX,
        LS_EXTENSION type  BAPIPAREX.
DATA: WA_ZEXTEN LIKE ZBAPI_TE_XMKPF.
 
        
  WA_ZEXTEN-USNAM = LS_ZSDT0226_CONF2-ZCREN. "收货人
  LS_EXTENSION-VALUEPART1 = WA_ZEXTEN.
  LS_EXTENSION-STRUCTURE  = 'ZBAPI_TE_XMKPF'.
  "CONDENSE lt_extension-valuepart1 .
  APPEND LS_EXTENSION TO LT_EXTENSION.
 
.......
 
  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      GOODSMVT_HEADER               = L_HEADER
      GOODSMVT_CODE                 = L_CODE
   IMPORTING
     GOODSMVT_HEADRET              = LS_GOODSMVT
   TABLES
      GOODSMVT_ITEM                 = LT_ITEM
*   GOODSMVT_SERIALNUMBER         =
      RETURN                        = LT_RETURN
*   GOODSMVT_SERV_PART_DATA       =
      EXTENSIONIN                   = LT_EXTENSION

 

标签:ZEXTEN,BAPI,EXTENSION,CREATE,LS,GOODSMVT
From: https://www.cnblogs.com/BruceKing/p/17616948.html

相关文章

  • .Net Core WebApi
    目录MiniMalAPiDemoProgram.csSwagger文档+信息Program.csAPI版本控制ApiVersion.csVersion1Controller.csProgram.cs生成注释解决跨域.Net后台请求封装返回数据压缩默认压缩Gzip压缩缓存接口缓存静态文件缓存MiniMalAPi最小的api,请求都写在Program.cs中,可以做微服务D......
  • 软件测试|docker create 与 docker run的异同,你都会了吗?
    DockerRunvsDockerCreate:创建和管理容器的差异Docker是一种流行的容器化平台,它提供了多种命令来创建和管理容器。其中两个常用的命令是"dockerrun"和"dockercreate"。虽然它们都用于创建容器,但在用法和功能上有一些区别。让我们来看看它们之间的差异。dockercreatedockercr......
  • Asp.Net WebApi防重提交
     一、添加过滤器///<summary>///重复提交///</summary>publicclassReSubmitAttribute:ActionFilterAttribute{///<summary>///操作成功提示消息///</summary>publicstringSuccessMsg=null;......
  • ABAP:BP 供应商创建修改BAPI和供应商银行信息创建修改BAPI
    供应商创建及BAPI:cl_md_bp_maintain=>maintain供应商银行信息创建BAPI:BAPI_BUPA_BANKDETAIL_ADD供应商银行信息更新BAPI:BAPI_BUPA_BANKDETAIL_CHANGEFORMfrm_create_bp.DATA:lt_zhrt006TYPETABLEOFzhrt006,ls_zhrt006LIKELINEOFlt_zhrt006.DATA:......
  • [迎风奔雨] terraform create pubsub and inputs
    terragrunt.hcl---------------------------------------------------------------------------------------------------------------------------------------inputs={topics=[{name="my-topic-1"subscriptions=[{......
  • 探索ASP.NET Framework WebAPI的简介与应用
    一、什么是WebAPI?1.1-什么是WebAPI?WebAPI是一种用开发系统接口、设备接口API的技术,基于Http协议,请求和返回格式默认是Json格式。比WCF简单、更通用;比WebService更节省流量,更简洁。1.2-WebAPI的特点?Action方法直接返回对象,专注于数据更符合Restful的风格有利于独立于IIS部署Action可......
  • 探索ASP.NET Framework WebAPI的简介与应用
    一、什么是WebAPI?1.1-什么是WebAPI?WebAPI是一种用开发系统接口、设备接口API的技术,基于Http协议,请求和返回格式默认是Json格式。比WCF简单、更通用;比WebService更节省流量,更简洁。1.2-WebAPI的特点?Action方法直接返回对象,专注于数据更符合Restful的风格有利于独立于IIS部......
  • C# 实现身份验证之WebApi篇
    【转】https://www.cnblogs.com/zhaoshujie/p/9761005.html今天再来总结关于如何实现WebApi的身份验证,以完成该系列所有文章,WebApi常见的实现方式有:FORM身份验证、集成WINDOWS验证、Basic基础认证、Digest摘要认证 第一种:FORM身份验证(若在ASP.NET应用程序使用,则该验证方式不支......
  • CS客户端内嵌WebApi
    突然一天WPF客户端紧急需要一个功能被远程控制,于是第一想法便就是客户端充当服务身份。于是便客户的后台控制想法需求便出来了。记录一下工作上简单实现。publicclassWebApiHost{staticWebApplicationwebApp=null;publicstaticvoidStartWebA......
  • Vuejs+WebApi导出Excel
    前后端分离,前端Vuejs,后端.Net6WebApi后端代码1publicclassSalesReportController:BaseController2{3privateSerilog.ILogger_log=GetLogger<SalesReportController>();4privatereadonlyISqlSugarClient_db;5privateIHostEnvironme......