|
v7: Отправка документа в EDI | ☑ | ||
---|---|---|---|---|
0
maestro-72
24.02.16
✎
17:51
|
Народ, может кто сталкивался. Требуется отправить подтверждение заказа на EDI платформу: примерно так реализовано
Парам="<?xml version=""1.0"" encoding=""utf-8""?> |<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope""> | <soap12:Body> | <Send xmlns=""http://www.comarch.com/""> | <Name>" + Login + "</Name> | <Password>" + Password + "</Password> | <PartnerIln>" + PartnerIln + "</PartnerIln> | <DocumentType>" + DocumentType + "</DocumentType> | <DocumentVersion>" + DocumentVersion + "</DocumentVersion> | <DocumentStandard>" + DocumentStandard + "</DocumentStandard> | <DocumentTest>" + DocumentTest + "</DocumentTest> | <ControlNumber>" + ControlNumber + "</ControlNumber> | <DocumentContent>" + DocumentContent + "</DocumentContent> | <Timeout>" + Timeout + "</Timeout> | </Send> | </soap12:Body> |</soap12:Envelope>"; url = "https://www.ecod.pl/webserv2/EDIservice.asmx?WSDL"; x = CreateObject("Microsoft.XMLHTTP"); x.Open("POST", url, 0); x.SetRequestHeader("Content-Type", "text/xml; charset=utf-8"); x.send(Парам); В DocumentContent содержится строка вида: <Document-OrderResponse><OrderResponse-Header><OrderResponseNumber>ПСР0019831</OrderResponseNumber><OrderResponseDate>2016-02-24</OrderResponseDate>..... После посылки приходит пустой ответ... Ничего не случается на платформе, при этом если воспользоваться сервисом EDIWebService и отправить туже скопированную строку DocumentContent то все прекрасно доходит до веб портала и документ появляется где надо. Непойму что не так. Может кто ткнет носом в ошибку?... |
|||
1
Serginio1
24.02.16
✎
17:55
|
У каждой EDI обычно есть .Net клиент для вэб или HTTP сервиса. Их можно использовать через Использование классов .Net в 1С для новичков
|
|||
2
totparen
24.02.16
✎
20:34
|
(0) Не могли бы поделиться парой десяткой файлов заказов на XML от COMARCH ?
|
|||
3
totparen
24.02.16
✎
20:36
|
Или это тот же самый корус?
|
|||
4
zippygrill
24.02.16
✎
20:57
|
(3) он самый)
|
|||
5
zippygrill
24.02.16
✎
20:57
|
мучал его тоже сегодня своими запросами
|
|||
6
zippygrill
24.02.16
✎
20:59
|
взяли бы пример у ФСРАРа как xsd схемы своих файлов создавать..
|
|||
7
maestro-72
25.02.16
✎
08:50
|
(2) Вот тут я не понял вопроса (3) Да, это действительно корус. А по существу вопроса чтото есть?
|
|||
8
maestro-72
25.02.16
✎
10:32
|
Если процедуре в качестве документа передавать пустое значение, то процедура отрабатывает правильно. Из этого можно сделать вывод, что передавать надо определенным образом закодированный XML. Т.е. как бы правильно выразится, чтобы запрос не принимал этот xml документ за свое тело. Как это сделать, есть у кого пример?
|
|||
9
maestro-72
25.02.16
✎
10:38
|
Вот тут ктото чтото похожее спрашивал, как сделал непонятно http://www.cyberforum.ru/xml-xsl/thread1439622.html
|
|||
10
Serginio1
25.02.16
✎
10:58
|
Берешь в руки фиддлер и сравниваешь
|
|||
11
Serginio1
25.02.16
✎
11:01
|
Кстати а подписывать документ разве не нужно?
|
|||
12
maestro-72
25.02.16
✎
11:46
|
(10) вот не совсем понял о чем речь
|
|||
13
Serginio1
25.02.16
✎
12:40
|
||||
14
Serginio1
25.02.16
✎
12:49
|
Смотри вкладку inspectors и вкладки RAW итд
|
|||
15
maestro-72
25.02.16
✎
14:33
|
я тут подумал, наверное я неправильно сохраняю строку XML. Я делаю ПредставлениеXML. А надо как-то по другому. Скорее всего его надо сохранить в строку с кодировкой типа XMLencode, но как это сделать в 1с я не знаю...
|
|||
16
maestro-72
25.02.16
✎
14:34
|
(11) Подписывается счетфактура. Это можно сделать на портале. Или заморочится в 1с, но сначала надо документ на портал выгрузить...
|
|||
17
Serginio1
25.02.16
✎
14:37
|
(16) Фиддлер использовал? Сравнивал запросы?
|
|||
18
Serginio1
25.02.16
✎
14:38
|
Вообще у тебя вэб сервис. Используй 1. Наверняка есть примеры и библиотек.
|
|||
19
Serginio1
25.02.16
✎
14:39
|
Я сам для 7 ки использую. В том числе сериализацию десериализацию. Но с другим EDI
|
|||
20
maestro-72
25.02.16
✎
14:42
|
(18) Требуется время на изучение... Поверхностно пока просмотрел, мало что понял.
|
|||
21
Serginio1
25.02.16
✎
14:55
|
(20) Запросы сравнивал?
|
|||
22
maestro-72
25.02.16
✎
20:59
|
Короче документxml надо кодировать (заменять знаки < и > на &iln; и т.д.) Тогда документ уходит без проблем. Кодировка достаточно простая, можно самому написать. Конечно хотелось бы иметь что-то встроенное, но я пока не нашел в 1с
|
|||
23
Serginio1
26.02.16
✎
10:26
|
Ну в .Net для этого есть HttpUtility.HtmlEncode
врап=новый COMОбъект("NetObjectToIDispatch45"); HttpUtility=Врап.ПолучитьТипИзСборки("System.Web.HttpUtility","System.Web.dll"); СтрОриг = "<Document-OrderResponse><OrderResponse-"; Стр=HttpUtility.HtmlEncode(стрОриг); Сообщить(стр); |
|||
24
Serginio1
26.02.16
✎
10:27
|
Можно попробовать отправить через HTTPClient
uriSources ="https://www.ecod.pl/webserv2/EDIservice.asmx?WSDL"; HttpClient=Врап.ПолучитьТипИзСборки("System.Net.Http.HttpClient","System.Net.Http.dll"); Клиент=Врап.СоздатьОбъект(HttpClient); Encoding=Врап.ПолучитьТип("System.Text.Encoding"); Контент=Врап.СоздатьОбъект("System.Net.Http.StringContent",СтрОриг, Encoding.UTF8, "application/xml"); резулт=Клиент.PostAsync(uriSources, Контент).Result; Сообщить(резулт.IsSuccessStatusCode); Сообщить(Врап.Встроку(резулт.StatusCode)); Сообщить(резулт.Content.ReadAsStringAsync().Result); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |