Использование скриптового языка JavaScript в условных операторах для копирования файла


В этом примере мы разберем операцию копирования файлов из одной директории C:\Atlas365\data\ в поддиректории: короткие_имена и длинные_имена, в зависимости от длины имени файла. Фактически это распределение файлов в различные директории по длине имени файла. Файлы к этому примеру находятся в директории C:\Atlas365\examples\Scripting\JavaScriptlInCondition

Шаг 1


Скопируем файлы «Example.xls» и «Example long filename.xls» в директорию C:\Atlas365\data\
Эти файлы будут служить в качестве триггера для запуска процесса копирования файлов.

Шаг 2


Сформировать файл процесса. Процесс программы будет проверять директорию C:\Atlas365\data\ на предмет нахождения .xls файлов. Для этого примера файл уже сформирован: «ProcessJSlInCondition.xml» и находится в директории C:\Atlas365\examples\Scripting\JavaScriptInCondition\. Ниже рассмотрим пошаговое создание такого файла вручную.


  1. Откроем редактор процессов Atlas365 (Пуск -> Все программы -> Atlas365 –> Edit Atlas365 processes).
  2. Создадим стартовое (кнопка «Start event») и конечное (кнопка «End event») события:
  3. Откроем настройки стартового события («Start»).

    На панели Files установим следующие параметры:
    Path to the file: C:\Atlas365\data\*.xls
    Check every: PT5S
    И нажмите кнопку «Select this trigger».
  4. Добавим Gateway (условие):

    Условие будет такое: если длина имени файла превышает 15 символов, то файл будет скопирован в директорию «длинные_имена», в противном случае – в директорию «короткие_имена».
  5. Добавим задачи (кнопка «Task») для копирования файлов, расположим их так, как показано на рисунке ниже.
  6. Войдем в настройки задач.
    В задаче, копирующей файлы в папку «длинные_имена» установим следующее значения Parameter 1 на вкладке File Copy в разделе File Functions
    C:\Atlas365\data\длинные_имена\

    Аналогично для задачи выполняющей копирование файлов в директорию «короткие_имена»:

    Нажмем кнопку «Select this task» и сохраним изменения.
  7. Соединим все элементы соединительными линиями, чтобы получилось так, как показано на рисунке:
  8. Теперь напишем условия, по которым будут распределяться файлы по длине имени. Для этого необходимо войти в свойства связи, соединяющей условие (gateway) и соответствующую задачу. Для этого необходимо левой кнопкой мыши нажать на соответствующую связь. Для связи, соединяющей условие и задачу копирования файлов в директорию «длинные_имена» установим следующие значения параметров:
    Language: JavaScript
    Условие: INFILENAMEONLY.length>15
    Default flow for gateway: включено

    Аналогично поступим со связью между условием (gateway) и задачей копирования файлов в директорию «короткие_имена»:
    Language: JavaScript
    Условие: INFILENAMEONLY.length<=15
    Default flow for gateway: выключено

    Здесь переменная INFILENAMEONLY содержит имя файла. Для получения справки о других параметрах, см. раздел «Gateways» в руководстве пользователя редактора процессов.
  9. Проверим только что созданную структуру на наличие ошибок, нажав на кнопку «Validate structure». Если есть ошибки, то будет выдано соответствующее сообщение.
  10. Сохраним созданный процесс в файл при помощи кнопки «Save as» под именем «ProcessJSInCondition.xml» в директории C:\Atlas365\examples\Scripting\JavaScriptInCondition\.
  11. Закроем редактор процессов. На этом этапе пример создания файла процесса с помощью редактора процессов завершен.

Шаг 3


Настроить файл конфигурации программы. Для этого необходимо запустить ConfigEditor, создать сервер процессов (если не создан), настроить и подключить созданный на предыдущем шаге файл процесса. Для удобства пользователя, этот конфигурационный файл также уже создан для этого примера, и находится по следующему адресу: C:\Atlas365\examples\Scripting\JavaScriptInCondition\ ExampleJSInConditionConfig.atlas:

Необходимо проверить и при необходимости подключить файл процесса (ProcessJSInCondition.xml) и сделать его активным:

Шаг 4


Запустить программу и проверить, что всё работает. Программа запускается нажатием на кнопку «Запуск». Проверим что файлы «Example.xls» находится в директории C:\Atlas365\data\короткие_имена\:

А файл «Example long filename.xls» находится в соответствующей директории C:\Atlas365\data\длинные_имена\:

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