Интеграция AX с другим приложением - PullRequest
0 голосов
/ 24 марта 2011

У меня есть требование, при котором я создаю клиента во внешней системе, когда я создаю его в AX. Первое решение, которое пришло мне в голову, было слишком поглощать сторонний веб-сервис в AX.

но как он будет реализовывать распределенные транзакции ??

Ответы [ 4 ]

1 голос
/ 26 марта 2011

Вариантов интеграции много, но я бы не рекомендовал вставлять их непосредственно в SQL. Это действительно плохое решение. Очевидной причиной является тот факт, что вставка записей, сделанная вне AOT, нарушает бизнес-логику, сохраняющуюся в AOT. База данных предназначена только для сохранения данных и оптимизации чтения и записи данных. Бизнес-логика в AOT отвечает за сохранение всей логики при создании и обновлении записей.

По моему мнению, единственный выбор, который у вас есть, - это код x ++ Стандарт AX имеет специальный класс для этой цели, «AxCustTable». Вы хотите использовать этот класс, чтобы убедиться, что ваши данные о клиентах находятся в лучшей форме на протяжении всей жизни, если ваша интеграция. Что касается передачи данных между системами, у вас есть много вариантов: * Текстовые файлы * XML-файлы * веб-сервисы * читать данные из другой базы данных SQL * etc

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

Удачи!

0 голосов
/ 24 марта 2011

Как будут реализованы распределенные транзакции?

Не будет!

Но имеет ли это значение? Данные клиентов изменяются редко и редко требуют объема транзакций.

0 голосов
/ 24 марта 2011

Вы можете создать Связанный сервер и использовать распределенные транзакции с прямым SQL (класс ODBCConnection)

0 голосов
/ 24 марта 2011

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

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

...