joschka
I'm new here

Wie kann der Platzhalter %FIRSTspiritURL% manuell ersetzt werden?

Hallo Community,

beim Starten eines Freigabe-Workflows soll eine E-Mail an verantwortliche Personen versendet werden.

Die E-Mail beinhaltet eine URL zum freizugebenden Objekt in FirstSpirit.

Da FirstSpirit standardmäßig LDAP-Gruppen nicht auflösen kann, wurde diese Funktionalität über ein eigenes Modul realisiert.

In der E-Mail sollen nun Standardplatzhalter (wie z.B. %FIRSTspiritURL%) ersetzt werden.

Dies funktioniert aktuell, bedingt durch die manuelle E-Mail Versendung, leider nicht.

Über "Transition#getEmailBody()" bekomme ich derzeit nur den Platzhalter an sich.

Gibt es eine bereits vorhandene Funktionalität (Klasse mit entsprechender Methode etc.), um das Ersetzen der Standardplatzhalter nach zu implementieren?

0 Kudos
5 Replies
maaroufi
I'm new here

Hallo Joachim,

ich verweise hier zunächst auf das FirstSpirit Handbuch für Administratoren. Hier ist unter Punkt 4.3.1.1 im Beispiel für die fs-server.conf zu sehen, wie der Platzhalter ersetzt wird.

Parameter für die fs-server.conf:

HTTP_PORT=4200

SOCKET_PORT=4300

URL=http://myServer:8000

fs.url.hostname=aliashost

fs.url.socketport=8300

fs.url.httpport=8200

fs.url.usehttps=true

Platzhalter: %FIRSTspiritURL%

Mit Hilfe der Parameter aus der fs-server.conf wird %FIRSTspiritURL% also wie folgt ersetzt:

http://myServer:8000/start/FIRSTspirit.jnlp?app=client&project=myProject&name=null&type=Page&id=4439...

Die Parameter der URL ergeben sich aus denen der fs-server.conf, wobei der Parameter 'id' der Knoten ist, auf dem das Script/Modul ausgeführt wird, dieser müsste dann im Script noch ermittelt und in der URL ergänzt werden, es handelt sich dann bei dem Knoten um das freizugebende Objekt. Die anderen Parameter müssten Dir bekannt sein und können dann manuell in den String eingefügt werden. Folgender String würde dann z.B. die URL zum freizugebenden Objekt darstellen:

String url = "http://myServer:8000/start/FIRSTspirit.jnlp?app=client&project=myProject&name=null&type=Page&id="+context.getStoreElement().id+"&host=aliashost&port=8200&mode=HTTP&usehttps=true" 

Der Platzhalter müsste dann über ein einfaches String-Replacement durch diesen String ersetzt werden.

Freundliche Grüße

Ismail   

0 Kudos

Hallo Ismail,

ich bin noch ziemlich neu in FirstSpirit und arbeite gerade am Problem des Thread-Erstellers. Wie das Zusammensetzen der URL für den Platzhalter funktioniert ist soweit klar. Vielen Dank für deine Erklärung! Nun habe ich aber noch eine weitere Frage zu den Parametern. Gibt es eine Methode, mit der ich in meinem Modul die benötigten Parameter aus der fs-server.conf auslesen kann?

Viele Grüße,

Michael

0 Kudos

Hallo Michael, das folgende Java-Programm zeigt beispielhaft einmal das Auslesen eines bestimmten Parameters und zusätzlich das der kompletten fs-server.conf: 

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

public class AccessConf {

    public static void main(String... args) throws IOException {

        Properties prop = new Properties();

        String configFile = "C:/Program Files (x86)/FirstSpirit5/conf/fs-server.conf"; // Pfad

                                                                                        // zur

                                                                                        // fs-server.conf

                                                                                        // anpassen

        InputStream in = new FileInputStream(configFile);

        prop.load(in);

        // Auslesen eines bestimmten Konfigurationsparameters, hier HTTP_PORT

        System.out.println("HTTP_PORT = " + prop.getProperty("HTTP_PORT"));

        System.out.println("--------------------------------------------");

        // Komplette fs-server.conf

        for (Object s : prop.keySet()) {

            System.out.println(s + " = " + prop.getProperty((String) s));

        }

    }

}

Freundliche Grüße

Ismail

0 Kudos

Hallo Ismail,

ich habe nach viel Rumprobrieren und Testen herausgefunden, dass ich auf die von dir beschriebene Weise nur auf das fs-server.conf auf dem Client zugreifen könnte. Da ich ein absoluter Anfänger in FirstSpirit bin, habe ich leider etwas Schwierigkeiten auf die Serverdatei zu kommen. Hättest du vielleicht noch den ein oder anderen Tipp für mich, wie das zu bewerkstelligen ist? Smiley Happy

0 Kudos

Hallo Michael,

Ein Weg wäre über die Connection die Parameter abzufragen:

connection=context.getUserService().getConnection();

jetzt kannst du dir über die Connection.getXXX-Methoden diverse Parameter auslesen lassen z.B. den Port über connection.getPort() oder die Serverkonfiguration über connection.getServerConfiguration().

serverConfig=connection.getServerConfiguration();

Über die Serverkonfiguration kann man dann weitere Parameter auslesen, z.b. über serverConfig.getUrl() die Server-URL. In der entsprechenden Javadoc findest du weitere Methoden zu Connection und ServerConfiguration. 

Freundliche Grüße

Ismail

0 Kudos