|
Передача данных по Web-сервису в транзакции | ☑ | ||
---|---|---|---|---|
0
user925
09.12.13
✎
12:47
|
Добрый день.
Есть опубликованный web-сервис и клиенты, которые к нему подключаются через Интернет: Клинетская конфигурация: Таймаут = 5; Попытка GetCardInfo = Новый WSПрокси(WSОпределение, "http://10.1.10.70/GetCardInfo", "GetCardInfo", "GetCardInfoSoap", Таймаут); Сериализатор = Новый СериализаторXDTO(GetCardInfo.ФабрикаXDTO); Клиент = Сериализатор.ЗаписатьXDTO(Карта); Данные = GetCardInfo.BonusCredit(Клиент, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8); Исключение КонецПопытки; Серверная конфигурация: Функция BonusCredit(Клиент, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8); // Операции записи в базу данных. Возврат РезультатОперацииЗаписи КонецФункции При плохом инете "Возврат РезультатОперацииЗаписи" может не произойти, и клиент не получит ответ о том, что запись в БД выполнена успешно. Как обработать ситуацию неудачной отправки информации через команду "Возврат РезультатОперацииЗаписи"? спасибо. |
|||
1
dj_serega
09.12.13
✎
12:50
|
А что возвращается? неопределено?
|
|||
2
user925
09.12.13
✎
12:59
|
На клиент возвращается Структура при успешном вызове или исключение (Couldn't connect to server: Ошибка работы с Интернет)
Серверная конфигурация: Функция BonusCredit(....) ... Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO); ОбъектXDTO = Сериализатор.ЗаписатьXDTO(Структура); Возврат ОбъектXDTO; КонецФункции |
|||
3
Serginio1
09.12.13
✎
13:07
|
Ну 1с не поддерживает WS-ReliableMessaging
Лучше каждому сообщению присваивать свой ГУИд. А на в 1С создать регистр сведений записывающий в него этот ГУИД. Перед записью проверять ГУИД на наличие |
|||
4
user925
09.12.13
✎
13:22
|
(3) Можно скинуть источник информации по поводу WS-ReliableMessaging ?
По ГУИДу, я правильно понимаю вас, что сервер не должен принимать повторное сообщение от клиента, чтобы не дублировать запись в БД? |
|||
5
Serginio1
09.12.13
✎
13:30
|
||||
6
user925
09.12.13
✎
13:49
|
(5) Правильно ли я понял, что сам ws-протокол может поддерживать WS-ReliableMessaging, но в 1С надежные сообщения не реализованы?
|
|||
7
Serginio1
09.12.13
✎
14:01
|
(6) Да. В 1с даже поддерки <s:Header>
и Cookie нет v8: soap:Header v8: Использование SOAP из TurboSMS |
|||
8
user925
09.12.13
✎
14:14
|
Функция BonusCredit(....)
... Нельзя ли здесь получить обработчик соединения и отправить сообщение клиенту с обработкой ошибки отправки? Хотелось бы что-то вроде этого: Попытка Возврат ОбъектXDTO; Исключение // обработка ошибка, отмена транзакции КонецИсключения КонецФункции |
|||
9
Serginio1
09.12.13
✎
14:20
|
||||
10
Serginio1
09.12.13
✎
14:23
|
||||
11
user925
09.12.13
✎
15:04
|
Похоже, то что надо, реализуется только сторонними библиотеками. Воспользуюсь (3).
Спасибо! |
|||
12
acsent
09.12.13
✎
15:08
|
не пришло подтверждение считай что не выполнено. Повторное выполнение должно уметь находить ранее созданное
|
|||
13
acsent
09.12.13
✎
15:10
|
У СМС сервисов обычно есть методы для получения статуса
|
|||
14
user925
09.12.13
✎
16:20
|
Методика ясна, спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |