[gelöst].bat Datei über Aufgabenwarteschlange starten

18. Juni 2019 11:55

Hallo,
neuer Tag neue Herausforderungen :)
Ich möchte gerne eine .bat Datei über die Aufgabenwarteschlange starten.
Dabei habe ich folgenden Code gefunden und für mich geändert
Code:
CLEAR(process);
process := process.Process;
process.StartInfo.UseShellExecute := FALSE;
process.StartInfo.FileName := '"C:\test.bat"';
process.StartInfo.CreateNoWindow := TRUE;
process.Start;
CLEAR(process);


Die bat Datei erstellt erstmal nur ein leeres Textdokument.
Process ist eine .NET Variable (System.Diagnostics.Process.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
Zum Problem:
Wenn ich das einfach über die Entwicklungsumgebung starte und RunOnClient = Yes habe funktioniert alles.
Für die Aufgabenwarteschlange muss ich RunOnClient = No haben. Allerdings passiert hier absolut gar nichts. Es wird sogar immer "Erfolg" protokolliert aber ohne einer Verarbeitungsdauer.
Ich habe eine .Bat Datei schonmal über eine andere Funktion über die Aufgabenwarteschlange zum laufen gebracht. Wenn ich den Code aber verwende schmiert mir NAV ab. Also habe ich nach einer anderen Lösung gesucht.
Damals habe ich folgenden Code erfolgreich verwendet
Code:
ExcecuteBat := ExcecuteBat.ProcessStartInfo('cmd','/c "' + "Bat Path" + "Bat Name" + '"');
ExcecuteBat.RedirectStandardError := TRUE;
ExcecuteBat.RedirectStandardInput := TRUE;
ExcecuteBat.UseShellExecute := FALSE;
ExcecuteBat.CreateNoWindow := TRUE;

Process := Process.Process;
Process.StartInfo(ExcecuteBat);
Process.Start;


Ultimatives Ziel ist es PDF Dateien (keine Reports) über die Aufgabenwarteschlange zu drucken. Bin gerne auch für eine andere Lösung offen.

PS. Die Aufgabenwarteschlange läuft über einen NAVServiceUser

Grüße
Zuletzt geändert von ITNoob am 24. Juni 2019 08:28, insgesamt 1-mal geändert.

Re: .bat Datei über Aufgabenwarteschlange starten

18. Juni 2019 12:07

Windows Aufgabenplanung?

Re: .bat Datei über Aufgabenwarteschlange starten

18. Juni 2019 12:14

Die c:\test.bat liegt auf dem Client PC oder auf der Servicetiermaschine?
Bei RunOnClient=FALSE wird die Datei auf dem Servicetier gesucht.

Re: .bat Datei über Aufgabenwarteschlange starten

18. Juni 2019 12:32

Aufgabenplanung hatte ich nicht im Kopf. Das ist eine gute Idee.
Probier ich nachher direkt aus.

Die Datei liegt auf dem Server. Ich bin da auch direkt angemeldet. Also er sollte in beiden Fällen was finden.

Re: .bat Datei über Aufgabenwarteschlange starten

18. Juni 2019 13:42

Also ich habe das mit dem Aufgabenplaner ausprobiert.
Allerdings ohne Erfolg
Meine Bat sieht wie folgt aus:
Code:
@echo off
set folder="D:\Freigaben\test"
for /r %folder% %%a in (*.pdf) do (
start /b "Print" "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /n /t "%%a"
)

Wenn ich diese manuell starte funktioniert alles. Über den Aufgabenplaner passiert nichts.
Auch wenn das jetzt hier an der falschen Stelle ist, vielleicht kann mir ja einer helfen.

Grüße

Re: .bat Datei über Aufgabenwarteschlange starten

18. Juni 2019 14:55

Vielleicht hilft dieser Link

Re: .bat Datei über Aufgabenwarteschlange starten

18. Juni 2019 15:41

Das habe ich schon probiert. ICh hab auch eine ganz einfach .bat Datei so zum laufen gebracht.
Ich habe aber die Vermutung, dass das bei meiner bat Datei nicht so einfach ist, weil da der Adobe Reader geöffnet wird.

Re: .bat Datei über Aufgabenwarteschlange starten

19. Juni 2019 08:10

läuft der Windowstask mit höchsten Privilegien/Berechtigungen?
Im Allgemeinen Tab des Task ganz unten.
Auch zu beachten ist, dass der Task sicherlich auch ausgeführt werden soll, wenn der User nicht angemeldet ist.

Re: .bat Datei über Aufgabenwarteschlange starten

19. Juni 2019 08:13

Guten Morgen,
beides ist angehakt.

Re: .bat Datei über Aufgabenwarteschlange starten

24. Juni 2019 08:27

Guten Morgen,
das Problem war wohl, dass das ganze nur funktioniert wenn mein Benutzer angemeldet ist. So musste auch die Einstellung dann angepasst werden.

Grüße

Re: [gelöst].bat Datei über Aufgabenwarteschlange starten

24. Juni 2019 09:38

sweikelt hat geschrieben:Auch zu beachten ist, dass der Task sicherlich auch ausgeführt werden soll, wenn der User nicht angemeldet ist.


Ich dachte das wäre angehakt bei dir?
oder welche Einstellungen hast du wie/wo angepasst?

Re: [gelöst].bat Datei über Aufgabenwarteschlange starten

24. Juni 2019 10:50

Er meinte wahrscheinlich, dass es nur mit seinem Benutzer funktioniert. Also wahrscheinlich ein Rechteproblem.

Re: [gelöst].bat Datei über Aufgabenwarteschlange starten

28. Juni 2019 09:12

Guten Morgen,
so habe ich es auch gemeint.
Danke nochmals für den Tipp.

Grüße

Re: [gelöst].bat Datei über Aufgabenwarteschlange starten

6. Januar 2021 15:48

Hallo

Konntest du das mit der batchdatei starten lösen mit der Warteschlage im NAV ?
Danke Dir
Dany

ITNoob hat geschrieben:Hallo,
neuer Tag neue Herausforderungen :)
Ich möchte gerne eine .bat Datei über die Aufgabenwarteschlange starten.
Dabei habe ich folgenden Code gefunden und für mich geändert
Code:
CLEAR(process);
process := process.Process;
process.StartInfo.UseShellExecute := FALSE;
process.StartInfo.FileName := '"C:\test.bat"';
process.StartInfo.CreateNoWindow := TRUE;
process.Start;
CLEAR(process);


Die bat Datei erstellt erstmal nur ein leeres Textdokument.
Process ist eine .NET Variable (System.Diagnostics.Process.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
Zum Problem:
Wenn ich das einfach über die Entwicklungsumgebung starte und RunOnClient = Yes habe funktioniert alles.
Für die Aufgabenwarteschlange muss ich RunOnClient = No haben. Allerdings passiert hier absolut gar nichts. Es wird sogar immer "Erfolg" protokolliert aber ohne einer Verarbeitungsdauer.
Ich habe eine .Bat Datei schonmal über eine andere Funktion über die Aufgabenwarteschlange zum laufen gebracht. Wenn ich den Code aber verwende schmiert mir NAV ab. Also habe ich nach einer anderen Lösung gesucht.
Damals habe ich folgenden Code erfolgreich verwendet
Code:
ExcecuteBat := ExcecuteBat.ProcessStartInfo('cmd','/c "' + "Bat Path" + "Bat Name" + '"');
ExcecuteBat.RedirectStandardError := TRUE;
ExcecuteBat.RedirectStandardInput := TRUE;
ExcecuteBat.UseShellExecute := FALSE;
ExcecuteBat.CreateNoWindow := TRUE;

Process := Process.Process;
Process.StartInfo(ExcecuteBat);
Process.Start;


Ultimatives Ziel ist es PDF Dateien (keine Reports) über die Aufgabenwarteschlange zu drucken. Bin gerne auch für eine andere Lösung offen.

PS. Die Aufgabenwarteschlange läuft über einen NAVServiceUser

Grüße

Re: [gelöst].bat Datei über Aufgabenwarteschlange starten

21. Januar 2021 17:22

ITNoob hat geschrieben:Ultimatives Ziel ist es PDF Dateien (keine Reports) über die Aufgabenwarteschlange zu drucken. Bin gerne auch für eine andere Lösung offen.



Guten Tach!


Code:
PrintPdfDocumentOnServer(FullPathToPdfFile : Text;Printername : Text) : Boolean

printerSettings := printerSettings.PrinterSettings();
IF Printername <> '' THEN
  printerSettings.PrinterName := Printername;

IF NOT printerSettings.IsValid THEN
  ERROR('Druckeinstellungen sind ungültig.');

pdfium_Document := pdfium_Document.Load(FullPathToPdfFile );
printDocument := pdfium_Document.CreatePrintDocument();
WITH printDocument DO BEGIN
  PrinterSettings := printerSettings;
  DocumentName(FileManagement.GetFileName(FullPathToPdfFile ));
  Print();
END;

EXIT(TRUE);



vars:
Du benötigst die Pdfium Biblio

Code:
Name   DataType   Subtype   Length
FileManagement   Codeunit   File Management   
printerSettings   DotNet   System.Drawing.Printing.PrinterSettings.'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'   
printDocument   DotNet   System.Drawing.Printing.PrintDocument.'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'   
pdfium_Document   DotNet   PdfiumViewer.PdfDocument.'PdfiumViewer, Version=2.13.0.0, Culture=neutral, PublicKeyToken=91e4789cfb0609e0'   


Grüße