Главная

Руководство: Метафайл

Метафайл

Метафайл - это файл в формате JSON, определяющий тип, параметры и ресурсы расширения.
Метафайл должен иметь имя metafile.json.

Пример метафайла:

{
    "uri": "stmobile://report/routereports/performance",
    "type": "report",
    "title": "qsTr(Plans execution)",
    "license": ["Report_Performance"],
    "locales": {
        "ru_RU": "performance_ru.lng"
    },
    "datascript": {
        "script_file": "performance.js"
    },
    "template": {
        "template_file": "performance.html"
    },
    "group": {
        "group_title": "qsTr(Other)"
    }
}

Список доступных полей:
uri - String, URI расширения, в формате: stmobile://module/target/name
type - String, тип расширения, возможные значения: report, printform, viewer, action, form, formconfig, union
union - Опциональный параметр, Object, объект с конфигурацией расширения типа union

"union": {
    "list": [                                                     // Список расширений для объединения
        {
            "uri": "stmobile://action/preorder/preopen/checkdoc", // URI расширения для объединения
            "condition": "none"                                   // Опциональный параметр, условие запуска расширения, по-умолчанию "none",
                                                                  // доступные значения: "none", "prev_success", "prev_failed"
        },
        ...
    ]
},

title - String, заголовок расширения, параметр опциональный для расширений типа action и formconfig
apiversion - Опциональный параметр, String, используемая версия API, по-умолчанию 2
enabled - Опциональный параметр, Boolean, включение/выключение расширения, по-умолчанию true
visible - Опциональный параметр, Boolean, включение/выключение отображения расширения, по-умолчанию true, влияет только на визуальные расширения
license - Опциональный параметр, []String, список ключей лицензии, для которых будет доступно расширение
locales - Опциональный параметр, Object, список файлов с переводами, соответствующих языкам:

"locales": {
    "ru_RU": "mylocale_ru.lng",
    "en_US": "mylocale_en.lng"
    ...
},

Подробнее о переводах расширений: Локализация
config - Опциональный параметр, Object, конфигурация отчета, доступ посредством api.context.metaConfig
datascript - Object, data-скрипт:

"datascript": {
    "script_file": "myscript.js",
    "cache_key": String,          // Опциональный параметр, используемый ключ кэша, по умолчанию "module_target" из URI
    "async": Boolean              // Опциональный параметр, по-умолчанию false, используется только для расширений типа action.
                                  // Позволяет запустить скрипт асинхронно, параллельно с основным потоком
},

template - Object, шаблон:

"template": {
    "content_type": String,             // Опциональный параметр, по-умолчанию "html", возможные значения: html, fixedtext, plaintext, richtext
    "template_file": "mytemplate.html",
    "content_width_mode": String,       // Опциональный параметр, по-умолчанию "full", возможные значения: full, compact, используется только для страниц
    "content_height_size": Number       // Опциональный параметр, по-умолчанию 400, используется только для диалогов
},

print - Object, Опциональный параметр, печатная форма:

"print": {
    "enabled": Boolean,                   // Опциональный параметр, по-умолчанию false
    "printforms": [                       // Список печатных форм
    {
        "type": String,                   // Опциональный параметр, по-умолчанию "standart", доступные значения: narrow, standart, wide
        "content_type": String,           // Опциональный параметр, по-умолчанию "fixedtext", доступные значения: fixedtext
        "template_file": "myprint_st.txt"
    },
    ...
    ]
}

group - Object, группа отчетов:

"group": {
    "group_title": String, // Опциональный параметр, название группы
    "priority": Number     // Опциональный параметр, приоритет в группе, по-умолчанию 0
}

launch - Object, способ открытия:

"launch": {
    "openmode": String  // Опциональный параметр, по-умолчанию "page", доступные значения: page, dialog
},

dev - Object, параметры для разработчика:

"dev": {
    "output_path": String  // Опциональный параметр, например: "./output"
}

ВНИМАНИЕ! Метаданные внешних расширений объединяются с информацией, содержащейся в метафайлах внутренних расширений. Таким образом, не указанные во внешнем метафайле поля будут браться из внутреннего метафайла, при их наличии. Учитывайте это при разработке расширений, заменяющих встроенный функционал. Пример:

// Внутренний метафайл:
{
    "uri": "stmobile://report/routeandoutletreports/cash",
    "type": "report",
    ...
    "template": {
        "content_type": "qml"
    },
    ...
}
// Внешний метафайл:
{
    "uri": "stmobile://report/routeandoutletreports/cash",
    "type": "report",
    "template": {
        "template_file": "cash.html"
    },
    ...
}

Приведет к тому, что внешний отчет не будет работать, т.к. во внутреннем метафайле указано свойство "content_type": "qml", а во внешнем метфайле это свойство явно не указано.