Пример использования на Perl
Данный пример показывает, как получить печатное представление документа учета по номеру контейнера
Copyright (c) 2000 ООО РОЛИС Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного Обеспечения, а также лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий: Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения. ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
#!/usr/bin/perl
use SOAP::Lite;
use Unicode::MapUTF8 qw(to_utf8 from_utf8 utf8_supported_charset);
use MIME::Base64;
my $user = "Your_login";
my $password = "Your_password";
sub SOAP::Transport::HTTP::Client::get_basic_credentials {
return ($user => $password)
}
my $service = SOAP::Lite
-> service('https://www.rlisystems.ru/TestServices/wsdl/RlisystemsServicesSOAP.wsdl');
my @TerminalList = ${service->TerminalList()};
my $TerminalsCount = @TerminalList;
print "Total terminals: " . $TerminalsCount . "\n";
foreach my $Terminal (@TerminalList)
{
print "TerminalCode: " . $Terminal->{"TerminalCode"} . "\t";
print "Terminal Name: " . from_utf8({ -string => $Terminal->{"TerminalName"}, -charset => 'KOI8-R' }) . "\n";
}
my $TerminalCode = @TerminalList[0]->{"TerminalCode"};
my $TerminalName = from_utf8({ -string => @TerminalList[0]->{"TerminalName"}, -charset => 'KOI8-R' });
my $ContainerNumber = "ABCD1234567";
print "List of TDU's for container " . $ContainerNumber . " on first terminal in list (" . $TerminalName . ")\n";
my $params = { TerminalCode => $TerminalCode, SearchString => $ContainerNumber };
my $TerminalCodeParam = SOAP::Data
-> type ("int")
-> name ("TerminalCode")
-> value ($TerminalCode);
my $ContainerNumberParam = SOAP::Data
-> type ("string")
-> name ("SearchString")
-> value ($ContainerNumber);
my @TDUInfoList = $service->TDUInfoList($TerminalCodeParam, $ContainerNumberParam);
my $TDUCount = @TDUInfoList;
print "Total TDU's: " . $TDUCount . "\n";
if ($TDUCount>0)
{
foreach my $TDUInfo (@TDUInfoList)
{
print "TDUCode: " . $TDUInfo->{"TDUCode"} . "\t";
print "TDUNumber: " . $TDUInfo->{"TDUNumber"} . "\t";
print "TDUDate: " . $TDUInfo->{"TDUDate"} . "\t";
print "ContainerNumber: " . $TDUInfo->{"ContainerNumber"} . "\n";
}
my $TDUCode = @TDUInfoList[0]->{"TDUCode"};
print "Retriving TDU's number " . @TDUInfoList[0]->{"TDUNumber"} . " on first terminal in list (" . $TerminalName . ")\n";
my $TDUCodeParam = SOAP::Data
-> type ("int")
-> name ("ItemCode")
-> value ($TDUCode);
my ($ContentType,$Data) = $service->TDURepresentation($TerminalCodeParam,$TDUCodeParam);
print "Content-Type: " . $ContentType . "\n";
my $Data = decode_base64($Data);
my $FileName = "Test.pdf";
open DATA,">$FileName";
binmode(DATA);
print DATA $Data;
close DATA;
print "Data saved as file: " . $FileName . "\n";
}
else
{
print "No TDU's found. \n";
}