Project

General

Profile

Bug #1455

FBS integration. Reservering af årbog fejler

Added by Gitte Barlach about 4 years ago. Updated over 2 years ago.

Status:
Resolved
Priority:
High
Assignee:
Estimated time:
URL med eksempel:
Kategorier:
Integration - FBS

Description

Reservering fejler når jeg vil reservere en årbog. Jeg får fejlen: "An error occurred while reserving item. Please try again later." når jeg f.eks. vil reservere "Guinness world records" fra 2014 eller 2013 eller et af de andre år.
https://upgrade-fbs.ddbcms.dk/ting/object/870970-basis%3A49298331

Sagen er oprettet hos Systematic, og da de skulle bruge nogle log-data, kiggede Christian fra DBC lidt på den. Han skriver:

Det her er alt hvad jeg kan pine ud af loggen:

ddbwww-p02: Oct 6 10:50:41 https://vanilla-fbs.ddbcms.dk|1444121441|ding_reserv
ation|193.33.148.5|https://vanilla-fbs.ddbcms.dk/ting/object/870970-basis%3A4929
8331/reserve/fbs-%3A2014%3A%3A49298331/2014/|https://vanilla-fbs.ddbcms.dk/tin
g/object/870970-basis%3A49298331|6||Error while reserving, message: @message

Så nej, det ser ikke ud til at provideren logger noget brugbart…



Og så var det alligevel lidt brugbart. I alma har den korresponderende reservationsurl et /0 tilsidst:I alma har den korresponderende reservationsurl et /0 tilsidst:
https://vanilla-alma.ddbcms.dk/ting/object/870970-basis%3A49298331/reserve/49298331ZXZXZX2014ZXZX/2014/0

Og for sjovs skyld prøvede jeg at klistre et 0 efter fbs-url’en, så den blev som nedenfor:
https://vanilla-fbs.ddbcms.dk/ting/object/870970-basis%3A49298331/reserve/fbs-%3A2014%3A%3A49298331/2014/0

Og så strøg reservationen lige igennem. Så noget kunne tyde på at det er provideren som har problemet og ikke systematic


Related issues

Related to DDB CMS - Bug #2530: Problemer med reservering af tidsskrifterResolved (tag version)

History

#1 Updated by Thomas Hansen about 4 years ago

  • Status changed from Ready for development to Needs code review
  • Assignee changed from Thomas Hansen to Jesper Kristensen

Fixed. ding_periodical er lidt picky.

https://github.com/ding2/fbs/pull/7

#2 Updated by Rolf Madsen about 4 years ago

  • Target version set to DDB CMS - Analyse og prioritering udestår

#4 Updated by Jesper Kristensen over 3 years ago

  • Status changed from Needs code review to Need more info
  • Assignee changed from Jesper Kristensen to Gitte Barlach
  • Kategorier Integration - FBS added

Det ser ud til at indhold noget gamlet WAYF support og det ser ikke ud til at der hvor PR kommer fra findes mere på github.

Er tiden løbet fra dette PR?

#6 Updated by Rolf Madsen over 3 years ago

  • Assignee changed from Thomas Hansen to Jesper Kristensen

#7 Updated by Rolf Madsen over 3 years ago

  • Assignee deleted (Jesper Kristensen)
  • Priority changed from Normal to High
  • Target version changed from DDB CMS - Analyse og prioritering udestår to DDB CMS 2017 1. opgradering (7.x-4.0.2)

#8 Updated by Rolf Madsen about 3 years ago

  • Target version changed from DDB CMS 2017 1. opgradering (7.x-4.0.2) to DDB CMS 2017 1. opgradering (DBC sprintbacklog)

#9 Updated by Rolf Madsen about 3 years ago

  • Target version changed from DDB CMS 2017 1. opgradering (DBC sprintbacklog) to DDB CMS 2017 1. opgradering (Reload sprintbacklog)

#10 Updated by Thomas Hansen about 3 years ago

  • Status changed from Need more info to Needs code review

Har lavet nyt PR mod Ding: https://github.com/ding2/ding2/pull/353

Som bonus sørger den også for at bruge displayText fra FBS, hvis den er sat.

#11 Updated by Gitte Barlach about 3 years ago

  • Assignee set to Jørgen Nielsen

#12 Updated by Jørgen Nielsen about 3 years ago

  • Status changed from Needs code review to Reviewed
  • Assignee changed from Jørgen Nielsen to Gitte Barlach

reviewet og godkendt

#13 Updated by Steen Larsen almost 3 years ago

Lidt supplerende info om reservering

Jeg har kigget på hvordan reservering foretages direkte og kiggede også i den forbindelse på den foreslåede løsning i denne sag.

Jeg kan ikke gennemskue om brug af 0 i løsningen også giver udslag i hvad der sendes til FBS-API? Det vil i hvertfald give en forskel så det sker nok ikke.

Når man henter periodicals-beholdningerne så kan man f.eks. få følgende værdier for forskellige faust/materialer
For hvert materiale har jeg vist de værdier (pseudokode) der giver en succes-fuld reservering til FBS-API

Læg mærke til at der er forskel på null og "" (tom streng) dvs null, "" eller 0 kan ikke erstatte hinanden
0 optræder i praksis ikke som volume/volumeNumber mens "" måske kun optræder når man (jeg) retter feltet, hvilket måske kun sker når man forsøger at teste tomme felter!

Eksempel 1:

"materials" : [ {
  "itemNumber" : "3841261967",
  "materialGroupName" : "standard",
  "available" : true,
  "periodical" : {
    "volume" : null,
    "volumeYear" : "2013",
    "displayText" : "Nr. , år 2013",
    "volumeNumber" : null
  }
}
Reservering (2 muligheder):
{ recordId =>  '49233515',  periodical => { volume => null , volumeYear => '2013',  volumeNumber => null } } 
{ recordId =>  '49233515',  periodical => { volumeYear => '2013' } } 

Eksempel 2:

"materials" : [ {
  "itemNumber" : "5043756429",
  "materialGroupName" : "uindb",
  "available" : true,
  "periodical" : {
    "volume" : "Vol. 48",
    "volumeYear" : "2015",
    "displayText" : "Vol. Vol. 48 Nr. Nr. 1-2 År 2015",
    "volumeNumber" : "Nr. 1-2"
  }
} 

Reservering: 
{ recordId =>  '49401108',  periodical => { volume => 'Vol. 48' , volumeYear => '2015',  volumeNumber => 'Nr. 1-2' } }    

Eksempel 3:

"materials" : [ {
  "itemNumber" : "3845700957",
  "materialGroupName" : "standard",
  "available" : false,
  "periodical" : {
    "volume" : "",
    "volumeYear" : "2009",
    "displayText" : "Nr. , år 2009",
    "volumeNumber" : ""
  }
}

Reservering 
{ recordId =>  '49233515',  periodical => { volume => "" , volumeYear => '2009',  volumeNumber => "" } } 

#14 Updated by Kasper Garnæs over 2 years ago

  • Status changed from Reviewed to Technical test

Merged.

#15 Updated by Gitte Barlach over 2 years ago

Testet på upgrade-fbs . release-branch 17-1

Reservering af årbog fejler fortsat. Har f.eks. prøvet at reservere "Guinness world records. Årgang 2012"
jeg får fejlen "Unknown error from library system while attempting to reserve."

#16 Updated by Martin Cording over 2 years ago

  • Target version changed from DDB CMS 2017 1. opgradering (Reload sprintbacklog) to Release 27 - Bugfixes (Inlead)

#17 Updated by Simon Holt over 2 years ago

Jeg er ved at kigge på den her sammen med http://platform.dandigbib.org/issues/2530

#18 Updated by Simon Holt over 2 years ago

Jeg er ikke klar med noget PR endnu, men kan se det fiks som Thomas har lavet kun virker ved reserveringsknapper under "Årgang og numre".

Som vi kender fra problematikken i #1460 har nogle årbøger ikke den udfoldende struktur, men kræver en almindelig reserveringsknap. Har bliver informationen om at årbogen er periodical tabt og den prøver at lave reservation med PeriodicalReservation sat til null.

Så når linket til reserveringsknappen genereres, skal vi på en eller anden måde have informationen med ligesom den er med ved links under "Årgang og numre"

#19 Updated by Simon Holt over 2 years ago

Er kommet lidt videre med denne her.

Jeg har testet lidt med denne årbog: http://vejlebib.dk/ting/object/870970-basis%3A51353374, som er et af de tilfælde, hvor de forskellige udgaver er lavet som en enkelt post. De eksempel Gitte er kommet med "Guinness world records" er det ikke enkelt post og reservationen skal foretages under "Årgang og numre" (se #1460 for mere info om dette). Reservation ser ud til at fejle i begge tilfælde.

Da hver udgave er en enkel post, har jeg indstillet den skal have reserverknap under admin/config/ting/reservable.

Og har indstillet der skal vises holdings under admin/config/ting/holdings.

Men der kommer ingen holdings fordi der er et 'å' i årbog og der bruges ikke multibyte version af strtolower, når der sammenlignes. Så ved at rette dette, kan vi i det mindste få vist opstillingerne for årbøger som enkelt poster.

Jeg skrev tidligere at informationen om at årbogen er periodical går tabt, når det er en enkelt post. Men for http://vejlebib.dk/ting/object/870970-basis%3A51353374 viser det sig faktisk, at FBS siger den ikke er periodical, når der hentes holdings:

Her er hvad den returnerer for de to materialer vi har på ovenstående post:
itemNumber = (string) 5052480614
periodical =
available = (bool) 1
materialGroupName = (string) 31

itemNumber = (string) 5052480622
periodical =
available = (bool) 1
materialGroupName = (string) 31

#20 Updated by Simon Holt over 2 years ago

Har kigget på posten i Cicero og selv om det er en årbog og fælleskabspost, er der ikke indtastet noget under Nummer, Volumen eller år. Det er nok derfor, den returnerer null ved periodical.

Jeg har verificeret at materialerne er i den korrekte materialegruppe og bør kunne reserveres.

Lige meget hvad jeg prøver, får jeg alligevel altid "not_reservable" eller "no_reservable_materials" svar tilbage fra FBS API afhængig af hvad jeg sender med af periodical information. Har prøvet de forskellige kombinationer som Steen omtaler i #note-13 (fandt informationer om volumeYear i marc-posten som jeg brugte).

Så det lader til, der måske er en fejl i FBS API'et og at den ikke håndtere reservation af årbøger som enkelt poster korrekt. Den burde jo bare håndtere det som reservation af en "almindelig" post, men det ser altså ud til, at der foregår et eller andet underligt her.

Vil prøve at teste med nogle flere årbøger som enkelt poster og nogle som PIF-poster.

#21 Updated by Simon Holt over 2 years ago

Har testet med to årbøger lavet som PIF-poster (jeg linker godt nok til vores egen side her, men de er testet lokalt i en DDB CMS med nyt design).

I begge tilfælde kan jeg uden problemer reservere de forskellige udgaver under "Årgang og numre":

"IPR, ophavsret og industrielle rettigheder": https://vejlebib.dk/ting/object/763000-katalog%3A49293054
Følgende sendes til FBS API ved reservation:
periodical->volume = (string) 3
periodical->volumeYear = (string) 2001
periodical->volumeNumber =

"Guinness world records": https://vejlebib.dk/ting/object/763000-katalog%3A49298331
Følgende sendes til FBS API ved reservation:
periodical->volume =
periodical->volumeYear = (string) 2005
periodical->volumeNumber =

Jeg ved ikke om det er Thomas' PR der har fikset dette, men det ser altså ud til at spille for PIF-poster ved reservation under "Årgang og numre" nu. Der kan selvfølgelig være nogle tilfælde, hvor det fejler (både for tidskrifter og årbøger). Det er måske et af disse, der er rapporteret i den anden sag om tidskrifter her: http://platform.dandigbib.org/issues/2530.

Så det lader til det største problem lige nu er reservation af årbøger som enkelt poster. FBS burde vel egentlig bare håndtere disse som normale enkelte poster, men der ser altså ud til at være et eller andet specielt med dem alligevel og det er måske det, der driller her.

#22 Updated by Simon Holt over 2 years ago

Har spurgt Systematic support om de kan kaste lys over sagen. Sagsnummer: "Dit Incident er oprettet. Dit Incident ID er 46634."

#23 Updated by Simon Holt over 2 years ago

Har nu fået svar fra Systematic og det ser desværre ikke for godt ud (i hvert fald ikke for os). Muligvis er det ikke det store problem for andre biblioteker. Tror det afhænger af hvordan man katalogiserer.

Vi har 1807 poster af typen årbog. Mange af disse er ikke lavet som en PIF-post men som en årgangspost/enkeltpost (eller hvad man nu skal kalde det). Det har været normal praksis for os, at vi ikke angiver årgang på de tilhørende materialer i dette tilfælde. Har spurgt min kollega, Ulla Kolind Dalager, der arbejder med katalogisering og hun siger:

"Beholdning på årgangsposter tilføjes ikke årstal, da årstal fremgår af den bibliografiske post – til forskel fra en PIF-post."

Systematic svarer, at det der afgør, om der skal periodica-oplysninger med ved reservation, ikke har noget at gøre med post-typen, men om det er angivet i felt 008*t, at det er et periodikum. I det tilfælde er der simpelthen en regel i systemet, der forhindrer reservation med mindre man angiver eksempelvis årgang.

Så det vil sige, at alle vores årbøger som enkeltposter fejler og kan lige nu ikke reserveres. Jeg ved ikke hvordan det står til for andre biblioteker, men har prøvet et par stykker aakb.dk og de ser ud til at være præget af samme problem - i hvert fald for de poster jeg lige testede.

De stiller to løsningsforslag:
1. Angiv 'År' på materialerne under 'Periodikaoplysninger'.
2. Lav en påhængspost, som angiver at disse poster ikke er periodikum (hvis DBC's valideringsregler tillader det).

Uanset hvad bliver det jo et kæmpe arbejde for os.

Jeg har prøvet at angive årgang i Cicero klienten på et af materialerne vi har på denne her: https://vejlebib.dk/ting/object/870970-basis%3A52665817. Og som man kan se, kommer der med det samme en "Årgang og numre" op. I min lokale installation, med Thomas' fiks fra denne sag, kan jeg nu godt reservere denne årbog via den nye reservationsknap under "Årgang og numre". Så man kan sige, at en fordel ved at bruge løsningsforslag 1. er at alle årbøger nu får "Årgang og numre" og problemstillingen i disse sager bliver urelevant: #1460 og #2553.

Men det ændrer jo ikke på at det bliver et stort arbejde for os at rette og muligvis endnu større for andre biblioteker. Så jeg har faktisk spurgt dem, om de ikke vil overveje et 3. løsningsforslag:

3. I fikser den regel som forhindrer, at der laves en reservering direkte på den bibliografiske post, når der er tale om en periodika-post, der ikke er lavet som en PIF-post.

Ved selvfølgelig ikke om det overhovedet kan lade sig gøre, men synes det var værd at afsøge muligheden. Biblioteker, der ikke ønsker forskel på årbøger-poster og som vil have "Årgang og numre" på dem alle, kan jo stadig opdatere årgang på materialerne til deres årbogs-poster ved siden af denne rettelse.

Angående årbøger lavet som PIF-poster med reservationsknapper under "Årgang og numre"
@Gitte er ikke helt klar over, om det var dem du havde problemer med, men har efterhånden testet en del og det lader til jeg kan reservere dem alle uden problemer. I det tilfælde hvor jeg fik en fejl, viste det sig at være korrekt, da materialer var placeret i en materialegruppe der ikke kunne reserveres, fordi det var det nyeste nummer.
Jeg har testet med Thomas' PR, men kan muligvis også være Systematic har lavet en rettelse i FBS API'et.

En lille opdatering her sidst på dagen:
Har eksperimenteret lidt med, hvordan vi kan finde de årbøger der skal rettes. Observerede at ved årbøger som enkeltposter, var årstallet ofte en del af titlen. Så prøvede med følgende søgning i Cicero:

facet.type=årbog and term.title any "19* 20*"

Det giver 260 resultater og langt de fleste jeg prøvede var årbøger der skulle rettes.

#24 Updated by Simon Holt over 2 years ago

Opsummering og konklusion på ovenstående analyse

Denne her sag startede med et eksempel, hvor man ikke kunne reservere en årbog lavet som en PIF-post (Dem med "Årgang og numre"). Det viser sig at være et mere generelt problem i det tilfælde, som ikke kun gælder for årbøger men også andre periodikum som tidsskrifter. Thomas' PR i denne sag ser ud til at fikse mange af dem, men der kan stadig gemme sig nogle problemer, hvis periodika oplysninger ikke er angivet korrekt i Cicero. Jeg foreslår, vi tager denne problematik i den anden sag #2530, der mere generelt omhandler problemer med reservation af tidskrifter under "Årgang og numre".

Jeg har fundet et andet tilfælde, hvor reservation af årbøger altid ser ud til at fejle: når de ikke er lavet som en PIF-post, men hver årgang er lavet som en separat post. Jeg har kaldet dette en enkeltpost eller årgangspost i ovenstående. Det der er gældende ved disse tilfælde er, at årgangen er angivet i den bibliografiske post. Det har derfor været normal praksis (i hvert fald ved os), at man ikke angiver årgangen i den tilhørende beholdning. Dette kommer til udtryk i DDB CMS ved, at der ikke kommer nogen "Årgang og numre". Denne sag her #1460 omhandler denne problematik.

Systematic fortæller, at der en regel i systemet, der forhindrer direkte reservation af poster markeret som periodikum i felt 008*t. Her skal man altid sende periodica oplysninger fra behold. Hvis der ikke er nogen, ved DDB CMS ikke hvad den skal sende med reservation:

Så hvis man ikke har årgang i beholdning på de årbøger, der laves som separate poster, kan disse ikke reserveres på nogen måde via FBS API'et.

Jeg har spurgt Systematic om de vil se på muligheden for at ændre den regel, der forhindrer reservation. En mulighed kunne måske være at se på, om der er periodica oplysninger i den bibliografisk post. Men det er sikkert kompliceret at lave, så tror ikke det er noget vi skal sætte næsen op efter i den nærmeste fremtid.

Vi har derfor på Vejle Bibliotek besluttet, at vi vil kigge alle vores årbogs-poster igennem og rette dem der mangler periodica-oplysninger i behold. Vi har over 1800, så det kan blive et stort arbejde, men er ved at se om jeg på en eller anden måde kan søge mig frem til dem. Jeg opdatere sagen her, hvis jeg finder ud af noget.

Når man har gennemført denne rettelse vil alle årbøger få en "Årgang og numre" og vi kan derfor behandle dem ens og slå reservationsknappen helt fra under admin/config/ting/reservable.

#25 Updated by Rolf Madsen over 2 years ago

  • Assignee changed from Martin Cording to Simon Holt

Stort arbejde, og tak for det Simon!

Læser jeg det korrekt at vi skal have lavet et code reivew af Thomas' PR, og yderligere rettelser skal ske i FBS?

#26 Updated by Steen Larsen over 2 years ago

Du kan jo ganske rigtig fylde noget i årgang/volumen/år for at få disse poster til at opføre sig så det faktisk er muligt at reservere via FBS API. Felterne er krævede felter i FBS så hvis man redigerer materialet af andre årsager så skal de (mindst ét felt) udfyldes.

En alternativ vej (men nok ikke den hurtigste) er at registrere dem på en anden post (som jeg ikke kan huske hvad kaldes) istedet for årgangsposterne.

Eksempel med Guinness world records:

Søgningen nr=1602-687X giver en række poster som alle af typen årbog. De fleste er bindposter hvor titlerne indeholder [Årgang] med et årstal. Én er ikke en bindpost men har kun titlen - det er 49298331

I Aarhus havde vi beholdning på 3 af disse bindposter mens resten af materialerne var registreret på 49298331

Vha FBS Cicero og funktionen til at ændre faustnummer er disse materialer nu flyttet til 49298331 og de enkelte materialer har fået udfyldt den resp. årgang, og så skulle det jo virke som sædvanlige årbøger.

Bemærk dog at denne funktion endnu ikke kan flytte materialer til en post hvor faustnummer starter med 0 (fejlen er indberettet) så oprydning i "Børnenes rekordbog" (07145756) må vente.

#27 Updated by Simon Holt over 2 years ago

@Rolf
Tak for det! Det er noget kompliceret noget og har vist været ude hvor jeg ikke kan bunde. Beklager hvis det har været svært at følge den mur af tekst.

Mht. til Thomas' PR så er det blevet merget tilbage i maj. Jeg kan godt se på aakb.dk at de stadig har problemer med Guinness world records som Gitte nævner i note-15. Det har vi også på vejlebib.dk, men vi havde ikke ændringerne med fra Thomas' PR og da jeg testede med dem kunne jeg godt reservere denne årbog. Så går ud fra de ændringerne heller ikke er med på aakb.dk.

Uanset hvad ser det ud til at være et mere generelt problem med tidsskrifter og jeg foreslår vi tager den i #2530 og lader denne sag omhandle problemer med reservering af årbøger. Der ser ud til at være et specifikt problem med dem (se også #1460), som vi (vejle) er ramt af i betydelig omfang. Hvor slemt det er for andre biblioteker, er jeg ikke klar over, men som #1460 vidner om er det i hvert fald ikke kun os.

@Steen
> Du kan jo ganske rigtig fylde noget i årgang/volumen/år for at få disse poster til at opføre sig så det faktisk er muligt at reservere via FBS API
Ja, det fandt jeg også ud af. Problemet er at vi har 1800 årbogs poster og mange af dem jeg har tjekket manuelt mangler periodica oplysninger ved materialerne. Der er vist ikke nogen nem måde at finde dem på. Ifølge min kollega har det været normal praksis ikke at angive det, når årstallet fremgår af den bibliografiske post.

#28 Updated by Rolf Madsen over 2 years ago

Lige for at få det bøjet helt i neon ...

Den korrekte status er så Needs code review, så Core team kan godkende Thomas PR, så vi kan sikre at koden er blevet tilføjet korrekt til kodebasen?

#29 Updated by Steen Larsen over 2 years ago

Uanset om posten flyttes (som jeg har beskrevet) eller ikke (som du har beskrevet) så skal man ind på det enkelte materiale og indsætte årgang. Og det skal gøres for de enkelte materialer. Man kan ikke masserette.
Jeg vil tro at rækkefølgen er ligegyldig - at du kan indsætte årstallet først og derefter flytte materialerne til den rigtige post.
Der må være tilfælde hvor der ikke er en enkeltstående post og hvor der kun er bindposter og så kan man selvfølgelig ikke flytte noget.

Jeg har ryddet op i "Guinness rekordbog" mht bindposterne.
Man kan dog stadig ikke reservere 2012 via ddbcms som Gitte nævner ovenfor men det skyldes problemet med at ddecms ikke håndterer null/"" korrekt.
Reservering direkte via FBS API er mulig.

Reservering af bindposterne via FBS API var nemlig ikke mulig - på trods af hvad der står i dokumentationen om FBS API:
"When making a reservation of a periodical, the values to put in the PeriodicalReservation structure can be obtained from the periodical information retrieved with the Catalog service."
Og det er ikke korrekt når årgang/volumen/nr er tomme.

#30 Updated by Simon Holt over 2 years ago

PR'et er blevet reviewet, godkendt og merget ind i kodebasen (master branch) den 15. maj. Det ville være rart at få afklaret om dem, der stadig rapporterer om problemer ved reservation af tidsskrift rent faktisk har rettelserne med. Hvis de har dem med og der stadig er problemer, synes jeg vi skal tage den i #2530. Hvis ikke, er der sikkert ikke nogle problemer, så snart de får dem med.

Det er godt spørgsmål hvad den korrekte status for denne sag er. Ser umiddelbart to muligheder:

1. Vi kan vælge at gå efter at få tilpasset reglen i FBS, der lige nu giver problemer ved reservation af årbøger. Der skal formuleres et ændringsforslag til Kombit.
2. Vi kan vælge at betragte som resolved og bede biblioteker selv rette til i Cicero klienten.

#31 Updated by Simon Holt over 2 years ago

> Man kan dog stadig ikke reservere 2012 via ddbcms som Gitte nævner ovenfor men det skyldes problemet med at ddecms ikke håndterer null/"" korrekt.

Det er bl.a. en af disse situationer, som jeg tror Thomas' PR fikser (https://github.com/ding2/ding2/pull/353/files)

#32 Updated by Rolf Madsen over 2 years ago

  • Status changed from Reviewed - Needs info/rework to Resolved

OK, så i kraft af Kaspers besked på Github:

kasperg merged commit 63ed37f into ding2:master  on 15 May

Så sætter jeg status til resolved.

#33 Updated by Lotte Tøstesen over 2 years ago

Kan I lave en pædagogisk beskrivelse af, hvad det er bibliotekerne skal rette i posterne, så man kan få lov at reservere årbøgerne??

#34 Updated by Simon Holt over 2 years ago

@lotte den bedste, men dog ikke helt skudsikre, måde at finde dem på lige nu er ved at lave følgende søgning i Cicero klienten:

facet.type=årbog and term.title any "19* 20*"

Du klikker på posterne og herefter på fanen "Eksemplarer". Hvis der er tomme linjer her uden værdier i "Årgang", "Volumen" og "Nummer", skal du ned i materialerne og tilføje År ved periodica-oplysninger.
Så kommer der en "Årgang og numre" når du viser posten i CMS og med Thomas' PR virker reservation her.

#35 Updated by Lotte Tøstesen over 2 years ago

Tak for vejledning, Simon.
Vi har 534 poster af den type i Greve. Gætter på mange andre har betydeligt flere.
Jeg startede med den øverste, her manglede et nummer under periodica-oplysningerne.
Jeg gav bogen nr. 1, da det jo er den eneste der udkom det år.
Jeg får nu ganske rigtigt en årgange og numre frem på posten, som jeg så kan udfolde og med en fire klik eller så er jeg fremme ved det ene eksemplar, vi har og kan reservere det. Jeg har dog stadig en reserver knap øverst, som er ubrugelig.
Er det sådan det må være?

#36 Updated by Lotte Tøstesen over 2 years ago

Har fjernet fluebenet i /admin/config/ting/reservable men har stadig reserverknappen øverst.

#37 Updated by Steen Larsen over 2 years ago

Problemet med diverse søgninger er vel nok at man ikke kan frasortere dem man allerede har ordnet.

En anden mulig søgning er
term.type=årbog and term.title adj "årgang 20??"
som udnytter at bindposterne ofte netop hedder årgang efterfulgt af årstallet. Gentag søgningen med 19??

Hvis man (evt senere) ønsker at samle materialerne under bindposterne til den enkeltstående post (som jeg har beskrevet ovenfor) så bør man udfylde feltet med År med det rigtige årstal fra bindposten og lade de øvrige felter være urørte - herved at materialet korrekt hvis/når det er flyttet.

Fejlen hvor man ikke kan reservere materialer hvis ét af felterne med nummer/volumen/år er tomme forventes jo at blive løst i ddbcms - derfor skal man ikke udfylde noget i nummer eller volumen.

#38 Updated by Lotte Tøstesen over 2 years ago

  • Assignee changed from Simon Holt to Steen Larsen

OK, så misforstod jeg Simon mht at felterne skulle være udfyldt for at få reservér knappen frem.

Jeg kan godt se, at det virker nu, men hold da op hvor skal man være ihærdig for at finde reservérknappen. I det nye design springer Årgange og Numre ikke i øjnene, og man tænker jo ikke som bruger over at materialet er et periodikum.

Så det, du siger Steen er, at jeg kan forsøge at samle posterne i en slags "PIF-poster"? Så fx Guinness World Records diverse årstal samles i én visning? Undskyld hvis jeg spørger meget, men er ikke katalogiseringsperson.

#40 Updated by Simon Holt over 2 years ago

@Lotte Det er bestemt ikke en optimal løsning, men det er jo som det altid har været for tidsskrifter. Jeg håber at tiltag som guldknappen, vil gøre det nemmere for brugerne at reservere disse materialer.

Det lyder som den rigtige vej at overføre dem til PIF-poster (hvis jeg har forstået rigtig og det kan lade sig gøre). Vil altid foretrække at tingene bliver håndteret på en ensartet måde. Det er desværre ikke noget jeg bare lige kan gøre for os, da der skal tages en beslutning om at vi skal gøre det sådan fremover, så må indtil videre nøjes med den mindre optimale løsning.

Mht. hvad der skal udfyldes, tror jeg bare der skal udfyldes mindst et felt for at undgå reglen om forhindring af direkte reservation. Det er vel mest hensigtsmæssigt at udfylde år for at samle dem under "Årgang og numre".

Lykkedes det dig for resten at fjerne reserveknappen øverst?

#41 Updated by Steen Larsen over 2 years ago

Det er rigtigt at man blot skal udfylde ét felt.

Hvis man senere ønsker at samle dem under PIF-posten (den enkeltstående post) så har man allerede gjort en del af arbejdet med at udfylde felterne korrekt.

#42 Updated by Lotte Tøstesen over 2 years ago

@Simon
> Lykkedes det dig for resten at fjerne reserverknappen øverst?

Ja, det ser det ud til, ved ikke hvorfor den ikke ville forsvinde igår :-)

#43 Updated by Steen Larsen over 2 years ago

Mht rettelsen/pullrequestet ser det ud til at der ikke skelnes på om felterne er null eller den tomme streng.

I ddbcms testes på om de 3 felter (volumen, år, nummer) er tomme (php-funktionen empty) og her er null/den tomme streng og 0 det samme - det er de ikke i FBS-api sammenhæng. Det må betyde at når man efterfølgende forsøger at reservere et materiale hvor et af felterne er den tomme streng så sendes null afsted og det fejler. Den tomme streng opstår hvis man retter og sletter indholdet i feltet (f.eks. pga. fejlindtastning). Tallet 0 findes vist ikke i disse felter.

Jeg har spurgt Systematic om det virkelig er meningen.
Det sker sandsynligvis ikke ofte men vil betyde at sådanne rettede poster ikke kan reserveres.

Men ovenstående bør ikke bremse rettelsen til nærværende sag - der vil jo være masser af poster hvor det ene felt er tomt (null i fbs-api sammenhæng) og det skulle jo så håndteres.

#44 Updated by Simon Holt over 2 years ago

Baseret på Steens kommentar i ovenstående gravede jeg lidt mere i det. Det ser ganske rigtig ud til at FBS differentiere i mellem NULL og tom streng og at reservation fejler, hvis man ikke sender det rigtige med. Hvis man ikke tidligere har haft en værdi i et felt er den NULL. Hvis man har haft en værdi og man sletter den bliver det tom streng, som Steen også skriver.

Tog udgangs punkt i Euroman, Årgang 2015, Nummer 265. På materialet i FBS var dette udfyldt korrekt i periodica-felterne (år=2015, Nummer=265). Observerede det periodical object, der blev sendt med ved reservation (jvf. FBS API dokumetation):

$periodical->volume = <null>
$periodical->volumeYear = (string) 2015
$periodical->volumeNumber = (string) 265

Jeg prøvede så at slette værdien i nummer-feltet i Cicero klienten. Dette burde ikke være noget problem, da vi kun har den ene udgave fra 2015. Efter dette var gjort sendte DDB CMS følgende med ved reservation:

$periodical->volume = <null>
$periodical->volumeYear = (string) 2015
$periodical->volumeNumber = <null>

Og her fejlede reservationen! Der var først da jeg manuelt hardcodede følgende object med tom streng for volumeNumber, at reserveringen lykkedes:

$periodical->volume = <null>
$periodical->volumeYear = (string) 2015
$periodical->volumeNumber = (string)

Det er funktionerne _fbs_periodical_get_local_id() og _fbs_periodical_parse_local_id() der er interessante i denne sammenhæng: https://github.com/ding2/ding2/blob/master/modules/fbs/fbs.module#L582

Jeg har prøvet at ændre lidt i _fbs_periodical_get_local_id() så den ikke kun bruger empty men også isset og sætte et mellemrum hvis det er tomstreng og '-' hvis det er NULL. Men det ser faktisk ud til at det for DDB CMS ikke er muligt at skelne imellem en tom streng og NULL-værdi fra FBS API'et. Den ser ud til altid at sende en tom streng uansat om den betragter det som NULL eller tom streng i FBS.

Så hvis ovenstående holder, og der virkelig ikke er nogen muligheder for os at skelne, må Systematic altså rette i FBS, så den kan håndtere forskellen i mellem tom streng eller NULL.

#45 Updated by Simon Holt over 2 years ago

Jeg har givet et nyt svar i #2530. Synes vi skal fortsætte diskussionen om tom-streng/null problematikken der, da det er generelt for tidskrifter, og fokusere på det med årbøger her.

#2530 indledes også med en god beskrivelse af det med tom-streng/null.

#46 Updated by Rolf Madsen about 2 years ago

  • Related to Bug #2530: Problemer med reservering af tidsskrifter added

Also available in: Atom PDF