[56028] in SAPr3-news
Re: SAP-Transaktion aus VBA aufrufen
daemon@ATHENA.MIT.EDU (discret discret)
Mon Nov 21 01:14:45 2005
To: sapr3-news@mit.edu
Date: Mon, 21 Nov 2005 07:15:11 +0100
From: "discret discret" <nospampleaseksajpmnono@club-internet.fr>
Message-ID: <438165cc$0$29623$636a15ce@news.free.fr>
Christian,
You are always imprecive. I thought the call transaction has been deprecated
with the old sap automation but it is back with a RFC.
great.
regards
Didier
"Christian Zalto" <zalto@t-online.de> a écrit dans le message de
news:dllcnd$scr$01$1@news.t-online.com...
> "Markus Lutz" <markus.lutz@unterland.at> schrieb:
> > Ich möchte gerne aus Visual Basic bzw. VBA eine SAP-Transaktion
> > aufrufen (z.B. VA03) und dabei bestimmte Daten (z.B. Auftragsnummer)
> > mitgeben.
> >
> Ja, man kann eine Transaktion mittels RFC_CALL_TRANSACTION
> aus Excel aufrufen. Die Datenübergabe erfolgt dann nach Art eines
> Batch-Input, den man mit "/BDA" abbricht und dadurch den SAPGUI
> mitten in der Transaktion einblendet. Code-Beispiel für R/3 4.6c, die
> Belegnummer VBELN ist entsprechend anzupassen.
>
> Sub Call_VA03()
> 'How to execute a transaction in SAP R/3 and jump into SAPGUI
> 'This script was developed using R/3 Release 4.6c
> 'Christian Zalto zalto@-tonline.de
> Dim FunctionCtrl As Object
> Dim BdcTable As Object
> Dim conn As Object
> Dim RfcCallTransaction As Object
>
> 'sales document to be displayed
> Const VBELN = "20000205"
>
> Set FunctionCtrl = CreateObject("SAP.Functions")
> Set conn = FunctionCtrl.Connection
>
> 'needed for frontend dialog
> conn.RfcWithDialog = True
>
> 'log on with logon dialog
> If Not conn.Logon(0, False) Then
> MsgBox "Logon not succesful."
> Set conn = Nothing
> Exit Sub
> End If
>
> 'call transaction VA03
> Set RfcCallTransaction = FunctionCtrl.Add("RFC_CALL_TRANSACTION")
> RfcCallTransaction.Exports("TRANCODE") = "VA03"
> RfcCallTransaction.Exports("UPDMODE") = "S"
> Set BdcTable = RfcCallTransaction.Tables("BDCTABLE")
>
> 'enter data for first screen
> add_bdcdata BdcTable, "SAPMV45A", "102", "X", "", ""
> add_bdcdata BdcTable, "", "", "", "BDC_CURSOR", "VBAK-VBELN"
> add_bdcdata BdcTable, "", "", "", "VBAK-VBELN", VBELN
> add_bdcdata BdcTable, "", "", "", "BDC_OKCODE", "/00"
>
> 'stop and display SAPGUI using /BDA
> add_bdcdata BdcTable, "SAPMV45A", "4001", "X", "", ""
> add_bdcdata BdcTable, "", "", "", "BDC_OKCODE", "/BDA"
>
> RfcCallTransaction.Call
>
> 'logoff and free objects
> conn.Logoff
> Set conn = Nothing
> End Sub
>
> Public Sub add_bdcdata(BdcTable As Object, _
> program As String, dynpro As String, dynbegin As String, _
> fnam As String, fval As String)
> BdcTable.Rows.Add
> BdcTable.Value(BdcTable.Rows.Count, "PROGRAM") = program
> BdcTable.Value(BdcTable.Rows.Count, "DYNPRO") = dynpro
> BdcTable.Value(BdcTable.Rows.Count, "DYNBEGIN") = dynbegin
> BdcTable.Value(BdcTable.Rows.Count, "FNAM") = fnam
> BdcTable.Value(BdcTable.Rows.Count, "FVAL") = fval
> End Sub
>
> --
> Mit freundlichen Grüßen,
> Christian Zalto
>
>