Benutzer mit den meisten Antworten
Codezeile in VB 2010 wird nicht ausgeführt

Frage
-
Hallo!
Folgende Codezeilen werden in VB 2010 nicht ausgeführt. Da diese nicht erkannt werden. Mit diesen Zeilen wird eine SAP Transaktion ausgeführt. In VBA Skript wird dieser Code einwandfrei ausgeführt. Bitte können Sie mir mitteilen, welche SAP Bibliotheken ich in VB 2010 einbinden muss. Damit das Programm auch läuft. Der Code steht in einer eigenen Class in einer eigenen Methode.
Der Code:
Dim SapGuiAuto As Object Dim application As Object Dim connection As Object Dim session As Object Dim WScript As Object Private _isObject As Boolean If Not IsObject(application) Then SapGuiAuto = GetObject("SAPGUI") application = SapGuiAuto.GetScriptingEngine End If If Not IsObject(connection) Then connection = application.Children(0) End If If Not IsObject(session) Then session = connection.Children(0) End If If IsObject(WScript) Then WScript.ConnectObject(session,"on") WScript.ConnectObject(application,"on") End If session.findById("wnd[0]").resizeWorkingPane(97, 20, False) '//hier ist der Fehler!!!!!!! Ab hier läuft nichts mehr. Bitte Hilfe. session.findById("wnd[0]/tbar[0]/okcd").text = "/nfpcr2" session.findById("wnd[0]").sendVKey(0)
Code Ende
Danke.
LG Peter
- Bearbeitet Robert Breitenhofer Dienstag, 16. November 2010 07:34 Formatierung
Antworten
-
Hallo,
da es anscheinend um SAP GUI geht, wäre Deine Frage wäre besser
in einem SAP Forum aufgehoben, z. B.:
http://forums.sdn.sap.com/forum.jspa?forumID=196Benötigt wird lt. kurzer Suche:
http://www.sdn.sap.com/irj/sdn/sap-gui#section30Aber in einem SAP Forum wird man Dir dazu sicher besser Auskunft geben können.
Studiere auch die dortigen Beiträge dort.Gruß Elmar
- Als Antwort vorgeschlagen Robert Breitenhofer Dienstag, 16. November 2010 07:51
- Als Antwort markiert Robert Breitenhofer Mittwoch, 8. Dezember 2010 09:05
-
Hallo Peter,
wenn beim Debuggen die Codezeile erreicht wird, wird
folgende Fehlermeldung geworfen:
System.NullReferenceException wurde nicht behandelt.Diese Fehlermeldung ist doch ausreichend aussagekräftig.
Sie besagt, dass in der betr. Codezeile eine Objektvariable
vorkommt, die auf ein (noch) nicht instanziertes Objekt
verweist, also "Nothing" ist.
Schau Dir die betr. Codezeile genau an, prüfe die Werte
aller darin vorkommenden Objektvariablen und diejenige
welche den Wert Nothing hat, führt Dich zur ursächlichen
Fehlerquelle, nämlich der noch nicht erfolgten Instanzierung.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)- Als Antwort markiert Robert Breitenhofer Mittwoch, 8. Dezember 2010 09:05
-
Hallo Peter,
Folgende Codezeilen werden in VB 2010 nicht ausgeführt. Da diese nicht erkannt werden. Mit diesen Zeilen wird eine SAP Transaktion ausgeführt. In VBA Skript wird dieser Code einwandfrei ausgeführt. Bitte können Sie mir mitteilen, welche SAP Bibliotheken ich in VB 2010 einbinden muss. Damit das Programm auch läuft. Der Code steht in einer eigenen Class in einer eigenen Methode.
wäre es machbar, den Code nochmal einzustellen? So, dass man auch was lesen kann?
Wenn ich das richtig verstanden habe, tritt irgendein Fehler in der Zeile:session.findById( "wnd[0]" ).resizeWorkingPane(97, 20, False) 'hier ist der Fehler!!!!!!! Ab hier läuft nichts mehr. Bitte Hilfe.
auf. Es wäre sicherlich sinnvoll, die genaue und vollständige Fehlermeldung zu posten.
Da kann ein Objekt null/nothing sein, "wnd[0]" wird ggfs. nicht gefunden, ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert PeterMP Montag, 24. Januar 2011 07:59
-
Hallo PeterMP,
Schau Dir mal die folgenden Links an. Vielleicht können sie Dir weiter helfen.
Wie kann ich ein SAP Anbindung in Microsoft Visual Basic 2008 Express Edition erreichen?
how to save a certain report in SAP using VB ?
Was passiert wenn Du diese Zeile auslast oder anstatt session.findById("wnd[0]").resizeWorkingPane (97,20,false) einfach session.findById("wnd[0]").maximize verwendest? (http://searchsap.techtarget.com/feature/Step-5-Analyze-the-VBS-script)
Grüße,
Robert
- Bearbeitet Robert Breitenhofer Dienstag, 16. November 2010 07:49 Formatierung
- Als Antwort markiert PeterMP Montag, 24. Januar 2011 07:59
Alle Antworten
-
Hallo Peter,
Folgende Codezeilen werden in VB 2010 nicht ausgeführt. Da diese nicht erkannt werden. Mit diesen Zeilen wird eine SAP Transaktion ausgeführt. In VBA Skript wird dieser Code einwandfrei ausgeführt. Bitte können Sie mir mitteilen, welche SAP Bibliotheken ich in VB 2010 einbinden muss. Damit das Programm auch läuft. Der Code steht in einer eigenen Class in einer eigenen Methode.
wäre es machbar, den Code nochmal einzustellen? So, dass man auch was lesen kann?
Wenn ich das richtig verstanden habe, tritt irgendein Fehler in der Zeile:session.findById( "wnd[0]" ).resizeWorkingPane(97, 20, False) 'hier ist der Fehler!!!!!!! Ab hier läuft nichts mehr. Bitte Hilfe.
auf. Es wäre sicherlich sinnvoll, die genaue und vollständige Fehlermeldung zu posten.
Da kann ein Objekt null/nothing sein, "wnd[0]" wird ggfs. nicht gefunden, ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert PeterMP Montag, 24. Januar 2011 07:59
-
Hallo,
da es anscheinend um SAP GUI geht, wäre Deine Frage wäre besser
in einem SAP Forum aufgehoben, z. B.:
http://forums.sdn.sap.com/forum.jspa?forumID=196Benötigt wird lt. kurzer Suche:
http://www.sdn.sap.com/irj/sdn/sap-gui#section30Aber in einem SAP Forum wird man Dir dazu sicher besser Auskunft geben können.
Studiere auch die dortigen Beiträge dort.Gruß Elmar
- Als Antwort vorgeschlagen Robert Breitenhofer Dienstag, 16. November 2010 07:51
- Als Antwort markiert Robert Breitenhofer Mittwoch, 8. Dezember 2010 09:05
-
Hallo PeterMP,
Schau Dir mal die folgenden Links an. Vielleicht können sie Dir weiter helfen.
Wie kann ich ein SAP Anbindung in Microsoft Visual Basic 2008 Express Edition erreichen?
how to save a certain report in SAP using VB ?
Was passiert wenn Du diese Zeile auslast oder anstatt session.findById("wnd[0]").resizeWorkingPane (97,20,false) einfach session.findById("wnd[0]").maximize verwendest? (http://searchsap.techtarget.com/feature/Step-5-Analyze-the-VBS-script)
Grüße,
Robert
- Bearbeitet Robert Breitenhofer Dienstag, 16. November 2010 07:49 Formatierung
- Als Antwort markiert PeterMP Montag, 24. Januar 2011 07:59
-
Hallo Robert,
wenn beim Debuggen die Codezeile erreicht wird, wird folgende Fehlermeldung geworfen:
System.NullReferenceException wurde nicht behandelt.
Message=Die Objektvariable oder die With-Blockvariable wurde nicht festgelegt.
Source=Microsoft.VisualBasic
StackTrace:
bei Microsoft.VisualBasic.CompilerServices.Symbols.Container..ctor(Object Instance)
bei Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
bei WindowsApplication1.CBonität.BONDel() in C:\Dokumente und Einstellungen\ui2q7ew\eigene dateien\visual studio 2010\Projects\SAPZugriffTest1\SAPZugriffTest1\Bonität.vb:Zeile 31.
bei WindowsApplication1.Form1.btnBonDel_Click(Object sender, EventArgs e) in C:\Dokumente und Einstellungen\ui2q7ew\eigene dateien\visual studio 2010\Projects\SAPZugriffTest1\SAPZugriffTest1\Form1.vb:Zeile 8.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(ApplicationContext context)
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
bei WindowsApplication1.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81.
bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
InnerException:Meldung Ende.
Kann es sein, dass ich eine bestimmte SAP-Bibliothek einbinden muss, aber welche?
Jetzt fragst Du Dich sicher, warum ich gerade den Code in VB.Net schreiben will. Wo dies doch in SAP-Skript so gut funktioniert. Nun ich muss mit VB.Net nicht nur SAP sondern auch MS-Outlook und MS-Excel steuern. Die fertigen Module gibt es schon und die funktionieren auch. Aber eben nur einzeln, als SAP Skript und VB.Net. Daher will ich mit VB.Net eine zentrale Steuerungseinheit schreiben. Wenn ich die Codezeilen aus SAP Skript in VB.NET 2010 übertrage, wird die Fehlermeldung erst beim Debuggen geworfen.
Grüße
Peter -
Hallo Peter,
wenn beim Debuggen die Codezeile erreicht wird, wird
folgende Fehlermeldung geworfen:
System.NullReferenceException wurde nicht behandelt.Diese Fehlermeldung ist doch ausreichend aussagekräftig.
Sie besagt, dass in der betr. Codezeile eine Objektvariable
vorkommt, die auf ein (noch) nicht instanziertes Objekt
verweist, also "Nothing" ist.
Schau Dir die betr. Codezeile genau an, prüfe die Werte
aller darin vorkommenden Objektvariablen und diejenige
welche den Wert Nothing hat, führt Dich zur ursächlichen
Fehlerquelle, nämlich der noch nicht erfolgten Instanzierung.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)- Als Antwort markiert Robert Breitenhofer Mittwoch, 8. Dezember 2010 09:05