在数小时的谷歌搜索之后,我找不到解决问题的方法。
目标创建一个简单的Excel应用程序,为SAP中的多个材料文档发布“返回传递”。
我的假设是,我需要使用BAPI "BAPI_GOODSMVT_CREATE“。
首先,我启动SAP登录提示:
'------'
'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然后我定义了函数
'------'
'Define function
'------'
Dim objRfcFunc As Object
Set objRfcFunc = sapConn.Add("BAPI_GOODSMVT_CREATE")现在,这就是一切都会停止的地方。通过工作表迭代(查看单元值)填充BAPI,我使用了这个方法来运行其他BAPI。
最后(在函数的末尾),我执行错误处理:
If objRfcFunc.Call = False Then
MsgBox "Call failure" + objRfcFunc.Exception
End If我真正不明白的是,执行BAPI所需的最小字段是哪些?我需要填充什么BAPI字段?
如果我通过MIGO事务手动在SAP中执行,我需要:材料文档和材料文档年。
我选择的函数是“返回送货”->“材料文档”。
显然,我缺少一些代码来填充数据,但我只是不知道从哪里开始。我已经通过this的帖子,没有任何运气。任何帮助或指向正确方向的指示都将受到极大的感谢。
发布于 2020-09-22 11:40:03
用于特定的材料文档编号(如果可能的话)
不可能。BAPI_GOODSMVT_CREATE文档在第一行中表示,每次调用该方法时,只能创建一个材料文档。
您应该将GM_CODE 01用于货物流动122 (返回传递),并且BAPI在强制字段后面列出该GM_CODE:
item
对于已知的PO:
可能必须填充以下字段(这不是一个完整的列表):
- 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)可以填充以下字段(这不是一个完整的列表):
- Item text
- Unloading point
- Delivery completed indicator不能填充以下字段(这不是一个完整的列表):
- Reservation
- Receiving/issuing material
- Receiving/issuing plant
- Receiving/issuing storage location这完全取决于已知/未知的PO以及是否应该创建它。只是RTFM。
要填写的绝对最小字段:
**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 indicatorhttps://stackoverflow.com/questions/63844584
复制相似问题