[Gelöst] Message für bestimmten User

24. September 2009 12:30

Hallo Forum!

Ich möchte gern für bestimmte User ein Messagefenster öffnen lassen, wenn in einer bestimmten Tabelle Datensätze drin sind.
Das ganze möchte ich für einen automatischen Import nutzen. Über eine Codeunit wird alle 5 Minuten geschaut ob in einem Verzeichnis Dateien sind (mit NAS). Nachdem Import in eine Puffertabelle soll dann bei einem bestimmten User (der im Setup hinterlegt ist) ein Navision-Fenster geöffnet werden "Neue Aufträge da!".
Wie kann man das machen? Geht das überhaupt? Gibte es so was ähnliches wie ein Benachrichtigungssystem im Navision?

Gruß und Danke schonmal!
Zuletzt geändert von svr am 25. September 2009 07:50, insgesamt 1-mal geändert.

Re: Message für bestimmten User

24. September 2009 13:42

Hallo,

denkbar wäre folgendes:

1) der NAS schreibt in eine Tabelle, das neue Aufträge gefunden wurden;
2) eine SingleInstance-Codeunit, die für den betreffenden Benutzer gestartet wird,
schaut periodisch dort nach und gibt bei Bedarf eine MESSAGE aus.

Edit: Die Codeunit kann natürlich auch selbst nach neuen Aufträgen schauen ...

Die SingleInstance-Codeunit startest du über die Codeunit 1 in der Funktion CompanyOpen,
evtl. nur für den betreffenden Benutzer.

Die Codeunit könnte sinngemäß so aussehen:

Code:
VAR
  Timer: Automation 'Navision Timer 1.0'.Timer   // WithEvents=Yes

OnRun()
BEGIN
  IF NOT GUIALLOWED THEN
    EXIT;
  IF NOT CREATE(Timer) THEN
    ERROR('');
  Timer.Interval := 5000;  // milliseconds
  Timer.Enabled(TRUE);

Timer::Timer(Milliseconds : Integer)
BEGIN
  IF ... THEN
    MESSAGE('Neue Aufträge sind da.');
END;


Gruß Torsten

Re: Message für bestimmten User

24. September 2009 13:50

@Thorsten67
Kleine Zwischenfrage, funktioniert das auch wenn der User keine Form o.ä. offen hat und auch keine Aktivität ausführt (Mausklick oder so)?
Sowas habe ich früher schon gesucht.

Re: Message für bestimmten User

24. September 2009 14:01

Hallo Mikka,

bei meinem kleinen Test eben funktionierte es, egal ob der User gerade eine Form geöffnet hat oder nicht.
das einfache "angemeldet sein" reicht. An der Maus brauchte ich auch nicht zu wackeln ;o)

Torsten

Re: Message für bestimmten User

24. September 2009 14:03

Na das klingt ja genau nach dem was ich gesucht habe. Ich werde das mal ausprobieren.
Danke.

Re: Message für bestimmten User

24. September 2009 14:59

:-)
Das ist doch mal wieder ein nettes "Nice to have".
Ich musste zwar er noch bei Mibuso schauen, warum der Code bei mir nicht funzt, und musste leider festellen der Fehler sitzt vorm Bildschirm :wink:

Code:
Timer::Timer(Milliseconds : Integer)

Ist kein Codestück, sondern der Trigger (manchmal ist es von Vorteil, das Programmfenster zu Maximieren)
Puh ist das peinlich. Also bitte nicht nachmachen (deswegen habe ich es gepostet)

Das Ding funktioniert 'so' gut, das es sogar bei inaktiven Navision-Fenster (minimiert) die vergangende Zeit in Intervallen berücksichtigt.
-->Ich habe "Just for fun" neue Artikel anlegen lassen, als Beschreibung habe ich die Uhrzeit eingetragen. Allerdings konnte ich nicht ermitteln, ob Nav diese sofort anlegt, oder im nachhinein die schreibt (wovon ich ausgehe!)

Re: Message für bestimmten User

24. September 2009 16:58

Ich glaub heute ist nicht mein Tag:
Wie darf ich das verstehen:
svr hat geschrieben:Timer::Timer(Milliseconds : Integer)

Trigger?

Re: Message für bestimmten User

24. September 2009 17:17

du hast die Variable "Timer" als Automation 'Navision Timer 1.0'.Timer angelegt?
Stell in den Properties der Variable WithEvents auf Yes.

Dann erscheint eine neuer Trigger in deiner Codeunit, der da heißt
Timer::Timer(Milliseconds : Integer)

Gruß Torsten

Edit: Tippfehler raus.

Re: Message für bestimmten User

25. September 2009 07:50

Danke für die Info,
da habe ich wieder was neues gelernt.