1b.app
Скопійоване посилання -

Интеграция с чайником. Или почему можно сделать практически любую интеграцию

Любой поставщик CRM или интегратор в 90% проектах слышит вопрос “А можно ли интегрировать с ….?”. Это нормально, это правило рынка. Данное правило вызвано тем, что большинство компаний приобрело либо техническое обеспечение, либо программное много лет назад, и это надо использовать. 

Как строится интеграция между программными комплексами (на очень-очень простом языке). Представьте две, или более, базы данных. База данных - это встроенная специальная “табличка” внутрь программы, где содержаться записи. Эти записи попадают в базу данных либо через ввод пользователей (к примеру в поле “Возраст” вы прописали “45”, или “сорок пять”, так вот это значение запишется в базу данных. Или есть еще другие способы, автоматически/полуавтоматически (без участия вообще человека либо без прямого участия человека, когда например пользователь переводить заказ в статус “Продано”, в базе данных прописывается это значение). 

Так вот, интеграция/обмен данных/синхронизация данных строится за счет того, что одно ПО, к примеру OneBox, записывает значение, которые были введены именно в OneBox, в другую базу данных. Как это может делаться (как OneBox вносит значения в другую, стороннюю базу данных)? Это делается одним из методов (приведем в пример 3 самых популярных).

1. Обмен через интеграцию по HTTP протоколу (это когда одна программа, к примеру OneBox, создается запрос по какой-то ссылке, к примеру www.you-crm.com/api/add/login=xxx/password=yyyy/name=Dmitriy/ Вторая программа, назовем её “Ты ЦРМ”  понимает, что это запрос на ввод информации в поле Имя. Но вы спросите: “А как “Ты ЦРМ” понимает, что надо вписать именно в поле “Имя”?. Она это понимает так как в ссылке мы вписываем значение этого поля именно из “Ты ЦРМ”, а не из OneBox. Действительно, если в Onebox это поле называется как-то по другому, к примеру “First_name”, а не “тame”, и OneBox передаст именно это значение, то “Ты ЦРМ” не сможет внести эту информацию, так как просто не распознает “куда записывать”. 

Данный метод самый эффективный, так как позволяет передавать информацию в режиме online (без задержек). И позволяет обрабатывать огромные объемы информации. Но не у всех программных продуктов есть поддержка HTTP протокола. У OneBox есть, если что, вот документация.

2. Следующий, пока что еще популярный способ (популярный не из-а эффективности, а из-за того, что так сложилось) - это обмен XML документами. В данном случае одна программа, к примеру “Ты ЦРМ”, формирует какой-то документ, к примеру data.xml, и выгружает ее на FTP папку, к которой есть доступ. Второй программный продукт, к примеру “OneBox”, скачивает этот файл и загружает внутрь своей базы данных. Принцип записи полей работает аналогично, как с методом №1. Разница только в том, что программному обеспечению, которое формирует документ надо время, чтобы его создать. А второе ПО раз в минуту/час/день заходит в папку и проверяет “есть ли новенький документ для загрузки”. Из-за этого скорость этого механизма в разы меньше. 

3. Третий, последний вариант, который мы рассмотрим - это запись напрямую в базу данных. Это когда один из программных продуктов заходит в “специальную табличку”, которую мы описывали выше и прямо прописывает те значения, которые должны содержаться в этой базе данных. 

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

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

Далее, рассмотрим интеграцию программного продукта с “железом”. Сюда можно отнести: физическую АТС, система пропусков, электронные весы, кассовый аппарат и т.д. У большинства физических приспособлений нет баз данных (так как им не надо в себе хранить какую-то информацию). Они используют просто протоколы передачи данных. Это работает так: происходит какое-то событие > устройство передает данные > все. 

Так вот, чтобы обеспечить интеграцию надо сделать так, чтобы ваше программное обеспечение научилось “считывать этот запрос”. Большинство приспособлений в СНГ, по умолчанию, имеет протоколы которые работают только с физическим носителем (персональным компьютером) на платформе Windows. По этому приходится писать специальные маленькие “программки”, которые переводят из этого запроса на тот, который понимает ваше программное обеспечение (я обещал писать очень просто, так что технари - уже извините за такую подачу). 

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

Левошич Дмитрий Владимирович