Skip to end of banner
Go to start of banner

MODSOURMAN-627 - Script for retrieving holding by specific conditions.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Regarding comments from this ticket [MODSOURMAN-627] Kiwi bugfest - Data integrity issues with instances/holdings records - FOLIO Issue Tracker:

  1. If the holdings source is anything other than FOLIO or MARC (e.g. -), then change to FOLIO.
  2. If the holdings source = MARC, check to see if there is a linked SRS MARC Holdings record.
    1. If yes, then keep the Holdings source as MARC, and ensure that View source and Edit via QM in the Actions menu work for the Inventory Holdings record.
    2. If no, then change the Holdings source to FOLIO, and ensure that View source/Edit in QM do not display in the Inventory Holdings Action menu.


These scripts retrieve holdings that should be reviewed. These scripts DO NOT update those holdings. These scripts just show valid/invalid Holdings from DB by conditions from comment.


Script 1: Retrieve holdings where the source is anything other than FOLIO or MARC (e.g. -):

Select Holdings where sourceName are not FOLIO and MARC
SELECT 
*
FROM ${tenant}_mod_inventory_storage.holdings_record
WHERE ${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' = (
SELECT 
id::text
FROM ${tenant}_mod_inventory_storage.holdings_records_source
WHERE ${tenant}_mod_inventory_storage.holdings_records_source.jsonb ->> 'name' != 'FOLIO' AND
${tenant}_mod_inventory_storage.holdings_records_source.jsonb ->> 'name' != 'MARC') OR 
${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' IS NULL;;


Script 2: Retrieve holdings where source= MARC and there is existing linked SRS MARC HOLDINGS record (by external_hrid) from records_lb from source-record-storage schema.

Select Holdings where sourceName=MARC and external_hrid exists in SRS
SELECT * 
FROM ${tenant}_mod_inventory_storage.holdings_record RIGHT JOIN ${tenant}_mod_source_record_storage.records_lb
ON ${tenant}_mod_inventory_storage.holdings_record.jsonb->>'hrid' = ${tenant}_mod_source_record_storage.records_lb.external_hrid
WHERE ${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' = (
SELECT 
id::text
FROM ${tenant}_mod_inventory_storage.holdings_records_source
WHERE ${tenant}_mod_inventory_storage.holdings_records_source.jsonb ->> 'name' = 'MARC');


Script 3: Retrieve holdings where source= MARC and there is NO existing SRS MARC HOLDINGS record (by external_hrid) from records_lb from source-record-storage schema.

Select Holdings where sourceName=MARC and external_hrid NOT exists in SRS
SELECT  *
FROM    ${tenant}_mod_inventory_storage.holdings_record
WHERE   ${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' = (
SELECT 
id::text
FROM ${tenant}_mod_inventory_storage.holdings_records_source
WHERE ${tenant}_mod_inventory_storage.holdings_records_source.jsonb ->> 'name' = 'MARC')
AND NOT EXISTS
(SELECT  *
 FROM    ${tenant}_mod_source_record_storage.records_lb
 WHERE   ${tenant}_mod_source_record_storage.records_lb.external_hrid = ${tenant}_mod_inventory_storage.holdings_record.jsonb->>'hrid');
  • No labels