|
Как правильно организовать работу с планом обмена? | ☑ | ||
---|---|---|---|---|
0
DTX 4th
18.09.20
✎
12:24
|
Пишу модуль, который будет выгружать изменения номенклатуры на сайт.
Создал план обмена, добавил номенклатуру и справочник упаковок с авторегистрацией. В момент выгрузки нужно понять номер последнего отправленного сообщения на сайт, выбрать все изменения после него, по этому списку получить список номенклатуры (выгружать надо измененную номенклатуру + номенклатуру, у который изменены упаковки). В моей голове выглядит так: 1. Получаем номер последнего отправленного сообщения: N 2. Выгружаем все изменения от N + 1 и дальше 2.1. Получать изменения запросом или через ПрочитатьИзменения (или что там у плана обмена есть, не помню)? 2.2. Нужно иметь в виду, что в момент выгрузки могут появиться новые изменения, и важно не затереть их в следующем шаге 3. Выгружаем все это дело на сайт. Если сайт сказал, что он принял изменения, мы удаляем из плана обмена все эти изменения от N+1 до последнего на момент получения (с учетом 2.2.) 3.1. Каким образом это правильно сделать? Для хранения номера последнего отправленного сообщения, если я правильно понимаю, отдельный регистр не нужно. Вроде в плане обмена можно хранить эту инфу. Прокомментируйте пожалуйста, чтобы я понимал, куда двигаться дальше. Спасибо |
|||
1
ДенисЧ
18.09.20
✎
12:26
|
А чем просто ВыбратьИзменения() не катит?
|
|||
2
DTX 4th
18.09.20
✎
12:34
|
(1) Видимо, катит.
Года пол назад последний раз работал с планом обмена - уже успел все забыть. Т.е. я в ВыбратьИзменения() передаю номер сообщения, которое сейчас будет выгружено. Откуда мне взять это номер? И как потому удалить все изменения с этим номером? Что-то не вижу в СП |
|||
3
Timon1405
18.09.20
✎
12:37
|
читать "проф. разработка: Глава 19. Обмен данными" до полного просветления
|
|||
4
Web00001
18.09.20
✎
12:37
|
(2)Там вроде как получить изменения и возвращает этот номер увеличивая его.
|
|||
5
Web00001
18.09.20
✎
12:38
|
(3)+1 там очень подробно написано. Напиши на почту, кину в тебя pdfкой.
|
|||
6
VladZ
18.09.20
✎
12:46
|
(0) "В моей голове выглядит так:" - корявенько всё выглядит в твое голове.
Должно быть так: 1. Получаем список зарегистрированных объектов. 2. Выгружаем. 3. В случае успешной загрузки - очищаем изменения по узлу. Всё! В топку все заморочки с "номер последнего отправленного сообщения". |
|||
7
DTX 4th
18.09.20
✎
12:47
|
(3) Так тут инфы то на лист А4 в виде презентации.. Разве нет?
(4) Не, выборку возвращает. Нужно передавать номер сообщения, которым будут помечены выгружаемые данные (5) Написал |
|||
8
DTX 4th
18.09.20
✎
12:48
|
(6) Ну конечно
Каким образом предлагаешь изменения по узлы очищать? Если по ссылкам, то см. пункт 2.2. |
|||
9
ДенисЧ
18.09.20
✎
13:05
|
ЗАчем читать профразработку? В СП есть
<НомерСообщения> (обязательный) Тип: Число. Номер сообщения обмена данными, в *который будут помещены выбранные изменения*. |
|||
10
hhhh
18.09.20
✎
13:07
|
(8) в типовых обменах всё это реализовано. И пункт 2.2 тоже. Зачем тебе свой велосипед придумывать?
|
|||
11
Dmitry1c
18.09.20
✎
13:08
|
(6) угу, и теряем объекты, попавшие в план обмена за время выгрузки
|
|||
12
DTX 4th
18.09.20
✎
13:12
|
(10) Да потому что типовой модуль выгрузки в битрикс - то еще извращение. Проще за пару часов что-то подобное наколбасить
(9) Все вижу, на запись доступно, спасибо |
|||
13
hhhh
18.09.20
✎
13:22
|
(12) это кажется что проще. А по факту сам еще больше извратишься в итоге. Проверено.
|
|||
14
DTX 4th
18.09.20
✎
13:25
|
(13) Да я уже поковырял однажды обмен с битриксом. Плевался долго.
А тут с прогом битрикса обсудили, что подобная выгрузка не помешает. Выбрать все из плана обмена, засунуть в JSON, отправить на сайт. Пару часов чистыми. |
|||
15
VladZ
18.09.20
✎
13:26
|
Упс. Сорян. Действительно, потеряются данные.
|
|||
16
zippygrill
18.09.20
✎
13:31
|
(15) ИначеЕсли ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки = 1 Тогда
// Для всех изменений которые были в плане обмена отменяем регистрацию. ПланыОбмена.УдалитьРегистрациюИзменений(Элемент.Ключ, Элемент.Значение.НомерСообщения); |
|||
17
DTX 4th
18.09.20
✎
13:56
|
(16) То что нужно, спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |