Questions & Answers

rhb
I'm new here

Scheduler via OPC starten

Hallo,

bereits bei FS_v_3.1 haben wir unser tรคgliches Deployment via OPC gestartet und dazu gab es eine Java-Klasse, die dazugehรถrige XML-Datei und eine properties-Datei in welcher Server, Socketport etc. drin stand.

Nun mรถchte ich fรผr FS_v_4.2 das selbe machen und wรผsste gerne durch was ich das Package firstspirit.access.deployment.SchedulerEntry ersetzen kann? Oder kann man dieses weiterhin nutzen obwohl ich dieses in der FS-API nicht gefunden habe?

Hab meine Java-Class  angehรคngt, damit es leichter verstรคndlich ist was gemacht werden soll.

sG

Birgit

0 Kudos
8 Replies
gockel
Crownpeak employee

0 Kudos

Habs nun soweit mal umgebaut, dass die Packages etc. passen.

Jedoch wenn ichs jetzt ausfรผhre bekomm ich eine Fehlermeldung beim Verbindungsaufbau, die mir nicht ganz klar ist:

Error beim Verbindugnsaufbau zum CMS Server. Wrong client version: 4.0.147

Wieso falsche Client-Version? Die Version 4.0.147 habe ich nur lokal bei mir installiert und nicht auf dem Server wo FirstSpirit 4.2 rennt.

0 Kudos
gockel
Crownpeak employee

Wie wird die Klasse "Deployment42" dem Server bekannt gemacht? รœber ein Modul?

Wenn ja, wie sieht die module.xml dazu aus?

0 Kudos

Wieso falsche Client-Version? Die Version 4.0.147 habe ich nur lokal bei mir installiert und nicht auf dem Server wo FirstSpirit 4.2 rennt.

Es geht um die Libraries, die der lokale "Client" verwendet.

Die lokalen Libraries mรผssen auch 4.2er Libraries sein.

0 Kudos

Hab nun die Lib ausgetauscht und die Fehlermeldung kommt nun nicht mehr jedoch schreibt er jetzt

de.espirit.firstspirit.server.module.LicenseModuleException: module "access_api" is not licensed!

Wenn ich in die Lizenz am Server schau, dann steht dort " license.ACCESS_API=0 " - muss ich nun also eine Lizenz dafรผr anfordern?

0 Kudos

Wenn ich in die Lizenz am Server schau, dann steht dort " license.ACCESS_API=0 " - muss ich nun also eine Lizenz dafรผr anfordern?

Richtig. Ein Zugriff auf den FirstSpirit-Server per API "von auรŸen" erfordert einen passenden Lizenzkey.

Bitte wenden Sie sich an das Helpdesk fรผr eine Erweiterung Ihrer Lizenz.

0 Kudos

Auf die Access-API kann ich nun endlich zugreifen und die Verbindungsherstellung zum CMS-Server funktioniert mit meiner Klasse nun auch endlich.

In der Klasse muss der Zeitpunkt des letzten Updates und jener des letzten erfolgreichen Updates ausgelesen werden.

In Fs v3.1 wurde dies so gelรถst:

// letztes Update
lastUpdateTime = (Date)deploymentEntry.getProperty("LastUpdateTime");

// letztes erfolgreiches Update
lastSuccessUpdateTime = (Date)deploymentEntry.getProperty("LastSuccessfullUpdateTime");

Wie ich das in FS v4.2 implementieren muss ist mir grundsรคtzlich bereits klar ( da wenn ich dem getProperty() manuell zwei Zeitpunkt mitgebe die Ausfรผhrung klappt ), jedoch hat mir mein Kollege welcher das fรผr FS v3.1 geschrieben hatte gesagt, dass jene zwei Properties ( LastUpdateTime und LastSuccessfullUpdateTime ) Variablen sind welche von FirstSpirit befรผllt werden. 

Jetzt stellt sich mir die Frage wie diese zwei Variablen in FS v4.2 heiรŸen bzw. wie man ansonsten auf den Zeitpunkt der letzten (erfolgreichen) Ausfรผhrung des Deployments zugreifen kann?!

sG

Birgit

0 Kudos
hoebbel
Crownpeak employee

Hallo Birgit,

wie in dem entsprechenden Helpdesk Ticket gerade schon geschrieben, bekommt man die entsprechenden Werte mit dem folgenden Skript:

import de.espirit.firstspirit.access.AdminService;

import java.util.Date;

lastExecutionTime = new Date(0);

lastSuccessTime = new Date(0);

task = context.getTask();

stat = task.getScheduleEntry().getStatistic();

lastExecutionTime = stat.getLastExecutionEndTime();

context.logInfo("Letzte Ausfรผhrung: " + lastExecutionTime);

AdminService adminService = connection.getService(AdminService.class);

scheduleEntries = adminService.getScheduleStorage().getHistory(new Date(new Date().getTime()-4*24*60*60*1000),new Date(),100,context.getProject());

for(scheduleControl : scheduleEntries) {

    if(scheduleControl.getScheduleEntry().getId() == context.getTask().getScheduleEntry().getId()) {

       if(scheduleControl.getState().getState().toString().equals("SUCCESS")) {

           lastSuccessTime = scheduleControl.getStartTime();

           break;

       }

    }

}

context.logInfo("Letzte erfolgreiche Ausfรผhrung: " + lastSuccessTime);

Das Skript schreibt das Datum der letzten Ausfรผhrung (lastExecutionTime) und das der letzten erfolgreichen Ausfรผhrung (lastSuccessTime) in das Logfile des Auftrags, wobei nur die letzten 100 ausgefรผhrten Auftrรคge des Projektes aus den letzten 4 Tagen berรผcksichtigt werden. Dies kann man durch geeignete Werte bei getHistory(...) entsprechend erweitern.

Viele Grรผsse aus Dortmund,

  Holger

0 Kudos

Type a product name