Categorieën

Belangrijke tips en tricks bij het aanpassen van weergaven

Met de actie Weergavesets (alle) in het onderdeel Applicatiebeheer is het mogelijk om zelf (extra) tabellen aan de query toe te voegen. Velden uit de gekoppelde tabellen kun je vervolgens als kolom in de weergave opnemen en gebruiken in de grafische rapportages. Het maximum aantal tabellen en extra tabellen dat in een weergave kan worden gebruikt, is 20. We raden overigens wel aan om zorgvuldig met het koppelen van tabellen om te gaan, zodat de performance van uw omgeving op niveau blijft. De consultant kan altijd bij het maken van aanvullende queries ondersteunen.

Wanneer de browser en de (extra) tabellen veel data bevatten, zijn onderstaande tips en tricks van belang.

Gebruik de index-velden

Zoek via de functie Informatie Data Dictionary (IDDICT) op via welke index-velden je de (extra) tabel kunt koppelen. Gebruik waar mogelijk alle velden van een index, zodat de tabellen zo efficiënt mogelijk gekoppeld worden.

Gebruik van gekoppelde tabellen of extra tabellen

Als je niet hoeft te filteren of te sorteren op een tabel, dan kun je de tabel het beste opnemen in de Extra tabellen in plaats van de Gekoppelde tabellen.

Gebruik ‘extra (filter)conditie’ bij het definiëren van de query voor gekoppelde tabellen

Wanneer er meerdere tabellen in de query zijn opgenomen, is het in bepaalde situaties efficiënter om het filtercriterium op een specifieke plaats in de query neer te zetten. Hierdoor zal de weergave beter performen. Gebruik hiervoor het veld Extra conditie bij de koppeling van de tabel. In dit veld kunnen de harde filtercondities worden vastgelegd, waarbij het mogelijk is om aan te geven op welke plek de conditie in de query moet worden opgenomen. Een uitgebreide beschrijving vind je hier.

Extra aandacht bij het gebruik van statements ‘matches’, ‘begins’ en ‘or’

Wanneer je het statement ‘matches’ gebruikt in de conditie van de koppeling, dan wordt er geen gebruik gemaakt van de index. Gebruik dit statement dus zo min mogelijk. Als alternatief kun je het statement ‘begins’ gebruiken; dit staat het gebruik van de index niet in de weg.

Gebruik geen ‘or’ in de conditie van de koppeling. Bij gebruik van ‘or’ wordt elk record in de tabel langsgelopen. Als het toch onvermijdelijk is en het betreft een koppeling met groeitabellen (toenemende hoeveelheid data, bijv. uren, etc.) dan is het beter om er iets voor te (laten) programmeren.

Niet doen

  • Gebruik geen substring op een indexveld zoals substring(tabel.indexveld,2,5). De hele tabel wordt dan doorgelopen;
  • Gebruik geen regeltellers en kolomtotalen in browsers met een grote hoeveelheid regels.

Omgekeerd sorteren (descending)

Wanneer de tabel niet te groot is, kun je in de weergave het vinkje ‘omgekeerd sorteren’ aanzetten.

Gaat het om een tabel met veel data, dan is het beter om het veld ‘afwijkende sortering’ te gebruiken. Neem in deze sortering dan wel alle indexvelden op.

Een voorbeeld: In de functie weekstaten (MURREG) wordt vaak de sortering omgekeerd zodat de meest recente weekstaat als eerste getoond wordt. Gebruik dan in het veld ‘afwijkende sortering’ het volgende statement:

by ui02.gb-ba descending by ui02.jaar descending by ui02.periode descending by ui02.persnr descending.

Bedrijfsgebonden tabellen

Wanneer je in een weergave een tabel opneemt die bedrijfsgebonden is (bijv. ab02/ma01/db01/kr01), maak dan zoveel mogelijk gebruik van de variabele

Voorbeeld: each ab02 where ab02.bedr-cd = and ab02.persnr = ui01.persnr

In sommige gevallen kan er gebruik worden gemaakt van het veld bedr-cd van een eerder gevonden record.
Voorbeeld: for each ma01 where ma01.bedr-cd = , first ab02 where ab02.bedr-cd = ma01.bedr-cd
In dit voorbeeld is de waarde van het veld ma01.bedr-cd al bekend. Het zoeken van de ab02 kan dan via een index verlopen.

Controleren werking weergave

Tel voorafgaand aan de wijziging het aantal records dat de oorspronkelijke weergave toont. Tel na wijziging opnieuw het aantal records. Klopt het aantal records dat wordt weergegeven met het aantal dat u verwacht?

Check het aantal reads dat de weergave doet op de tabel(len). Zet hiervoor ‘veldnamen tonen’ aan. Onder in de browser wordt dan informatie getoond over de query.

Let op:

Als je een time-out krijgt, wil dit niet zeggen dat het proces op de server is afgebroken. De agent die belast is met de taak maakt deze gewoon af en het kan lang duren voordat deze weer beschikbaar komt voor een andere gebruiker. Als je dan weer inlogt en dezelfde actie nog eens start (en nog eens…), dan kun je het volledige systeem ophangen. Alle agents zijn dan bezig. Een time-out geeft aan dat het systeem de hoeveelheid data niet kan verwerken. Daarom adviseren wij je om in dit geval dezelfde actie niet nog een keer te starten!