| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | Request a special discount on NVIDIA RTX 5000 Ada Generation GPU ! |
Autor
|
Thema: Jobserver 5 Serienjob (613 mal gelesen)
|
powerjibe Mitglied
Beiträge: 6 Registriert: 18.07.2008
|
erstellt am: 25. Jul. 2008 10:08 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe für Productstream Compass 5 Jobserver ein Job erstellt, der AutoCAD-Dokumente um eine angebene Uhrzeit in Abhängigkeit von Schriftfeldeinträgen in bestimmte Verzeichnisse kopiert. Der Job funktioniert. Nun möchte ich, dass dieser Job täglich nachts jeweils um eine bestimmte Uhrzeit ausgeführt wird. Ich weiss, dass ich hierzu nach erfolgreichem Job diesesn neu anlegen (___JobCreate(...)muss. Jetzt startet der Job jedoch nicht am nächsten Tag bei der angegebenen Uhrzeit der Ausführung, sondern ständig hintereinander. Wie kann ich ich erreichen, dass der Job nur einmal am Tag ausgeführt wird. Die exakte Uhrzeit ist nebensächlich, es reicht wenn dieser z.B. nachts zwischen 0:00 und 3:00 ausgeführt wird. Im Voraus Danke für Eure Hilfe. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hotbott Mitglied Informatikkaufmann
Beiträge: 9 Registriert: 29.04.2005 .
|
erstellt am: 25. Jul. 2008 11:07 <-- editieren / zitieren --> Unities abgeben: Nur für powerjibe
Hallo powerjibe, zuerst brauchst du eine StoredProcedure für die Datenbank, mit der Du das Datum berechnen kannst. Ich hab die hier auch aus dem Forum, weiß aber leider nicht mehr, wer sie geschrieben hat... Code: CREATE PROCEDURE cmp_AddDaysToDate(@NewDate varchar(100) OUTPUT, @AddDays int) AS SET NOCOUNT ON -- Das Datum muss für Compass im Format yyyymmdd zurückgegeben werden. -- Wird hier als Textteile zusammengeschnitten. Declare @TempDate datetime Set @TempDate = DateAdd(dd, @AddDays, GetDate()) Set @NewDate = Cast(Year(@TempDate) as varchar(10)) + Case When Len(Month(@TempDate))=1 Then Cast(0 as varchar(1)) + Cast(Month(@TempDate) as varchar(10)) Else Cast(Month(@TempDate) as varchar(10)) End + Case When Len(Day(@TempDate)) = 1 Then Cast(0 as varchar(1)) + Cast(Day(@TempDate) as varchar(10)) Else Cast(Day(@TempDate) as varchar(10)) End GO
Bei deinem Job gibst Du im Feld "Bedingung für Ausführung" die Kriterien an. z.B.
Code: comp("17","#SYSTIME") && comp("$(next_copy)","#SYSDATE");
in diesem Fall wäre das 17:00 Uhr und dein Datum für den nächsten Lauf.Im Feld "Befehle nach Ausführung" wird das Datum mit der StoredProcedure um die gewünschten Tage hochgezählt. In Deinem Fall ist es 1 Tag. Anschließend legt sich der Job von selbst wieder an.
Code: ___Environment(next_copy=#(XDWSFKT:cmp_AddDaysToDate(,1))); ___JobCreate ( FOOBAR-001 -Silent -Auto );
Beim Anlegen des Folgejobs muss das Bedingungsfeld mit dem neuen Datum substituiert werden. "Befehle bei Anlage" Code: JBSSubstJobField(COND_START_JOB);
Grüße hotbott ------------------ Ihre heutige Glückszahl ist 69546565465! Achten Sie überall darauf!
[Diese Nachricht wurde von hotbott am 07. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
powerjibe Mitglied
Beiträge: 6 Registriert: 18.07.2008
|
erstellt am: 28. Jul. 2008 08:39 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|