Kodeoppsett

1.0 Generelt

Koder for dagbok, melding og gravemelding opprettes og behandles i administrator under kodeoppsett .

Kode opprettes med:

  • Kolonnenavn som du velger fra nedtrekksmeny
  • Kode som er den tekst som vil vises og også lagres i løsning
  • Relatert kode som peker til en kode benyttet for diary_type eller detail_type. På denne måten får man et filter som gir koder avhengig av type valgt.
  • Tabellnavn (kan være flere, skilt med komma) vil gjøre at denne kode kun vises for angitt vegobjekttype
  • Tag som beskrives nærmere nedenfor

2.0 Tag

Tag beskrives som en JSON som gir spesielle regler eller funksjoner knyttet til koden man velger. Enkelte av disse er av mer intern karakter og alle vil ikke beskrives, men nedenfor nevner vi likevel noen.

2.1 Endring av fargesymbol i Dagbok

Koder for diary type er normalt «0:Avvik», «1:Oppgave» og «2:Arbeid». Prefix med tall benyttes for sortering. Til hver av disse legger man inn en tag som forteller hvordan status på posten skal settes når ny dagbokspost opprettes. Dette gjøres gjennom en tag som ser henholdsvis slik ut:

  • {«key»:»status»,»value»:»event»} som forteller at status skal settes til avvik og fargen rød
  • {«key»:»status»,»value»:»task»} som forteller at status skal settes til oppgave og fargen gul
  • {«key»:»status»,»value»:»done»} som forteller at status skal settes til arbeid og fargen gønn

Hvis en lurer på hvorfor vi ikke bare setter farge utfra diary_type så skyldes det at en dagbokspost kan setts til status «log» og farge hvissom indikerer at dagboksposten ikek lenger er relevant og er fulgt opp med ny kode.

2.2 Sett status melding som dagbok

Melding er en egen modul i AV Veg. Når en melding opprettes så opprettes denne med farge råd som indikerere et avvik. En melding følges opp i dagbok som et hvilket som helst annet avvik. Vi ønsker imidlertid at meldingspunktet i kartet skal få endret symbol avhengig av status på oppfølging. Her benytter vi en egen tag for å fortelle dette som sier at status på dagbokskoden til melding skal kopieres til meldingspunktet.

[
    {
        "key":"copystatusfor",
        "value":"av_veg.tbl_message"
    }
]

Dette betyr at når man f.eks oppretter en oppgave i dagboken på et meldingspunkt, så blir selvsagt dagbokskoden gul, men det gjør også meldingspunktet osv.

2.3 Vis vedlegg

Kanskje en litt merkelig tag, men likevel viktig for å indikere at vedlegg skal kunne vises eller legges inn i skjema for detalj til dagbok. Kun aktuell for koden «Vedlegg» som ligger inne «default».

[
    {
        "key":"showattachment",
        "value":"true"
    }
]

2.4 Endre child from parent

Man kan benytte tag for å endre en egenskap i barnet til et objekt – f.eks endre lysarmatur når objektet en registrer på er belysningspunkt som jo er mor til lysarmatur. Navngiving er kanskje litt missvisende.

[
    {
       "key": "changeparent",
       "value": {
          "table": "av_veg_data.lysarmatur_88",
          "field": "lyskildetype_2077",
          "value": "'LED'"
        }
    }
]

2.5 Opprette relaterte tabeller

Dette er et langt mer omfattende eksempel. Poenget med denne er at man ved hjelp av dagbok, kan opprette nye, relaterte tabeller. Oppgaven denne funksjonen var ment å løse er at NVDB har noen tabeller for å beskrive tilstand for ulike typer objekter i NVDB. Det er flere ulike typer tilstandsobjekter. Et krav er at dersom man oppretter en tilstand så må objektet knyttes til en «mor». Dessuten må geometri/plassering i kart være eksakt den samme som for «mor». Vi tenkte å benytte AV Jobb (vår mobilapp) til selve registreringen og for å slippe å skulle håndtere omfattende og forskjellige skjema for ulike vegobjekttyper, så tenkte vi at dagbok mot «mor» objektet måtte være tingen.

For å få dette til må man gjøre følgende:

  1. Man må opprette en egen dagbokspost som beskriver bruk av funksjonen
  2. Man må opprette tilhørende detaljkodetype for hver enkelt egenskap som skal inn i skjema
  3. Man må opprette tilhørende detaljkoder for den aktuelle detaljtypen med eksakt riktig egenskapsverdi som skal inn til NVDB

Oppsett blir som vist nedenfor.

Man oppretter først en dagbokspost som utløser denne funksjonen, f.eks «Tilstand/skade, punkt». I tillegg må man legge til en tag som forklarer hvilken tabell man skal skrive til.

[
    {
        "key": "createchild",
        "value": "av_veg_data.tilstandskadepunkt_761"
    }
]

En detaljtypekode kan være f.eks «Tilstand». Sett relatert kode for denne til «Tilstand/skade, punkt» slik vist over. Her må man legge til en tag som forklarer hvilket felt i tabellen man skal skrive til.

[
    {
        "key": "addtofield",
        "value": {
            "field": "tilstand_7596",
            "value": "%"
        }
    }
]

Man kan i tag vist over legge til en formatering som regex som for et datofelt f.eks kan se slik ut:

[
    {
        "key": "addtofield",
        "value": {
            "field": "datokontrollert_8777",
            "value": "%"
        }
    },{
        "key": "regex",
        "value": "^((([1-2][0-9])|([0][1-9])|(3[0-1]))[.]((1[0-2])|([0][1-9]))[.][0-9]{4}){0,10}$"
    }
]

Da vil verdien man legger inn kontrolleres og man får ikke adgang til å registrere en verdi som ikke er korrekt. Viktig fordi verdien man legger inn på server skal konverteres til dato.

2.6 Oppdatere egenskaper til morobjektet

Også et avansert eksempel. Dette kan benyttes til å registrere et arbeid i AV Jobb på et objekt og oppgi detaljer som gjør at egenskaper på morobjektet endres. Nyttig hvis man har registrert inn en masse objekter uten egenskaper, kun med geometri fra f.eks FKB og så benytter AV Jobb i felt for å hente inn egenskapene for denne.

På samme måte som nevnt over må her også gjøre følgende:

  1. Opprette en egen dagbokspost som beskriver bruk av funksjonen, f.eks «Registrert vegbom»
  2. Man må opprette tilhørende detaljkodetype for hver enkelt egenskap som skal oppdateres i skjema
  3. Man må opprette tilhørende detaljkoder for den aktuelle detaljtypen med eksakt riktig egenskapsverdi som skal inn til NVDB (må samsvare med NVDB)

Oppsett blir som vist nedenfor.

Man oppretter først en dagbokspost som utløser denne funksjonen, f.eks «Registrert vegbom». I tillegg må man legge til en tag som forklarer hvilken tabell man skal skrive til. Mediafield angis bare dersom man ønsker at et bilde tatt med AV Jobb skal inn i et mediafelt i skjema. F.eks et bilde av en vegbom.

[
    {
        "key": "changecurrent",
        "value": "fromdetail"
    },{
        "key":"media_field",
        "value":"bilde"
    }
]

Vi bruker så detaljtypekode for å fortelle hvilke egenskaper som skal oppdateres. Relatert kode må være «Registrert vegbom» slik vist over. Her må man legge til en tag som forklarer hvilket felt i tabellen man skal skrive til. Legg til en valuetype for å beskrive hva slag verdi som skal inn. Valuetype er de samme som man benytter i digitheme i Adaptive.

[
    {
        "key": "updatefield",
        "value": {
            "field": "type_1105",
            "value": "%"
        }
    },{
        "key":"valuetype",
        "value":"list"
    }
]

Dersom man har beskrevet en liste må man så legge inn et sett med koder man kan pluke av.

2.7 Varsling

En kan legge inn varsling på epost om man ønsker dette. Tag legges inn på diarycode.

[{
    "key": "#inform",
    "value": {
        "email": "veilys@kommune.no",
        "message": "Melding om avvik på belysningspunkt mottatt"
    }
}]

2.8 Opprett dagbok som avvik for ny melding

En kan legge inn tag for ny melding som vil generere et tilhørende avvik i dagbok.

[
    {
        "key": "addevent",
        "value": "true"
    }
]

2.9 Opprette dagbok med status for ny melding

Her har vi en tag som fører til at dagbokspost opprettes og arver kode fra en registrert melding. Nyttig hvis man ønsker å registrere et hull i veg som er utbedret og man gjerne vil at dagbok oppdateres samt meldingspunkt oppdateres som utført på en å samme gang.

Tag vist nedenfor vil her opprette en dagbokspost med status som vist. Dersom kode også er lagt inn på dagbok slik at status på meldingspunkt endres tilsvarende dagbok, så får man løst oppgaven beskrevet over.

[
    {
        "key": "adddiary",
        "value": {
            "type": "2:Arbeid",
            "status": "done",
        }
    }
]

Type vil normalt være en av verdiene «0:Avvik», «1:Oppgave» eller «2:Arbeid». Status vil være «event», «task» eller «done».

Hvis man benytter denne sammen med en tag for dagbokskoden (merk at dagbokskode i dette tilfelle vil bli det samme som meldingskoden) så kanman også sørge for at meldingspunktet endrer status tilsvarende dagboken.