Я построил запрос в пользовательском интерфейсе SOAP, который работает нормально:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:CHG_ChangeInterface_WS">
<soapenv:Header>
<urn:AuthenticationInfo>
<urn:userName></urn:userName>
<urn:password></urn:password>
<!--Optional:-->
<urn:authentication>?</urn:authentication>
<!--Optional:-->
<urn:locale>?</urn:locale>
<!--Optional:-->
<urn:timeZone>?</urn:timeZone>
</urn:AuthenticationInfo>
</soapenv:Header>
<soapenv:Body>
<urn:Change_QueryList_Service>
<urn:Qualification>('Change Request Status'!="Closed" AND 'Change Request Status'!="Cancelled") AND 'Scheduled Start Date'>"2019-04-22" AND 'Scheduled End Date'<"2019-05-06" </urn:Qualification>
<urn:startRecord>1</urn:startRecord>
<urn:maxLimit>10</urn:maxLimit>
</urn:Change_QueryList_Service>
</soapenv:Body>
</soapenv:Envelope>
Когда я делаю этот же вызов через мой код C #, он работает нормально, и я получаю ожидаемые результаты:
var response = service.Change_QueryList_Service("'Scheduled Start Date' > \"2019-04-22\"", "1", "1000").ToList();
Когда я изменяю этот вызов так, чтобы он содержал некоторый диапазон, как я делал в примере с SOAP UI, он не жаловался на XML (который я получаю):
var response = service.Change_QueryList_Service("'Scheduled Start Date' >= \"2019-04-22\" AND 'Scheduled End Date' < \"2019-05-06\"", "1", "1").ToList();
Я пытался экранировать «меньше чем»символ с, но это также не дает результатов (жалуется на символ 66 строки квалификации, с которого начинается escape-последовательность:
var response = service.Change_QueryList_Service("'Scheduled Start Date' >= \"2019-04-22\" AND 'Scheduled End Date' < \"2019-05-06\"", "1", "1").ToList();
Любая помощь будет принята. Спасибо!