Problem solve Get help with specific problems with your technologies, process and projects.

Strings in 'RFC_RAD_TABLE_ENTRIES from VBA' code example

Axel Angeli explains why a function call isn't working in a code sample submitted by a SearchSAP.com member.

I've tried your example - RFC_RAD_TABLE_ENTRIES from VBA - and it works fine for that function.

Now I've modified that code to use the function DDIF_FIELDLABEL_GET, but I get the following error message:

wdtfuncs   SAP data type not supported

error on line:
Set i_TABNAME = Func.Exports("TABNAME")

Here is my VB code:

Option Explicit

Public Functions As SAPFunctionsOCX.SAPFunctions
Private LogonControl As SAPLogonCtrl.SAPLogonControl
Private R3Connection As SAPLogonCtrl.Connection
Private TableFactory As SAPTableFactory

Dim Func As SAPFunctionsOCX.Function

Public i_TABNAME  As SAPFunctionsOCX.Parameter

Public i_FIELD  As SAPFunctionsOCX.Parameter
Public i_LANGU  As SAPFunctionsOCX.Parameter

Public strLabel  As SAPFunctionsOCX.Parameter

'Public tENTRIES  As SAPTableFactoryCtrl.Table

Public Sub Main()
    Dim ix As Integer
    Dim retcd As Boolean
    Dim SilentLogon As Boolean
    Set LogonControl = CreateObject("SAP.LogonControl.1")
    Set Functions = CreateObject("SAP.Functions")
    Set TableFactory = CreateObject("SAP.TableFactory.1")
    Set R3Connection = LogonControl.NewConnection
    R3Connection.client = "000"
    R3Connection.ApplicationServer = "A1KGNB09"
    R3Connection.language = "DE"
    R3Connection.User = "BCUSER"
    R3Connection.Password = "minisap"
    R3Connection.System = "A1 SAP 620 09"
    R3Connection.SystemID = "000"
    R3Connection.SystemNumber = "00"
    R3Connection.UseSAPLogonIni = False
    SilentLogon = False
    retcd = R3Connection.Logon(0, SilentLogon)
    If retcd <> True Then MsgBox "Logon failed": Exit Sub
    Functions.Connection = R3Connection
    Set Func = Functions.Add("DDIF_FIELDLABEL_GET")
    Set i_TABNAME = Func.Exports("TABNAME")
    Set i_FIELD = Func.Exports("FIELDNAME")
    Set i_LANGU = Func.Exports("LANGU")
    Set strLabel = Func.Imports("LABEL")
    i_TABNAME.Value = "USR02"
    i_FIELD.Value = "BNAME"
    i_LANGU.Value = "DE"
    MsgBox strLabel
'    Debug.Print eNUMBER_OF_ENTRIES
'    For ix = 1 To tENTRIES.RowCount
'        Debug.Print tENTRIES(ix, 1)
'    Next

End Sub

Unfortunately the OCX-Version does not support strings properly. DDIF_FIELDLABEL_GET exports a string. I suggest using DDIF_FIELDINFO_GET instead.

Dig Deeper on SAP Cloud Platform