Scriptstap ging goed en tóch een foutmelding

Over berekeningen operatoren/functies, relaties, lay-outs gedeelten/rapport, scripts beheren/maken en beveiliging bestand/tabellen.
Gebruikersavatar
René Ros
Site Admin
Berichten: 56
Lid geworden op: 26 feb 2017 20:46

Scriptstap ging goed en tóch een foutmelding

Bericht door René Ros » 19 mar 2018 07:11

Als een scriptstap precies doet wat u ingesteld heeft dan verwacht u geen foutmelding. Toch is dat wat de scriptstap 'Ga naar gerelateerde record' soms doet. Dat leggen we graag uit.

Met de optie 'Alleen gerelateerde records' wordt niet alleen van het parent record naar een gerelateerde (child) record gegaan, de gevonden reeks in de gerelateerde (child) tabel wordt beperkt tot een specifiek aantal records.
Die gevonden reeks zijn alle gerelateerde records van het huidige parent record als de optie 'Alleen overeenkomst met huidige record' is ingesteld. Bijvoorbeeld alleen de vijf personen die bij één bedrijf horen.
De optie 'Overeenkomst met alle records in huidige gevonden reeks' zorgt dat de huidige reeks alle child records bevat van alle parent records. Met hetzelfde voorbeeld: 385 personen van 124 bedrijven.

Met de optie 'Alleen overeenkomst met huidige record' kunnen er twee foutnummers volgen: geen fout (0) en record ontbreekt (101).
Als de optie 'Overeenkomst met alle records in huidige gevonden reeks' is ingesteld dan kan ook de fout 'Geen records die overeenkomen aan de zoekopdracht' (401) optreden. Dat gebeurd als geen enkel parent record een child record heeft.
Wat minder logisch is, is als toevallig het huidige parent record geen gerelateerde records heeft toch ook fout 101 optreedt en wordt teruggegeven. Omdat de gevraagde actie keurig is uitgevoerd zou je dit een bug kunnen noemen. Hoe dan ook, bij foutafvanging moet daar rekening mee worden gehouden (zie voorbeeld script en bestand hieronder).

En bedenk dat als de scriptstap 'Ga naar gerelateerde record' geen gerelateerde records vindt, het ook niet naar de opgegeven lay-out gaat. En dat heeft tot gevolg dat de volgende scriptstappen op de verkeerde tabel worden uitgevoerd.

Als er een scriptstap is waar u met de Ophaal-functie Get ( LaatsteFout) moet controleren of het goed is uitgevoerd, dan is het wel 'Ga naar gerelateerde record'. En nu weet u wat u kunt verwachten.

Code: Selecteer alles

Ga naar gerelateerde record [ Alleen gerelateerde records ; Overeenkomst met gevonden reeks ; Van tabel: "Personen" ; Met lay-out: "Personen" (Personen) ]

If [ Get ( LaatsteFout) = 0 or Get ( LaatsteFout ) = 101 ]
  # andere script stappen als de gerelateerde records zijn gevonden
End If

Afbeelding
Met vriendelijke groet,
René Ros

FMTraining
Hét FileMaker trainingsinstituut van Nederland.

Plaats reactie

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast