Fra det jeg klarer å se så blir ikke den koden gitt muligheten til å filtrere bort dokumentobjektene.
nikita oppretter dokumentobjekt lenkene for et dokumentbeskrivelse ved serialisering i
src/main/java/app/webapp/payload/builder/noark5/DocumentDescriptionLinksBuilder:136
@Override public void addDocumentObject(ISystemId entity, ILinksNoarkObject linksNoarkObject) { --> List<DocumentObject> documentObjects = ((DocumentDescription) entity).getReferenceDocumentObject(); if (! documentObjects.isEmpty()) { linksNoarkObject.addLink(entity, new Link(getOutgoingAddress() + HREF_BASE_DOCUMENT_DESCRIPTION + SLASH + entity.getSystemIdAsString() + SLASH + DOCUMENT_OBJECT, REL_FONDS_STRUCTURE_DOCUMENT_OBJECT, false)); } }
Linjen markert --> brukes for å sjekke om dokumentbeskrivelsen inneholder dokumentobjekter. Dersom du har 2 dokumentobjekter, en der originalFilename == "" og en der originalFilename == null, så vil lenken fra dokumentbeskrivelse til dokumentobjekt skrives ut i nyttelasten.
Lenken som blir produsert er
https://n5.example.com/api/arkivstruktur/dokumentbeskrivelse/9ee41886-bc55-1...
Denne lenken vil da hente alle dokumentobjekter uansett om originalFilename == null fordi det hentes ut her:
I src/main/java/app/domain/noark5/DocumentDescriptionService.java:283 er følgende kode
@Override public DocumentObjectLinks findAllDocumentObjectWithDocumentDescriptionBySystemId( @NotNull final UUID systemId) { getDocumentDescriptionOrThrow(systemId); return (DocumentObjectLinks) processODataQueryGet(); }
Slik det er nå så produserer koden en riktig svar gitt logikken, men det er et annet logikk som er ønsket.
Jeg tror det har vært tenkt at vi har et behov for å kunne legge til serverside OData tillegg, men at vi har aldri tatt det i bruk. Jeg ser i src/main/java/app/service/noark5/odata/ODataService:138;
public LinksNoarkObject processODataQueryGet(String odataAppend)
at det kanskje er mulig å legge til kriteria for søk "$filter=originalFilename ne null"
feks return (DocumentObjectLinks) processODataQueryGet("$filter=originalFilename ne null");
Thomas
________________________________ Fra: Petter Reinholdtsen pere@hungry.com Sendt: fredag 28. februar 2025 10:19 Til: nikita-noark@nuug.no nikita-noark@nuug.no Emne: Re: Problem med import-email etterlater Nikita i ugyldig tilstand
[Petter Reinholdtsen]
Det som utløser feilen er lav opplastingsgrense i nginx, som fikses med "client_max_body_size 20M;" i oppsettet av nginx. For å unngå at det vises frem ufullstendige dokumentobjekt-instanser til Nikita-klienter foreslår jeg endringen beskrevet i <URL: https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com...https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pull/317 >.
Hm, så vidt jeg kan se fra koden i Nikita, så er det meningen at dette skal være implementert oppførsel. I src/main/java/app/domain/noark5/DocumentDescription.java linje 382 står følgende:
public List<DocumentObject> getReferenceDocumentObject() { /* Filter out incomplete DocumentObject entries, and only * return those with a uploaded file. Include entries are * only available for the one creating it to avoid Noark 5 * breaking hiearcies. */ List<DocumentObject> documentObjects = new ArrayList<DocumentObject>(); for (DocumentObject documentObject : referenceDocumentObject) { if (null != documentObject.getOriginalFilename()) { documentObjects.add(documentObject); } } return documentObjects; }
Men av en eller annen grunn returnerer listen over underliggende dokumentobjekter også de uten filer. Hva går galt her?
-- Vennlig hilsen Petter Reinholdtsen _______________________________________________ nikita-noark mailing list -- nikita-noark@nuug.no To unsubscribe send an email to nikita-noark-leave@nuug.no