[Koha] report behaves differently if run from intranet or the outside [SOLVED]

Alvaro Cornejo cornejo.alvaro at gmail.com
Sun Jul 12 04:38:37 NZST 2020


Hi

I found the solution:

Place a "LIMIT XXX" at the end of the report. It seems that there is a hard
limit for public reports that gets overridden if a LIMIT statement is
placed on the query.

Regards,

Alvaro


|----------------------------------------------------------------------------------------|
 Stay safe / Cuídate/  Reste sécurisé
*7* Switch off as you go / Apaga lo que no usas /  Débranchez au fur et à
mesure.
 *q *Recycle always / Recicla siempre / Recyclez toujours
 P Print only if absolutely necessary / Imprime solo si es necesario /
Imprimez seulement si nécessaire


Le sam. 11 juil. 2020 à 11:27, Alvaro Cornejo <cornejo.alvaro at gmail.com> a
écrit :

> Hi
>
> It seems to be a problem with the public setup of the report. Hard limit
> somewhere in the code?
>
> I changed almost all my reports to public to test and in all cases, I get
> no more than the first 10 records.
>
> I initially thought something crashed on the process but json files are
> completed, not corrupted or damaged.
>
> Regards
>
> Alvaro
>
>
>
> |----------------------------------------------------------------------------------------|
>  Stay safe / Cuídate/  Reste sécurisé
> *7* Switch off as you go / Apaga lo que no usas /  Débranchez au fur et à
> mesure.
>  *q *Recycle always / Recicla siempre / Recyclez toujours
>  P Print only if absolutely necessary / Imprime solo si es necesario /
> Imprimez seulement si nécessaire
>
>
> Le sam. 11 juil. 2020 à 00:41, Alvaro Cornejo <cornejo.alvaro at gmail.com>
> a écrit :
>
>> Hi
>>
>> I´ve been working with a report to get records stats and found a strange
>> behaviour.
>>
>> The exactly same report provides different data if run it from the report
>> interface in koha than calling it from the outside (public link) either
>> from a perl script or from a browser (tested on ie / chrome)
>>
>> The query is quite simple:
>> ------------------
>> SELECT
>> ExtractValue(metadata,'//datafield[@tag="942"]/subfield[@code="c"]') AS
>> Tipo,
>> FORMAT((COUNT(DISTINCT biblionumber)),0) AS Registros,
>> FORMAT((COUNT(itemnumber)),0) AS Volúmenes
>>
>> FROM biblio_metadata
>> LEFT JOIN items USING (biblionumber)
>>
>> GROUP BY Tipo
>> WITH ROLLUP
>> -------------------------
>>
>> if I run it from intranet I get (being set public):
>>
>> Tipo     Registros     Volúmenes
>> Analitico de Revista     7      7
>> ANLIB      6,939        10
>> ANREV     8,351       671
>> ART        96,109       95,054
>> ART-E      50        1
>> LIB        30,433        30,783
>> LIB-A      4,919       91
>> LIB-E      27       27
>> SEP      1,304      1,300
>> SER      165       485
>> SER-E     1        2
>> TESIS      9      9
>> VID       4       4
>>         148,318      128,444  (this is from ROLLUP
>>
>> If run it from the outside I get only the first 10 lines:
>> (tested with script and manually parse the JSON and calling the public
>> link with chrome and ie)
>>
>> Tipo     Registros     Volúmenes
>> Analitico de Revista     7      7
>> ANLIB      6,939        10
>> ANREV     8,351       671
>> ART        96,109       95,054
>> ART-E      50        1
>> LIB        30,433        30,783
>> LIB-A      4,919       91
>> LIB-E      27       27
>> SEP      1,304      1,300
>> SER      165       485
>>
>> I initially thought there were some bad records and fixed some that do
>> not have a 942c field defined.
>>
>> I tested it with a condition to get only new records in the last 30 days
>> and this behavior does not happen. Although the report have only 8 rows
>> including the rollup
>>
>> Updated query
>> ------------------
>> SELECT
>>
>> ExtractValue(metadata,'//datafield[@tag="942"]/subfield[@code="c"]') AS
>> Tipo,
>> FORMAT((COUNT(DISTINCT biblionumber)),0) AS Registros,
>> FORMAT((COUNT(itemnumber)),0) AS Volúmenes
>>
>> FROM biblio_metadata
>> LEFT JOIN items USING (biblionumber)
>>
>> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= items.dateaccessioned
>>
>> GROUP BY Tipo
>> WITH ROLLUP
>> -------------------------
>>
>> Same result through intranet and public links with a script / browser
>> Tipo Registros Volúmenes
>> ANLIB    1    1
>> ART    895     895
>> LIB    60    62
>> LIB-E    22    22
>> SEP     21    21
>> SER    1   1
>> VID    4    4
>>        1,004    1,006
>>
>> I´ve increased the interval of days to this second report until I got
>> more than 10 lines and the behaviour repeats. From the public link I can
>> get no more than 10 lines but from within koha I get all the lines.
>>
>> I´m running koha 19.11.07.000 with perl  5.026001 in ubuntu 18.04
>>
>> Any ideas? I guess there is no record limit since I´ve coverflow running
>> and I get more than 10 records.
>>
>> Might be a timeout? It's a heavy query but runs for about 30 seconds on
>> intranet and from a browser.
>>
>> Regards
>>
>> Alvaro
>>
>>
>>
>>
>> |----------------------------------------------------------------------------------------|
>>  Stay safe / Cuídate/  Reste sécurisé
>> *7* Switch off as you go / Apaga lo que no usas /  Débranchez au fur et
>> à mesure.
>>  *q *Recycle always / Recicla siempre / Recyclez toujours
>>  P Print only if absolutely necessary / Imprime solo si es necesario /
>> Imprimez seulement si nécessaire
>>
>


More information about the Koha mailing list