Naar hoofdinhoud gaan

Een oplossing in een omgeving importeren

Doel​

Een oplossingspakket in een doelomgeving importeren, zodat de tabellen, formulieren, weergaven en regels die elders zijn gebouwd, in die omgeving opnieuw worden aangemaakt.

Vereisten​

  • Je bent als platformbeheerder aangemeld bij het Beheercentrum.
  • Je hebt een oplossingspakketbestand dat uit een andere omgeving is geëxporteerd (zie Een oplossing exporteren).
  • De doelomgeving bestaat en is Actief (zie Een omgeving aanmaken).

Stappen​

  1. Selecteer bovenaan het Beheercentrum de doelomgeving — een oplossing wordt in een omgeving geïmporteerd, dus de import geldt voor de omgeving die op dat moment is geselecteerd.
  2. Open de pagina Oplossingen via de bovenste navigatie.
  3. Selecteer Importeren.
  4. Geef het oplossingspakket op dat je hebt geëxporteerd.
  5. Bevat het pakket demonstratiegegevens, dan wordt je daar vóór het importeren naar gevraagd: vink Demonstratiegegevens opnemen aan om die rijen mee te nemen, en selecteer daarna Importeren. Het vakje is uitgevinkt tenzij jij het aanvinkt, en uitgeschakeld voor een productieomgeving. De configuratierijen van het pakket komen altijd mee, en bij een pakket zonder demonstratierijen wordt de vraag overgeslagen.
  6. De oplossing wordt meteen geïmplementeerd — net als in Power Apps wordt een import rechtstreeks in de geselecteerde omgeving toegepast. De geïmporteerde (beheerde) oplossing verschijnt dan in de lijst Oplossingen, en makers kunnen de onderdelen ervan gebruiken.

Wat er achter de schermen gebeurt​

Voordat er iets wordt toegepast, wordt het pakket gevalideerd en worden de afhankelijkheden gecontroleerd — elk formulier, elke weergave en elke regel moet verwijzen naar een tabel die in hetzelfde pakket zit of al in de doelomgeving aanwezig is. De tabellen worden vervolgens aangemaakt in het eigen, geïsoleerde gegevensgebied van de doelomgeving, en de formulieren, weergaven en regels worden daar geregistreerd. Elke omgeving houdt haar eigen, aparte gegevens, dus de geïmporteerde oplossing begint in de doelomgeving leeg.

Importeren is herhaalbaar: bestaat een onderdeel al in het doel — omdat het het ingebouwde formulier of de ingebouwde weergave van een standaardtabel is, of omdat je dezelfde oplossing opnieuw importeert — dan wordt het ter plekke bijgewerkt in plaats van een fout te veroorzaken. Zo importeert een oplossing die een veld aan een standaardtabel toevoegt probleemloos, ook al is die tabel (met haar standaardformulieren en -weergaven) al aanwezig.

Dat geldt ook voor keuzesets. Een keuzeset die al in het doel staat, wordt bijgewerkt naar de geïmporteerde: labels en volgorde worden ververst, nieuwe opties worden toegevoegd, en opties die de geïmporteerde set niet meer heeft, worden verwijderd. Opties worden gekoppeld op de waarde die het platform ze heeft gegeven, dus een hernoemde optie wordt bijgewerkt in plaats van twee keer toegevoegd, en bij geen enkel record verandert ongemerkt de betekenis van de opgeslagen waarde. Twee situaties laten de import in plaats daarvan stoppen, omdat geen van beide zonder gegevensverlies kan worden opgelost: een keuzeset die dezelfde naam heeft als een al aanwezige maar bij een andere uitgever hoort, en het verwijderen van een optie die records nog bevatten.

Imports worden meteen toegepast. Een goedkeuringspoort per omgeving voor omgevingen van een hoger niveau (Test, Productie) is gepland als onderdeel van de toekomstige, op Flows gebaseerde implementatiepijplijn — die maakt vandaag geen deel uit van de directe import.

Een oplossing kan zeggen waarop ze is gebouwd. Noemt haar pakket oplossingen die ze nodig heeft, dan controleert de import eerst de omgeving en weigert met ‘Importeer eerst …’ — voordat er iets wordt geschreven — als er een ontbreekt of te oud is.

Mislukt een import halverwege, dan blijft er niets achter. Wordt deze versie van de oplossing hier voor het eerst geïmporteerd, dan wordt alles wat al was aangemaakt — tabellen, formulieren, rollen, apps — weer verwijderd, en de import wordt met de reden als Mislukt gemarkeerd. Los de oorzaak op en importeer opnieuw. (Een herimport van een versie die al is geïnstalleerd wordt niet teruggedraaid, omdat dat de werkende kopie ook zou verwijderen.)

Een nieuwere versie importeren: een upgrade​

Als de omgeving al een eerdere versie van de oplossing heeft, vervangt het importeren van een nieuwere die. De eerdere versie verdwijnt uit de lijst met oplossingen, en de omgeving ziet er daarna uit zoals een nieuwe installatie van de nieuwe versie haar zou achterlaten:

  • Alles wat de nieuwe versie nog meebrengt, blijft, records inbegrepen, en hoort nu bij de nieuwe versie.
  • Wat de nieuwe versie niet meer meebrengt, wordt verwijderd, zoals een verwijdering van de oplossing het zou verwijderen. Een rol die is weggevallen, wordt afgenomen van wie hem had.

Als de eerdere versie niet kan worden teruggetrokken, slaagt de import toch, blijft de eerdere versie in de lijst en zegt het bericht na de import dat. Importeer de nieuwe versie opnieuw om het nog eens te proberen. Verwijder de eerdere versie niet: er horen nog delen van de nieuwe bij.

Als een oplossing iets toevoegt aan een tabel die je al hebt​

Sommige oplossingen voegen velden toe aan een tabel waarmee de omgeving is aangemaakt, zoals een code en een status op Eenheden. De import voegt die velden toe en laat al het andere aan de tabel zoals het was, dus de tabel behoudt haar bestaande velden, records en organigram. De tabel blijft van de omgeving, niet van de oplossing.

Het verwijderen van die oplossing haalt alleen weg wat ze heeft toegevoegd. De tabel blijft, met haar eigen velden en records.

Een oplossing kan een bestaand zoekveld naar een andere tabel laten wijzen. Zo zou de Manager van een eenheid naar een functie kunnen wijzen in plaats van naar een persoon. Waarden die naar de oude tabel wezen, worden gewist, omdat ze voor de nieuwe niets betekenen. Bij het verwijderen wijst het zoekveld weer terug en worden de waarden die het bevatte, gewist.

Een oplossing kan het gegevenstype van een veld niet wijzigen, zoals een tekstveld in een zoekveld veranderen. De import stopt met een melding die het veld noemt, en er wordt niets gewijzigd. De auteur van de oplossing moet in plaats daarvan een nieuw veld toevoegen.

Als een oplossing een andere nodig heeft​

Een oplossing kan voortbouwen op de oplossing van een andere uitgever: bijvoorbeeld een tabel Badge waarvan de kolom Visitor verwijst naar de tabel die de oplossing Visitors meebrengt. Beide kunnen naast elkaar in één omgeving staan, elk onder een eigen uitgever, maar de oplossing waarop de andere voortbouwt moet er eerst zijn.

Daarom controleert het importeren elke opzoekkolom. Een kolom die verwijst naar een tabel die het pakket niet meeneemt en die de omgeving niet heeft, stopt het importeren voordat er iets wordt geschreven, en de melding noemt de kolom en de tabel. Importeer de oplossing die de tabel meebrengt en importeer deze daarna opnieuw.

Exports leggen nog niet vast op welke oplossingen een pakket voortbouwt. Deze controle, tabel voor tabel, is dus wat een import in de verkeerde volgorde tegenhoudt.

Basisgegevens: configuratie altijd, demonstratie alleen op verzoek​

Basisgegevens zijn records die een pakket meebrengt, en de rijen van elke tabel zijn van een van twee soorten:

  • Configuratie, rijen die de oplossing nodig heeft om te werken, zoals goedkeuringsdrempels. Die komen altijd mee, ook in Productie.
  • Demonstratie, rijen die de oplossing laten zien, zoals verzonnen klanten. Die komen alleen mee als je Demonstratiegegevens opnemen aanvinkt, en nooit in een productieomgeving, waar ze tussen je eigen records zouden staan zonder dat iets ze van elkaar onderscheidt, en zouden blijven staan als de oplossing werd verwijderd.

De melding na de import zegt wat er is binnengekomen, en hoeveel demonstratierijen zijn weggelaten. Zie Basisgegevens meeleveren met een oplossing.

Problemen oplossen​

  • "Het oplossingspakket is ongeldig." — het pakket komt niet overeen met het verwachte formaat. Exporteer het opnieuw uit de bronomgeving.
  • "field '…' references '…', which is neither in the package nor in this environment." — een kolom in het pakket verwijst naar een tabel, of haalt zijn waarden uit een keuzeset, die het pakket niet meeneemt en die deze omgeving niet heeft. Er is niets geïmporteerd. Brengt een andere oplossing het mee, importeer die oplossing dan eerst. Hoort het bij deze oplossing, voeg het dan toe in de omgeving waaruit je hebt geëxporteerd en exporteer opnieuw.
  • "Demonstratiegegevens kunnen niet worden geïmporteerd in …, want dat is een productieomgeving." Importeer de oplossing zonder. De configuratierijen komen nog steeds mee.
  • De oplossing is aangekomen maar de voorbeeldrecords ontbreken. Ze is geïmporteerd zonder demonstratiegegevens. Importeer haar opnieuw, in een omgeving die geen productieomgeving is, met Demonstratiegegevens opnemen aangevinkt.
  • "Doelomgeving … is niet gevonden" / "is niet actief." — selecteer een bestaande, actieve omgeving; wacht tot een net aangemaakte omgeving klaar is met inrichten.

Gerelateerde scenario's​

  • Een oplossing exporteren.
  • Een omgeving aanmaken.