<definitions xmlns="http://schemas. xmlsoap. org/wsdl/" xmlns:xs="http://www. w3.org/2001/XMLSchema" name="IEtranSysservice" targetNamespace="http://tempuri. org/" xmlns:tns="http://tempuri. org/" xmlns:soap="http://schemas. xmlsoap. org/wsdl/soap/" xmlns:soapenc="http://schemas. xmlsoap. org/soap/encoding/" xmlns:ns1="urn:SysEtranIntf">
<message name="SendBlockRequest">
<part name="Text" type="xs:string"/>
</message>
<message name="SendBlockResponse">
<part name="return" type="xs:boolean"/>
</message>
<message name="GetBlockRequest">
<part name="Login" type="xs:string"/>
<part name="Password" type="xs:string"/>
<part name="Text" type="xs:string"/>
<part name="ECP" type="xs:string"/>
<part name="TSP" type="xs:string"/>
</message>
<message name="GetBlockResponse">
<part name="Text" type="xs:string"/>
<part name="return" type="xs:boolean"/>
</message>
<portType name="IEtranSys">
<operation name="SendBlock">
<input message="tns:SendBlockRequest"/>
<output message="tns:SendBlockResponse"/>
</operation>
<operation name="GetBlock">
<input message="tns:GetBlockRequest"/>
<output message="tns:GetBlockResponse"/>
</operation>
</portType>
<binding name="IEtranSysbinding" type="tns:IEtranSys">
<soap:binding style="rpc" transport="http://schemas. xmlsoap. org/soap/http"/>
<operation name="SendBlock">
<soap:operation soapAction="urn:SysEtranInt" style="rpc"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas. xmlsoap. org/soap/encoding/" namespace="SysEtranInt"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas. xmlsoap. org/soap/encoding/" namespace="SysEtranInt"/>
</output>
</operation>
<operation name="GetBlock">
<soap:operation soapAction="urn:SysEtranInt" style="rpc"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas. xmlsoap. org/soap/encoding/" namespace="SysEtranInt"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas. xmlsoap. org/soap/encoding/" namespace="SysEtranInt"/>
</output>
</operation>
</binding>
<service name="IEtranSysservice">
<port name="IEtranSysPort" binding="tns:IEtranSysbinding">
<soap:address location="http://xxx. xxx. xxx. xxx:xxx/xxxxx"/>
</port>
</service>
</definitions>
2.3. Адрес обработчика запросов на стороне ЭТРАН
В качестве сервера обработки запросов может быть выбран любой сервер приложений ЭТРАН.
Для работы через COM-объект адрес должен быть указан в виде:
http://xxx. xxx. xxx. xxx:xxxx/EtranServer/EtranHttpSrvr. dll
Для работы через SOAP адрес:
http://xxx. xxx. xxx. xxx:xxxx/EtranServer/EtranLR. dll/soap
где xxx. xxx. xxx. xxx:xxxx – IP адрес и порт сервера приложений.
Адрес строки подключения чувствителен к регистру, поэтому адреса необходимо указывать точно так, как приведено выше.
Пример строки подключения тестовой базы:
СОМ-объект: «http://10.250.2.142:8092/EtranServer/EtranHttpSrvr. dll»
SOAP: «http://10.250.2.142:8092/EtranServer/EtranLR. dll/soap»
3. Состав и содержание информации обмена
3.1. Заявка на перевозку груза
В соответствии с технологией Экспедитор должен получать от ОАО «РЖД» заявки на перевозку грузов (формы ГУ-12), где он является плательщиком, рассматривать и представлять в течение суток после получения заявки замечания по правильности проставления грузоотправителем в заявке на перевозку грузов кода плательщика.
Коды плательщика фиксируются в договоре между и организацией-экспедитором. Экспедитору присваиваются два кода плательщика: с начислением НДС и со ставкой НДС ноль процентов.
Код плательщика указывается в перевозочных и других первичных документах в зависимости от размера ставки налога на добавленную стоимость, применяемой при перевозке в соответствии с Налоговым кодексом Российской Федерации.
Отсутствие в течение суток замечаний Экспедитора является согласием Экспедитора выступить плательщиком по заявленной перевозке.
Таким образом, разработчикам АСУ Экспедитора необходимо обеспечить контроль Экспедитором заявок на перевозку грузов, в которых указан его код плательщика. Для получения информации по заявкам экспедитора из системы Этран необходимо организовать получение списка заявок, в которых данный Экспедитор является плательщиком и получение данных заявок из списка. Для получения списка заявок используется запрос «Запрос получения списка заявок по плательщику»(claimToAgreementStatus). Для получения данных заявки используется запрос «Запрос данных заявки на перевозку»(getClaim). В случае несогласия Экспедитора выступить плательщиком по данной перевозке, следует обеспечить возможность отклонения заявки (описание проведения операции откланения заявки экспедитором см. ниже по тексту).
Следует реализовать процедуру рассмотрения заявки с альтернативами «Согласовать» или «Отклонить». Для согласования заявки необходимо использовать запрос «Запрос подтверждения визирования заявки экспедитором»(claimAssentViza). В процессе согласования необходимо дать возможность пользователю ввести произвольный комментарий (тэг «Комментарий»(claimRemark)). После подтверждения операции согласования заявки обобщенная информация о ходе согласования текущей заявки должна быть обновлена на АРМе Экспедитора. Для отклонения заявки экспедитором необходимо выполнить запрос «Запрос отказа визирования заявки экспедитором»(claimRejectViza). В процессе отказа экспедитора от заявки необходимо дать возможность пользователю ввести произвольный комментарий (тэг «Комментарий»(claimRemark)). После отклонения заявки экспедитором обобщенная информация о ходе отказа текущей заявки должна быть обновлена на АРМе Экспедитора.
С целью реализации взаимодействия АСУ Экспедитора и системы ЭТРАН в части информации заявок на перевозку груза разработчик может воспользоваться следующими запросами:
3.1.1 Запрос данных заявки на перевозку
<!-- ********************************** -->
<!-- ЗАПРОС ЗАЯВКИ НА ПЕРЕВОЗКУ: запрос -->
<!-- ********************************** -->
<getClaim version="1.0">
<!-- ID заявки -->
<!-- * тип данных: целое число -->
<claimID value=""/>
<!-- Номер заявки -->
<!-- 10 знаков. Для указанния корректировки добавляется префикс «-ИЗМ/» и номер изменения, например «0005345024-ИЗМ/1» -->
<!-- * тип данных: строка -->
<claimNumber value=""/>
<!-- Клиентский идентификатор передаваемого запроса. Служит для предотвращения дублирования документа при повторном запросе, в случае, когда на выполнение первоначального запроса был получен ответ ошибки связи (ошибка с кодом 100).
Если первоначальный запрос был выполнен, а в следствии ошбки с кодом 100 результат запроса не вернулся пользователю, то при повторном запросе с таким же клинентским идентификатором не позднее 7 дней с момента выполнения первоначалоного запроса даннные в ЭТРАНе изменятся не будут, а пользователю будет возвращен результат предыдущего запроса. Если при первоначальном запросе документ не был создан - при повторном запросе документ будет создан, пользователю вернется результат повторного запроса. Если запрос прошел успешно - то данный клиентский идентификатор считается использованным и не должно быть его использование в других запросах -->
<frontEndId value=""/>
<!-- Использование 6-значных кодов станций и грузов в ответе -->
<useMod11/>
</getClaim>
Определены следующие коды ошибок всех запросов:
Код ошибки | Значение |
1 | Ошибка синтаксиса XML |
2 | Неизвестный тип XML-запроса |
3 | Неизвестный тэг в XML-запросе |
4 | Ошибка при проверке данных из XML-запроса |
100 | Внутренняя ошибка |
Далее по тексту случаи ошибки приема/обработки запросов не рассматриваются.
Ответ на запрос:
В случае успешного приема запроса «Запрос данных заявки на перевозку» ответ содержит следующую информацию:
<!-- ******************************************************** -->
<!-- ЗАПРОС ЗАЯВКИ НА ПРЕВОЗКУ: ответ (при отсутствии ошибок) -->
<!-- ******************************************************** -->
<getClaimReply version="1.0">
<!-- Идентификатор заявки -->
<!-- * тип данных: целое число (до 10 символов) -->
<claimID value=""/>
<!-- Состояние заявки -->
<!-- * тип данных: целое число (до 5 символов) -->
<claimStateID value=""/>
<!-- * тип данных: строка (до 40 символов) -->
<claimState value=""/>
<!-- Дата последней операции над документом -->
<!-- * тип данных: дата -->
<clmLastOper value=""/>
<!-- Номер заявки -->
<!-- * тип данных: строка (до 10 символов) -->
<claimNumber value=""/>
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |


