SPMeta2 - Использование данных из модели провизии в JavaScript

Очень часто появляется необходимость использования данных  из созданной модели на SPMeta2 при провизии артефактов в клиентских скриптах. Например, идентификаторы объектов, внутренние имена полей, списков, пути к настроечным спискам и прочее. Конечно же, хочется пользоваться такими преимуществами управляемой провизии, как внесение изменений только в одном месте.  

 Для решения данных проблем в своих проектах используем следующий подход: 

  1. Выделение констант (идентификаторов, путей к спискам и т.д.) для клиентских скриптов в отдельный js файл 

  2. Для использования констант решения в скриптах, созданный ранее файл подключается дополнительно к основному файлу 

  3. Выделенный с константами файл заполняется автоматически каждый раз после развертывания модели SPMeta2 на основании данных из модели 

  4. При каждом разворачивании или изменении решения можем пользоваться актуальными данными из модели

Последовательность действий следующая:

  1. Описываете функцию, которая генерирует текстовый файл из массива строк и сохраняет его в файловой системе
  2. Создаете модель для своего решения на SPMeta2
  3. Описываете функцию формирования массива строк, соответствующих описанию переменных в JavaScript с указанием данных из модели
  4. Вызываете данную функцию. В моем примере я вызываю данную функцию перед тем как загрузить эссеты в SharePoint (Подробнее об этом можно почитать тут)

Данные из модели готовы к использованию в клиентских скриптах. Результат в файле spf.alerts.applyto.js выглядит так:

 

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

Полностью исходные коды доступны на GitHub одним классом для удобства восприятия примера

 


Опубликовано: 18.08.2016
Автор: Сергей Снитко