Bulk import foto’s voor verschillende objectrecords

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

Weergave van 5 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 Blijleven
      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 Blijleven
      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

Weergave van 5 reactie threads
  • Je moet ingelogd zijn om een antwoord op dit onderwerp te kunnen geven.