3 use lib '../../perlmods/';
4 use lib '../../../../OpenSRF/src/perlmods/';
5 use OpenSRF::EX qw/:try/;
7 use OpenSRF::Utils::SettingsClient;
8 use OpenILS::Utils::FlatXML;
13 my ($config, $userid, $sourceid, $wormize) = ('/pines/conf/bootstrap.conf', 1, 2);
17 "wormize" => \$wormize,
18 "sourceid" => \$sourceid,
19 "userid=i" => \$userid,
22 OpenSRF::System->bootstrap_client( config_file => $config );
23 my $st_server = OpenSRF::AppSession->create( 'storage' );
24 my $worm_server = OpenSRF::AppSession->create( 'worm' ) if ($wormize);
28 throw OpenSRF::EX::PANIC ("I can't connect to the storage server!")
29 if (!$st_server->connect);
31 throw OpenSRF::EX::PANIC ("I can't connect to the worm server!")
32 if ($wormize && !$worm_server->connect);
39 while ( my $xml = <> ) {
42 my $ns = OpenILS::Utils::FlatXML->new( xml => $xml );
44 next unless ($ns->xml);
46 my $doc = $ns->xml_to_doc;
47 my $tcn = $doc->documentElement->findvalue( '/*/*[@tag="035"]' );
49 warn "Adding record for TCN $tcn\n";
54 my $req = $st_server->request(
55 'open-ils.storage.biblio.record_entry.create',
65 my $resp = $req->recv;
66 unless( $resp && $resp->can('content') ) {
67 throw OpenSRF::EX::ERROR ("Failed to create record for TCN [$tcn]!! -- $resp");
70 my $new_id = $resp->content;
75 my $nodeset = $ns->nodeset;
77 $_->{owner_doc} = $new_id for (@$nodeset);
79 $req = $st_server->request(
80 'open-ils.storage.biblio.record_node.batch.create',
87 unless( $resp && $resp->can('content') ) {
88 throw OpenSRF::EX::ERROR
89 ("Failed to create record_nodes for TCN [$tcn]!! -- $resp");
94 my $worm_req = $worm_server->request(
95 'open-ils.worm.record_data.digest',
102 throw OpenSRF::EX::ERROR ("Failed to create record for TCN [$tcn]!! -- $resp");