Welkom! Forums Algemeen Bulk import foto’s voor verschillende objectrecords

Weergave van 10 reactie threads
  • Auteur
    Berichten
    • #7512
      Nienke Jelles
      Deelnemer

      Hoi allemaal,

      Ik wil een paar honderd foto’s in Adlib inlezen, verdeeld over tientallen objectrecords. Alle foto’s hebben als bestandsnaam het objectnummer, gevolgd door een letter en eventueel een cijfer, waarmee aangegeven wordt vanuit welke hoek de foto genomen is. bijv. “G2242-07r1.tif”.

      Nu heb ik begrepen dat het mogelijk is om in Adlib Designer een importjob aan te maken om alle foto’s in een Windows Verkenner map in één keer te importeren in Adlib, waarbij voor elke foto een individueel record in het multimedia dataset aangemaakt wordt.

      Ik heb Designer geopend, de locatie “Model application 4.5.2\data” aangewezen als “folder where files are located”, de import jobs manager geopend, een nieuwe import job gecreëerd, en de tabblad ‘general’ van de import job editor als volgt ingevuld:

      jobname: objectfoto’s
      description: [toelichting]
      Input file tipe: image directory
      source data file: F:\Collectie\Porselein2021\
      Folder (destination): G:\adlib\Model application 4.5.2\data
      Database: media
      Dataset: media

      Op het moment dat ik de job ‘run’, krijg ik echter de foutmelding “import error ‘0’, info: ‘Error opening of source file: 311 (DLL error): one or more DLL functions not found in adlibimg.dll. Windows error: 127.’”

      Nu lukte het inderdaad niet om via de drie puntjes achter het veld bij “source data file” in de editor te navigeren naar de map op onze interne server waar ik de foto’s hand neergezet. Ik heb het pad uiteindelijk gekopiëerd en direct in dit veld geplakt. Had voor de zekerheid geprobeerd om de afbeeldingen op verschillende plekken te zetten (mijn werkmap, gedeelde afdelingsmap, ‘image’ map in applicatiemappen van Adlib en de map op onze interne server waar we alle afbeeldingen bewaren die aan Adlib gekoppeld zijn (i.v.m. opslagruimte is de zaak ooit zo ingesteld dat dat niet binnen de applicatiemap zelf gebeurt)).

      Geen idee of het iets uitmaakt, maar het viel me op dat je volgens de documentatie van Axiell (
      http://documentation.axiell.com/alm/en/index.html?ds_eiefimagedirectory.html > kopje necessary files) twee bestanden in de applicatiemap moet hebben zitten (gdiplus.dll en adlibimg.dll). Die eerste kan ik onze applicatiemap niet vinden, al las ik in de Axiell ReleaseNotes 6.5.2 SP3_NL dat dit bestand mogelijk een beveiligingsrisico had, en daardoor soms verwijderd is?

      Heeft iemand misschien een idee wat ik verkeerd doe bij de selectie van de ‘source data file’ en het instellen van de import job?

      En/of heeft iemand misschien een handige manier om foto’s in bulk in Adlib in te lezen (elk met een eigen mediarecord) en aan een aantal verschillende objectrecords te koppelen? Ik was van plan om als het gelukt was de afbeeldingen in het media-dataset te krijgen, ze daar in pointerfieles te groeperen op objectnummer, en dan in de dataset COLLECT deze sets afbeeldingen op te roepen via het lint > zoekformulier > gereedschap > pointerfiles. Dat laatste werkte namelijk goed bij eerdere tests.

      Alvast heel erg bedankt voor alle hulp!

      Nienke

    • #7517
      Rolf
      Sleutelbeheerder

      Hoi Nienke,

      Gdiplus.dll heb ik ook niet in mijn executables mappen – dat zal het probleem niet zijn.
      Als je Source data file selecteert via de ... wil-ie een file zien. Een map snapt-ie niet. Je hebt de documentatie al gevonden, daar zie je ook workarounds: F:\Collectie\Porselein2021\*.tif of F:\Collectie\Porselein2021\*.* gewoon erin copy-pasten.

      Je aanpak kan wel, maar kost nog veel handwerk omdat je inderdaad objectrecords handmatig moet koppelen.

      Als je honderden foto’s moet koppelen, dan is het de moeite waard om een een adapl te maken die het objectnummer uit de foto-filenaam haalt. Daarvoor moet je exact weten welke vormen die bestandsnamen allemaal kunnen hebben. Wat je beschrijft:
      [objectnummer][precies 1 letter][optioneel precies 1 cijfer][punt][extensie]
      Klopt dit, altijd, overal?
      En wat is het tag van je media-veld (meestal FN)?

      Als ik dat weet kan ik wel een stukje code maken. Dat moet je wel zelf compileren, hoe dat moet vind je in de Designer docu.
      Die adapl koppel je aan je import job als Before storage adapl, en je vinkt Process Links aan.

      Pro tip: probeer het eerst uit in een testrecord met 1 foto, dan met 2. Doe dat over & over totdat het goed is.
      Pas op: als objectnummer niet klopt, krijg je een leeg objectrecord met het foute objectnummer.
      OK?

    • #7612
      Nienke Jelles
      Deelnemer

      Hoi Rolf,

      Ik ben er inmiddels achter waar het mis ging! Ik had verkeerd begrepen hoe het aanmaken van een import job in Designer werkte. In mijn .csv had ik het path naar de bestandslocatie op de server opgenomen i.p.v. de bestandsnamen, en de foto’s die ik wilde importeren stonden niet in de Adlib images map, maar in mijn werkmap elders op de server. Tja, dan werkt het natuurlijk niet!

      Met dank aan een handleiding van Shannon, flink wat ge-Google en tig-keer testen in onze testomgeving heb ik het uiteindelijk zo opgelost (mocht iemand in de toekomst tegen hetzelfde aanlopen):

      – In Excel een overzicht gemaakt met de kolommen 01 bestandsnaam 02 referentie_nummer [etc], opgeslagen als .csv
      – .csv document in de map Data van de applicatie gezet.
      – De afbeeldingen die ik wilde importeren in de Adlib images map gezet.
      – In designer
      — m’n CSV geselecteerd als source data file, dataset media als destination.
      — bij mapping de verschillende kolommen uit de .csv opgegeven als ‘destination field, met 01, 02, 03, etc. als source field. Deze op update option ‘append’ gezet.
      — Twee regels toegevoegd met source field ; destination field <FS> en source field 0xDA en destination field <RS> [Ik weet niet precies wat dit doet, dat had ik uit de handleiding van Shannon overgenomen.]
      — Run import job.
      – In Adlib
      — In het dataset Collect objectrecord oproepen, ‘wijzigen’
      — naar tabblad reproducties navigeren
      — een nieuwe occurence toevoegen (want anders overschrijft ‘ie wat er in de eerste (geselecteerde) occurence staat)
      — in het lint bij gereedschappen ‘lijst’ kiezen.
      — Objectnummer zoeken met een *, enter, alle relevante media-records selecteren in het venster dat zich achter je zoekveld opent, enter, opslaan. [Hier moet je alleen opletten dat er maar een beperkt aantal resultaten getoond worden, dus het kan zijn dat je dit een aantal keer moet doen, en steeds in het “toon data voor het veld ‘referentie'” scherm op de pijltjes aan de linkerkant naar een volgend set media-records moet gaan.]

      Groetjes,
      Nienke

      p.s. Had ook reactie van Axiell gekregen, de documentatie die ik gevonden had was ongeveer 10 jaar oud, en dus niet meer relevant (maar ik kon geen nieuwere versie vinden?)

    • #7615
      Rolf
      Sleutelbeheerder

      Hoi Nienke, mooi dat het gelukt is, gefeliciteerd!

      Twee dingen:

      1.

      source field ; destination field en source field 0xDA en destination field [Ik weet niet precies wat dit doet, dat had ik uit de handleiding van Shannon overgenomen.]

      <FS> staat voor Field Separator dus veldscheidingsteken, hieraan ziet de import waar, op elke regel, het ene veld eindigt en het andere begint. <RS> is Record Separator, is hier een harde return (Carriage Return + Line Feed, denk aan een ouderwetse typmachine, wagen terug + nieuwe regel), hieraan ziet de import waar het einde van het record is en (eventueel) een nieuw record begint.

      2. Als je dit vaker moet doen, is het nog wel te stroomlijnen. Een workshop, zou dat wat wezen?

      Groetjes
      Rolf

    • #7616
      Nienke Jelles
      Deelnemer

      Hoi Rolf,

      Dank je wel! En ja, een workshop zou natuurlijk geweldig zijn 🙂

      Groetjes,
      Nienke

    • #7653
      Arno van Os
      Deelnemer

      Beste Rolf en Nienke,

      Ik lees een vrij bewerkelijke wijze om afbeeldingen te importeren. Ik gebruik hier al jaren de manier waarbij de bestandsnamen van de afbeeldingen zelf worden gebruikt om de import te regelen, zonder .csv-bestand. Er worden hier verschillende importjobs gebruikt voor verschillende soorten afbeeldingen. Deze manier kent maar een paar stappen:

      – Zorg ervoor dat de afbeeldingen de juiste (unieke) namen hebben, die zijn afgeleid van de betreffende objectnummers.
      – Zet deze afbeeldingen in een aparte import-map
      – Open Designer en run de gewenste import-job
      – Bij fouten (verkeerde of niet unieke bestandsnamen) maakt Designer een foutrapport
      – Verplaats de correct geïmporteerde bestanden naar de ‘normale’ imagesmap
      – Hernoem eventueel de foute bestanden en draai de import nogmaals, waarna ook deze bestanden kunnen worden verplaatst
      – Voor alle afbeeldingen zijn nu records aangemaakt, die zijn gekoppeld aan de betreffende objecten

      In de betreffende import-adapls kunnen naar believen velden met inhoud worden toegevoegd.

      Op deze manier kun je elke keer als je meer foto’s tegelijk wilt koppelen dit heel eenvoudig doen. Ik denk dat Rolf ook deze manier van koppelen mbv importadapls bedoelt en het lijkt me een aanrader om deze manier te (laten) installeren.

      Groetjes,
      Arno van Os

    • #8877
      Hennie
      Deelnemer

      Deze manier van “vanzelf” beeldbestanden koppelen kende ik nog niet. Werkt dit ook wanneer de bestandsnaam en objectnummer niet helemaal overeenkomen? Wij hebben b.v. punten in objectnummers en die zijn vervangen door een underscore in de bestandsnamen. En die bestandsnamen kunnen ook achtervoegsels hebben. En heb je bij deze manier van importeren altijd een adapl nodig (om evt. bovenstaande dingen aan te passen)?

    • #8878
      Rolf
      Sleutelbeheerder

      Foto-import mbv Designer (import type image directory) leest één voor één bestandsnamen in een map. Dit importtype ziet 1 bestandsnaam ahw als 1 te importeren record. Die bestandsnaam moet je mappen naar een (tijdelijke) tag.

      Met die import kun je een adapl laten meelopen. Die kan (o.a.) het objectnummer uit de bestandsnaam halen, mits die bestandsnaam altijd maar eenduidig en consequent is. Stel dat je hebt als bestandsnaam blabla123_01.jpg, dan is het een vrij koud kunstje om dat om te vormen in blabla123.01. Maar die adapl kan meer.

      • waarschuwen als er geen objectrecord voor het plaatje is
      • het plaatje als bovenste of onderste occurrence in het objectrecord invoegen, of de plaatjes in het objectrecord sorteren.
      • nagaan of er al een plaatje met die naam in Photo (of Media) is, en dat al dan niet overschrijven.

      Kortom, met een adapl heb je veel meer controle.

      Maar de Collections csv-import is ook een goede optie. De vertaalslag van bestandsnaam naar objectnummer kun je vrij eenvoudig doen met OpenRefine. Daarna is het raadzaam om na te gaan of alle objectnummers die je op die manier gevonden hebt, ook daadwerkelijk allemaal bestaan in de catalogus. Meestal zitten er wel wat missers tussen.

      Als dat op orde is,  kun je een csv importeren in Media. Als je het objectnummer meeneemt, en uitsluitend nieuwe media-records aanmaakt, overschrijft je import de eerste occurrence van gekoppeld object (if any). Ik weet niet uit mijn hoofd hoe het uitpakt met de volgorde van de plaatjes in het objectrecord, dat is vaak een kwestie van uitproberen (met 2 of 3 plaatjes).

      Is dit te volgen en ook enigszins antwoord op de vraag?

      • Deze reactie is gewijzigd 7 maanden geleden door Rolf.
    • #8938
      Ger Scholte
      Deelnemer

      Hallo Rolf,

      wij werken met Axiell Collections Cloud Services. Importeren van data gaat daarin prima met de import-optie. De Collections csv-import van afbeeldingen lukt niet. Alles wat je in het veld reproductie_referentie   wil stoppen, wordt als tekst letterlijk overgenomen, maar uploaden van de afbeeldingen gebeurt niet. Is daar een oplossing voor?

      Ger Scholte

       

    • #8951
      Rolf
      Sleutelbeheerder

      Hallo Ger,

      Of en hoe je afbeeldingen in bulk kunt importeren in Collections hangt van een aantal zaken af.

      Kun je direct of via Extern Bureaublad bij de mappenstructuur van Collections en bij Axiell Designer? Dan kun je in principe importeren zoals hierboven beschreven.

      Als je gebruik maakt van Axiell hosting en geen licentie hebt waar het gebruik van Axiell Designer bij is inbegrepen, dan heb je die toegang niet.

      In dat geval kan Axiell zulke imports voor je doen, tegen een zeker tarief. Als je eenmalig duizenden foto’s te koppelen hebt, kan dit een oplossing zijn.

      Er is daarnaast al langer sprake van een plugin voor dit soort zaken, die heet Axiell Ingester. Ik weet niet wat de status is (of Axiell het inmiddels levert). Het is bedoeld voor organisaties die herhaaldelijk duizenden foto’s willen koppelen. Die hebben meestal een licentie met Designer erbij in, dus die kunnen zelf zo’n functie maken, of laten maken.

      Bij mijn weten zijn er nog geen goedkopere alternatieven. Misschien weten anderen meer?

    • #8952
      Ger Scholte
      Deelnemer

      Hallo Rolf,

      Axiell Collections Cloud services is de goedkoopste optie. Een lokale Axiell ter vervanging van Adlib was iet mogelijk, helaas. De database staat in de cloud en je hebt geen inzicht in de mappenstructuur. Designer zit er niet bij en daar heb je ook weinig aan. Ik vrees dat er niets anders op zit dan gewoon elke afbeelding een voor een uploaden.

      Ger

Weergave van 10 reactie threads
  • Je moet ingelogd zijn om een antwoord op dit onderwerp te kunnen geven.
Scroll naar boven