ExtensionExecuteCursorMethod
Вызывает метод серверного расширения.
Запрос
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/ExtensionExecuteCursorMethod"
<?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>
<ExtensionExecuteCursorMethod xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
<sessionId>guid</sessionId>
<methodCall>string</methodCall>
<compressed>boolean</compressed>
</ExtensionExecuteCursorMethod>
</soap:Body>
</soap:Envelope>
- Параметры
-
- sessionId
-
Идентификатор пользовательской сессии
- methodCall
-
Вызываемый метод
- compressed
-
Признак сжатия данных в
methodCall
Строка methodCall
должна соответствовать формату элемента MethodCall
, приведенному в схеме ServerRequests.xsd
:
<xsd:element name="MethodCall">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Name" type="xsd:string" use="optional"/>
<xsd:attribute name="Type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="bool"/>
<xsd:enumeration value="byte"/>
<xsd:enumeration value="short"/>
<xsd:enumeration value="integer"/>
<xsd:enumeration value="long"/>
<xsd:enumeration value="single"/>
<xsd:enumeration value="double"/>
<xsd:enumeration value="decimal"/>
<xsd:enumeration value="uniqueidentifier"/>
<xsd:enumeration value="char"/>
<xsd:enumeration value="string"/>
<xsd:enumeration value="datetime"/>
<xsd:enumeration value="text"/>
<xsd:enumeration value="binary"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="MethodName" type="xsd:string"/>
<xsd:attribute name="ObjectName" type="xsd:string" use="optional"/>
</xsd:complexType>
</xsd:element>
Ответ
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>
<ExtensionExecuteCursorMethodResponse xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
<cursorInfo>
<ID>guid</ID>
<PageCount>unsignedInt</PageCount>
<RowCount>unsignedInt</RowCount>
<FirstPage>string</FirstPage>
<UsingCompression>boolean</UsingCompression>
</cursorInfo>
</ExtensionExecuteCursorMethodResponse>
</soap:Body>
</soap:Envelope>
При необходимости будет открыт серверный курсор на данные.
Пример запроса
session.headers['SOAPAction'] = "http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/ExtensionExecuteCursorMethod" (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>
<ExtensionExecuteCursorMethod xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
<sessionId>6565c75b-298d-e511-9417-90e6ba57b9f8</sessionId>
<methodCall><MethodCall ObjectName="SampleExtension" MethodName="GetCard"><Parameter Name="cardId" Type="uniqueidentifier" xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="string">{B87B6FEC-E092-4D37-ABB2-C13E2000B6E3}</Parameter></MethodCall></methodCall>
<compressed>false</compressed>
</ExtensionExecuteCursorMethod>
</soap:Body>
</soap:Envelope>""" (2)
response = session.post(url, data=body) (3)
print(response.content) (4)
1 | Изменяем цель запроса в заголовке запроса. |
2 | SOAP-сообщение. |
3 | Отправляем SOAP-сообщение. |
4 | Ответ SOAP. |