48EC57C13BA44304B3C399FFF1EF1EB7
  • Thomas Pollinger
  • 08.10.2018
  • DE

Kleine Tipps für Zwischendurch (Nr. 15)

Es gibt im Management Server die Möglichkeit, über die benutzerdefinierten Aufträge, komplexe RQL-Strukturen ausführen zu lassen. Dazu kommen die s.g. RQL-OBJECTIVES zum Einsatz, welche zusammen mit einer Variblen-Logik sehr mächtige "kleine" Programme werden können. Die RQL-OBJECTIVES bzw. RQLCOMMAND funktionieren derzeit nur zusammen mit den benutzerdefinierten Aufträgen.

Hier ein Beispiel aus den mitgelieferten benutzerdefinierten Aufträgen:

<RQLCOMMAND type="for" name="PROJECTS">
  <!-- Deletes publication job reports from the database (IO_EXR) and publication log files from the Management Server instance this job runs on.  -->
  <!-- List all projects to apply the OBJECTIVES commands to them. -->
  <LIST>
    <IODATA loginguid="[!guid_login!]" sessionkey="">
      <ADMINISTRATION>
        <USER guid="[!guid_user!]">
          <PROJECTS action="list" extendedinfo="1" />
        </USER>
      </ADMINISTRATION>
    </IODATA>
  </LIST>
  <!-- The commands in the OBJECTIVES element are executed for all result elements of the LIST element -->
  <OBJECTIVES>
    <!-- Connect to the current project -->
    <IODATA loginguid="[!guid_login!]">
      <ADMINISTRATION action="validate" guid="[!guid_login!]">
        <PROJECT guid="[!guid_project!]" />
      </ADMINISTRATION>
    </IODATA>
    <!-- Remove the publishing reports and and logfiles for the current project if they are older than seven days (days="7") -->
    <IODATA loginguid="[!guid_login!]" sessionkey="[!guid_login!]">
      <PROJECT guid="[!guid_project!]" sessionkey="[!guid_login!]">
        <EXPORTREPORT days="7" action="deleteall" deletelogfiles="1" />
      </PROJECT>
    </IODATA>
  </OBJECTIVES>
</RQLCOMMAND>

Soweit mir bekannt, gibt es noch die Platzhalter `[!rddatetime!]`, `[!rddate!]`, `[!rdtime!]` und `[!rdcounter!]`, sowie einen Mechanismus mit dem auf die Attribute aus der letzten Server-Antwort zurückgegriffen werden kann. Aktuell hat es den Anschein. als könnte man mit [!myattribute!] die letzte Server-Antwort nach einem Attribut namens `myattribute=""` durchsuchen und seinen Wert in die nächste RQL-Anfrage übernehmen... wobei der Name des Attributs "myattribute" beliebig gewählt werden darf. Jedoch sollte man sowas intensiv testen und sobald ich selber mehr weiß, werde ich dazu eine entsprechende Artikelserie aufsetzen und Beispiele bringen.


Mehr dazu findet man auch in der Online-Hilfe, in diesen Kapiteln:

  • Befehl CLEANER einrichten
  • Auszuführende Aktionen bearbeit
  • RQL-Befehle in benutzerdefinierten Aufträgen verwenden
  • Platzhalter: Syntax- und Ersetzungsmechanismus
  • Kontrollstrukturen für RQL-Befehle
  • for-Schleife: Beispiel für eine Kontrollstruktur
  • if-Anweisung: Beispiel für eine Kontrollstruktur

Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.