#!/opt/csw/bin/perl -w -I/eprints/eprints3/perl_lib use lib '/eprints/eprints3/'; use EPrints; use SOAP::Lite +trace=>'debug'; use strict; print "Enter the doi(s) to search for: "; #Enter DOI(s). For multiple searches separate them with a space my @doi = split(/\s+/, <>); foreach (@doi ){ my $doi = $_; my $client = $doi; $client=~s/\D//g; my $crf = int(rand($client)); my $body = SOAP::Data->name(getCitedByCountReqPayload => \SOAP::Data->value( SOAP::Data->name(dataResponseStyle => "MESSAGE")->type(''), SOAP::Data->name(absMetSource => "all")->type(''), SOAP::Data->name(responseStyle => "wellDefined")->type(''), SOAP::Data->name(inputKey => \SOAP::Data->value( SOAP::Data->name(doi => "$doi")->uri('')->prefix('')->type(''), SOAP::Data->name(clientCRF => "$crf")->uri('')->prefix('')->type(''), )))); my $header = SOAP::Header->name(EASIReq => \SOAP::Header->value( SOAP::Header->name(TransId => " ")->uri('')->type(''), SOAP::Header->name(ReqId => " ")->uri('')->type(''), SOAP::Header->name(Ver => " ")->uri('')->type(''), SOAP::Header->name(Consumer => "ULRA")->uri('')->type(''), SOAP::Header->name(ConsumerClient => " ")->uri('')->type(''), SOAP::Header->name(OpaqueInfo => " ")->uri('')->type(''), SOAP::Header->name(LogLevel => "Default"))) ->uri('http://webservices.elsevier.com/schemas/easi/headers/types/v1')->prefix(''); #Query the test environment #my $soap = SOAP::Lite->proxy('http://cdc315-services.elsevier.com/EWSXAbstractsMetadataWebSvc/XAbstractsMetadataServiceV10?wsdl') #->uri('http://webservices.elsevier.com/schemas/metadata/abstracts/types/v10'); #Query the Production environment my $soap = SOAP::Lite->proxy('http://services.elsevier.com/EWSXAbstractsMetadataWebSvc/XAbstractsMetadataServiceV10?wsdl') ->uri('http://webservices.elsevier.com/schemas/metadata/abstracts/types/v10'); my $som = $soap->getCitedByCount($header,$body); my $n = $som->match('//citedByCountList/citedByCount/linkData/citedByCount')->valueof; my $id = $som->match('//citedByCountList/citedByCount/linkData/scopusID')->valueof; my $ret_crf = $som->match('//citedByCountList/citedByCount/inputKey/clientCRF')->valueof; my $eid = $som->match('//citedByCountList/citedByCount/linkData/eid')->valueof; print "\nSubmitted CRF = $crf\n Returned CRF = $ret_crf\n EID = $eid\n Scopus ID = $id\n Citation Count = $n\n"; }