|
Oracle соединение с 1с8.2 через Web-сервис | ☑ | ||
---|---|---|---|---|
0
Leonidikus
14.11.12
✎
11:27
|
Здравствуй IT-Сообщество!
Имеется: Oracle 11g на компьютере А. 1с 8.2.15.294 на компьютере Б. Задача: Отправить данные с Oracle на 1с. Решение: (предполагаемое решение) Действия на машине Б В компьютере Б установлен Apache, на 1с поднят и опубликован Web-сервис ( имя => reqvest, Создана операция => Open, в которой обозначен входящий параметр Parametr) Действия на машине А В Оракле запускается PL/SQL Declare req utl_http.req; resp utl_http.resp; request_env varchar2(2000) := ''; Begin //формирования SOAP для вызова операции Open request_env:=request_env||'<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema">'; request_env:=request_env||'<soap:Header>'; request_env:=request_env||'<soap:Body>'; request_env:=request_env||'<web:Open>'; request_env:=request_env||'<web:Parametr>test<web:Parametr>'; request_env:=request_env||'</web:Open>'; request_env:=request_env||'</soap:Body>'; request_env:=request_env||'</soap:Envelope>'; req := utl_http.begin_request('http://<host 1s>/SKL/ws/reqvest?wsdl', 'POST', utl_http.HTTP_VERSION_1_0); utl_http.set_authentication(r => req, username => 'Administrator'); utl_http.set_header(req, 'Content-Type', 'value=text/xml; charset=utf-8'); utl_http.write_text(req,request_env); resp := utl_http.get_response(req); dbms_output.put_line(resp.status_code); end; Итог: В Oracle возвращается статус 200. В 1с в журнале регистрации появляется 3 записи, Аутентификация, Начало сеанса, Конец Сеанса (все три происходят в течении 1 сек), но действия описанные в операции Open не выполняются. Для проверки сделал в модуле сеанса и в операции Open создание строки в справочнике. Строка из Модуля сеанса появляется а из Web-сервиса нет. Вопрос: Как запустить функции в 1с? |
|||
1
Leonidikus
14.11.12
✎
11:34
|
Прошу прощение но что-то не понятное вставилось в utl_http.begin_request
правильно req := utl_http.begin_request('http://<host 1c>/SKL/ws/reqvest?wsdl', 'POST', utl_http.HTTP_VERSION_1_0); |
|||
2
Balonbl4
14.11.12
✎
11:38
|
Подключитесь к веб сервису на 1С с помощью soapUI и посмотрите,как он строит запросы. По аналогии сделайте и в Оракле.
|
|||
3
Leonidikus
14.11.12
✎
12:26
|
(2) Я конечно гляну, но я больше грешу на неправильный метод передачи данных
|
|||
4
Leonidikus
15.11.12
✎
15:11
|
Проблема решена.
Ошибка заключалась в неправильном SOAP структуре. Сделал как предлагал товарищ Balonbl4, установил soapUI и он мне показал структуру которую от меня ждала 1с |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |