<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