arkivverket / arkade5

Arkade 5 - testverktøy for arkivuttrekk
http://arkade.arkivverket.no
GNU Affero General Public License v3.0
12 stars 17 forks source link

Manglende felt-egenskap stopper Arkade #65

Closed joergen-vs closed 2 years ago

joergen-vs commented 7 years ago

Følgende feil dukker opp ved testing av et fagsystem: fixedlengtherror2

Dypere ned i koden finnes dette (Arkade.Core.Addml.FixedFileFormatReader):


private List GetFieldLengths(AddmlRecordDefinition addmlRecordDefinition) { List fieldLengths = new List(); foreach (AddmlFieldDefinition fd in addmlRecordDefinition.AddmlFieldDefinitions) { int? fixedLength = fd.FixedLength; if (!fixedLength.HasValue) { throw new ArkadeException("FixedLength must be present in ADDML to use FlatFileReader"); } fieldLengths.Add(fixedLength.Value); }

return fieldLengths; }


"fixedLength"-feltet er ikke obligatorisk:

En annen måte å beskrive lengden på et felt er med startPos og endPos.

stevethearkiv commented 7 years ago

For min del kunne man godt kvittet seg med endPos. Har aldri skj?nt hvorfor man trenger den; start+fixedlength holder og er enklere ? forholde seg til n?r man lager/leser addml med ?ye. Kanskje generere en varsel i stedet som sier at fixedlength er ? foretrekke ;)

Mvh/

Stephen Anthony Jackson Seniorr?dgiver Arkivverket Innovasjon, arkiv- og IT-utvikling Mobil: +47 46 85 00 52 www.arkivverket.nohttp://www.arkivverket.no

On 22 May 2017, at 15:13, J?rgen notifications@github.com<mailto:notifications@github.com> wrote:

F?lgende feil dukker opp ved testing av et fagsystem: [fixedlengtherror2]https://cloud.githubusercontent.com/assets/10667652/26309978/75a40550-3eff-11e7-81f6-d121b1292b6a.png

Dypere ned i koden finnes dette (Arkade.Core.Addml.FixedFileFormatReader):


private List GetFieldLengths(AddmlRecordDefinition addmlRecordDefinition) { List fieldLengths = new List(); foreach (AddmlFieldDefinition fd in addmlRecordDefinition.AddmlFieldDefinitions) { int? fixedLength = fd.FixedLength; if (!fixedLength.HasValue) { throw new ArkadeException("FixedLength must be present in ADDML to use FlatFileReader"); } fieldLengths.Add(fixedLength.Value); }

return fieldLengths; }


"fixedLength"-feltet er ikke obligatorisk:

En annen m?te ? beskrive lengden p? et felt er med startPos og endPos.

- You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/arkivverket/arkade5/issues/65, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOc_nuFJW2PASYyVkYXGBQX0PaNiz126ks5r8YoKgaJpZM4NiVpq.


Denne e-posten er skannet av MessageLabs Email Security System. For mer informasjon se http://www.messagelabs.com/email


joergen-vs commented 7 years ago

Har trodd at startPos og endPos beskrev feltlengden, mens fixedLength, minLength og maxLength beskrev innholdslengden..

stevethearkiv commented 7 years ago

S? du mener det kan oppst? / eller det er tatt h?yde for felter av en bestemt lengde med innehold som har fastlengde som er alltid mindre enn feltet?

Stephen Anthony Jackson Seniorr?dgiver Arkivverket Innovasjon, arkiv- og IT-utvikling Mobil: +47 46 85 00 52 www.arkivverket.nohttp://www.arkivverket.no

On 23 May 2017, at 06:37, J?rgen notifications@github.com<mailto:notifications@github.com> wrote:

Har trodd at startPos og endPos beskrev feltlengden, mens fixedLength, minLength og maxLength beskrev innholdslengden..

- You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/arkivverket/arkade5/issues/65#issuecomment-303288335, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOc_nh7rXTVWWjb1vdpghe-wJyMs2J8mks5r8mKugaJpZM4NiVpq.


Denne e-posten er skannet av MessageLabs Email Security System. For mer informasjon se http://www.messagelabs.com/email


PetterBAR commented 7 years ago

Hvis dere klarer å få tak i den opprinnelige beskrivelsen av ADDMML fra SAS-versjonen av Arkade (ADDMML 7.2/7.3), så står muligens tanken bak de enkelte elementene der. Aktuelle beskrivelser bør ligge på et eller annet område hos Riksarkivet. Mulig Terje har noe gammel info liggende.

Da ADDMML (den gangen det var én M til) ble skapt (Lars Nygård var arkitekten), forelå de fleste beskrivelsene av datafilene på papir i COBOL-notasjon. Det er mulig en finner noe av årsaken til noen av elementvalgene der.

startPos og endPos, eller fixedLength er med for å muliggjøre varianter av måter å identifisere hvor den enkelte feltverdi befinner seg i posten. Noen ganger er dette oppgitt fra arkivskaper/system som

  1. startPos og endPos
  2. startPost og fixedLength
  3. kun fixedLength
joergen-vs commented 7 years ago

Ok, fant den

        <startpos>feltets startposisjon</startpos>  0 eller 1 gang  Feltets startposisjon (tegn nummer) innenfor posten. Relevant kun når format=FIXED. Format: heltall.
        <endpos>feltets sluttposisjon</endpos>  0 eller 1 gang  Feltets sluttposisjon (tegn nummer) innenfor posten. Relevant kun når format=FIXED, men unødvendig dersom <ft_fixlength> (element 62) er oppgitt. Format: heltall. 
        <ft_fixlength>fast lengde for                   feltet</ft_fixlength>   0 eller 1 gang  Feltets lengde (i antall tegn) dersom denne er fast. Oppgis primært når format=FIXED. Da er det obligatorisk hvis ikke <endpos> (element 61) er oppgitt. Format: heltall.  Eventuelle ”paddetegn” i feltene regnes med. 
        <ft_minlength>feltets minimumslengde                 </ft_minlength>    0 eller 1 gang  Lengde (i antall tegn) for korteste verdi som forekommer i dette feltet. Oppgis primært når format=DELIM, men også relevant når format= FIXED, siden paddetegn ikke regnes med. Felt¬skilletegn regnes heller ikke med. Format: heltall. 
        <ft_maxlength>feltets maksimumslengde                 </ft_maxlength>   0 eller 1 gang  Lengde (i antall tegn) for lengste verdi som forekommer i dette feltet. Oppgis primært når format=DELIM, men også relevant når format= FIXED, siden paddetegn ikke regnes med. Felt¬skilletegn regnes heller ikke med. Format: heltall. 
erikaaberg commented 2 years ago

Eldre post. Antas å ikke lenger ha relevans.