Preview: Dette er dokumentasjonen for Altinn Studio v9, som er en forhåndsversjon. Gjeldende versjon er v8.
For å se dokumentasjonen for gjeldende versjon, velg v8 i versjonsvelgeren i menyen til venstre.
PDF
Slik setter du opp PDF-generering som systemoppgave
Oversikt
Appen genererer PDF gjennom en systemoppgave du legger til som et steg i prosessen. Oppgaven bestemmer hvilket innhold PDF-en skal ha, og hvor i prosessen appen lager den.
PDF-oppgaven henter innholdet fra ett av to steder:
Har UI-mappen til oppgaven pdfLayoutName i Settings.json, blir PDF-en den siden. Da ser appen bort fra autoPdfTaskIds.
Ellers lager appen PDF-en automatisk av oppgavene du lister i autoPdfTaskIds. Appen hopper over tomme oppføringer, oppgaver uten egen UI-mappe og PDF-oppgaven selv.
Sidene i pages.order blir aldri en del av PDF-en. Brukeren ser dem som en venteside mens oppgaven kjører.
Bygget sjekker oppsettet:
Har oppgaven verken pdfLayoutName eller noen oppgave i autoPdfTaskIds, stopper bygget med ALTINNAPP1000. Tomme oppføringer teller ikke.
Peker pdfLayoutName på en side som ikke finnes i UI-mappen til oppgaven, stopper bygget med ALTINNAPP1026.
Lister autoPdfTaskIds noe som ikke gir innhold i PDF-en, gir bygget advarselen ALTINNAPP1002. Det gjelder PDF-oppgaven selv, oppgaver uten egen UI-mappe og tomme oppføringer ved siden av andre oppføringer.
Appen sjekker de to feilene også når den starter, og starter ikke med en slik PDF-oppgave.
Du kan bruke prosess-fanen i Altinn Studio for å legge til en PDF-systemoppgave.
Legg til PDF-systemoppgave
Dra og slipp PDF-systemoppgaven dit i prosessen der du ønsker å generere en PDF, ofte rett etter en dataoppgave.
Når du har plassert oppgaven, åpner et konfigurasjonspanel seg til høyre i skjermbildet.
Der velger du mellom to tilnærminger: standard eller egendefinert PDF.
Velger du dette alternativet, angir du hvilke tidligere oppgaver som skal inngå i PDF-en. Innholdet bygger på komponentene i de valgte oppgavene, vist i oppsummeringsmodus.
Eksempeloppsett standard PDF
Altinn Studio setter inn en systemoppgave i process.bpmn. Resultatet kan avvike noe fra eksempelet nedenfor.
Velger du dette alternativet, bestemmer du selv innholdet i PDF-en med en egen side i UI-mappen til PDF-systemoppgaven. Siden er den pdfLayoutName peker på.
Du oppgir først et navn for PDF-systemoppgaven og velger deretter en datamodell som standardmodell. Du kan f.eks. velge modellen til en av oppgavene som inngår i PDF-en.
Eksempeloppsett egendefinert PDF
Altinn Studio setter inn en systemoppgave i process.bpmn og lager UI-mappen til oppgaven med en tom PdfLayout.json.
PDF-systemoppgaven trenger en egen UI-mappe med siden som blir PDF-en. Bruker du prosess-editoren, lager Altinn Studio mappen for deg. Da trenger du bare å redigere innholdet i PdfLayout.json.
Filene og mappestrukturen skal se omtrent slik ut:
Altinn Studio lager ingen venteside. Mens appen lager PDF-en, ser brukeren den vanlige lastevisningen, og feiler PDF-genereringen, viser appen sin egen feilside med Prøv igjen. Vil du vise en egen side mens oppgaven kjører, legger du den til i pages.order. Den blir aldri en del av PDF-en. Se Hva brukeren ser mens en systemoppgave kjører.
Filnavn
Det er valgfritt å inkludere <altinn:filenameTextResourceKey>. Her oppgir du en tekstressursnøkkel som appen bruker som filnavn, med støtte for språk og variabler. Utelater du den, får PDF-en applikasjonens navn som filnavn.
Ved bruk av standard PDF kan du ikke bruke dataModel.default. Du må bruke den faktiske ID-en til datamodellen, f.eks. dataModel.model.
Test
Fyll ut skjemaet og gå videre. Når du når PDF-systemoppgaven i prosessen, genererer appen PDF-en og går automatisk videre til neste steg i prosessen, for eksempel kvittering.
Feilsøking
Hvis du får en feilmelding om at systemoppgaven feilet under PDF-generering, kan du åpne skjemaet i appen og legge til query-parameteren pdf=1. Da ser du det samme innholdet som PDF-en skulle ha vist, og eventuelle feilmeldinger.