Vedlegg
I en applikasjon kan man legge til rette for opplasting av filvedlegg både via GUI og API.
Metoder for opplasting av vedlegg
I en Altinn app har man to alternativer for opplasting av vedlegg:
- vedleggskomponent i skjema
- API-kall mot app backend
Førstnevnte vil være et godt alternativ for all data der det er forventet at en sluttbruker vil laste opp via brukergrensesnitt i skjema. Sistnevnte anbefales brukt dersom det kun er forventet at systemer skal laste opp vedlegget. Det er ingen begrensning på hvor mange vedlegg som kan inkluderes i en applikasjon og begge opplastingsmetoder kan brukes innad i samme applikasjon.
Nedenfor følger en enkel beskrivelse av hvordan du kan legge til rette for at applikasjonen din kan ta imot vedlegg.
Innsending av vedlegg med vedleggskomponent i skjema
Når man setter sammen skjemaet sitt i Altinn Studio har man en vedleggskomponent tilgjengelig. Det er mulig å laste opp flere vedlegg på en enkelt komponent, og hvor mange vedleggskomponenter du benytter i din applikasjon vil avgjøres av egenskapene til dokumentene du forventer at skal lastes opp og eventuelle begrensninger du selv ønsker å sette (se konfigurasjon av vedlegg for mer informasjon om dette).
NB! Det vil også være mulig å laste opp vedlegg av typen definert i vedleggkomponenten via API.
Bildet over viser vedleggskomponenten i Altinn Studio. Det er mulig å sette en del av konfigurasjonenen for vedleggene som lastes opp alledere her.
- Egendefinerte filtyper kan spesifiseres dersom man vil begrense filtypene som kan sendes inn. En bruker vil i så fall hindres under opplastning dersom filtypen ikke er blant den godkjente listen.
- Minst/maks antall filvedlegg kan spesifiseres dersom man ønsker et bestemt antall vedlegg lastet opp via komponenten. Ved å sette ‘0’ på minst antall filvedlegg vil det ikke være påkrevd å laste opp en fil.
- Maks filstørrelse spesifiseres i MB.
Ytterligere konfigurasjoner som kan settes for vedlegg inkluderer: tillatte bidragsytere og beskrivelse. Dette gjøres i applicationMetadata.json som ligger under App/config i applikasjonsrepoet.
Vedleggskomponent med merking
Det finnes også en egen komponent der man får brukeren til å merke filen med hjelp av en nedtrekksliste. Dette settes opp ganske likt som med den vanlige filopplastingskomponenten, med tillegget av en kodeliste-ID og navnet man vil gi merkingen.
Her under kan du se den i bruk
Vedleggskomponent med varsel ved sletting
Bestemmer om en varslingspanel skal åpnes når brukeren trykker på “Slett”-knappen. Standard oppførsel hvis parameteren ikke er satt, er at varslingspanelet ikke vises.
{
"id": "attest",
"type": "FileUpload",
...
"alertOnDelete": true
}
Innsending av vedlegg med API-kall
For å legge til rette for å kunne sende inn vedlegg uten å ha støtte for dette i GUI må man legge inn et datatype-objekt i applicationMetadata.json (filen ligger under App/config i applikasjonsrepoet). Det vil da kun være mulig å sende inn vedlegg av denne typen via API-kall. For en nærmere beskrivelse av de tilgjengelige feltene se konfigurasjon av vedlegg.
Konfigurasjon for vedlegg
I applicationMetadata.json (ligger under App/config i applikasjonsrepoet) vil man finne en property som heter dataTypes
.
Her er ligger konfigurasjonen for alle datatyper knyttet til applikasjonen,
både skjemadata (app model data) og vedlegg. Feltet appLogic som man også vil se blant noen av objektene
i listen skal kun brukes for skjemadata.
Nedenfor er det to eksempler på dataTypes
-instanser i en applikasjon fra en deployet applikasjon.
"dataTypes": [
{
"id": "53a50f0d-2345-448d-9fba-f18e6bbe71f8",
"taskId": "Task_1",
"maxSize": 25,
"maxCount": 1,
"minCount": 1,
"allowedContentTypes":["application/pdf"]
},
{
"id": "attest",
"taskId": "Task_1",
"maxSize": 25,
"maxCount": 1,
"minCount": 0,
"allowedContributers": ["org:nav", "orgNo:XXXXXXXXXX"],
"grouping": "Attester",
}
]
Id på vedleggstypen. Denne vil settes som en GUID dersom man bruker vedleggskomponent fra Altinn Studio slik man ser i det første elementet i dataTypes-listen. Skulle det være ønskelig å endre verdien til et mer fornuftig navn må man også være obs på at denne endringen må gjøres to steder: applicationMetadata.json og FormLayout.json. (Kun relevant dersom man bruker filopplaster i GUI)
taskId betegner hvilket steg i prosessen det er forventet at dette vedlegget skal lastes opp på. Denne verdien må tilsvare en id på en av taskene i process.bpmn.
maxSize betegner maks tillat størrelse på vedlegget.
maxCount betegner en øvre grensen for hvor mange vedlegg av denne typen som skal lastet opp i tilknytning til en instans.
minCount betegner en nedre grensen for hvor mange vedlegg av denne typen som skal lastet opp i tilknytning til en instans. Dersom verdien er 0 er det ikke påkrevt å laste opp vedlegg av denne typen.
allowedContributers spesifiserer hvem som får lov til å lage og/eller endre vedlegg av denne typen. Dette spesifiseres på formatet
{nøkkelord}:{verdi}
. Tillatte nøkkelord inkluderer: ‘org’; trebokstavsforkortelse på organisasjon og ‘orgNo’; organisasjonsnummer. Det er per nå ikke mulig å spesifisere en organisasjon som ikke er registrert som tjenesteeier.allowedContentTypes spefisiserer hvilke vedleggstyper man tillater. De hyppigst brukte inkluderer: application/pdf, text/xml, image/jpeg. Dersom man ikke ønsker å sette begrensning på typen vedlegg trenger man ikke definere denne parameteren. Les mer om mime types her.
grouping betegner gruppen som vedleggene i av denne typen skal grupperes etter. Dette er en valgfri egenskap, hvor vedlegg med samme grouping vil havne i samme liste. Grouping kan både være en streng (f.eks “Attester”) eller en tekstnøkkel om man ønsker å støtte flere språk (f.eks “skjema.vedleggsgruppering). Her er et eksempel hvor grouping “Demogruppe” satt på en vedleggstype: