SessionLoginEx

Создаёт новую пользовательскую сессию.

Запрос

POST /DocsVision/StorageServer/StorageServerService.asmx HTTP/1.1
Host: DOCSVISION_SERVER.COM
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/SessionLoginEx"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SessionLoginEx xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
      <baseName>string</baseName>
      <sessionSettings>string</sessionSettings>
      <flags>int</flags>
    </SessionLoginEx>
  </soap:Body>
</soap:Envelope>
Параметры
sessionId

Идентификатор пользовательской сессии

sessionSettings

Параметры сессии

flags

Флаги, определяющие необходимость включения в SOAP-ответ дополнительной информации:

  • 0 — без флага.

  • 1 — включить информацию по библиотекам карточек.

  • 2 — включить информацию по типам карточек.

  • 4 — включить информацию по справочниками.

  • 8 — включить информацию по пакетам установки.

  • 16 — включить схему безопасности.

Строка sessionSettings должна соответствовать схеме элемента:
<xs:element name="Settings">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Setting" maxOccurs="unbounded" type="xs:string">
        <xs:complexType>
          <xs:attribute name="Name" type="xs:string"></xs:attribute>
          <xs:attribute name="Type" type="xs:string"></xs:attribute>
          <xs:attribute name="ReadOnly" type="xs:int"></xs:attribute>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>
Могут быть установлены следующие параметры:
  • AppID (string) — идентификатор приложения, из которого установлено соединение.

  • BaseName (string) — псевдоним базы данных.

  • ClientVersion (int) — версия клиента.

  • Compression (boolean) — необходимость использовать сжатие при передаче данных по сети.

  • ComputerAddress (string) — IP-адрес клиента.

  • ComputerName (string) — имя компьютера-клиента.

  • FileBlockSize (int) — размер блока данных (в Кб) для пересылки файлов.

  • LocaleID (int) — числовой идентификатор используемого языка.

  • MinCompressSize (int) — минимальных блок данных (в Кб) который нужно сжимать.

Рекомендуется всегда передавать: ComputerAddress, ComputerName и LocaleID.

Ответ

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SessionLoginExResponse xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
      <sessionId>guid</sessionId>
      <sessionLoginResponse>
        <ID>guid</ID>
        <PageCount>unsignedInt</PageCount>
        <RowCount>unsignedInt</RowCount>
        <FirstPage>string</FirstPage>
        <UsingCompression>boolean</UsingCompression>
      </sessionLoginResponse>
    </SessionLoginExResponse>
  </soap:Body>
</soap:Envelope>

Ответ содержит идентификатор открытой сессии, а также её параметры. Серверный курсор будет открыт при необходимости.

Пример запроса

session.headers['SOAPAction'] = 'http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/SessionLoginEx' (1)

body = """<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SessionLoginEx xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
      <baseName></baseName>
      <sessionSettings>&lt;Settings&gt;&lt;Setting Name=&quot;ComputerAddress&quot; Type=&quot;string&quot; ReadOnly=&quot;1&quot;&gt;192.168.0.2&lt;/Setting&gt;&lt;Setting Name=&quot;ComputerName&quot; Type=&quot;string&quot;&gt;connectedComputer&lt;/Setting&gt;&lt;Setting Name=&quot;LocaleID&quot; Type=&quot;int&quot;&gt;1049&lt;/Setting&gt;&lt;/Settings&gt;</sessionSettings>
      <flags>16</flags>
    </SessionLoginEx>
  </soap:Body>
</soap:Envelope>""" (2)

response = session.post(url, data=body) (3)

responseParsed = ElementTree.fromstring(response.content)
print(responseParsed.findtext('.//{http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/}sessionId')) (4)
1 Изменяем цель запроса в заголовке запроса.
2 SOAP-сообщение.
3 Отправляем SOAP-сообщение.
4 Разбираем ответ и выводим идентификатор открытой сессии.