Oppretthold sunn skjema-ALM for modelldrevet app
Denne artikkelen inneholder informasjon om de ulike scenariene for hvordan du implementerer og praktiserer sunn behandling av programlivssyklusen (ALM) for tilpassing av skjemaer i de modelldrevne appløsningene.
Avsnittene nedenfor beskriver hvordan skjemafletting fungerer og hvordan tilpassinger vedlikeholdes. De grunnleggende utviklingsscenariene med anbefalinger for vedlikehold av vellykket ALM for et modelldrevet appskjema, er detaljert beskrevet i hver del som følger. Hvert scenario inneholder trinn du må følge, som kan hjelpe deg med å implementere en riktig ALM-prosess når du oppdaterer løsningen eller den modelldrevne appen.
Følg denne fremgangsmåten for å implementere sunn skjema-ALM for dette scenariet.
- Opprett et nytt skjema kalt SkjemaA i utviklingsmiljøet, og utfør tilpassinger i skjemaet.
- Opprett en ny løsning (kalt Løsning A i diagrammet nedenfor) i utviklingsmiljøet, som vil være en uadministrert løsning, og legg til det nye skjemaet. Eksporter løsningen som administrert. Dette trinnet eksporterer en fullstendig FormXml for skjemaet.
- I testmiljøet importerer du den administrerte løsningen fra trinn 2, som oppretter SkjemaA i testmiljøet. I diagrammet nedenfor opprettes SkjemaA i testmiljøet, og brukergrensesnittet for skjemaet viser Felt1 og Felt2 som Løsning A lagt til i skjemaet.
- Når du tilpasser skjemaet du opprettet i trinn 1, ytterligere ved hjelp av et nytt utviklingsmiljø (kildemiljø), importerer du den administrerte Løsningen A som ble opprettet i trinn 2, og kontrollerer at utviklingsforekomsten du bruker, har SkjemaA i en administrert tilstand. Som vist i diagrammet nedenfor importeres administrert Løsning A i utviklingsmiljøet, og skjemaet tilpasses ved å opprette aktive tilpassinger. Deretter kan SkjemaA legges til en ny uadministrert løsning (Løsning B i diagrammet) og eksporteres som en administrert løsning fra utviklingsmiljøet. Dette trinnet eksporterer en differensiell (diff) FormXml for skjemaet.
- I testmiljøet importerer du den administrerte løsningen (Løsning B) fra trinn 4. Som vist i diagrammet nedenfor legger Løsning B til et nytt Felt3 i SkjemaA og fjerner Felt2, som ble lagt til av Løsning A. Brukergrensesnittet for skjemaet i testmiljøet viser nå Felt3 og Felt1 i skjemaet, men ikke Felt2 etter flettingen.
Som vist i diagrammet nedenfor er det ikke en sunn ALM-praksis å opprette flere administrerte løsninger fra utviklingsmiljøet der basisløsningen (Løsning A) er i uadministrert tilstand. Dette skyldes at når du oppretter en annen uadministrert løsning (Løsning B) for det uadministrerte skjemaet, eksporteres FormXml som en fullstendig FormXml, i stedet for en diff FormXml, som vist i det gyldige scenariet ovenfor. Endringer som fjerning av en kolonne, trer derfor ikke i kraft.
Følg denne fremgangsmåten for å implementere sunn skjema-ALM for dette scenariet.
Opprett et nytt skjema kalt SkjemaA i utviklingsmiljøet, og utfør tilpassinger i skjemaet.
Opprett en løsning (Løsning A i diagrammet nedenfor), som vil være en uadministrert løsning, og legg til det nye skjemaet. Eksporter løsningen som administrert. Dette trinnet eksporterer en fullstendig FormXml for skjemaet.
I testmiljøet importerer du den administrerte løsningen fra trinn 2, som oppretter skjemaet i testmiljøet. I diagrammet nedenfor opprettes SkjemaA i testmiljøet, og brukergrensesnittet for skjemaet viser Felt1 og Felt2 som Løsning A lagt til i skjemaet.
Når du tilpasser skjemaet du opprettet i trinn 1, ytterligere ved hjelp av oppdateringer, bruker du det samme miljøet der Løsning A er i uadministrert tilstand, og oppretter en oppdatering for løsningen og tilpasser skjemaet. Eksporter deretter oppdateringen som en administrert løsning. Dette trinnet eksporterer en fullstendig formXml for skjemaet.
I testmiljøet importerer du den administrerte oppdateringsløsningen fra trinn 4. Som vist i diagrammet nedenfor legger løsningsoppdateringen Løsning A til et nytt Felt3 i SkjemaA og fjerner Felt2, som ble lagt til av Løsning A.
Obs!
Oppdateringer som inneholder full formXml, blir alltid sammenlignet med basislaget som oppdateringen ble laget basert på, og ignorerer mellomliggende oppdateringer mellom basisen og nåværende oppdatering. Dette gjør at Felt2 blir fjernet, fordi det finnes i basislaget Løsning A, og fjerningen blir oppdaget. På den annen side blir Felt3 lagt til av denne oppdateringsløsningen, og kan ikke fjernes av påfølgende oppdateringer. Felt som legges til via oppdateringsløsninger, er derfor additive.
Når du tilpasser skjemaet du opprettet i trinn 1, ytterligere ved hjelp av oppgraderinger, bruker du det samme miljøet der Løsning A er i uadministrert tilstand, og kloner Løsning A for å opprette oppgraderingsløsningen og tilpasse skjemaet. Deretter eksporterer du Løsning A-oppgraderingen som en administrert løsning. Dette trinnet eksporterer en fullstendig FormXml for skjemaet.
I testmiljøet importerer du den administrerte Løsning A-oppgraderingen fra trinn 6. Som vist i diagrammet nedenfor legger Løsning A-oppgraderingen til et nytt Felt4 i SkjemaA og fjerner Felt2, som ble lagt til av Løsning A. Brukergrensesnittet for skjemaet i testmiljøet viser nå Felt1, Felt3 og Felt4 i skjemaet men Felt2 blir fjernet etter at skjemaet flettes fra importen.
Følg denne fremgangsmåten for å implementere sunn skjema-ALM for dette scenariet.
- Rediger et eksisterende administrert skjema kalt SkjemaB i dette eksemplet, i utviklingsmiljøet, og utfør tilpassinger på skjemaet. Vær oppmerksom på at løsning A er den administrerte løsningen som allerede er installert for skjemaet i utviklingsmiljøet.
- Opprett en ny løsning (Løsning B i diagrammet nedenfor), som er en uadministrert løsning, og legg til SkjemaB. Eksporter løsningen som administrert. Dette trinnet eksporterer en differensiell (diff) FormXml for skjemaet.
- I testmiljøet importerer du den administrerte løsningen fra trinn 2, som oppretter et andre løsningslag for skjemaet. I diagrammet nedenfor får SkjemaB de flettede endringene fra Løsning A og Løsning B i testmiljøet, og brukergrensesnittet for skjemaet viser Felt1 og Felt3 i skjemaet, men ikke Felt2, som ble fjernet av Løsning B.
- Når du tilpasser skjemaet du tilpasset i trinn 1, ytterligere ved hjelp av nye administrerte løsninger, må du kontrollere at du bruker et nytt utviklingsmiljø som har SkjemaB i en administrert tilstand. Som vist i diagrammet nedenfor importeres de administrerte løsningene Løsning A og Løsning B i det nye utviklingsmiljøet. SkjemaB tilpasses ved å opprette aktive tilpassinger, som deretter kan legges til i en ny løsning (løsning C i diagrammet) og eksporteres som en administrert løsning.
- I testmiljøet importerer du den administrerte løsningen Løsning C fra trinn 4. Som vist i diagrammet nedenfor legger Løsning C til et nytt Felt4 i SkjemaB og fjerner Felt3, som ble lagt til av Løsning B. Brukergrensesnittet for skjemaet i testmiljøet viser nå Felt1 og Felt4 i skjemaet, men ikke Felt2 og Felt3.
Som vist i diagrammet nedenfor er det ikke en sunn ALM-praksis å opprette flere administrerte løsninger fra utviklingsmiljøet som inneholder en annen uadministrert løsning du opprettet for samme skjema. Legg merke at Løsning B er i en uadministrert tilstand. Når du oppretter en annen uadministrert løsning (Løsning C) for SkjemaB eksporteres FormXml som en diff FormXml som vist i trinn 4 i scenariet ovenfor. SkjemaB inneholder imidlertid også endringene fra Løsning B, som blir overskrevet av de nye endringene.
Som du kan se i diagrammet nedenfor, legges Felt3 til i SkjemaB i Løsning B. Men nå når du oppretter en ny Løsning C i dette miljøet, med Løsning B i uadministrert tilstand og fjerner Felt3, fjernes også Felt3 i utviklingsmiljøet. Felt3 spores ikke i diff FormXml når løsningen eksporteres, siden endringen av å legge til og fjerne denne kolonnen ble gjort i samme aktive lag. Det betyr at når administrert Løsning C importeres i testmiljøet, gjengir skjemaet likevel Felt3 fordi diff FormXml aldri registrerer det som fjernet (som om det ble fjernet i trinn 5 i det sunne ALM-scenariet ovenfor). Hvis du utfører skjematilpassingene på denne måten, fører dette til at utviklingsmiljøet ikke er konsekvent med testmiljøet.
Følg denne fremgangsmåten for å implementere sunn skjema-ALM for dette scenariet.
Tilpass et eksisterende administrert skjema kalt SkjemaB i dette eksemplet, i utviklingsmiljøet, og utfør tilpassinger på skjemaet. Vær oppmerksom på at Løsning A er den administrerte løsningen som allerede er installert for skjemaet i utviklingsmiljøet.
Opprett en løsning (Løsning B), som blir en uadministrert løsning, og legg til SkjemaB. Eksporter løsningen som administrert. Dette trinnet eksporterer en diff FormXml for skjemaet.
I testmiljøet importerer du den administrerte Løsning B fra trinn 2, som oppretter et andre løsningslag for skjemaet. I diagrammet nedenfor får SkjemaB de flettede endringene fra Løsning A og Løsning B i testmiljøet. I tillegg viser brukergrensesnittet for SkjemaB Felt1 og Felt3 i skjemaet, men ikke Felt2, som ble fjernet av Løsning B.
Når du tilpasser skjemaet du tilpasset i trinn 1, ytterligere ved hjelp av en oppdateringsløsning, kan du bruke det samme utviklingsmiljøet som trinn 1, der Løsning B finnes i uadministrert tilstand. Som vist i diagrammet nedenfor er Løsning A i en administrert tilstand, og Løsning B er i en uadministrert tilstand. Skjemaet er tilpasset ytterligere, og du oppretter en oppdatering for Løsning B for å legge til skjemaet i denne løsningen og eksportere det som en administrert oppdateringsløsning. Dette trinnet eksporterer en diff FormXml.
I testmiljøet importerer du den administrerte oppdateringen Løsning B fra trinn 4. Som vist i diagrammet nedenfor legger Løsning B-oppdateringen til et nytt Felt4 i SkjemaB og fjerner Felt3, som ble lagt til av Løsning B.
Obs!
Oppdateringer er additive av natur og kan ikke fjerne komponenter, for eksempel kolonner, fra skjemaet. Felt3 blir derfor ikke fjernet fra skjemaet. Brukergrensesnittet for skjemaet i testmiljøet viser nå Felt1, Felt3 og Felt4 i skjemaet men ikke Felt2.
Når du tilpasser skjemaet du opprettet i trinn 1, ytterligere ved hjelp av oppgraderinger, bruker du det samme miljøet der Løsning B er i uadministrert tilstand, og kloner Løsning B for å opprette oppgraderingsløsningen og tilpasse SkjemaB. Eksporter oppgraderingen som en administrert løsning. Dette trinnet eksporterer en diff FormXml for skjemaet.
I testmiljøet importerer du den administrerte oppgraderingsløsningen Løsning B fra trinn 6. Som vist i diagrammet nedenfor legger Løsning B-oppgraderingen til et nytt Felt5 i SkjemaB og fjerner Felt3, som ble lagt til av Løsning B. Brukergrensesnittet for skjemaet i testmiljøet viser nå Felt1, Felt4 og Felt5 i skjemaet, mens Felt2 og Felt3 er fjernet.
Vedlikeholde uadministrerte løsninger og tilpassinger for et nytt skjema på tvers av flere utviklingsmiljøer
Følg denne fremgangsmåten for å implementere sunn skjema-ALM for dette scenariet.
- I Utviklingsmiljø 1 oppretter du et nytt SkjemaA, og utfører tilpassinger i skjemaet.
- Opprett en løsning (Løsning A i diagrammet nedenfor), som vil være en uadministrert løsning, og legg til det nye skjemaet. Eksporter løsningen som uadministrert. Dette trinnet eksporterer en fullstendig FormXml for skjemaet.
- I Utviklingsmiljø 2 importerer du den uadministrerte løsningen fra trinn 2, som oppretter skjemaet i Utviklingsmiljø 2. I diagrammet nedenfor opprettes SkjemaA, og brukergrensesnittet for skjemaet viser Felt1 og Felt2 som Løsning A lagt til i skjemaet.
- Du tilpasser skjemaet ytterligere i Utviklingsmiljø 2 for å gjøre aktive tilpassinger i miljøet, for eksempel legge til en ny kolonne kalt Felt3. SkjemaA viser nå Felt1, Felt2 og Felt3.
- I Utviklingsmiljø 1 tilpasser du skjemaet ytterligere ved å legge til Field4. Brukergrensesnittet for skjemaet i utviklingsmiljø 1 viser nå Felt1, Felt2 og Felt4.
- Eksporter uadministrert Løsning A med endringene som ble gjort i trinn 5. Dette trinnet eksporterer en fullstendig FormXml for skjemaet.
- I Utviklingsmiljø 2 importerer du den administrerte Løsning A-oppgraderingen fra trinn 6. I og med at løsningen du importerer, inneholder hele FormXml for SkjemaA, overskrives den aktive tilpassingen som ble gjort i Utviklingsmiljø 1. Skjemaet viser nå bare Felt1, Felt2 og Felt4, men ikke Felt3, som var den ekstra aktive tilpassingen som ble gjort i Utviklingsmiljø 1. Dette skjer med alle uadministrerte løsningsimporter som har hele FormXml for skjemaet.
Vedlikeholde uadministrerte løsninger og tilpassinger for et eksisterende skjema på tvers av flere utviklingsmiljøer
Følg denne fremgangsmåten for å implementere sunn skjema-ALM for dette scenariet.
- I Utviklingsmiljø 1 tilpasser du et eksisterende skjema kalt SkjemaB i dette eksemplet. Deretter utfører du tilpassinger i skjemaet.
- Opprett en løsning (Løsning B i diagrammet nedenfor), som blir en uadministrert løsning, og legg til SkjemaB. Eksporter løsningen som uadministrert. Dette trinnet eksporterer en diff FormXml for skjemaet.
- I Utviklingsløsning 2 importerer du den administrerte løsningen fra trinn 2, som oppretter et andre løsningslag for skjemaet. Brukergrensesnittet for SkjemaB viser Felt1, Felt2 og Felt3 etter skjemaflettingen.
- Du tilpasser skjemaet ytterligere i Utviklingsmiljø 2 for å gjøre aktive tilpassinger i miljøet, for eksempel legge til en ny kolonne kalt Felt4. SkjemaB viser nå Felt1, Felt2, Felt3 og Felt4.
- I Utviklingsmiljø 1 tilpasser du skjemaet ytterligere ved å legge til en ny kolonne kalt Field5. Brukergrensesnittet for skjemaet i Utviklingsmiljø 1 viser nå Felt3 og Felt5.
- Eksporter uadministrert Løsning B med endringene som ble gjort i trinn 5. Dette trinnet eksporterer en diff FormXml for skjemaet.
- I Utviklingsmiljø 2 importerer du den administrerte Løsning B-oppgraderingen fra trinn 6. I og med at løsningen du importerer, inneholder diff FormXml for SkjemaB, flettes det med den aktive tilpassingen som ble gjort i Utviklingsmiljø 1. Skjemaet viser nå Felt1, Felt2, Felt3, Felt4 og Felt5. Dette skjer for alle uadministrerte løsningsimporter som har diff FormXml for skjemaet.
- Hvis skjemaflettingen i trinn 7 ikke er det du ønsker, selv om du importerer en diff FormXml med den uadministrerte løsningen, og du vil at du skal kunne overskrive de aktive tilpassingene som ble gjort i Utviklingsmiljø 2, fjerner du det aktive laget for SkjemaB. Mer informasjon: Fjerne et uadministrert lag.
- Eksporter uadministrert Løsning B med endringene som ble gjort i trinn 5. Dette trinnet eksporterer en diff FormXml for skjemaet.
- I Utviklingsmiljø 2 importerer du den administrerte Løsning B-oppgraderingen fra trinn 9. Siden det ikke finnes et aktivt lag for skjemaet i Utviklingsmiljø 2, (se trinn 8), importeres alle endringer fra den uadministrerte Løsning B selv om du importerer diff FormXml for SkjemaB. Skjemaet viser nå bare Felt1, Felt2, Felt3 og Felt5. Dette skjer for alle uadministrerte løsningsimporter som har diff FormXml for skjemaet. Dette er det samme resultatet som trinn 7 i scenariet Vedlikeholde uadministrerte løsninger og tilpassinger for et eksisterende skjema på tvers av flere utviklingsmiljøer.
Alle eksporterte løsningspakker inneholder en customizations.xml-fil. Når et skjema inkluderes i en løsning, finnes den relaterte skjemadefinisjonen i FormXml-delene i filen customizations.xml. FormXml kan være fullstending eller differensiell (diff).
FormXml-en du får når du eksporterer en løsning for et skjema i en uadministrert tilstand, kalles en fullstendig FormXml. Fullstendig betyr at den inneholder hele skjemadefinisjonen. Når du oppretter et nytt skjema og eksporterer det, vil skjemaet alltid være en fullstendig FormXml fordi skjemaet i miljøet du eksporterer fra, er i en uadministrert tilstand og også er i en opprettingstilstand. Hvis du eksporterer flere løsninger fra det samme miljøet, inkluderer disse også en fullstendig FormXml. Fordi attributtet solutionaction
angir et diff FormXml, vil ikke den fullstendige FormXml-filen i filen customization.xml i løsningen du eksporterer, inneholde noen solutionaction
-attributter.
FormXml-en du får når du eksporterer en løsning for et skjema i en administrert tilstand, kalles en differensiell eller diff FormXml. Diff betyr at FormXml-en bare inneholder endringene som er gjort i de aktive tilpassingene i det miljøet, og ikke hele skjemadefinisjonen. Når du tilpasser et eksisterende administrert skjema og eksporterer det, vil skjemaet alltid være en diff FormXml fordi det bare inneholder de aktive endringene som er gjort med det. Diff FormXml i filen customization.xml i løsningen du eksporterer, inneholder solutionaction
-attributter som definerer hva endringene er, for eksempel Lagt til, Fjernet, Endret.
Diff FormXml sikrer at løsningen bare uttrykker endringene appen trenger, og at den ikke påvirkes av endringer fra andre lag. Diff FormXml gjør også løsningen mindre klumpete og hjelper den med å importere raskere.