Navision beenden / Mandant schließen

18. November 2010 11:52

Hallo,

ich möchte gerne per Programm den Navision Client oder zumindest den aktuellen Mandanten schließen.

Ist das irgendwie möglich?

LG

Re: Navision beenden / Mandant schließen

18. November 2010 12:02

Meinst du, NAV per C/AL zu schließen? Das ginge mit Sendkeys.

Re: Navision beenden / Mandant schließen

18. November 2010 12:25

McClane hat geschrieben:Meinst du, NAV per C/AL zu schließen? Das ginge mit Sendkeys.


Sendkeys (Alt+F4) ist insofern nicht schön da, wenn der Benutzer schnell genug ist, aus Versehen ein anderes Programm dabei geschlossen werden kann. Ich setze zum Beispiel auf VisualBasic-Script und beende das zuletzt gestartete Navision (wenn zu viele Anmeldungen unter dem gleichen Benutzer).

Re: Navision beenden / Mandant schließen

18. November 2010 12:28

Ja, zum Beispiel. Aber Sendkeys war, glaub ich, ein externes Programm, das dann überall installiert sein muss, oder?

Hintergrund:
- Es gibt einen SUPERUSER im Unternehmen, der "nebenbei" die EDV macht.
- Nun soll es einen Lohn-Mandanten geben, wo dieser keinen Zugriff drauf haben soll.
- Ich wollte dies hart programmieren in der C1 und mit nem Error raus, aber der kommt dann immer noch überall ran.......

Egal was ich mache, er kann es theoretisch alles ändern und sich selbst wieder die Rechte geben. Oder gibt es irgendeine andere Möglichkeit?
Zum Beispiel einen abgespeckten Superuser oder so.....

Re: Navision beenden / Mandant schließen

18. November 2010 12:44

Sebastian Pfliegel hat geschrieben:Sendkeys (Alt+F4) ist insofern nicht schön

Ich dachte auch an Alt,D,B (oder Alt,D,M,S).

Re: Navision beenden / Mandant schließen

18. November 2010 13:04

giebner hat geschrieben:Ja, zum Beispiel. Aber Sendkeys war, glaub ich, ein externes Programm, das dann überall installiert sein muss, oder?

Hintergrund:
- Es gibt einen SUPERUSER im Unternehmen, der "nebenbei" die EDV macht.
- Nun soll es einen Lohn-Mandanten geben, wo dieser keinen Zugriff drauf haben soll.
- Ich wollte dies hart programmieren in der C1 und mit nem Error raus, aber der kommt dann immer noch überall ran.......

Egal was ich mache, er kann es theoretisch alles ändern und sich selbst wieder die Rechte geben. Oder gibt es irgendeine andere Möglichkeit?
Zum Beispiel einen abgespeckten Superuser oder so.....



Naja, du könntest die Protokollposten einschalten und noch in einer von dir gestrickten Nebentabelle mitloggen, wer alles das Häkchen zu deren Aktivierung setzt bzw. auscheckt. nur so, als Notkrücke gedacht. Und falls noch der SQL-Server im Hintergrund läuft, dann muss auch dort geloggt werden, wer alles per TSQL auf die NAV-Tabellen extern zugreift. Ich hab schon testweise auf meiner Demo-NAV-SQL-Datenbank im SQL-Server Managementstudio sämtliche NAV-Protokolposten mit einem DELETE * FROM ... WHERE ... gelöscht. Das hätte keine Programmierung in NAV merken können.

EDIT: ach so ja, vielleicht kannst du im Lohnmandanten programmieren, falls öffnender User.Name = Teilzeit-EDVler, dann sendmail an Geschäftsführer.
Zuletzt geändert von Freestyler am 19. November 2010 23:13, insgesamt 1-mal geändert.

Re: Navision beenden / Mandant schließen

18. November 2010 13:27

Timo hat da mal ein paar Codeunits entwickelt, die dir auch den Zugriff auf Sendkeys ermöglichen. Dann kannst Du für diesen User in der Codeunit 1 den Client beenden lassen.
Zusätzlich kannst Du den Zugriff noch im ChangeLog protokollieren lassen und dann kann man dem Freizeit EDV'ler bei Bedarf auf die Füße treten.

Gruß
42

Re: Navision beenden / Mandant schließen

19. November 2010 21:17

42 hat geschrieben:Timo hat da mal ein paar Codeunits entwickelt, die dir auch den Zugriff auf Sendkeys ermöglichen. Dann kannst Du für diesen User in der Codeunit 1 den Client beenden lassen.

[Hier] findest du die besagte Codeunit-Sammlung.
Konkret geht es um die Codeunit "WindowsScriptHostManagement", in welcher du die Funktionen "LogOff" und "ReLogOn" findest.

Re: Navision beenden / Mandant schließen

22. November 2010 09:53

giebner hat geschrieben:Ja, zum Beispiel. Aber Sendkeys war, glaub ich, ein externes Programm, das dann überall installiert sein muss, oder?
Ich dachte, der normale Windows Scripting Host kommt von Windows und muß nicht extra installiert werden.

giebner hat geschrieben:Hintergrund:
- Es gibt einen SUPERUSER im Unternehmen, der "nebenbei" die EDV macht.
- Nun soll es einen Lohn-Mandanten geben, wo dieser keinen Zugriff drauf haben soll.
- Ich wollte dies hart programmieren in der C1 und mit nem Error raus, aber der kommt dann immer noch überall ran.......
Warum regelst du das nicht über die Rechte? Du kannst dem User die einzelnen Rollen doch nur auf die anderen Mandanten zuweisen.

Re: Navision beenden / Mandant schließen

22. November 2010 10:10

HattrickHorst hat geschrieben:Ich dachte, der normale Windows Scripting Host kommt von Windows und muß nicht extra installiert werden.
Seh ich genauso.

Re: Navision beenden / Mandant schließen

22. November 2010 15:12

Der Windows Scripting Host wird auch nicht "extra installiert" - die Codeunit ermöglicht Dir aber den Zugriff auf diese Funktionen.
Konkret geht es darum, dass in dieser Codeunit über eine AutomationVariable die Verbindung von NAV zum WSH geschaffen wird.

Anschließend kannst Du über die Funktion SendKeys Dein Alt + F4 an Windows schicken und damit den Client beenden.