Здравствуйте.
Хотим настроить регулярный запуск интеграции по расписанию в конце рабочего дня.
Дано:
Terrasoft XRM 3.3.2.43, в которой настроена интеграция с 1С7.7.
Как удобнее всего настроить регулярный запуск этой интеграции по расписанию?
Если я и могу запустить с помощью sheduler'а террасофт, то как стартовать саму интеграцию?
Спасибо.
Нравится
Здравствуйте.
Прежде всего, не совсем понятно, что Вы имеете ввиду под 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, хотя возможно лучше сделать его на автозагрузке и уже внутри по таймеру запускать синхранизацию, но думаю это не принципиально ...