From 99e089ab2cc206e87cb951e9da09649ba4250e41 Mon Sep 17 00:00:00 2001 From: miker Date: Thu, 10 Mar 2005 00:34:26 +0000 Subject: [PATCH] it can import, but the logic needs some cleanup git-svn-id: svn://svn.open-ils.org/ILS/trunk@300 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/extras/import/import_clean_marc.pl | 43 +++++++++++++------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/Open-ILS/src/extras/import/import_clean_marc.pl b/Open-ILS/src/extras/import/import_clean_marc.pl index 460618d9b7..05acd31019 100755 --- a/Open-ILS/src/extras/import/import_clean_marc.pl +++ b/Open-ILS/src/extras/import/import_clean_marc.pl @@ -6,6 +6,7 @@ use OpenSRF::EX qw/:try/; use OpenSRF::System; use OpenSRF::Utils::SettingsClient; use OpenILS::Utils::FlatXML; +use OpenILS::Utils::Fieldmapper; use Time::HiRes; use Getopt::Long; use Data::Dumper; @@ -46,26 +47,32 @@ while ( my $xml = <> ) { my $doc = $ns->xml_to_doc; my $tcn = $doc->documentElement->findvalue( '/*/*[@tag="035"]' ); - $tcn =~ s/.*?(\w+)$/$1/go; + $tcn =~ s/^.*?(\w+)$/$1/go; warn "Adding record for TCN $tcn\n"; #$ns->xml_to_nodeset; #next; + warn " ==> Starting transaction...\n"; + my $xact = $st_server->request( 'open-ils.storage.transaction.begin' ); $xact->wait_complete; - warn " ==> Starting transaction\n"; + + my $r = $xact->recv; + die $r unless (UNIVERSAL::can($r, 'content')); + die "Couldn't start transaction!" unless ($r); + + warn " ==> Transaction ".$xact->session->session_id." started\n"; try { - my $req = $st_server->request( - 'open-ils.storage.biblio.record_entry.create', - { creator => $userid, - editor => $userid, - source => $sourceid, - tcn_value => $tcn, - }, - ); + my $fe = new Fieldmapper::biblio::record_entry; + $fe->editor( $userid ); + $fe->creator( $userid ); + $fe->source( $sourceid ); + $fe->tcn_value( $tcn ); + + my $req = $st_server->request( 'open-ils.storage.biblio.record_entry.create' => $fe ); $req->wait_complete; @@ -79,9 +86,10 @@ while ( my $xml = <> ) { $req->finish; if ($new_id) { - my $nodeset = $ns->xml_to_nodeset; - - $_->{owner_doc} = $new_id for (@$nodeset); + + $ns->xml_to_nodeset; + my $nodeset = $ns->nodeset; + $_->owner_doc( $new_id ) for (@$nodeset); $req = $st_server->request( 'open-ils.storage.biblio.record_node.batch.create', @@ -111,6 +119,10 @@ while ( my $xml = <> ) { warn " !!> Rolling back transaction\n".shift(); $xact = $st_server->request( 'open-ils.storage.transaction.rollback' ); $xact->wait_complete; + + die $r unless (UNIVERSAL::can($r, 'content')); + die "Couldn't rollback transaction!" unless ($r->content); + $xact = undef; }; @@ -118,6 +130,11 @@ while ( my $xml = <> ) { warn " ==>Commiting addition of $tcn\n"; $xact = $st_server->request( 'open-ils.storage.transaction.commit' ); $xact->wait_complete; + + my $r = $xact->recv; + die $r unless (UNIVERSAL::can($r, 'content')); + die "Couldn't commit transaction!" unless ($r->content); + } } -- 2.43.2