Changelog:

2014-03-19 V 1.9
Features

  • Projektbezogene WFE-Installation jetzt möglich: bei paralleler Installation von Projekten werden nun auch parallele, mit dem Projekt verlinkte WFE-Installationen erzeugt. In Zielsystemen evtl. bestehende WFE-Objekte mit alter Syntax (aus Vorversionen) werden automatisch entfernt und durch Objekte mit neuer Syntax ersetzt.
  • Evtl. bereits bestehende WFE-Installationen bleiben unberührt
  • Der Exporter ist jetzt voll IPS V3.1 kompatibel (u.A. die IPS_GetEvent- und alle IPS_SetCyclic….-Befehle abwärtkompatibel implementiert)
  • Abwärtskompatibilität bis mindestens IPS V2.6 (getestet): Projekte aus IPS V3.1 können ohne Probleme in ein IPS V2.6 importiert werden.
  • privacyMode eingeführt: Projektautor entscheidet vor Export, ob Variablenwerte mit exportiert werden
  • (Variable $privacyMode = [true/false] im Konfigbereich des Project Exporters)
  • im Updatemodus (Installer-Script) werden Variablenwerte im Zielsystem nicht überschrieben

Bugfixes

  • Kommas oder Semikolons in der Objektinfo haben Fehler bei der Installation erzeugt (fehlerhaftes Objekt-Inventory), installiertes Projekt war nicht vollständig => fixed

 

Features

Herstellung der beziehung zwischen IPS-Objektbaum und WFE-Objketen des Projekts

Herstellung der Beziehung zwischen IPS-Objektbaum und WFE-Objekten des Projekts

Parallele Projekt-(/WFE-) Installation

Spätestens im Zuge der Projektentwicklung „RS RainRadar Forecast“ wurde die Notwendigkeit deutlich, Parallel-Installationen von Projekten zu ermöglichen. Jedoch bin ich recht schnell zu der Erkenntnis gekommen, dass diese Idee zunächst am RS IPS Project Exporter scheitern würde: Der installiert zwar brav ein zum exportierten Projekt gehörenden WFE-Part und verlinkt die WFE-Objekte mit diesem Projekt. Aber es war keine Unterscheidung zwischen zwei WFE-Installationen zu den Projekten möglich. 

In der Praxis führte das dazu, dann man zwar 2 oder mehr Parallel-Installationen machen konnte, aber der WFE-Part wurde immer mit dem zuletzt installierten Projekt verlinkt. Die anderen, bereits bestehenden Parallel-Installationen schauten in die Röhre. Der User auch, weil hier war Handarbeit angesagt: WFE-Part im WFC kopieren und per Hand alle WFE-Objekte händisch mit dem richtigen Projekt verlinken.

WFE Objektdetails einer Parallel-Installation

WFE Objektdetails einer Parallel-Installation

Nun hat sich auch noch beim „RS Energy Forecast“ viel getan, was dazu führte, dass reichlich Anfragen bezgl. parallel-Installation auf mich einschlugen. Es musste also ne Lösung her.

Und die Lösung ist da. Ab sofort erledigt der RS IPS Project Exporter alles: für jedes installierte Projekt werden individuelle, nur zu diesem Projekt gehörende WFE-Objekte installiert. Die Identifizierung Projekt <=> WFE erfolgt über die Root-ID des im IPS-Objektbaum installierten Projekts. Diese Root-ID wird jedem, für dieses Projekt installierte WFE-Objekt als Suffix angehängt (z.B. _ScrID28148; ScrID steht hier für ‚Source-ID‘). Wird das gleiche Projekt nun nochmals im selben Zielsystem installiert, so bekommt das Projekt Root-Objekt im Objektbaum automatisch eine andere ID. Diese ID wird dann wiederum an die zu genau dieser Parallel-Installation installierten WFE-Objekte gehängt. Natürlich kümmert sich das Installationsscript des RS IPS Project Exporters auch um die korrekte Verlinkung der Objekte.

Befinden sich im Zielsystem noch WFE-Objekte alter Syntax (‚CpyItemName‘, aus Vorversionen), werden diese vom Install-Script automatisch erkannt und entfernt. Der Projekt-Autor braucht sich an dieser Stelle keinerlei Gedanken um Altlasten in den Systemen seiner Kunden machen.

Mit anderen Worten: ab Version 1.9 sind beliebig viele Parallel-Installationen der Projekte möglich, ohne dass sich diese ins Gehege kommen. Weder im IPS Objektbaum, noch im WFE. Der RS IPS Project Exporter kümmert sich zu 100% um eine sauber getrennte Installation, natürlich auch um Updates – hier gibt es diesbezüglich ebenfalls keinerlei Einschränkungen.

IPS V 3.1 Kompatibilität (incl. Abwärtskompatibilität)

Mit dem Rollout der Version 3.1 von IP-Symcon sind einige Scriptbefehle weggefallen und einige ersetzt worden. Ein Systembefehl liefert nun andere Ergebnisse als vorher.

Das musste im RS IPS Project Exporter entsprechend angepasst werden: nicht nur die neuen Befehle mussten eingefügt werden, nein, ich habe mir die Mühe gemacht, das ganze abwärts kompatibel zu halten. Man kann z.B. ein Projekt aus einem Quellsystem unter V 3.1 exportieren und in ein Zielsystem IPS V2.6 importieren. Der Project Exporter wird das zu installierende Projekt korrekt und ohne Fehler installieren.

Testinstallation des RS Energy Forecast in einem IPS V 2.6 (Stand Oktober 2012) => es läuft!

Testinstallation des RS Energy Forecast in einem IPS V 2.6 (Stand Oktober2012) => es läuft!

Ich habe mir mal den Spaß gemacht und die aktuelle Version 1.5 des RS EnergyForecast (entwickelt unter IPS V 3.1) aus meinem Produktiv-System  zu exportieren und in ein Testsystem IPS V 2.6 (Stand Oktober 2012) zu importieren. Die einzigen aktuellen Daten in diesem Testsystem war die logging.db, die ich aus dem Produktivsystem in das Testsystem kopiert habe (sonst hätte ich die Funktionalität des RS Energy Forecast nach der Installation nicht überprüfen können). Die Installation durch das Install-Script lief absolut problemlos. Dann habe ich das frisch installierte Projekt initialisiert: siehe da, es lief auf Anhieb, ohne eine einzige Fehlermeldung! Hätte ich nicht unbedingt drauf gewettet!

Allerdings zeigt sich an diesem Beispiel auch wieder, wie wichtig es für professionelle Softwaresysteme ist, Strukturen und Befehle langfristig stabil zu halten: durch den RS IPS Project Exporter wird einem Projekt-Entwickler zwar sehr viel Arbeit abgenommen, was Abwärts-Kompatibilität angeht (was mich eine Menge Arbeit kostete), das gilt aber leider nur für IPS-Objekte (bzw. Objekt-Parameter). Beispielsweise Befehle, die in Scripten des Projekts eingesetzt werden, kann der RS IPS Project Exporter nicht hin- und her übersetzen, das muss schon der Projekt-Autor tun. Und es ist ziemlich nervig, sich nach 1-2 Jahren in ein altes Projekt reinzufrickeln, nur weil ein Systembefehl vom Hersteller geändert oder ausgetauscht wurde! Und hierbei ist noch nicht die Sicht des Nutzers der besagten Projekte berücksichtigt.

RS IPS Project Exporter privacyMode Erlauterungprivacy-Mode

Zwischendurch nörgelten immer wieder so Ferengis und andere Leute rum: man muss doch auch mal die Variablenwerte kopieren und ins Testsystem übertragen können. Weil wichtig, praktisch und zum testen…und so weiter.

OK, habbich nu eingebaut: in der Konfiguration gibts ne Variable, die heißt „$privacyMode“. Wenn deren Wert auf ‚true‘ gesetzt wird, werden keinerlei Variablenwerte

Konfiguration des privacyModes im RS IPS Project Exporter

Konfiguration des privacyModes im RS IPS Project Exporter

exportiert (Datenschutz!) – entspricht also genau der Arbeitsweise der vorhergehenden Versionen. Setzt man den Wert hingegen auf ‚false‘, so werden sämtliche Variablenwerte fein säuberlich mit in das Objekt-Inventory des Export-Scripts geschrieben und im Zielsystem in die frisch installierten Variablen. So lassen sich sehr komfortabel die eigenen Passwörter, Mailadressen, Kreditkarten- und Kontonummern veröffentlichen. Man muss sie nur vor dem Export in die entsprechenden Variablen gepflegt haben ;-)

BugFixes

Komma/Semikolon in Objektinfo

Komma/Semikolon in Objektinfo

Da hat sich doch während der letzten Projektentwicklung (RS Energy Forecast) ein ganz fieser Bug offenbart: Sobald ein Komma und/oder ein Semikolon im Text der Objekt-Info auftauchten, hat sich das Objekt-Inventory des Project-Exporters zerlegt. Gemerkt hat man das aber Gott-sei-Dank erst bei der Installation: im Meldungsfenster des Installationsscripts tauchten reihenweise Fehlermeldungen auf, das Projekt wurde mit großer Wahrscheinlichkeit nicht vollständig und schon gar nicht korrekt installiert. Grmpf….. Auf jeden Fall ist das Problem nun behoben, es können beliebige Populationen von Semikolons und Kommas in die Objektinfo rein und werden auch sauber verarbeitet.

Download

Wohl nicht überraschend: über die Projekt-Homepage :-)

 


 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

css.php