首页 > 解决方案 > 带有 Excel 的 SAP BAPI - BAPI_PLANNEDORDER_GET_DETAIL

问题描述

我知道之前有一些关于此的问题。然而,这些都不足以让我找到手头问题的解决方案。

到目前为止的代码

Sub GetPlannedOrderNums()

    '--------
    'Logon
    '--------
    Dim ws As Worksheet
    Dim fRow As Long
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    Dim sapConn As Object                               'Declare variant
    Set sapConn = CreateObject("SAP.Functions")         'Create ActiveX object

    With sapConn.CONNECTION
        .Destination = "**"                            'SAP HOST
        .ApplicationServer = "**"      'SAP SYSTEM 
        .Client = "**"
        .User = "**"                               'SOME VALID SAP LONG
        .Password = "**"                                  'valid password
        .SystemNumber = "**"                            'for multiple logical systems
    End With

    If sapConn.CONNECTION.Logon(1, False) <> True Then 'Try Logon
       MsgBox "Cannot Log on to SAP"
    End If


    If sapConn.CONNECTION.IsConnected Then
    
    
        '--------
        'Define function
        '--------
    
        Dim objRfcFunc As Object
        Set objRfcFunc = sapConn.Add("BAPI_PLANNEDORDER_GET_DETAIL")
    
    
        '--------
        'Then set values
        '--------
    
        With ws
            fRow = .Cells(.Rows.Count, 5).End(xlUp).Row
        End With
    
 
                objRfcFunc.Value("MATNR") = "**"
                objRfcFunc.Value("WERKS") = "**"
                objRfcFunc.Value("DISPO") = "**"
                objRfcFunc.Value("Production Scheduler") = "**"
    

        If objRfcFunc.Call = False Then
           MsgBox "Call failure" + objRfcFunc.Exception
        End If

    End If

End Sub

代码的最终目标

对 n 个物料运行 BAPI,并为每个唯一物料号检索 1 个计划订单号。我未能继续进行独特的部分,因为我觉得我需要先让 BAPI 正常工作。

开放式问题

我知道这段代码不完整。我被困在前进的方向和方式上,而且我没有找到关于这个特定问题的任何信息。BAPI 的必填字段是物料编号、工厂、MRP 控制器和生产计划程序。登录部分正常工作,但代码在对象处中断(很可能是由于错误的字段)。

问题

  1. 我如何知道 BAPI 所需的参数?我无法访问 SE37 和 SE80。我在这里找到的名字是用全能的谷歌找到的。
  2. 通过 Excel 的 BAPI 的语法如何?登录部分没问题,但我很难找到有关如何正确设置和编程的任何答案。

任何指向正确方向或一般帮助的指针将不胜感激!

标签: excelvbabapi

解决方案


您可以使用abap-api-tools将 BAPI 的签名提取到控制台和 js/ts 文件以及数据类型和长度。

例如

abap call MME stfc_structure -s

将返回带有输入/输出结构的 stfc_connection.js。


推荐阅读