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-11ed-9ca7-e7af3ac784aa/dokumentobjekt

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%2Farkivverket%2Fnoark5-tjenestegrensesnitt-standard%2Fpull%2F317&data=05%7C02%7Ctsodring%40oslomet.no%7C01aa776eaa804b3075d508dd57d92093%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638763312270367631%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C60000%7C%7C%7C&sdata=Z1Y%2FXALT%2BnnSEjHmMzhta9gfbI%2FCAIlNpAJ8KRUF%2Bh4%3D&reserved=0 >.

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