Tool / Modul zur zeitgesteuerten Ausführung von Aktionen?

11. April 2006 08:51

Hallo,

wir suchen eine Möglichkeit um folgendes zu realisieren:

Es sollen nach einem festen Zeitplan wiederkehrende Ereignisse ausgeführt werden. z.B

-die Lagerregulierung täglich um 21.00Uhr
-bestimmte Reports die sehr zeitaufwändig sind Nachts laufen usw.

Jedoch auch mal spontan ein Report oder eine Stapelverarbeitung hinzugefügt werden können um Nachts zu laufen.

Dies ist ja unter anderem mit dem Launch Utility von ExpandIT möglich.
Funktioniert dort die Parameterübergabe für Reports vernünftig? (Habe mal von möglichen Problemen gelesen)


Ist dies auch anders möglich? (Objektaufrufplaner? / Kann man dort Parameter/Filter für Reports übergeben?)


Wie habt ihr soetwas realisiert?

Vielen Dank im Voraus!


Mfg. André

11. April 2006 09:06

Hi wie wäre es mit dem Kostenfreien tool
"AutoIt 3"
AutoIt v3
Mit dem Tool kannst du alles auf dem Desktop Automatisieren!
Hier noch ein Link zu einem Kostenpflichtigen tool:
Marco Express

Allternativ, kannst du auch eine Timerbasierende Form erstellen. Immer wenn die Zeit um ist, wird der entsprechende Prozess gestartet.
Das machen wir auch um Scannerdateien zu Importieren.
Nachteilig ist allerdings, das das Fenster immer offen sein muss und so eine Session immer in Benutztung ist!

Objektaufrufplaner?
Ich weiß nicht genau was du damit meinst?!
Eine Navisionsitzung lässt sich zwar mit Parametern starten, jedoch bei der Passwortübergabe bin ich gescheitert!
Parameter für die fin.exe

Evtl. könnte der NAS dir weiterhelfen, aber mit dem habe ich bisher keine Erfahrungen gemacht!
Gruß Michael
Zuletzt geändert von mikka am 11. April 2006 09:17, insgesamt 1-mal geändert.

11. April 2006 09:16

Navision bietet von Haus die Möglichkeit, zeitgesteuert Programme aufzurufen und ablaufen zu lassen.

Jedes Form verfügt über das Property 'TimerInterval' und den Trigger OnTimer(). Mit dem TimerInterval kann man in regelmässigen Abständen prüfen lassen, ob eine bestimmte Zeit an einem bestimmten Tag eingetreten ist. Über den Trigger OnTimer können dann beliebige Navisionprogramme gestartet werden.

Nachteile:
- Es muss ständig ein Client laufen, auf welchem das Timerform läuft.
- Solche 'Batchprogramme' sollten so programmiert sein, dass sie bei Fehlern nicht einfach mit einem ERROR abbrechen, sondern den Fehler protokollieren und weiterlaufen.

Ich hoffe, das hilft ein bisschen weiter.

11. April 2006 09:38

mikka hat geschrieben:Objektaufrufplaner? Ich weiß nicht genau was du damit meinst?! [...]

Er meint das Ding im Modul "Service" -> "Einrichtung" -> "Objektaufrufplaner" -> "Obejktaufrufplaner".

Gruß, Marc

11. April 2006 09:41

Hallo,

es gibt in der 3.60er Version unter Service --> Einrichtung --> Objektaufrufplaner das ist die Form 6091.

Damit kann man wohl in sehr begrenztem Maße soetwas realisieren (kann ich aber Mangels Lizenz nicht testen)

(MARC WAR SCHNELLER ;-) )

@ rotsch

mit der On Timer Variante, das ist leider nicht so hilfreich- es soll nach Möglichkeit wenig ins System eingegriffen werden und das ganze zentral gesteuert werden können.

Mfg. André

11. April 2006 09:58

Also wenn ihr möglichst nicht ins System eingreifen wollt dann würde ich euch empfehlen den Objekaufrufplaner zu lizensieren. Ich glaub so teuer ist der auch nicht. Wir nutzen den für genau das was du tun willst, Lagerwertberichte, sonstige tägliche Jobs, etc. pp. Für den solltet ihr natürlich immer einen User angemeldet haben, aber theoretisch könnt ihr den ja auch bzw. abends einschalten und morgens wieder abmelden.

Gruß Jan

11. April 2006 10:04

Die Session ist nicht das Problem bei uns.

Kann ich denn mit dem Objektaufrufplaner variabel Anpassen mit welchen Filtern/Parametern ich Reports laufen lassen möchte usw?


Mfg. André

11. April 2006 10:17

Andre M hat geschrieben:[...]Kann ich denn mit dem Objektaufrufplaner variabel Anpassen mit welchen Filtern/Parametern ich Reports laufen lassen möchte usw?

Nein, vom Standard her ist dies nicht möglich!

Gruß, Marc

11. April 2006 10:21

Wie Marc schon sagte geht das nicht. Wir haben das so gelöst indem wir bei bestimmten Reports den User des Objektaufrufplaners abgefragt haben (bei uns OAP). Ungefähr so:

Code:
OnPreDataitem

If USERID='OAP' then
  Bla.Setfilter(PostingDate,'%1..%2',Startdatum,Enddatum);



Funktioniert eigentlich ganz gut :-)

11. April 2006 10:23

hmm schade- ich glaube wir testen dann mal eher ExpandIT- denn es gibt immer wieder Reports die mit den verschiedensten Parametern aufgerufen werden sollen.

Mit dem Objektaufrufplaner haben wir dann ja immer wieder mal Anpassungsaufwand.

Mfg. André

11. April 2006 10:29

Wir haben das bei uns mit dem OnTimer Trigger gelöst:

Im Sytem gibt es den USER "xyZ" mit dem Passwort "abc"
Dieser User besitzt als Startfenster die Form, in der die Programmierung steckt.

Dann starten wir per Taskplaner ein VBS Scribt, welches Navision startet und diesen USER anmeldet.

Bei uns ist es allerdings so, dass der Client ständig läuft und nur zu einer bestimmten Zeit neu gestartet wird, da tagsüber oft Änderungen an Tabellen etc. durchgeführt werden.
Ich kenne mich jedoch nicht mit diesem Scribt aus, da mein Kollege dieses programmiert hat. Aber ich denke es lässt sich auch umdrehen, so dass Navision zuerst gestartet und dann wieder geschlossen wird.

Auf diese Weise wäre der Client dann nur für eine gewisse Zeit aktiv
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

11. April 2006 13:19

Ich würde auch den Objektaufrufplaner empfehlen.
Dieser kann zwar keine Filter an Reports übergeben, aber man könnte
a) Jan's Lösung (als Ansatz) nehmen
b) in einer neuen Tabelle die Parameter hinterlegen und den Report dort nachschauen lassen
c) einen weiteren Report / Codeunit schreiben, der den gewünschten Report mit den notwendigen Filtern aufruft

11. April 2006 13:43

Hmm ok- gibt es denn Vor-/Nachteile der Lösung mit dem Objektaufrufplaner gegenüber dem ExpanIT Programm?

Mfg. André

11. April 2006 13:53

Ich persönlich kenne ExpandIT nicht, Vorteil OAP wäre jedoch auf jedenfall, dass es eine systeminterne Lösung wäre, sprich du hast den Pflegeaufwand nur in einem System.

11. April 2006 14:02

Expandit
Schau es dir auf der Webseite an, es kann eine Demoversion Heruntergeladen werden.
Allerdings finde ich das Tool sehr teuer zumal es für die Ausführung auch eine Session benötigt!
Gruß Mikka

11. April 2006 14:04

Ja, hab ich eben gemacht :-) also schlecht hört sichs nicht an, aber ich denke auch, dass der OAP wohl um einiges günstiger sein dürfte, oder?

11. April 2006 14:12

Wir haben dies mit dem NAS (Navision Application-Server) gelöst.
Dort kann man Timergesteuert wunderbar jedes Navision-Ding aufrufen.
Die Filter der Reports können mit GetView geholt, in ein BLOB-Feld geschrieben werden. Bei Bedarf können diese Filter mit SetView wieder gesetzt werden.
Das ganze ist sehr flexibel.
Der einzige Nachteil ist halt, dass Reports mit ganz speziellen Parametern
nur mit zusätzlicher Programmierung implementiert werden können.

Gruss

11. April 2006 19:44

Sofern man mit Sicherheit weiß, dass der Filter nicht größer als 250 Zeichen wird, kann man den Record.GETVIEW(FALSE); auch in einem Textfeld abstellen.

Ich habe mal den Report 295 (Sammelrechnung) für den OAP optimiert.
Auf der RequestForm kann ein Häkchen gesetzt werden, welches steuert, ob die Einstellungen gespeichert werden sollen.
Bei "Ja" werden die Filter aller (filterbaren) DataItems (per GETVIEW(FALSE);) zusammen mit den Einstellungen auf der RequestForm in einer Tabelle gespeichert.
Wird der Report ohne RequestForm (also vom OAP) gestartet, so holt er sich die Einstellungen aus dieser Tabelle und legt los.

Das ganze funktioniert so gut, dass der Kunde das Ganze auch noch für die Report 297 und 298 (Stapelbuchen von Rechnungen / Gutschriften) haben wollte ;-)
Ich kann jetzt schon absehen, dass er in spätestens 1/2 Jahr auch die "Sammelgutschriften für Reklamationen" so haben will :-D

11. April 2006 20:14

@ Timo

nicht schlecht die Idee- bevorzuge die extra Tabelle, dann ist man vom Filter her auf der sicheren Seite!

Ich werd das ganze mal mit meinem Kollegen durchsprechen übernächste Woche und dann mal schauen wie das gemacht wird.

Vielen Dank für die rege Beteiligung und die guten Ideen/Vorschläge!


Mfg. André

11. April 2006 20:55

Kleiner Tipp noch nebenbei:
"Wie finde ich heraus, ob ein Report mit oder ohne RequestForm gestartet wurde?"

Ganz einfach:
Fülle im OnOpenForm()-Trigger der RequestForm eine Boolean-Variable mit "Ja" (z. B. ReqFormUsed := TRUE;)
Im OnPreReport fragt man diese Variable einfach ab.
Wurde nun der Report von einem Anwender gestartet, so ist die RequestForm auf jeden Fall geöffnet worden.
Wurde der Report jedoch vom OAP (oder per C/AL-Code ohne RequestForm) gestartet, so steht die Variable auf FALSE

11. April 2006 22:31

Timo Lässer hat geschrieben:Bei "Ja" werden die Filter aller (filterbaren) DataItems (per GETVIEW(FALSE) zusammen mit den Einstellungen auf der RequestForm in einer Tabelle gespeichert.


Das Speichern der Einstellungen muss aber gesondert gehandhabt werden. Das geht nicht mit dem GETVIEW. Oder habe ich da etwas übersehen?

11. April 2006 22:41

rotsch hat geschrieben:[...]
Das Speichern der Einstellungen muss aber gesondert gehandhabt werden. Das geht nicht mit dem GETVIEW. Oder habe ich da etwas übersehen?

Ich habe das ungefähr so realisiert:
Code:
OnPreReport()
-------------
IF SaveSettings THEN BEGIN
  OAPSetup.INIT;
  OAPSetup.Filter := MyRecord.GETVIEW(FALSE);
  OAPSetup.MyRequestField1 := TheRequestFormField1;
  [...]
  OAPSetup.INSERT;
END ELSE BEGIN
  OAPSetup.RESET;
  IF NOT OAPSetup.FIND('+') THEN
    CurrReport.QUIT;
  MyRecord.SETVIEW(OAPSetup.Filter);
  TheRequestFormField1 := OAPSetup.MyRequestField1;
  [...]
END;

27. April 2006 11:58

martinst hat geschrieben:Wir haben dies mit dem NAS (Navision Application-Server) gelöst. Dort kann man Timergesteuert wunderbar jedes Navision-Ding aufrufen.


Hallo Martin,
Kannst Du mir dazu bitte ein paar Stichworte geben? Ich möchte genau so etwas mit NAS lösen, weiss aber nicht genau, wie ich da ansetzen muss. NAS als Service habe ich zum laufen gebracht.

28. April 2006 07:58

hi,
hier mbsonline duerfte ein vernuenftiger ansatz zu finden sein.

gruesse
feri

28. April 2006 10:59

feri hat geschrieben:in mbsonline duerfte ein vernuenftiger ansatz zu finden sein


Der Link führt leider zu einem Topic, das mit einem Fehler startet. Es ist nur die Fragestellung zu sehen, aber keine Antworten. Totzdem danke für den Hinweis auf dieses Forum.