Обучение · Урок 6

Как заставить ваши системы говорить?

Поставить связь между двумя системами само по себе не заставляет обе держать одну запись в одном значении. В этом уроке вы заполняете карту интеграции: какое поле идёт в каком направлении, как преобразуется формат, как одна запись не делится надвое и у кого ждёт работа, когда связь обрывается.

Чему вы научитесь в этом уроке

В пятом уроке вы собрали первый поток, и интеграции занимали в сборочном листе одну строку. Этот урок раскрывает ту строку. Понимание между двумя системами не сводится к тому, чтобы поставить между ними связь; договорённость держится тогда, когда записано, какое поле идёт в каком направлении, как преобразуется формат и кто остаётся ждать, когда связь обрывается.

Урок не разбирает экран коннекторов конкретного средства. Разбирается карта интеграции: запись, которую заполняют до сборки связи и которая остаётся на руках после. Когда карта есть, одни и те же вопросы выходят отвеченными, каким бы средством связь ни собиралась.

Цели урока

  • Заполнить карту интеграции по шести столбцам
  • Отметить направление и источник для каждой пары полей
  • Записать преобразование формата вместо того, чтобы оставлять его догадкам
  • Выбрать ключ сверки и задать правило конфликта
  • Решить отдельно первичный перенос и постоянную синхронизацию
  • Записать, кто ждёт и какова ручная замена, когда связь обрывается
  • Проверить связь тремя проходами: пустым, обычным и нетипичным

Условие: словарь полей из третьего урока и поток, собранный в пятом. Без словаря полей таблица соответствий не пишется, потому что определений сопоставляемых полей ещё нет.

Что такое интеграция и что ею не является

Интеграция означает, что две системы держат одну и ту же запись в одном и том же значении. Наличие связи само по себе этого не даёт; запись становится действительно общей, когда обе стороны читают одно поле в одном значении.

На практике различие измеряется одним вопросом: если открыть запись в двух системах рядом, говорят ли обе одно и то же? Если ответ отрицательный, связь работает, а интеграции нет. Такое состояние тоже не даёт ошибки, ведь каждая система внутри себя выглядит согласованной.

Интеграция это

Поля, определённые друг через друга, выбранное направление, преобразованный формат и одна запись, не разделённая надвое. Всё это решения, которые можно записать.

Интеграция это не

Поставить связь между двумя системами и смотреть, как течёт поток. Верно ли читается текущий поток, это отдельный вопрос, и сам собой он не отвечается.

Знак границы

Каждый раз, когда вы останавливаетесь при сопоставлении поля и думаете, за что его считает другая сторона, там на карте не хватает строки. Недостающая строка выходит на первой нетипичной записи.

Карта интеграции: шесть столбцов

Карта помещается на одной странице, и каждая строка описывает одну пару полей. Шесть столбцов отвечают шести вопросам, которые задаются при сборке связи; когда столбец остаётся пустым, поведение того поля отдано средству.

Заполнить карту до сборки связи и заполнить её после это разная работа. Заполненная сначала, она выводит пробелы на бумагу; заполненная потом, она записывает поведение, которое выдало средство, и неверное поведение входит в карту с видом правильного.

Шесть столбцов карты

  • Система и поле источника: где рождается запись
  • Система и поле назначения: куда запись пишется
  • Направление: в одну сторону или в обе
  • Преобразование формата: как каждая сторона пишет одно и то же значение
  • Если приходит пустым: что уходит в назначение, пока поле пусто
  • Если расходятся: какое значение остаётся при разных значениях сторон

Последние два столбца обычно заполняют в конце, хотя спрашивать о них стоило бы в начале. Пустые значения и расхождения это два места, где интеграции дают тихие сбои.

Направление: система источник, система зеркало

В каждой паре полей одна сторона это место рождения записи, другая её зеркало. Выбор источника не предпочтение, а установление: источник там, где поле возникает впервые. Зеркало переносит запись, а не изменяет её.

Взаимное направление собрать можно, но у него есть цена: как только писать могут обе стороны, появляется возможность расхождения, и если правило конфликта не записано, побеждает тот, кто записал последним. Кто пишет последним, чаще всего зависит от момента, поэтому исход становится трудно предвидеть.

Система источник

Место, где поле рождается первым. Исправление тоже делается здесь; исправление, сделанное в зеркале, может быть отменено при следующем переносе.

Система зеркало

Сторона, которая держит запись для показа и для своей работы. Когда зеркальные поля считаются доступными только для чтения, споров в команде становится меньше.

Взаимное направление

Поле, которое могут писать обе стороны. Собирается только при записанном правиле конфликта; без правила поле переводится в одну сторону.

Сопоставление полей: то же самое под другим именем

Две системы держат одни и те же сведения под разными именами. Таблица соответствий ставит эти имена рядом, но настоящая работа это сопоставление определений, а не имён. Два поля с одним именем, означающие разное, встречаются чаще, чем два поля с разными именами, означающие одно и то же.

Словарь полей из третьего урока здесь оправдывает себя: раз значение поля записано, обсуждение соответствий идёт по определениям. Без словаря сопоставление превращается в то, чтобы поставить рядом два экрана и связать похожие на вид клетки.

Когда таблица соответствий заполнена, между системами не остаётся необсуждённого поля. Необсуждённое поле это то, что проходит перенос тихо пустым.

Преобразование формата: дата, телефон, сумма, имя

Две системы могут писать одно значение по-разному. Порядок в дате, телефонные префиксы, разделитель в сумме и заглавные буквы в имени это классические места, где перенос тихо ломается. Такая поломка не даёт ошибки, ведь система назначения может истолковать пришедшее значение по своим правилам.

Кто выполняет преобразование, отвечается на карте: на стороне источника, во время переноса или на стороне назначения. Годятся все три места, но когда выбор не записан, преобразование делается в двух местах и значение ломается, преобразовавшись дважды.

Дата и время

Порядок и часовой пояс это два разных вопроса. Один и тот же день может попасть на два дня; когда месяц и день меняются местами, запись по-прежнему выглядит годной и это остаётся незамеченным.

Телефон и опознаватель

Код страны, пробелы и разделители. Если ключ сверки это телефон, разница в формате делит одного человека на две записи.

Сумма и единица

Десятичный разделитель, разделитель тысяч и валюта. Сумма, не несущая своей единицы, при истолковании в назначении опускается до значения по умолчанию.

Если правило преобразования помещается в одну строку карты, оно достаточно ясное. Правило, не помещающееся в строку, обычно смесь двух правил.

Ключ сверки: одна запись дважды

Итог, который переносы дают чаще всего, это разделение одной записи надвое в назначении. Причина обычно такая: система смотрит на ключ, чтобы понять, писалась ли пришедшая запись раньше, а ключ либо не выбран, либо на двух сторонах держится не в одном виде.

Выбор ключа был предметом третьего урока; здесь нужно подтвердить, что ключ стоит в обеих системах в одном виде. Если ключ в источнике держится с пробелами, а в назначении без них, две записи выглядят разными и в назначении появляется двойник.

Три вопроса о ключе

  • Стоит ли ключ в обеих системах в одном виде?
  • Может ли ключ со временем меняться, и что тогда бывает со старой записью?
  • Что делают с записями, пришедшими с пустым ключом: пишут или придерживают?

Двойник это тихий сбой. Отчёты раздувают свои итоги, к клиенту обращаются дважды, и через какое-то время уже не различить, какая из двух записей нынешняя.

Темп: сразу, в очереди и пакетом

Когда запись переносится, значит не меньше, чем что переносится. Немедленный перенос самый заметный выбор, но не всякая работа требует переносить сразу; там, где задержка принимается, пакетный перенос идёт с меньшим числом подвижных частей.

Выбор темпа это не предпочтение скорости, а предпочтение ожидания: если перенос запаздывает, кто ждёт и замечает ли этот человек задержку? Незамеченная задержка возвращается не как неисправность, а как "данные неверны".

1 Немедленный перенос

Запись уходит, как только создана. Когда не записано, что бывает при отсутствии ответа другой стороны, запись может остаться в воздухе.

2 Перенос в очереди

Записи пишутся в очередь и переносятся по порядку. В момент обрыва очередь ждёт, а с возвратом связи продолжает с места остановки.

3 Пакетный перенос

Через заданные промежутки всё уходит вместе. Самый простой выбор там, где задержка принимается; окно переноса объявляется команде.

Прежние данные: переносить или оставить?

Вопрос, который при сборке связи пропускают чаще всего, таков: что будет с записями, накопленными до сегодняшнего дня? Здесь две отдельные работы, и при смешении обе остаются наполовину. Первичный перенос это разовое перемещение; постоянная синхронизация ведёт всё дальнейшее. Одна кончается, другая начинается, и правила у них могут быть разными.

Переносить прежние данные нужно не в каждом случае. Начать "с сегодняшнего дня" тоже допустимый выбор, и для большинства пилотных задач его хватает; старые записи продолжают стоять в своей системе. Когда решение о переносе принято, записывается охват: с какой даты и записи в каком состоянии, с закрытыми делами или без них.

Что держит строка первичного переноса

  • Охват: переносятся ли прежние данные, если нет, то день начала
  • Диапазон дат: с какой даты
  • Отбор по состоянию: входят ли закрытые, отменённые и архивные записи
  • Проверка двойников: выровнен ли вид ключа в обеих системах
  • Возврат: как ушедший не туда перенос убирается из назначения

Первичный перенос это момент, который сильнее всего давит на ключ сверки. Разница в формате, незаметная на записях, приходящих поодиночке, при массовом перемещении рождает двойников массово, и их число может вырасти дальше того, что кто-либо вычистил бы вручную.

Поэтому первичный перенос делается на настоящих данных, а не на пробных, и ему стоит быть обратимым: сначала уходит узкий диапазон дат, итог сравнивается в обеих системах, и если двойников не выходит, идёт остальное. Пометка перенесённых записей это то, что делает возможным убрать из назначения ушедший не туда перенос.

Кто ждёт, когда связь обрывается?

Всякая связь время от времени обрывается. Урок не предлагает убрать эту возможность; он предлагает записать, где тогда останавливается работа. Незаписанный обрыв показывается не как неисправность, а как пробел, замеченный днями позже.

Строка обрыва на карте держит три вещи: ждущего человека, ручную замену и возврат. Когда эти три записаны, обрыв ведётся как задержка; незаписанный обрыв может тихо обернуться потерей данных.

Что держит строка обрыва

  • Кто ждёт: имя человека, чья работа остаётся незавершённой
  • Куда уходит оповещение: человеку или в общий ящик
  • Ручная замена: как та же работа идёт без связи
  • Возврат: как наполовину перенесённая запись забирается из назначения
  • Отметка обрыва: где записываются обрыв и его длительность

Наполовину перенесённая запись заметна меньше, чем та, что не переносилась вовсе: в назначении запись всё же появляется, поэтому пробел выходит наружу только при использовании.

Права и доступ: что видит каждая учётная запись

Связь собирается под учётной записью, и всё, что эта запись видит, может открыться другой стороне. Взять при сборке самую широкую по правам запись делает работу быстрее и оставляет после себя дверь, которую потом никто не сужает.

Принадлежит ли учётная запись работе, а не человеку, это отдельное дело. Связь, собранная под личной записью, тихо останавливается, когда этот человек уходит, и причину остановки ищут в самой связи.

Что держит строка доступа

  • Под какой учётной записью собрана связь и кому она принадлежит
  • Какие записи учётная запись может читать и какие писать
  • Когда права пересматриваются
  • Какие доступы забираются, если связь закрывается

Правило доступа, записанное в третьем уроке, проверяется здесь второй раз: поле, круг чтения которого записан в словаре, может открываться через интеграцию другой системе.

Проверка интеграции: три прохода

После сборки связи проверка не кончается тем, чтобы перенести одну запись и посмотреть на итог. Сделанные вместе, три прохода подтверждают большую часть строк карты.

Проверка делается на пробных данных, и пробные записи узнаются по имени. Проверка на живых записях оставляет в системе назначения след, который приходится убирать.

1 Пустой проход

Запись с оставленными пустыми необязательными полями. Он показывает, чем становится пустое значение в назначении: остаётся пустым, пишется значение по умолчанию, запись отклоняется.

2 Обычный проход

Типичная запись повседневной работы. Служит тому, чтобы открыть сопоставление полей и преобразование формата рядом и сравнить их.

3 Нетипичный проход

Длинное имя, телефон в другом формате, вторая запись под тем же ключом. Проход, который проверяет правила сверки и конфликта.

Итог трёх проходов пишется рядом с картой. Непроверенная строка собранной не считается.

Пример от начала до конца: агентство недвижимости связывает

В прошлых уроках офис выбрал пилотную задачу, записал её процесс, составил словарь полей, выбрал средство и собрал первый поток. Теперь система объявлений и таблица сопровождения не видят друг друга, и один и тот же запрос вводится вручную в двух местах.

Офис начинает с заполнения карты, и уже на первой строке возникает спор: в какой системе рождается номер телефона? Запрос, приходящий в систему объявлений, несёт телефон, и таблица сопровождения тоже; оба стоят в разном виде.

Первые строки, которые заполняет офис

Источником отмечается запись запроса в системе объявлений; таблица сопровождения принимается зеркалом. Для поля телефона преобразование формата делается во время переноса и приводится к одному виду. Ключом сверки выбирается телефон, потому что один и тот же человек может писать с разных объявлений.

Строка пустого значения пишется так: если телефон пуст, запись в таблицу сопровождения не пишется, она падает в список ожидания, и ответственная за офис проходит этот список в конце дня. В строке расхождения выше держится сторона источника; исправления, сделанные в таблице вручную, идут в поле заметок, а не в поле телефона.

Темпом выбирается пакетный перенос, потому что переносить запросы несколько раз в день, а не в момент их прихода, работе достаточно. В строке обрыва ждущим человеком записывается ответственная за офис, а ручной заменой остаётся открытым прежний способ ввода.

В таблице сопровождения записи уже были, поэтому принимается и решение о первичном переносе. Вместо того чтобы двигать всю историю, офис берёт недавние и открытые запросы; закрытые дела остаются снаружи, ведь их соответствие в таблице и так закрыто. Перенос сначала пробуется на узком диапазоне дат, и число строк сравнивается в двух системах. На первой пробе выходят двойники: вид телефона ещё не выровнен. Преобразование исправляется и перенос повторяется, перенесённые записи помечаются меткой, и эта метка позволяет убрать из назначения ушедший не туда перенос целиком.

В проверке трёх проходов нетипичный проход ловит пробел: когда со второго раза приходит запрос с того же телефона, в таблице сопровождения открывается новая запись. Правило ключа исправляется, и второй запрос входит заметкой под тем же человеком.

Упражнение: на этой неделе

На этой неделе перенесите на карту одну единственную связь. Собирать новую связь не требуется; начертить карту уже идущего переноса делает ту же работу и обычно выводит несколько недостающих строк.

Скачать карту интеграции (xlsx) · карта на одну страницу, заполняющая сопоставление полей, направление, преобразование формата, первичный перенос и поведение при обрыве; проверка трёх проходов тоже внутри.

Частые ошибки

Ошибки ниже выходят не из самой связи, а из того, что карта осталась неполной. Общее у них вот что: все они идут, не выдавая сообщения об ошибке.

Связывать, не записав направление

Как только писать могут обе стороны, побеждает тот, кто пишет последним. Сделанные вручную исправления могут отменяться при следующем переносе, а причину ищут в средстве.

Оставить ключ в его виде

Если один и тот же телефон стоит в двух видах, в назначении появляются две записи. Двойник портит и отчёт, и обращение к клиенту.

Отдать пустое значение средству

Пустое поле в назначении может опуститься до значения по умолчанию. Значение по умолчанию выглядит как заполненное, поэтому потом его не отличить.

Не записать обрыв

Если при остановке переноса никто не назначен ждущим, пробел может выйти наружу днями позже с вопросом клиента.

Проверять на живых данных

Когда пробная запись берётся из живых, в назначении остаётся след, который надо убирать, и уборка чаще всего делается наполовину.

Заполнять карту задним числом

Карта, написанная после сборки, записывает поведение, выданное средством. Неверное поведение тем же путём документируется как верное.

Контрольный список

Если до выхода в работу на каждый пункт этого списка есть ответ, карта считается полной.

До выхода в работу

  • В каждой строке записаны источник, назначение и направление
  • Поля, которым нужно преобразование, отмечены и место преобразования выбрано
  • Ключ сверки в обеих системах в одном виде
  • Охват, диапазон дат и путь возврата первичного переноса записаны
  • Поведение при пустом значении записано для каждого поля
  • Правило конфликта записано и известно команде
  • Учётная запись связи принадлежит работе, а не человеку
  • Ждущий человек, ручная замена и путь возврата записаны
  • Три прохода сделаны на пробных данных и их итоги записаны
  • Пробные записи убраны из системы назначения

Словарь

Слова, которые встречаются в разговорах об интеграции. Говорить на одном языке с человеком, который собирает связь, укорачивает заполнение карты.

Что дальше

В этом уроке вы заставили две системы говорить: сопоставили поля, выбрали направление, преобразовали формат, решили, переносить ли прежние данные, и записали поведение при обрыве. Следующие уроки берутся за поддержание этого порядка: вести исключения, вводить команду в процесс и измерять итог.

Если хотите продолжить с вышедших уроков, на очереди модуль о том, куда смотреть, когда перенос идёт не так, как ожидалось.

Урок 7: Когда автоматизация не работает

Тихий сбой, лист неисправности, способ деления пополам и стойкое исправление.

Урок 5: Собрать первую автоматизацию

Сборочный лист и пять частей. Строка интеграции, которую раскрывает этот урок, стоит там.

Все уроки

Весь раздел обучения и модули, добавленные с тех пор.

Если хотите заполнить карту вместе до связывания двух систем, напишите нам.

Запросить через WhatsApp

Частые вопросы

Нужно ли писать код для интеграции?
Это зависит от выбранного средства. Карта этого урока заполняется и без написания кода; разбирается не пользование коннектором, а то, что стоит быть записанным между двумя системами. Когда карта есть, одни и те же вопросы оказываются отвеченными, каким бы путём связь ни собиралась.
Нужна ли карта, когда есть готовый коннектор?
Готовый коннектор сопоставляет поля своими предположениями, и эти предположения на экране не видны. Карта показывает, подходят ли они вашей работе; места, где не подходят, обычно выходят в строках пустого значения и расхождения.
Могут ли две системы писать друг другу взаимно?
Могут, если правило конфликта записано. Без правила при обновлении одного поля с обеих сторон остаётся тот, кто записал последним, а сделанные вручную исправления могут отменяться при следующем переносе. Если правило записать не удаётся, перевод поля в одну сторону обычно приносит меньше неожиданностей.
Почему одна запись делится в назначении надвое?
Обычно ключ сверки либо не выбран, либо стоит в двух системах в разном виде. Телефон, который с одной стороны держат с пробелами, а с другой без них, показывает одного человека двумя отдельными записями. Выравнивание вида ключа могло бы убрать большую часть двойников.
Если связь обрывается, теряются ли данные?
Это зависит от темпа переноса. В переносе с очередью записи ждут в очереди, поэтому с возвратом связи всё продолжается с места остановки; при немедленном переносе, если не записано, что бывает при отсутствии ответа другой стороны, запись может остаться в воздухе. Строка обрыва на карте заполняется именно поэтому.