Repeterende grupper

Oppsett for repeterende grupper.

Grupper i datamodellen inneholder ett eller flere felter. Grupper er definert som repeterende dersom de har maxOccurs > 1 i xsd’en. En gruppe som er repeterende i datamodellen må også settes opp som repeterende i skjemaet, ellers vil lagring av data feile.

Eksempel

Skjema med noen enkelt-felt, og en repeterende gruppe som:

  • inneholder 3 felter
  • kan repeteres opp til 3 ganger
Skjema med repeterende gruppe

Skjema med repeterende gruppe

Oppsett i FormLayout.json fra eksempelet over:

 1{
 2  "data": {
 3    "layout": [
 4      {
 5        "id": "gruppe-1",
 6        "type": "Group",
 7        "children": [
 8          "ac555386-ac2b-47a0-bb1b-842f8612eddb",
 9          "5c079cd4-c80c-44ea-b8b8-18e323267a37"
10        ],
11        "maxCount": 3,
12        "dataModelBindings": {
13          "group": "spesifisering-grp-5836"
14        },
15        "textResourceBindings": {
16          "header": "person"
17        }
18      },
19      {
20        "id": "ac555386-ac2b-47a0-bb1b-842f8612eddb",
21        "type": "Checkboxes",
22        "componentType": 5,
23        "textResourceBindings": {
24          "title": "Avkrysningsboks"
25        },
26        "dataModelBindings": {
27          "simpleBinding": "klage-grp-5805.spesifisering-grp-5836.KlageSpesifisering-datadef-25457.value"
28        },
29        "options": [
30          {
31            "label": "25795.OppgavegiverNavnPreutfyltdatadef25795.Label",
32            "value": "Verdi1"
33          },
34          {
35            "label": "25796.OppgavegiverAdressePreutfyltdatadef25796.Label",
36            "value": "Verdi2"
37          }
38        ],
39        "required": true
40      },
41      {
42        "id": "5c079cd4-c80c-44ea-b8b8-18e323267a37",
43        "type": "AddressComponent",
44        "componentType": 11,
45        "textResourceBindings": {
46          "title": "Adresse" 
47        },
48        "dataModelBindings": {
49          "address": "klage-grp-5805.spesifisering-grp-5836.KlageSpesifiseringg-datadef-12345.value"
50        },
51        "simplified": true,
52        "readOnly": false,
53        "required": true
54      }
55    ]
56  }
57}

Vedlegg i repeterende grupper

Dette er helt ny funksjonalitet. Oppsett må gjøres manuelt inntil videre.

For å sette opp filopplastingskomponenter i repeterende grupper kreves det noe ekstra oppsett.

Når man laster opp vedlegg kan det bli vanskelig å skille hvilket vedlegg som hører til hvilken rad i den repeterende gruppen, og dermed hvilken utfyllt informasjon som hører til hvert enkelt vedlegg. Derfor må man sette opp knytninger mot datamodellen når filopplasting blir brukt i repeterende grupper, slik at Altinn kan fylle inn den unike identifikatoren som hører til hvert vedlegg og sende dette med resten av dataene i instansen.

Muligheten til å plassere en referanse til vedlegget i datamodellen kan også brukes utenfor repeterende grupper om man ønsker en referanse til vedlegg sammen med skjemadataene på mottakersiden.

Eksempel på vedlegg i repeterende gruppe med tilhørende datamodell

Eksempel på vedlegg i repeterende gruppe med tilhørende datamodell

Følgende er et eksempel på en datamodell som forventer en referanse til et opplastet vedlegg:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xsd:element name="FamilieMedlemmer" type="Skjema" />
  <xsd:complexType name="Skjema">
    <xsd:sequence>
      <xsd:element name="FamilieMedlem" type="FamilieMedlem" maxOccurs="99" />
    </xsd:sequence>
    <xsd:anyAttribute />
  </xsd:complexType>
  <xsd:complexType name="FamilieMedlem">
    <xsd:sequence>
      <xsd:element name="Fornavn" type="xsd:string" />
      <xsd:element name="Bilde" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

Dette knyttes til vedleggskomponenten i gruppen:

{
  "id": "bilde",
  "type": "FileUpload",
  "textResourceBindings": {
    "title": "Bilde"
  },
  "dataModelBindings": {
    "simpleBinding": "FamilieMedlem.Bilde"
  },
  "maxFileSizeInMB": 25,
  "maxNumberOfAttachments": 1,
  "minNumberOfAttachments": 1,
  "displayMode": "simple",
  "required": true
}

I tilfeller hvor man tillater opplasting av flere filer i samme vedleggskomponent må man benytte en datamodellknytning av typen list:

  <xsd:complexType name="FamilieMedlem">
    <xsd:sequence>
      <xsd:element name="Fornavn" type="xsd:string" />
      <xsd:element name="Bilder" type="xsd:string" maxOccurs="5" />
    </xsd:sequence>
  </xsd:complexType>
{
  [...]
  "dataModelBindings": {
    "list": "FamilieMedlem.Bilder"
  }
}

Mottakersiden vil da få en liste med flere unike IDer, en for hvert vedlegg.

Samme unike ID vil også vises i PDF-kvitteringen - men det enbefales å skjule dette ettersom vedlegg vises separat på kvitteringssiden og den unike IDen kan bli forvirrende for brukerne.