Application Store - Flächen- und Raumverwaltung

1. Installation

Für die Verwendung der Applikation benötigen Sie mindestens Intrexx 8 mit allen Online Updates.

1.1. Applikation




Importieren Sie die vom Application Store heruntergeladene Datei buildingmanagement.zip, die Applikation und Prozess enthält. Setzen Sie beim Import der Applikation die Einstellungen "Mit Applikationsdaten importieren" und "Mit Rechten importieren".

1.2. Lizenz

Tragen Sie im nächsten Schritt den Lizenzschlüssel der Applikation ein.

1.3. Rechte




Im Importverlauf können die Applikationsrechte zugeordnet werden. Wir empfehlen, die Benutzergruppen neu anzulegen. Nehmen Sie nach dem kompletten Import einfach die gewünschten vorhandenen Portal-Benutzer in der Benutzerverwaltung entsprechend als Mitglieder in die jeweilige Benutzergruppe auf.

1.4. Prozess

Importieren Sie im letzten Schritt auch den zughörigen Prozess.

2. Vorwort

Die Flächen- und Raumverwaltung ist eine Applikation für die Verwaltung von Gebäuden, deren Stockwerken und Räumen. In vielen Daten sind Ortsangaben erforderlich – z.B. der Standort eines Servers oder einer Maschine, in welchem Raum die Beleuchtung defekt ist, Ortsangaben zu einem innerbetrieblichen Unfall etc. Diese Applikation kann Gebäude zu verschiedenen Standorten verwalten, wobei die Organisationsdaten aus der Benutzerverwaltung verwendet werden.


Hier finden Sie die beiden Links "Basiseinstellung" und "Objektklassen". Rechts davon werden jeweils die aktuellen Einstellungen angezeigt. Klicken dort auf , um die Einstellungen zu ändern.

3.1. Basiseinstellungen




In den Basiseinstellungen wird das Grundverhalten der Applikation bestimmt. Existieren Gebäude mit Flügeln, also Formen wie L, U, Kreuz oder Stern, kann die Gebäudeflügel-Funktion aktiviert werden. Soll einem Gebäude neben der primären Zuordnung einer zweiten Organisation zugeordnet werden können, kann die Option "Sekundäre Organisationsangabe" für Gebäude aktiviert werden. In diesem Fall wird später eine zweite Auswahlliste mit den Organisationen aus dem Organisationsbaum der Benutzerverwaltung eingeblendet. Sollen Räume unabhängig vom Gebäude einer alternativen Organisations- und Abteilung zugeordnet werden, kann die Einstellung "Raum mit unabhängiger Organisations-/Abteilungszuordnung" aktiviert werden. Die Nummerierung von Räumen kann manuell oder automatisch unter Verwendung der Nummern von Gebäude, Stockwerk und Flügel erfolgen. Die Länge der Raumnummer (Zähler) und die Trennzeichen können entsprechend konfiguriert werden. Die Einstellung sollte einmal vorgenommen und dann nicht mehr geändert werden. Eine Anpassung der Formatierung ist bei bestehenden Datensätzen nicht vorgesehen. Als Flächeneinheit kann entweder Quadratmeter oder Quadratfuß eingestellt werden. Es erfolgt keine Umrechnung.

3.2. Objektklassen




Es sind vier Objektklassen in der Applikation definiert: Gebäude, Stockwerke, Flügel und Räume. Für Filterszenarien sind die sprechenden IDs wichtig, weshalb diese hier auch angezeigt werden. Klicken Sie auf "Bearbeiten", um die Einstellungen zu ändern.



Die Objektklassen besitzen mehrsprachige Beschriftungen. Es werden automatisch alle Varianten anhand der eingestellten Portalsprachen erzeugt, die dann im Anschluss noch übersetzt werden müssen. Noch nicht übersetzte Einträge erkennen Sie dabei am Präfix "Translate:". Neben der Klassenbezeichnung ist pro Objektklasse in der Symbol URL ein relativen Link auf ein Symbol (z.B. images/BBFDC61AF7FBF23B8FAA7EDDF8C1AFD9E8FF4771/Floor.png) eingetragen. Diese Bilder sind im Applikationspfad im Portalverzeichnis internal/application/store/<GUID der Applikation> abgelegt. Für die Symbol-URL gilt die folgende Konstruktion: Images/<GUID der Applikation>/<Dateiname des Bildes>.

3.2.1. Eigenschaften




Ist eine Objektklasse ausgewählt, so können deren Eigenschaften bearbeitet werden. Klicken Sie auf "Bearbeiten", um die Bezeichnungen der Objekteigenschaften mehrsprachig einzutragen. Neue Eigenschaften können mit der Aktion "Neue Eigenschaft" angelegt werden. Mit Klick auf die Aktion "Sortierung" kann die Reihenfolge der Einträge pro Eigenschaft geändert werden.

Eigenschaften von Gebäuden




Bei Gebäuden wird der Gebäudetyp bzw. die Gebäudefunktion als Eigenschaft definiert. Eine andere Verwendung dieser Angabe ist grundsätzlich möglich.

Eigenschaften von Stockwerken




Die Eigenschaften von Stockwerken sind fest vorgesehen. Hier müssen alle Stockwerkstypen definiert werden, die bei der Konstruktion von Gebäuden vorkommen. Die Reihenfolge sollte von Untergeschossen über das Erdgeschoss und die einzelnen Obergeschosse bis zum Dachgeschoss korrekt definiert sein. Eine andere Verwendung der Eigenschaft ist nicht möglich.

Eigenschaften von Räumen




Bei Räumen werden die Eigenschaften zur Definition der Raumfunktion bzw. des Raumtyps verwendet. Eine andere Verwendung der Eigenschaft ist grundsätzlich möglich.

4.1. Neues Gebäude anlegen

Klicken Sie hier auf "Neues Gebäude", um ein neues Gebäude anzulegen.



Die Gebäudenummer kann aus Zeichen und Zahlen bestehen. Die Gebäudebezeichnung kann beliebig gewählt werden und entspricht in der Regel der Beschriftung (z.B. Wegweiser, Pläne, Eingangsbereich) vor Ort. Die Mandant-ID ist optional z.B. um IDs aus anderen führenden Systemen wie z.B. SAP zu speichern. Bei der Organisationszuordnung wird die Zuordnung zur Organisation vorgenommen. Die sekundäre Organisationszuordnung ist nur möglich, wenn diese in den Einstellungen aktiviert ist. Die Zuordnung ist optional, wenn es z.B. eine Standort-Clusterung gibt - z.B. den Standort Freiburg und die beiden Firmen United Planet Holding und United Planet Services. Dann können beide Merkmale zugeordnet werden. Die Eigenschaft wird aus den Eigenschaften des Objekttyps "Gebäude" bezogen. Hier kann z.B. der Gebäudetyp definiert werden. Das Leserecht kann über eine Benutzergruppe oder Rolle aus der Benutzerverwaltung definiert werden. Hierbei werden alle im Portal verfügbaren Gruppen oder Rollen angeboten. Beachten Sie dabei bitte, dass diese Einstellung nur der Konfiguration des Lesezugriffs für diesen Datensatz dient. Das allgemeine Recht des Zugriffs auf die Datengruppe wird in den Applikationsrechten erteilt. Außerdem muss diese Information in einem Filter entsprechend angewendet werden.

4.2. Gebäude




Nach der erfolgreichen Erstellung eines Gebäudes können die Stockwerke, Flügel und Räume definiert werden. Klicken Sie dazu auf den entsprechenden Link in der Navigation. Rechts davon finden Sie die Gebäudeinformationen und eine Statistik über die Anzahl der Stockwerke, Flügel, Räume und die Summe der Flächen der Räume im Gebäude.

4.3. Stockwerke




Zu jedem Gebäude können beliebig viele Stockwerke definiert werden. Klicken Sie auf "Neues Stockwerk", um ein Stockwerk hinzuzufügen. Anschließend können Eigenschaft, Stockwerk-Nummer und Stockwerksbezeichnung ausgewählt werden. Eine Stockwerkseigenschaft kann nur einmal pro Gebäude zugeordnet werden. Bereits zugeordnete Eigenschaften werden in der Auswahlliste nicht mehr angezeigt. Die Angabe der Stockwerksnummer kann alphanumerisch sein. Für die Bezeichnung kann z.B. auch eine Funktionsbezeichnung oder Abteilungsbezeichnung vergeben werden (z.B. Forschung & Entwicklung).

4.4. Flügel




Zu einem Gebäude können – sofern die Funktion in den Einstellungen aktiviert wurde – Flügel definiert werden. Flügel können durch Gebäude mit L-, U, Kreuz- oder Sternform entstehen. Klicken Sie auf "Neuer Flügel", um einen Flügel anzulegen. Die Flügel-Nummer kann alphanumerische angegeben werden. Tragen Sie auch eine Flügelbezeichnung ein.

4.5. Räume




Klicken Sie auf "Neuer Raum", um einen neuen Raum anzulegen. Im Filterbereich können die Räume nach Stockwerken gefiltert werden, um nur die Räume eines Stockwerks anzuzeigen. Neben einer freien Raumbezeichnung muss der Raum dem entsprechenden Stockwerk zugeordnet werden. Wurde in den Einstellungen die Gebäudeflügelfunktion aktiviert und existieren Flügeldefinitionen für das Gebäude, kann der Raum auch einem Flügel zugeordnet werden. Normalerweise wird die organisatorische Zuordnung über das Gebäude definiert bzw. vererbt. Es gibt jedoch Konstellationen, in denen ein Raum einem anderen Standort und Abteilung zugeordnet werden muss, z.B. wenn die zentrale IT-Abteilung (Holding) einen Serverraum in einer Niederlassung betreibt. In diesem Fall muss die Option "Raum mit unabhängiger Organisations-/Abteilungszuordnung" in den Einstellungen aktiviert sein. Abhängig von der Organisation können die jeweils zugeordneten Abteilungen ausgewählt werden. Die Eigenschaften werden aus den Objekteigenschaften der Objektklasse Räume bezogen. Hier wird in der Regel der Raumtyp definiert. Die letzte Angabe ist die Raumgröße (Fläche), die automatisch für das Gebäude summiert wird.

5. Gebäudedaten in anderen Applikationen verwenden

Die Gebäudedaten können von anderen Applikationen referenziert werden. Die Daten von Gebäuden, Stockwerken, Flügeln und Räumen werden in der Datengruppe "Objekte" verwaltet. Hier folgt eine Liste der relevanten Datenfelder:

Datenfeld Typ Beschreibung
STRID String Primärschlüssel (GUID)
STRPARENTID String Zuordnungsschlüssel bei Stockwerken, Flügeln und Räumen. Enthält den Primärschlüssel des Gebäudes. Bei Gebäuden ist dieser Wert NULL.
STRNAME String Name des Objektes
STRSHORTNAME String Kurzname des Objektes
LNUMBER Integer Objektzähler (für Raumnummern)
STRNUMBER String Objektnummer (Gebäudenummer, Stockwerknummer, Flügelnummer, Raumnummer)
STRORGID String Primäre Organisationszuordnung. GUID des Organisationsobjektes aus der Benutzerverwaltung/Organisationsbaum
STRORGID2 String Sekundäre Organisationszuordnung. GUID des Organisationsobjektes aus der Benutzerverwaltung/Organisationsbaum
STROEID String Abteilungszuordnung bei Räumen. GUID der Organisationseinheit aus der Benutzerverwaltung/Organisationsbaum
STRACCESSTYPE String Rechtetyp Gruppe (GROUP) oder Rolle (ROLE). Wird nur zur Steuerung der Auswahl für STRACCESS verwendet.
STRACCESS String GUID einer Gruppe oder Rolle, welche Lesezugriff auf das Gebäude bekommen kann.
FLTSQUAREMETERS Float Flächenangabe für Räume
LSORT Integer Sortierung von Objekten (Reserviert für spätere Funktionen)
LDUMMYCOUNTER Integer Enthält immer den Wert 1
REF_CLASS String Referenz auf die Objektklasse
REF_PROPERTY String Referenz auf die Objekteigenschaft
REFFLOOR String Referenz auf das Stockwerk (Eigenschaft). Wird nur bei Räumen genutzt.
REFWING String Referenz auf den Gebäudeflügel. Wird nur bei Räumen genutzt.

6. Filter für Zugriffsrecht

Der Lesezugriff auf ein Gebäude kann bei einer Referenz, z.B. in einer Auswahlliste, über den Filter eingestellt werden.



Zunächst muss das Referenz-Datenfeld "Objektklasse – CLASSID" mit dem benutzerdefinierten Wert "BUILDING" verglichen werden.



Die ParentId ist bei allen Gebäuden NULL (also undefiniert).



Das Feld "Zugriffsrecht" wird mit dem Operator "enthält" mit der "Organisation" des des aktuellen Benutzers verglichen.



Wenn Sie einen Filter erstellen, verwenden Sie als Quelle für alle Einträge im Element die Datengruppe "Objekte". Als Datenfeld wird der Primärschlüssel (STRID) verwendet. Für die Sortierung wird das gleichnamige Feld und als Anzeigewert das Feld "Objektbezeichnung" verwendet.

7. Abhängigkeit Gebäude-Stockwerk-Raum

Um schrittweise eine Raumauswahl zu realisieren, können drei Auswahllisten verwendet werden, die voneinander abhängig gefiltert werden. Als Basis dient die Auswahl des Gebäudes mit dem zuvor beschriebenen Filter.

7.1. Abhängigkeit Gebäude-Stockwerk

Zur Auswahl der Stockwerke wird die Datengruppe "Objekte" als Quelle in einer Auswahlliste konfiguriert.



Als Datenfeld und für die Sortierung wird der Primärschlüssel verwendet. Als Anzeigewert wird die Objekteigenschaft - Eigenschaft verwendet.



Im Filter muss die Objektklasse – CLASSID dem Festwert "LEVEL" entsprechen.



Für die Abhängigkeit wird das onchange-Ereignis der Auswahlliste "Gebäude" ausgewählt. Die ParentId muss dem Primärschlüssel der Auswahlliste "Gebäude" entsprechen.



Wenn Sie die Einstellung "Liste initial ohne Einträge anzeigen" aktivieren, werden die zugehörigen Stockwerke erst dann in der Auswahlliste geladen, wenn ein Gebäude ausgewählt wurde. Andernfalls werden alle Stockwerke ungefiltert angezeigt, was dazu führen kann, dass ein falsches Stockwerk ausgewählt wird.

7.2. Abhängigkeit Stockwerk-Raum

Zur Auswahl der Stockwerke wird die Datengruppe "Objekte" als Quelle in einer Auswahlliste konfiguriert.



Als Datenfeld und für die Sortierung wird der Primärschlüssel verwendet. Als Anzeigewert wird die Bezeichnung verwendet.



Im Filter muss die Objektklasse – CLASSID dem Festwert ROOM entsprechen.



Für die Abhängigkeit wird auf das onchange-Ereignis der Auswahlliste "Stockwerke" verwendet. Die ParentId muss dem Primärschlüssel der Auswahlliste "Stockwerke" entsprechen. Setzen Sie auch hier die Einstellung Liste initial ohne Eintrag anzeigen aktiviert werden.

7.3. Standortauswahl für Abhängigkeit

Eine Standortauswahl kann über ein Velocity-Template oder eine Auswahlliste, die auf eine Fremddatengruppe auf die DSOBJECT-Tabelle zugreift, realisiert werden. Die Intrexx-Velocity-API bietet hierfür entsprechende Objekte und Methoden an. Das nachfolgende Velocity-Template wird über ein VTL-Include auf einer Seite platziert. Ein String-Eingabefeld im versteckten Bereich ohne Datenfeld-Verknüpfung dient als Empfänger für die GUID der ausgewählten Organisation und kann in einer Abhängigkeit konfiguriert werden. Im Velocity-Template muss die GUID dieses Eingabefeldes in der Zeile "var oGuid = getElement("GUID_ZIELFELD");" eingesetzt werden.
#set( $l_iCounter = 1 )
#set( $DsFilter = $DS.selectFilter())
#set( $DsContainer = $DS.getContainer())
$DsFilter.reset()
$DsFilter.orderByName()
$DsFilter.setMaxTreeLevel(100)

#set($OEList = $DsContainer.getFullTree($DbConnection, $DsFilter))
#if( $OEList.size() > 0)
  <select class="Dropdown_Standard" id="ID_LIST_FILTER_ORG"
  name="Abteilung" size="1" style="width: 100%;"
  onchange="getOEOrgGuid(this)">
  <option id="ID_FILTER_ORG_0"
  value="">#GET_COMMON_FILTER_EMPTY_ENTRY()</option>
  #foreach($OE in $OEList)
    #set($TypeKey = $OE.getType().getTypeKey())
    #if($TypeKey == "ORGANIZATION")
      <option id="ID_FILTER_ORG_${l_iCounter}"
      value="$!OE.getGuid()">
      $DefaultHtmlEncodingRenderer.writeOutput($Response.getWriter(),
      $OE.getNameVH())</option>
      #set($l_iCounter  = $l_iCounter + 1)
    #end
  #end
  </select>
#else
<b>Es existiert keine Organisationsstruktur in der Benutzerverwaltung!</b>
#end

<script type="text/javascript">
function getOEOrgGuid(p_oSelect)
{
  var oGuid = getElement("GUID_ZIELFELD");
  var oSelectOrgunits = document.getElementById("ID_LIST_FILTER_OE");
  if(p_oSelect.selectedIndex > 0)
  {
    var orgguid = p_oSelect.options[p_oSelect.selectedIndex].value;
    oGuid.value = orgguid;
  }  
  else
  {
    oGuid.value = "";
    oSelectOrgunits.length = 0;
  }
return true;
}