Задача [IDE3]: Структура приложений

Формулировка проблемы: для упрощения процесса разработки приложений на базе Synergy необходимо изменить интерфейс конфигуратора на оболочку Synergy IDE.

Связанные задачи:

Решение:

В данной задаче описаны:

Структура, создаваемая по умолчанию

Рекомендуемым способом структурирования приложения на Synergy является группировка объектов приложений по "модулям" - отдельным крупным блокам, слабо связанным между собой. При этом разработчик должен иметь возможность создать "с нуля" любую необходимую ему структуру нового приложения.

На страницу создания приложения необходимо добавить флаг "Использовать структуру по умолчанию", по умолчанию включенный. Этот флаг должен быть доступен только для несохраненного приложения:

Рисунок 36. Флаг "Использовать структуру по умолчанию"

Флаг "Использовать структуру по умолчанию"

Если флаг отключен, то должно создаваться пустое приложение, без вложенных папок.

Если флаг включен, то при первом сохранении в приложении должна создаваться структура папок вида:

  • Приложение

    • module

      • basic_objects

      • docflow

      • groups

      • integration

      • processes

      • reports

      • workforces

Структура, создаваемая при обновлении Synergy

Поскольку при обновлении существующих объектов конфигурации Synergy в термины приложений невозможно автоматически объединить объекты различных сущностей по их функционалу, для них должна создаваться структура папок в соответствии с типом каждой сущности, а именно:

  • Приложение

    • basic_objects

      • counters

      • dictionaries

      • forms

    • docflow

      • document_templates

      • document_types

      • number_templates

      • registers

    • groups

    • integration

      • external_module_components

      • outer_modules

      • interpreter_scripts

      • custom_components

    • processes

      • registries

      • registry_groups

      • route_templates

    • reports

    • workforces

      • actions_on_employees

      • actions_on_personnel_reserve

      • division_cards

      • position_cards

      • user_cards

Ранее существовавшие специальные справочники не включаются в общее приложение, а отображаются только в настройках платформы, раздел "Системные справочники":

  • action_progress

  • resolution

  • send_items

  • calendar_types

  • pm_custom_fields

  • resolution_work_types

  • priority_items

  • l10n

  • dtint_internal_fields

Формат объектов

В результате миграции объекты каждой сущности должны быть представлены в виде отдельных файлов и размещены в папке, соответствующей названию сущности.

При этом:

  • каждый пользовательский компонент должен быть представлен в виде отдельной папки со своими настройками в формате json (не отображается в навигаторе), кодом html и JavaScript (подробнее - в задаче IDE2);

  • каждая форма должна быть представлена в виде отдельной папки со своей структурой в формате json (не отображается в навигаторе), печатным представлением (если оно есть), кодом формы и кодами отдельных компонентов в формате js (подробнее - в задаче IDE2);

  • каждый скрипт интерпретатора должен быть представлен в виде отдельной папки со своими настройками в формате json (не отображается в навигаторе) и кодом скрипта в формате js (подробности интеграции интерпретатора будут описаны позднее);

  • объекты остальных сущностей должны быть представлены каждый в виде отдельного файла json. Формат представления аналогичен используемому для импорта/экспорта конфигурации.