Component typen

Opzet
Alle componenten gaan uit van bepaalde invoer (objecten die beschikbaar zijn aan het begin van de executie) en bepaalde uitvoer (objecten die worden uitgelezen na executie). 

Overzicht Inrichtingscomponenten
Er zijn verschillende soorten componenten:

CMS componenten

Met een CMS component kunnen Internet elementen gemaakt worden die binnen layout templates of content gebruikt kunnen worden. Denk hierbij bijvoorbeeld aan een forum, navigatie, automatisch gegenereerd nieuws of een up-to-date beurskoers.

DMS assistenten

Hiermee kunnen DMS assistenten aangemaakt worden. Denk hierbij aan zaken als “nieuw project” of “nieuwe medewerker”.

DMS overzichten

Hiermee kunnen speciale overzichten worden toegevoegd. Denk hierbij aan een geavanceerde zoekinterface voor dossiers, of een overzicht met documenten die heel lang niet bijgewerkt zijn. Een overzicht kan naar eigen inzicht het middenblok van het DMS vullen, en een link naar het overzicht verschijnt in het linkerblok van het DMS.

Zoek componenten (metazoeken)

Hiermee kan de globale zoekfunctie van OpenIMS uitgebreid worden. Denk hierbij aan het doorzoeken van databases of bijvoorbeeld het integreren met externe zoekmachines als Google.

Batch componenten

Code die met een bepaalde frequentie (bijvoorbeeld eens per uur) wordt uitgevoerd.

Trigger op inlezen XML  data

Hiermee kan extern opgeslagen data in OpenIMS geïntegreerd worden.

Trigger op wegschrijven XML data

Hiermee kan data (XML objecten) buiten OpenIMS opgeslagen worden of kan deze, bijvoorbeeld met SOAP/XML, verzonden worden aan een ander systeem.

Virtuele XML tabellen

Waar met triggers gegevens in OpenIMS gekoppeld kunnen worden met externe systemen, kan met een virtuele tabel een koppeling gelegd worden met informatie die voor 100% buiten OpenIMS is vastgelegd.

Versnelde XML tabellen

Indien een koppeling met een virtuele XML tabel teveel tijd kost (latency, performance, etc...)  kan middels een versnelde XML tabel deze tabel worden gecached.

Trigger op wegschrijven bestand

Hiermee kunnen bestanden (documenten) buiten de OpenIMS database opgeslagen worden in bijvoorbeeld een database of op een fileserver.

Trigger op login

Hiermee kan gebruik gemaakt worden van externe systemen voor beveiliging zoals LDAP, Microsoft Active Directory of Novell Directory Services (eDirectory).

Speciale en ondersteunende functionaliteit

Hier kunnen PHP functies geplaatst worden die gebruikt kunnen worden door alle inrichtingscomponenten. Dit is nuttig om generieke functionaliteit eenmalig te kunnen vastleggen.

 

Er zijn ook bepaalde ondersteunende functies die door OpenIMS worden aangeroepen.  Door een standaard component te importeren kunnen deze functies worden aangepast.  Hiermee kan het gedrag van OpenIMS worden gewijzigd of kan speciale funtionaliteit worden toegevoegd.  Voorbeelden hiervan zijn SKIN Management en HTML Filtering.

 

CMS component

Naam

Leesbare naam van het component (voor beheer).

Markeertekst

Hiermee worden elementen in de content of het vormgevingstemplate aangeduid. Als de markeertekst bijvoorbeeld year is dan wordt het te gebruiken element 2019.

Content generator

Deze logica dient de variabele $content te vullen. Het element (bijvoorbeeld 2019) wordt door OpenIMS vervangen door de inhoud van $content. De IMS_Preview() functie kan gebruikt worden om onderscheid te maken tussen standaard en concept modus. Er is een variabele $context beschikbaar met alle mogelijke omgevingsinformatie. Middels bijvoorbeeld N_EO($context); kan deze bestudeerd worden.

DMS assistent

Naam

Leesbare naam van de DMS assistent die ook gebruikt wordt als tekst in de hyperlink in het assistenten blok van het DMS.

Titel

Tooltip (gele rechthoek) van deze assistent.

Icoon (url)

URL van het icoon dat bij de assistent gebruikt moet worden. Dit moet 16x16 pixels zijn. Als niets wordt ingevuld, wordt het toverstokje als icoon gebruikt.

Sorteerwaarde

Wordt gebruikt om de volgorde van assistenten onderling te bepalen. Als niets wordt ingevuld, worden de assistenten alfabetisch op naam gesorteerd.

Blok

Bepaalt in welk van de 5 blokken aan de rechterkant van het scherm de assistent getoond wordt.

  • Acties. Dit blok bevat de acties die met het actieve document kunnen worden uitgevoerd (bekijk, wijzig, eigenschappen).
  • Workflow. Het blok met workflowstappen voor het actieve document.
  • Assistenten. Default. Dit blok is altijd beschikbaar.
  • Assistenten, alleen indien een document actief is.
  • Geselecteerde documenten. Assistenten in dit blok zijn alleen beschikbaar als er een of meerdere documenten zijn aangevinkt.
  • Nieuw document.

In sommige submodes zijn niet al deze blokken aanwezig.

Submode

Bepaalt in welke submodes de assistent getoond wordt.

  • Documenten (Algemeen en dossiers)
  • Dossieroverzicht
  • Toegewezen
  • Recent gewijzigd
  • In behandeling
  • Zoeken

Als niets wordt ingevuld, wordt de assistent getoond in alle submodes behalve het dossieroverzicht. Let op: Assistenten die iets doen in de huidige folder, dienen alleen in de Documenten-submode getoond te worden.

Conditie

Dient $result te genereren. Als deze true bevat wordt de assistent getoond (mits het blok waar de assistent in zou moeten komen, beschikbaar is).

URL generator

Dient de url voor de assistent te genereren en deze in $result te zetten. Meestal zal deze url met de OpenIMS formulieren voorziening worden gemaakt.

DMS overzicht

Naam

Leesbare naam van het component (voor beheer).

Titel

Naam die gebruikt wordt in het linkerblok en, als het overzicht actief is, in de titelbalk (in het middenblok).

Sorteerwaarde

Bepaalt de volgorde van overzichten onderling.

Conditie

Dient $result te genereren. Als deze true bevat wordt het overzicht getoond.

Content generator

Dient $content te genereren. De inhoud van $content wordt getoond in het middenblok van het DMS.

Zoek component

Naam

Leesbare naam van het component (voor beheer).

Zoek code

Dient de vraag uit $q te lezen en het antwoord als HTML in $content te plaatsen. Het is voor de eindgebruiker prettig als de layout hierbij zo veel mogelijk overeenkomt met die van de standaard “globaal zoeken” elementen.

Batch component

Naam

Leesbare naam van het component (voor beheer).

Server

Geeft aan op welke server de batch uitgevoerd moet worden. Dit is vooral van belang in een omgeving met meerdere servers en replicatie. Indien dit veld leeg is wordt de batch op elke server waar deze aanwezig is uitgevoerd.

Frequentie

Geeft aan hoe vaak (eens per uur, eens per nacht) de batch code moet worden uitgevoerd.

Batch code

De daadwerkelijke batch code.

 Trigger op inlezen XML data

Naam

Leesbare naam van het component (voor beheer).

Tabel

Tabel waar de trigger op van toepassing is. Hierbij kan * gebruikt worden voor patronen (bijvoorbeeld “shield_*”). Als dit veld leef is wordt de trigger voor alle tabellen uitgevoerd.

Trigger code

Deze code wordt aangeroepen direct na het opvragen van het object en direct voor dat het object in gebruik wordt genomen. Bij aanvang bevatten $table en $key de tabelnaam en de sleutel. Bij aanvang bevat $object de daadwerkelijke data. De code kan $object wijzigen. Het gewijzigde object wordt dan vervolgens direct weggeschreven naar de interne XML store en daarna door OpenIMS verder verwerkt. Triggers zijn beveiligd tegen nesting. Tijdens uitvoering van een trigger zal er dus niet nog een andere trigger uitgevoerd worden.

Trigger op wegschrijven XML data

Naam

Leesbare naam van het component (voor beheer).

Tabel

Tabel waar de trigger op van toepassing is. Hierbij kan * gebruikt worden voor patronen (bijvoorbeeld “shield_*”).

Trigger code

Deze code wordt uitgevoerd vlak voordat de XML data naar de interne XML store wordt weggeschreven. Bij aanvang bevatten $table en $key de tabelnaam en de sleutel. Bij aanvang bevat $object de daadwerkelijke data. De code kan $object wijzigen. Het gewijzigde object wordt dan vervolgens weggeschreven naar de interne XML store. Triggers zijn beveiligd tegen nesting. Tijdens uitvoering van een trigger zal er dus niet nog een andere trigger uitgevoerd worden.

Virtuele XML tabellen

Naam

Naam van de tabel (is ook beschikbaar als $table in de code)

Indexeren

Geeft aan of OpenIMS XML indexen mag aanmaken voor deze tabel. Als de inhoud van de tabel buiten OpenIMS kan worden aangepast dan moet dit uit staan.

All keys code

Moet de variabele $result vullen met alle sleutels in de tabel.

Load code

Moet de variabele $result vullen met het XML object met sleutel $key.

Save code

Indien de tabel read only is kan deze leeg gelaten worden. Anders moet $object weg geschreven worden met als sleutel $key.

Delete code

Indien het verwijderen van records is toegestaan moet het XML object met sleutel $key worden verwijderd.

Opmerking: Het replicatiemechanisme van OpenIMS houdt geen timestamps bij voor objecten in virtuele tabellen. Het repliceren van virtuele tabellen wordt derhalve sterk afgeraden. Beter is om op alle betreffende systemen een koppeling te leggen naar de bron van de betreffende virtuele tabel.

Versnelde XML tabellen

Tabelnaam

Naam van de tabel

Brontabel

Geeft de tabel aan waarvan de versnelde XML tabel is afgeleid (bron).

Checksum code

(optioneel)

Vult een checksum in de variabele $result. Deze snelle code bepaald of een tabel wel of niet moet worden ververst. (Bijvoorbeeld een query van het aantal records.)

Update frequentie

Bepaald hoe vaak de tabel ververst moet worden.

Opmerking: Het replicatiemechanisme van OpenIMS houdt geen timestamps bij voor objecten in versnelde XML tabellen. Het repliceren van versnelde XML tabellen wordt derhalve sterk afgeraden. Beter is om op alle betreffende systemen een koppeling te leggen naar de bron van de betreffende versnelde XML tabel.

Trigger op wegschrijven bestand

Naam

Leesbare naam van het component (voor beheer).

Trigger code

Deze code wordt aangeroepen direct na dat een bestand naar disk is geschreven. $filename bevat het volledige pad van het zojuist weggeschreven bestand. Triggers zijn beveiligd tegen nesting. Tijdens uitvoering van een trigger zal er dus niet nog een andere trigger uitgevoerd worden.

Trigger op login

Naam

Leesbare naam van het component (voor beheer).

Login code

Deze code wordt aangeroepen als authenticatie middels de standaard OpenIMS functionaliteit gefaald heeft de gebruiker te identificeren. Bij aanvang zijn de variabelen $id en $password gevuld. Als de code $allowlogon op true zet wordt inloggen toegestaan, in alle andere gevallen niet. Eventueel kan met N_Redirect ($url); naar een bepaalde (bijvoorbeeld inschrijf of error) pagina gesprongen worden.

 

Het is noodzakelijk middels SHIELD_AddUser (IMS_SuperGroupName(), “id”, “visible name”); eventuele nieuwe gebruikers aan te maken om te zorgen dat OpenIMS de nieuwe gebruiker goed kan verwerken.

 

Indien NTLM gebruikt wordt, worden triggers op login nooit uitgevoerd, aangezien de afhandeling van “foute” inloggegevens volledig bij Apache ligt en niet bij OpenIMS.

 Speciale en ondersteunende functionaliteit

Naam

Leesbare naam van de functionaliteit (voor beheer).

Code

PHP functiedefinities. Om conflicten met de OpenIMS core te voorkomen dienen alle functienamen bij voorkeur met SUP_ te beginnen. Om conflicten met ander componenten te voorkomen dienen functienamen bij voorkeur ook de oorsprong (organisatie) en de scope te bevatten.

 

Voorbeeld: SUP_MijnOrganisatie_DMSAssistenten_BepaalGebruikersrechten. Als een functie die gebruikt wordt door DMS assistenten en die gemaakt is door “MijnOrganisatie”. Deze insteek minimaliseert de kans op conflicten en maximaliseert de kans op hergebruik, inclusief organisatie overstijgend hergebruik.

Altijd als eerste op de hoogte van de laatste nieuwtjes?

Schrijf je in voor onze nieuwsbrief