Een component aan een oplossing toevoegen
Doel
Voeg een component (zoals een tabel, formulier of weergave) toe aan een oplossing — door een nieuwe te maken in de bijbehorende designer of door een bestaande toe te voegen — vanuit de oplossingsverkenner.
Vereisten
- Je bent aangemeld bij het Beheercentrum als platformbeheerder.
- De oplossing bestaat en is eigendom van een uitgever (zie Een oplossing maken).
Stappen
- Open de pagina Oplossingen vanuit de navigatie in de zijbalk.
- Selecteer Openen op de rij van de oplossing. De oplossingsverkenner toont de componenten van de oplossing als één tabblad per type — Tabellen (8), Apps (2), Rapporten (1) enzovoort — en maakt deze oplossing je werkoplossing. Elke tabbladnaam vermeldt hoeveel componenten van dat type de oplossing bevat, zodat je de opbouw van de hele oplossing ziet zonder iets te openen; als je een tabblad selecteert, worden die componenten opgesomd. Alleen typen die deze oplossing echt bevat, krijgen een tabblad.
- Gebruik het menu Nieuw om een nieuw component te maken (bijvoorbeeld Nieuwe tabel of Nieuwe app). Daarmee open je de bijbehorende designer, en het component dat je daar maakt, wordt aan deze werkoplossing toegevoegd.
- Gebruik Bestaande toevoegen om een component toe te voegen dat al in de omgeving bestaat: kies het componenttype — Tabel, Keuzeset, App, Script, Studio-scherm, Omgevingsvariabele, Gegevensbeleid, Rapport, Opgeslagen query, Aangepaste API, Portal, Aangepaste app, Aangepast besturingselement, Webresource of Rol — en kies daarna het component uit de lijst. Elke keuze maak je met een kiezer; je typt nooit een logische naam. Selecteer Bestaande toevoegen.
- Het component verschijnt onder het tabblad van zijn type, en de teller van dat tabblad gaat één omhoog. Had de oplossing nog niets van dat type, dan verschijnt het tabblad nu.
Je selectie hoort bij het tabblad waarin je hem hebt gemaakt. De opdrachten boven aan de pagina — Componenten beheren, Afhankelijkheden, Uit oplossing verwijderen — werken op het component dat je hebt geselecteerd, dus wisselen van tabblad wist de selectie. Dat is bewust: een opdracht die klaarstaat voor een component dat je niet meer ziet, is een opdracht die je per ongeluk kunt uitvoeren.
Een rapport en een opgeslagen query worden ingedeeld onder de tabel die ze lezen, naast de formulieren en weergaven van die tabel. Je hoeft niet aan te geven welke tabel: het component dat je kiest, weet dat al, en wordt eronder toegevoegd. Daarom verschijnen ze zowel hier als in de componentkiezer van een tabel — twee wegen naar hetzelfde lidmaatschap, voor de twee manieren waarop mensen ernaar zoeken.
Een rol is geen verwijzing, dus de optie ervoor brengt je ergens heen. Een rol zit in een oplossing omdat die oplossing hem iets toekent — een machtiging, op een tabel, voor een bewerking — dus als je Rol kiest, opent de eigen pagina Rollen van de oplossing, waar dat wordt bepaald. Een rij toevoegen die niets toekende, zou beweren dat de rol meereist terwijl het pakket een lege naam bevat.
Een component openen
Selecteer de naam van een component om het te openen.
- Een component met een eigen designer — een tabel, een opgeslagen query, een script, een rapport, een Studio-scherm, een proces, een rol — opent in die designer.
- Een component dat in een lade op zijn eigen lijstpagina wordt bewerkt — een keuzeset, een app, een gegevensbeleid, een omgevingsvariabele, een aangepaste API, een portal — opent die lijst met het component geselecteerd en de editor al open, in plaats van dat je het een tweede keer moet zoeken in een lijst van dertig.
- Een aangepaste app, een aangepast besturingselement of een webresource heeft geen editor — het wordt geüpload, niet gemaakt — dus het opent zijn lijst met de rij geselecteerd, klaar voor de opdrachten die erop werken.
Je kunt ook het selectievakje van de rij aanvinken en boven aan de pagina Openen kiezen. Beide doen hetzelfde. De naam is een gewone link, dus je kunt hem ook in een nieuw tabblad openen.
Bedrijfsregels zijn de uitzondering. Een bedrijfsregel hoort bij het formulier waarop hij wordt uitgevoerd, en het overzicht weet niet welk formulier dat is — dus de rijen ervan openen niet. Je bereikt een bedrijfsregel via het formulier van zijn tabel, met de actie Gebeurtenissen van de formulierdesigner.
Kiezen welke componenten van een tabel je opneemt
Een tabel bestaat uit meer dan één ding: hij heeft velden, formulieren, weergaven en relaties. Je hoeft ze niet allemaal op te nemen. Als je een tabel toevoegt met Bestaande toevoegen, opent een componentkiezer die de velden, formulieren, weergaven en relaties van de tabel opsomt, elk met een selectievakje. Selecteer de onderdelen die deze oplossing moet bevatten en kies Opslaan — de tabel zelf wordt altijd opgenomen, en alleen de subcomponenten die je hebt aangevinkt, reizen mee.
Je kunt deze keuze op elk moment herzien, ook als de tabel al in de oplossing zit. Dat kan op twee manieren:
- Selecteer de tabel onder het tabblad Tabellen en kies Componenten beheren.
- Kies de tabel opnieuw onder Bestaande toevoegen — een tabel die al in de oplossing zit, wordt daar nog steeds aangeboden, en als je hem kiest, opent de kiezer opnieuw in plaats van dat de tabel twee keer wordt toegevoegd.
De kiezer opent opnieuw met wat er op dit moment in de oplossing zit, zodat je afzonderlijke velden, formulieren, weergaven en relaties kunt toevoegen of verwijderen wanneer dat nodig is — bijvoorbeeld om een nieuw formulier dat je voor een bestaande tabel hebt gebouwd toe te voegen zonder al het andere mee te nemen, of om een weergave weer uit de oplossing te halen.
De rij van elke tabel laat zien hoeveel ervan in deze oplossing meereist, zodat een tabel die je hebt toegevoegd zonder velden te selecteren, dat duidelijk zegt in plaats van er compleet uit te zien.
Kolommen en relaties reizen mee met hun tabel. De definitie van een tabel bevat al zijn kolommen en relaties, welke vakjes je ook aanvinkt. Hun selectievakjes bepalen dus wat de lijsten van deze oplossing tonen, niet wat het geëxporteerde bestand bevat. Bij formulieren, weergaven en opgeslagen query's is dat anders: alleen de aangevinkte reizen mee.
Alleen zien wat de oplossing bevat
Elke lijst binnen een oplossing toont de componenten van die oplossing, niet die van de omgeving. Dat geldt voor de pagina's in de eigen navigatie van de oplossing — Apps, Tabellen, Keuzesets, Omgevingsvariabelen, Opgeslagen query's, Scripts, Rapporten, Studio-schermen, Aangepaste API's, Portals, Rollen, Gegevensbeleid, Aangepaste apps, Aangepaste besturingselementen en Webresources — en voor de lijsten Velden, Formulieren en Weergaven van een tabel zodra je er een opent. Een tabel die je hebt toegevoegd zonder velden te kiezen, toont daarom een lege veldenlijst, maar het geëxporteerde bestand bevat toch alle kolommen van de tabel (zie de opmerking hierboven).
De standaardoplossing ("Main") is de uitzondering: die bevat alles in de omgeving, dus haar lijsten worden nooit beperkt. Daar ga je heen om alles te zien wat een omgeving heeft, wie het er ook heeft neergezet.
Een component dat je maakt terwijl een oplossing open is, wordt automatisch aan die oplossing toegevoegd, zodat het direct in de lijst verschijnt.
Als iets wat je gebruikt in de lijst ontbreekt
Een oplossing bevat wat ze nodig heeft. Navigeert je app naar een scherm, of noemt je rapport een opgeslagen query, die door een andere oplossing is geïnstalleerd, voeg dat component dan toe aan je oplossing — met Bestaande toevoegen in het oplossingsoverzicht, of via de componentkiezer van een tabel voor een veld, formulier of weergave. Zo worden afhankelijkheden vastgelegd, en daardoor kan de doelomgeving ze controleren wanneer je pakket wordt geïmporteerd.
Let op wat een beperkte lijst niet betekent: een component dat in de lijst van deze oplossing ontbreekt, bestaat nog steeds in de omgeving en werkt nog steeds. Alles wat via een logische naam wordt bereikt — een scherm waar een app naartoe navigeert, een script dat een regel importeert, een keuzeset waar een veld aan is gekoppeld — wordt tijdens de uitvoering gevonden, welke oplossing het ook heeft geïnstalleerd. De lijst beantwoordt "wat bevat dit pakket?", niet "wat kan deze app bereiken?".
Zien wat van een component afhankelijk is
Selecteer een component en kies Afhankelijkheden. Er opent een paneel met twee lijsten:
- Nodig voor — alles in deze omgeving dat van het component afhankelijk is. Dit is de lijst die je leest voordat je iets verwijdert: wijst een zoekveldkolom naar een tabel, of opent de navigatie van een app een weergave, dan zou verwijderen die dingen breken, en het platform weigert het.
- Heeft nodig — waar het component zelf van afhankelijk is. Deze lijst verklaart waarom het mislukt als je het in zijn eentje in een andere omgeving importeert: wat hier staat, moet meereizen of er al zijn.
Elke rij zegt wat het andere component is, bij welke tabel het hoort als het bij een tabel hoort, en waarom het in de lijst staat — "een zoekveldkolom wijst ernaar", "een kolom haalt er zijn waarden uit", "een beveiligingsrol kent er een machtiging op toe", enzovoort.
Het antwoord wordt elke keer dat je het paneel opent uit de metagegevens van de omgeving berekend, dus het is nooit verouderd. Het is ook niet beperkt tot deze oplossing: de vraag is wat er in de omgeving bestaat, wie het ook heeft geïnstalleerd.
Afhankelijkheden is niet beschikbaar voor aangepaste apps, aangepaste besturingselementen, webresources, processen, aangepaste API's en portals. Die worden niet door dezelfde metagegevens beschreven — niets leest wat het script van een aangepaste API aanraakt, en de koppelingen van een portal naar het scherm dat hij publiceert en de tabellen die hij mag lezen, worden niet gemodelleerd — dus in plaats van je een leeg paneel te tonen dat eruitziet als een antwoord, is de opdracht uitgeschakeld.
Iets uit een oplossing verwijderen
Selecteer het component en kies Uit oplossing verwijderen. Daarmee verwijder je alleen het lidmaatschap van deze oplossing — het component zelf blijft in de omgeving en in de standaardoplossing ("Main"), en er gaan geen gegevens verloren. Om één formulier, weergave, veld of relatie uit een oplossing te halen, open je de componentkiezer van de tabel opnieuw en vink je het selectievakje uit.
Verwijderen controleert niet wat het component nog nodig heeft. Als een kolom in deze oplossing zijn waarden uit de keuzelijst haalt die je verwijdert, kun je de oplossing nog steeds exporteren, en wordt de volgende import in een omgeving zonder die keuzelijst geweigerd. Selecteer het component en open eerst Afhankelijkheden: wat onder Nodig voor staat en in deze oplossing zit, heeft het nodig.
Wat er achter de schermen gebeurt
Een bestaand component toevoegen legt vast dat het bij deze oplossing hoort — een component kan bij meer dan één onbeheerde oplossing horen. De componentkiezer legt precies vast welke subcomponenten van een tabel bij de oplossing horen; opslaan voegt de nieuw aangevinkte toe en verwijdert de nieuw uitgevinkte, en laat andere tabellen ongemoeid. Een component verwijderen verwijdert alleen dat lidmaatschap; het component zelf wordt niet verwijderd. De standaardoplossing ("Main") is de uitzondering — die bevat altijd elk component, dus ze biedt geen componentkiezer en er kan niets uit worden verwijderd.
Problemen oplossen
- "field '…' references '…', which is neither in the package nor in this environment." — verschijnt bij het importeren. Een kolom in het pakket verwijst naar een tabel, of haalt zijn waarden uit een keuzelijst (keuzeset), die het pakket niet meeneemt en die de omgeving niet heeft. Er is niets geïmporteerd. Brengt een andere oplossing het mee, importeer die oplossing dan eerst. Anders selecteer je in de omgeving waaruit je hebt geëxporteerd de tabel in het overzicht van de oplossing, kies je Afhankelijkheden, voeg je wat onder Heeft nodig staat toe met Bestaande toevoegen en exporteer je opnieuw. Een component van elke uitgever kan worden toegevoegd; het voorvoegsel hoeft niet bij dat van de oplossing te passen.
- "Component … already exists in the solution." — de oplossing verwijst al naar dat component.
Gerelateerde scenario's
- Een oplossing maken.
- Een uitgever maken.