Здравствуйте.
Хотим настроить регулярный запуск интеграции по расписанию в конце рабочего дня.
Дано:
Terrasoft XRM 3.3.2.43, в которой настроена интеграция с 1С7.7.

Как удобнее всего настроить регулярный запуск этой интеграции по расписанию?
Если я и могу запустить с помощью sheduler'а террасофт, то как стартовать саму интеграцию?
Спасибо.

Нравится

3 комментария

Здравствуйте.

Прежде всего, не совсем понятно, что Вы имеете ввиду под sheduler Terrasoft, если имеются ввиду Задачи, то там возможности такой нет.
Начиная с версии 3.4 для таких целей можно будет использовать утилиту TSJobManagerService.

На данный момент можем предложить Вам следующие варианты:

1. Реализовать выполнение синхронизации из окна Terrasoft:
- в качестве утилиты для запуска используем некий scheduler ОС, который способен выполнить командную строку;
- в Terrasoft нужно будет реализовать окно(назовем его wnd_1CAutoSynchro), которое на подготовке будет запускать нужную интеграцию. Скрипт самого запуска будет примерно такой:
var Attributes = GetNewDictionary();
Attributes('IsMain') = true;
Attributes('IsShowError') = true;
ImportAllObject(DataflowID, Attributes); // в скрипте scr_Dataflow1CUtils
- командная строка будет выглядеть примерно так:
“[путь к terrasoft]\bin\tsclient” /wnd=wnd_1CAutoSynchro /usr=??? /pwd=??? /cfg=???
или для windows авторизации
“[путь к terrasoft]\bin\tsclient” /wnd=wnd_1CAutoSynchro /wauth=true /cfg=???
- в любом случае здесь возникает вопрос, так как в командной строке нужно будет хранить пароль, это плохо. В случае же windows-авторизации - такая проблема отпадает.

2. Реализовать вызов синхронизации из обычного js-скрипта
- из js-скрипта (обычный текстовый файл, обычно с расширением js) можно создать COM-объект подключения к Terrasoft (назовем файл Auto1CSynchro.js);
- в этом скрипте будет выполняться подключение, получение скрипта scr_Dataflow1CUtils и вызов его функции ImportAllObject с передачей нужных параметров.
- как и в первом варианте в scheduler-е операционной системы выполнять командную строку вида:
cscript “[путь к js файлу]\Auto1CSynchro.js”
cscript – стандартная команда Windows,
- вопрос с хранением пароля остается, но теперь его можно будет куда-то спрятать\зашифровать и в js-файле считывать.

Инна Безверхняя,
II линия службы поддержки Terrasoft.

Третий вариант, не дотягивает до первых двух, но может быть проще в реализации для новичков и проблемы с паролем отпадают. Для этого нужно добавить Timer и на его событие OnTimer отрабатывать необходимую синхронизацию из самого СРМ.

Если проблема с паролем критична, то можно создать маленькое приложение, на каком-нибудь C# и из него так же как и во 2ом варианте Инны использовать СОМы террасофта, ну а пароль захаркодить. Ну и запускать его все тем же ОСевым sheduler, хотя возможно лучше сделать его на автозагрузке и уже внутри по таймеру запускать синхранизацию, но думаю это не принципиально ...

Показать все комментарии