PICA::Store - CRUD interface to a PICA::Record storage


version 0.585


  use PICA::Store;

  # connect to store via SOAP API (SOAPClient)
  $store = PICA::Store->new( webcat => $baseurl, %params );

  # connect to SQLiteStore
  $store = PICA::Store->new( SQLite => $dbfile, %params );

  # Get connection details from a config file
  $store = PICA::Store->new( config => "myconf.conf" );

  # CRUD operations
  %result = $store->get( $id );
  %result = $store->create( $record );
  %result = $store->update( $id, $record, $version );
  %result = $store->delete( $id );

  # set additional access parameters
  $store->access( userkey => $userkey, password => $passwd );


This class is an abstract class to provide a simple CRUD (create/insert, retrieve/get, update, delete) access to a record store of PICA::Record objects.

See PICA::SQLiteStore and PICA::SOAPClient for specific implementations. Other implementations that may be implemented later include WebDAV, and REST (for instance Jangle).


new ( %parameters )

Return a new PICA::Store. You must either specify a parameter named 'webcat' to get a PICA::SOAPClient or a parameter named 'SQLite' to get a PICA::SQLiteStore. Alternatively you can specify a parameter named 'config' that points to a configuration file. If you set this parameter to undef, the file will be searched as environment variable PICASTORE or pica.conf in the current directory.

get ( $id )

Retrieve the latest revision of record by ID. Returns a hash with either 'errorcode' and 'errormessage' or a hash with 'id', 'record' (a PICA::Record object), 'version', and 'timestamp'.

create ( $record )

Insert a new record. The parameter must be a PICA::Record object. Returns a hash with either 'errorcode' and 'errormessage' or a hash with 'id', 'record', 'version', and 'timestamp'.

update ( $id, $record [, $version ] )

Update a record by ID, updated record (of type PICA::Record), and version (of a previous get, create, or update command).

Returns a hash with either 'errorcode' and 'errormessage' or a hash with 'id', 'record', 'version', and 'timestamp'.

delete ( $id )

Delete a record by ID. Returns a hash with either 'errorcode' and 'errormessage' or a hash with 'id'.

access ( key => value ... )

Set general access parameters (userkey, password, dbsid and/or language). Returns the store itself so you can chain anothe method call. By default the parameters are just ignored so any subclass should override this method to make sense of it.


Return a string with printable information about this store, for instance a name and/or a base URL.


readconfigfile ( $hashref, $defaultfile )

Expand a hash with config parameters by reading from a config file. The config file may be set in $hashref->{config} or the file $defaultfile or in the file pica.conf in the current directory.


This distribution contains the command line client picawebcat based on PICA::Store. See also PICA::SQLiteStore, PICA::SOAPClient, and PICA::SOAPServer.


Jakob Voß <>


This software is copyright (c) 2014 by Verbundzentrale Goettingen (VZG) and Jakob Voss.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.