Skip to Content
0
Former Member
Nov 02, 2012 at 02:43 PM

RFC_CALL_TRANSACTION_USING problem

1061 Views

Hi guys,

I have the following piece of code:

Dim j As Integer
Public Sub rfc_call_transaction()
Dim Functions As Object
Dim RfcCallTransaction As Object
Dim Messages As Object
Dim BdcTable As Object


Set Functions = CreateObject("SAP.Functions")

Functions.Connection.System = "System"

Functions.Connection.client = "199"
Functions.Connection.user = "User"
Functions.Connection.Password = "training"
Functions.Connection.Language = "en"

If Functions.Connection.Logon(0, False) <> True Then
Exit Sub
End If

Set RfcCallTransaction = Functions.Add("RFC_CALL_TRANSACTION_USING")

RfcCallTransaction.exports("tcode") = "/SGD/PP_MATERIAL_S"
RfcCallTransaction.exports("mode") = "A"
Set BdcTable = RfcCallTransaction.tables("bt_data")

'add_bdcdata BdcTable, "/SGD/PP_MATERIAL", "100", "X", "", ""
'add_bdcdata BdcTable, "", "", "", "BDC_OKCODE", "=KAL"
'add_bdcdata BdcTable, "", "", "", "BDC_SUBSCR", "SGD/PP_MATERIAL 0110%_SUBSCREEN_REITER"
'add_bdcdata BdcTable, "", "", "", "BDC_CURSOR", "PA_KALK"
'add_bdcdata BdcTable, "", "", "", "SO_WERKS-LOW", "0061"
'add_bdcdata BdcTable, "", "", "", "PA_KALK", "X"
'add_bdcdata BdcTable, "", "", "", "SO_SPRAS-LOW", "DE"
add_bdcdata BdcTable, "/SGD/PP_MATERIAL", "1000", "X", "", ""
add_bdcdata BdcTable, "", "", "", "BDC_OKCODE", "=ONLI"
add_bdcdata BdcTable, "", "", "", "BDC_SUBSCR", "/SGD/PP_MATERIAL 0110%_SUBSCREEN_REITER"
add_bdcdata BdcTable, "", "", "", "BDC_CURSOR", "PA_KALK"
add_bdcdata BdcTable, "", "", "", "SO_WERKS-LOW", "0061"
add_bdcdata BdcTable, "", "", "", "PA_KALK", "X"
add_bdcdata BdcTable, "", "", "", "SO_SPRAS-LOW", "DE"
add_bdcdata BdcTable, "SAPMSSY0", "0120", "X", "", ""
add_bdcdata BdcTable, "", "", "", "BDC_OKCODE", "=%PC"
add_bdcdata BdcTable, "SAPLSPO5", "0200", "X", "", ""
add_bdcdata BdcTable, "", "", "", "BDC_CURSOR", "DY_FILENAME"
add_bdcdata BdcTable, "", "", "", "BDC_OKCODE", "=FILE"
add_bdcdata BdcTable, "", "", "", "DY_PATH", "C:\Users\user0101\Desktop"
add_bdcdata BdcTable, "", "", "", "DY_FILENAME", "TESgfgfgfgf.txt"
'add_bdcdata BdcTable, "SAPMSSY0", "0120", "X", "", ""
'add_bdcdata BdcTable, "", "", "", "BDC_OKCODE", "=&F03"
'add_bdcdata BdcTable, "/SGD/PP_MATERIAL", "1000", "X", "", ""
'add_bdcdata BdcTable, "", "", "", "BDC_OKCODE", "/EE"



If RfcCallTransaction.Call = True Then
MsgBox ("It works")
Else
MsgBox " Call Failed! error: "
Functions.Connection.Logoff
End If

Functions.Connection.Logoff

End Sub

Public Sub add_bdcdata(BdcTable As Object, program As String, dynpro As String, dynbegin As String, fnam As String, fval As String)
Dim vField As Variant

j = j + 1

BdcTable.Rows.Add

BdcTable.Value(j, "PROGRAM") = program ' Program Name
BdcTable.Value(j, "DYNPRO") = dynpro ' Dynpro Number
BdcTable.Value(j, "DYNBEGIN") = dynbegin ' X if a screen
BdcTable.Value(j, "FNAM") = fnam ' Field Name
MsgBox (j)
Debug.Print BdcTable.Value(j, "FVAL")
End Sub


The code seems to work because it gives me the "It works" message but it doesn't generate the file.

If I execute the bdc input in SHDB works great and generates the .txt file.

Any input about what's wrong with this piece of code?