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(' 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(' 1c>/SKL/ws/reqvest?wsdl', 'POST', utl_http.HTTP_VERSION_1_0);
|
|