首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BAPI_GOODSMVT_CREATE调用的强制参数?

BAPI_GOODSMVT_CREATE调用的强制参数?
EN

Stack Overflow用户
提问于 2020-09-11 09:44:01
回答 1查看 2.3K关注 0票数 0

在数小时的谷歌搜索之后,我找不到解决问题的方法。

目标创建一个简单的Excel应用程序,为SAP中的多个材料文档发布“返回传递”。

我的假设是,我需要使用BAPI "BAPI_GOODSMVT_CREATE“。

首先,我启动SAP登录提示:

代码语言:javascript
复制
'------'
'Logon to SAP
'------'
    Dim sapConn As Object                                ' Declare variant
    Set sapConn = CreateObject("SAP.Functions")          ' Create ActiveX object
    
    With sapConn.Connection
        .Destination = "somehost"                             
        .ApplicationServer = "someserver.com"      
        .Client = "someclient"
        .User = "someuser"                              
        .Password = "somepassword"                       
        .SystemNumber = "somesystem"                      
    End With
    
    If sapConn.Connection.Logon(1, False) <> True Then 'Try Logon
        MsgBox "Cannot Log on to SAP"
    End If

然后我定义了函数

代码语言:javascript
复制
'------'
'Define function
'------'
    Dim objRfcFunc As Object
    Set objRfcFunc = sapConn.Add("BAPI_GOODSMVT_CREATE")

现在,这就是一切都会停止的地方。通过工作表迭代(查看单元值)填充BAPI,我使用了这个方法来运行其他BAPI。

最后(在函数的末尾),我执行错误处理:

代码语言:javascript
复制
If objRfcFunc.Call = False Then
   MsgBox "Call failure" + objRfcFunc.Exception
End If

我真正不明白的是,执行BAPI所需的最小字段是哪些?我需要填充什么BAPI字段?

如果我通过MIGO事务手动在SAP中执行,我需要:材料文档和材料文档年。

我选择的函数是“返回送货”->“材料文档”。

显然,我缺少一些代码来填充数据,但我只是不知道从哪里开始。我已经通过this的帖子,没有任何运气。任何帮助或指向正确方向的指示都将受到极大的感谢。

EN

回答 1

Stack Overflow用户

发布于 2020-09-22 11:40:03

用于特定的材料文档编号(如果可能的话)

不可能。BAPI_GOODSMVT_CREATE文档在第一行中表示,每次调用该方法时,只能创建一个材料文档。

您应该将GM_CODE 01用于货物流动122 (返回传递),并且BAPI在强制字段后面列出该GM_CODE:

item

  • Movement type

  • Movement indicator

  • Quantity
  • 采购订单
  • 采购订单
  • ISO代码单位输入单位或数量建议书

对于已知的PO:

可能必须填充以下字段(这不是一个完整的列表):

代码语言:javascript
复制
- Reason for movement (if set up in the system)
- Batch (if the material is handled in batches and no automatic batch assignment has been set up)
- Storage location (if no storage location us specified in the purchase order item)

可以填充以下字段(这不是一个完整的列表):

代码语言:javascript
复制
- Item text
- Unloading point
- Delivery completed indicator

不能填充以下字段(这不是一个完整的列表):

代码语言:javascript
复制
- Reservation
- Receiving/issuing material
- Receiving/issuing plant
- Receiving/issuing storage location

这完全取决于已知/未知的PO以及是否应该创建它。只是RTFM。

要填写的绝对最小字段:

代码语言:javascript
复制
**Header**
DOC_DATE = 20050513 | Document date in document BLDAT
REF_DOC_NO = 345060A| Reference document number XBLNR
PR_UNAME = JOHNDOE  | User name UNAME
GM_CODE = 01        | Assign code to transaction for BAPI goods movement

**Item**
MOVE_TYPE = 122     | Movement type (inventory management)
VENDOR = 1008056    | Vendor’s account number
ENTRY_QNT = 1.00    | Quantity in unit of entry
ENTRY_UOM = EA      | Unit of entry
PO_NUMBER = ASA99834| Purchase order number
PO_ITEM = 00001     | Item Number of Purchasing Document
MVT_IND = B         | Goods movement for purchase order Movement indicator
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63844584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档