25. Februar 2009 16:49
Hallo liebe NAV-Freunde,
es handelt sich hier um eine prinzipielle Frage:
Ich möchte den Navision- Client automatisch starten. Bei den geplanten Task sollte ebenfalls eine bestimmte CODEUNIT ausgeführt werden.
Im Klartext: Sever xy soll um 23:45 Uhr die exe( hier der Navision-Client) und dann autmatische eine bestimmte CODEUNIT ausführen. Was soll ich meinen Server sagen?
MfG Alex
25. Februar 2009 17:01
Über Parameter lässt sich nicht steuern welche Codeunit ausgeführt werden soll. Du musst ihm das in der User Login - Codeunit (weiß den Namen nicht genau) mitteilen.
Das ganze sollte doch so eine Art Verarbeitung sein, oder? Ich gebe da einen ganz guten Tip: Baut oder kauft euch eine Lösung, die zeitgesteuert Reports, Dataports und Codeunits ausführt.
25. Februar 2009 17:48
Das ganze ist ja ein Versuch das selber zu bauen-und eben möglichst nicht zu kaufen
Danke das werde ich mal ausprobieren
25. Februar 2009 18:24
Hallo, Alex!
Zum Thema "Navision-Client automatisch starten": Zu diesem interessanten Thema kann ich keine Lösung bieten. Wir haben vor einiger Zeit selbst intensiv danach gesucht.
Zum Thema "Navision-Client soll automatisch zu einem bestimmten Zeitpunkt ein bestimmtes Objekt ausführen": Hier fällt mir das Objektaufrufplaner - Paket ein (siehe "Job Scheduler ..." - Objekte), das meines
Wissens nach im Standard enthalten ist. Wir verwenden 4.03 und benutzen den Objektaufrufplaner in einer sehr ausgefeilten Art und Weise schon mehrere Jahre, um unsere mandantenübergreifenden Aktionen
automatisch ausführen zu lassen.
Wenn du am Server einen Client "laufen" lässt und den Objektaufrufplaner so einrichtest, dass er um 23:45 Uhr eine Codeunit startet, wird er dies auch relativ zuverlässig erledigen.
Der Nachteil dieser Lösung besteht darin, dass du eine Lizenz "verbraten" musst, die den eigentlichen Usern so nicht mehr zur Verfügung steht.
Vorteilhaft ist, dass du sehr viele unterschiedliche Jobs einrichten und ausführen lassen kannst.
Wenn du mit diesem Nachteil leben kannst, wäre der Objektaufrufplaner ein Lösungsvorschlag, den man sich zumindest mal anschauen kann.
Gruß
Stephan
25. Februar 2009 18:34
Hallo Navgator,
eine Möglichkeit wäre
diese.
Die andere Möglichkeit wäre, etwas mit geplanten Tasks, Hyperlinks, und NAV-Client mit Windows- Anmeldung zu versuchen.
Gruß, Fiddi
25. Februar 2009 18:45
Hallo!
Wir hatten ursprünglich auch den ExpandIT im Visier. Auf Grund der Kosten und der mandantenübergreifenden Problematik bei uns kam dieses Produkt, das an sich einen guten Eindruck
hinterließ, nicht zum Zug.
Aber im der ursprünglichen Beitrag war auch davon die Rede, kein Geld ausgeben und selbst eine Lösung basteln zu wollen, oder?
Gruß
Stephan
12. März 2009 16:33
Hallo zusammen,
hat jemand von euch inzwischen ne Lösung gefunden?
Habe gerade versucht mit AutoIT das ganze zu lösen und das Script per Geplanten Task aufzurufen. Leider funktioniert das nicht... Navision geht zwar auf aber wenn die Windows Sitzung gerade gesperrt ist hängt sich Navision auf.
Gruß
mathias
12. März 2009 16:41
Hallo Laser5000,
das ist leider so.
Abhilfe nur mit NAS (falls möglich).
Gruß. Fiddi
12. März 2009 18:59
Hallo zusammen... ich glaub mich tritt ein Pferd! ,-) hab den ganzen nachmittag gesucht und endlich gefunden...
Ich starte per AutoIT Navision, melde mich an... starte das Backup und das ganze läuft als Geplanter Task sogar wenn der Benutzer nicht angemeldet war! (Beim Task sind natürlich die Benutzerdaten hinterlegt... geht ja sonst nicht)
Knackpunkt war einfach das man nicht per Send die Befehle schicken darf sondern per Controlsend!
AutoIT Script sieht so aus:
run("C:\Program Files\Microsoft Business Solutions-Navision\Client402\fin.exe servername=FFAICSMB4011:2403, nettype=tcp")
Sleep(2000)
Opt("WinTitleMatchMode",2)
Controlsend("Microsoft Business Solutions-Navision","","","Benutzer{ENTER}Kennwort{ENTER}{ENTER}")
Controlsend("Microsoft Business Solutions-Navision","","","!a{ESC}{ESC}")
Controlsend("Microsoft Business Solutions-Navision","","","!xs")
$sicherung = "Bauvision 402 " & @YEAR & "_" & @MON & "_" & @MDAY
Controlsend("Microsoft Business Solutions-Navision","","",$sicherung)
Controlsend("Microsoft Business Solutions-Navision","","","{TAB}")
Controlsend("Microsoft Business Solutions-Navision","","","\\ffaicsmb4004\navisionsicherung\Bauvision " & @YEAR & "_" & @MON & "_" & @MDAY & "_1.fbk")
Controlsend("Microsoft Business Solutions-Navision","","","{ENTER}{ENTER}")
13. März 2009 08:10
Warum so kompliziert?
richte doch einfach einen NAS ein. Dieser Windowsdienst kann ebenfalls zeitgesteuert Aktionen ausführen.
Irgendwo (mibuso?) gibt es da Objekte um den zeitgesteuert zum Laufen zu bringen.
MfG
13. März 2009 09:24
Hallo,
@m_schneider,
der NAS ist ja in vielen Fällen ganz gut, aber einen Backup schaffst du damit nicht.
@Laser5000,
geniales Tool
Hast du damit schon mehr Erfahrung? Wie geht das Tool mit Timeouts um, kann es mit mehreren parallel laufenden Clients umgehen, und was passiert, wenn irgend eine Meldung auf den Bildschirm kommt (z.B. vom 'net send') , die den Bildschirm blockiert
Gruß, Fiddi
13. März 2009 11:34
bei uns am server läuft ständig ein Client (BATCH) der diverse Aufgaben erledigt. Dieser Client wird einmal am Tag (TaskManager) beendet und anschließend neu gestartet. Diese erfolgt mit einem VB-Scribt. Ich kenne mich mit dem VB-Scribt leider nicht aus, aber ich denke dass du es mit einigen Änderungen uach bei euch nutzen kannst.
- Code:
' ***************************************************
'
' VBScript generated by SystemScripter 5.0
' www.scriptinternals.de
'
' Author:
' Date: Donnerstag, 1. Juli 2004
' Version:
'
' ***************************************************
Set WSHell = CreateObject("WScript.Shell")
idle = 500
'Const ForWriting = 2
'Const ForReading = 1
'Set fso = CreateObject("Scripting.FileSystemObject")
'On Error Resume Next
' Set oidtxt = fso.openTextFile("c:\script\attain_id.txt",ForReading,False)
' idtxt = oidtxt.ReadLine
On Error Goto 0
'Set oidtxt = Nothing
Set wmi = GetObject("winmgmts:")
'If idtxt <>"" Then
Set processes = wmi.ExecQuery("select * from Win32_Process where Name = 'finsql.exe' ")
For Each proc In processes
dummy = proc.Terminate
Next
'End If
' strComputer = "."
' Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
' Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'finsql.exe'")
' For Each objProcess In colProcessList
' objProcess.Terminate()
' Next
WScript.Sleep 2000
'Set Process = GetObject("winmgmts:!win32_process")
' Process.Create "c:\programme\Microsoft Business Solutions-Navision\client\finsql.exe",,,pid
' Process.Create "c:\programme\MBS 4.03\client\finsql.exe ID=2",,,pid
WSHell.Run "navision://client/run?servername=mt-attain%26database=MT%26company=M%FCller%20-%20Technik%20GmbH%26servertype=MSSQL"
'Set oidtxt =fso.OpenTextFile("c:\script\attain_id.txt",ForWriting,True)
'oidtxt.WriteLine pid
'Set oidtxt = Nothing
Set Process = Nothing
'Set fso = Nothing
' WSHell.run """C:\Programme\Microsoft Business Solutions-Navision\Client\finsql.exe""",,False
WScript.Sleep 10000
'WSHell.AppActivate "Navision Attain"
'WSHell.SendKeys "{ESC}"
'WScript.Sleep idle
'WSHell.SendKeys "{ESC}"
'WScript.Sleep idle
'WSHell.SendKeys "%d"
'WScript.Sleep idle
'WSHell.SendKeys "1"
'WScript.Sleep idle
WSHell.SendKeys "batch"
WScript.Sleep idle
WSHell.SendKeys "{ENTER}"
WSHell.SendKeys "BATCH"
WScript.Sleep idle
WSHell.SendKeys "{ENTER}"
WSHell.SendKeys "{ENTER}"
WScript.Sleep idle
WSHell.SendKeys "% "
WScript.Sleep idle
WSHell.SendKeys "{DOWN}"
WScript.Sleep idle
WSHell.SendKeys "{DOWN}"
WScript.Sleep idle
WSHell.SendKeys "{DOWN}"
WScript.Sleep idle
WSHell.SendKeys "{ENTER}"
Set WSHell = Nothing
In der Codeunit 1 im Code LoginStart haben wir einen zusätzliche Befehl eingebaut, der ein bestimmtes Fenster öffnet.
- Code:
IF UPPERCASE(USERID) = 'BATCH' THEN FORM.RUN(50134);
mfg Michael
13. März 2009 12:29
und warum nutzt du nicht einfach den NAS dafür?
23. März 2009 15:00
Wir haben hier ExpandIT im Einsatz.
Integriert ist bei ExpandIT ein Tastaturmakro-Abspieler, um auch Reports mit Filtern und Optionen generieren zu können. Leider funktioniert das hier per geplanter Task nur, wenn der entsprechende User bereits in Windows angemeldet ist und die Sitzung nicht gesperrt ist. Andernfalls bekomme ich eine Fehlermeldung, daß Navision nicht den Fokus hat. Laut Hersteller ist dieses Problem nicht in den Griff zu bekommen.
NAS ist nicht verwendbar, da wir eine alte Version 2.1 im Einsatz haben.
Gibt es dann vielleicht eine andere Möglichkeit, programmgesteuert eine interaktive Windows-Sitzung zu starten, damit mein Tastaturmakro läuft? Ich möchte damit eine Datensicherung über Alt-x s anstoßen.
Es gibt vom Hersteller ebenfalls ein Produkt zur zeitgesteuerten Datensicherung, die aber dann ja wohl dasselbe Problem haben wird, oder?
Oder gibt es eine alternative Möglichkeit für eine zeitgesteuerte (nächtliche) interne Datensicherung?
23. März 2009 15:07
Hallo Navisionf,
schau dir doch mal das AutoIT an, das Laser5000 etwas weiter oben beschrieben hat. dort steht übrigens auch das passende Makro für die Datensicherung. Nach seiner Aussage soll das ganze auch bei abgemeldeter Konsole funktionieren.
Gruß, Fiddi
23. März 2009 16:07
Oh, das werd ich mir mal anschauen.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.