Основные понятия решения

Решения — это механизм реализации ALM в Power Apps и Power Automate. В этой статье описываются следующие ключевые концепции решения:

  • Два типа решений
  • Компоненты решения
  • Жизненный цикл решения
  • Издатель решения
  • Решение и управление зависимостями компонентов решений

Управлямые и неуправляемые решения

Решение является управляемым или неуправляемым.

  • Неуправляемые решения разрабатываются. Неуправляемые решения используются в средах разработки при внесении изменений в ваше приложение. Неуправляемые решения можно экспортировать как неуправляемые или как управляемые. Экспортированные неуправляемые версии ваших решений должны быть зарегистрированы в вашей системе управления версиями. Неуправляемые решения должны рассматриваться как источник активов Microsoft Power Platform. При удалении неуправляемого решения удаляется только контейнер решения со всеми содержащимися в нем настройками. Все неуправляемые настройки остаются в силе и относятся к решению по умолчанию.

  • Управляемые решения разворачиваются. Управляемые решения разворачиваются в любой среде, которая не является средой разработки для этого решения. Это включает в себя тестовую среду, среду приемочного тестирования пользователями, среду SIT и производственные среды. Управляемые решения могут обслуживаться независимо от других управляемых решений в среде. В соответствии с передовой практикой ALM управляемые решения должны создаваться путем экспорта неуправляемого решения как управляемого и рассматриваться как артефакт сборки. Кроме того:

    • Нельзя изменить компоненты непосредственно в управляемом решении. Чтобы изменить управляемые компоненты, сначала добавьте их в неуправляемое решение.
      • Совершая подобные действия, вы создаете зависимость между неуправляемыми настройками и управляемым решением. При наличии зависимости управляемое решение невозможно удалить до ее удаления.
    • Некоторые управляемые компоненты невозможно изменить. Чтобы проверить, можно ли редактировать компонент, просмотрите Управляемые свойства.
    • Экспортировать управляемое решение невозможно.
    • При удалении управляемого решения удаляются все включенные в него настройки и расширения.

    Внимание

    • Управляемое решение невозможно импортировать в ту же среду, где находится исходное неуправляемое решение. Чтобы протестировать управляемое решение, нужно импортировать его в отдельную среду.
    • При удалении управляемого решения теряются следующие данные: данные, хранящиеся в настраиваемых сущностях, которые являются частью управляемого решения, и данные, хранящиеся в настраиваемых атрибутах, которые являются частью управляемого решения, для других сущностей, которые не являются частью управляемого решения.

Создатели и разработчики работают в средах разработки, используя неуправляемые решения, а затем импортируют их в другие последующие среды, — такие как тест — как управляемые решения.

Распространение решения от разработчика до сред тестирования.

Заметка

Когда вы настраиваете в среде разработки, вы работаете в неуправляемом слое. Затем, когда вы экспортируете неуправляемое решение в виде управляемого решения для распространения в другой среде, управляемое решение импортируется в среду на управляемом уровне. Дополнительные сведения: Слои решений

Компоненты решения

Компонент представляет что-либо, может потенциально можно настроить. Все, что может быть включено в решение, — это компонент. Чтобы просмотреть компоненты, включенные в решение, откройте нужное решение. Компоненты перечислены в списке Компоненты.

Компоненты в решении.

Заметка

  • Максимальный размер решения: 32 МБ.
  • Нельзя изменить компоненты непосредственно в управляемом решении.

Чтобы просмотреть список типов компонентов, которые можно добавить в любое решение, см. раздел Параметры ComponentType.

Некоторые компоненты вложены в другие компоненты. Например, сущность содержит формы, представления, диаграммы, поля, отношения сущностей, сообщения и бизнес-правила. Каждый из этих компонентов требует, чтобы существовала сущность. Поле не может существовать вне сущности. Мы говорим, что поле зависит от сущности. На самом деле типов компонентов вдвое больше, чем в списке выше, однако большинство из них вложены в другие компоненты и в приложении не видны.

Назначение компонентов — дать возможность отслеживать какие-либо ограничения на то, что можно настроить с помощью управляемых свойств и всех зависимостей решений, чтобы его можно было экспортировать, импортировать и (в управляемых решениях) удалить без остатка.

Жизненный цикл решения

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

  • Создание Создание и экспорт неуправляемых решений.

  • Обновление Создание обновлений в управляемом решении, развернутых в родительском управляемом решении. Вы не можете удалить компоненты с помощью обновления.

  • Обновление Импортируйте решение как обновление для существующего управляемого решения, которое удаляет неиспользуемые компоненты и реализует логику обновления. Обновления включают накопление (объединение) всех исправлений в решении в новой версии решения. При обновлении решения удаляются компоненты, которые существовали, но больше не включены в обновленную версию. Вы можете выбрать немедленное обновление или запланировать обновление, чтобы можно было выполнить некоторые дополнительные действия до завершения обновления.

  • Исправление Исправление содержит только изменения родительского управляемого решения, например добавление или изменение активов и компонентов. Используйте исправления при создании небольших обновлений (аналогично оперативному исправлению). Когда исправления импортируются, они накладываются поверх родительского решения. Вы не можете удалить компоненты с помощью исправления.

Издатель решения

Каждое приложение и другие компоненты решения, такие как сущности, которые вы создаете, или любая создаваемая вами настройка является частью решения. Поскольку у каждого решения есть издатель, вы должны создать своего собственного издателя, а не использовать его по умолчанию. Вы указываете издателя, когда создаете решение.

Заметка

Даже если вы не используете пользовательское решение, вы будете работать с решениями, известными как Решение по умолчанию Common Data Service и решения По умолчанию. Дополнительные сведения: Решение по умолчанию и решение по умолчанию Common Data Service

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

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

Префикс издателя решения

Издатель решения включает префикс. Префикс издателя — это механизм, помогающий избежать конфликтов имен. Это позволяет устанавливать решения от разных издателей в среде с небольшим количеством конфликтов. Например, отображаемое здесь решение Contoso содержит префикс издателя решения contoso.

Пример префикса издателя решения.

Заметка

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

Дополнительные сведения:

Зависимости решений

Из-за того, что управляемые решения рассматриваются как уровни, некоторые управляемые решения могут зависеть от компонентов в других управляемых решениях. Некоторые издатели решений пользуются этим и делают свои решения модульными. Возможно, будет необходимо установить "базовое" управляемое решение, а затем второе управляемое решение, которое будет дополнительно настраивать компоненты в базовом управляемом решении. Второе управляемое решение зависит от компонентов, входящих в состав первого решения.

Система отслеживает эти зависимости между решениями. При попытке установить решение, которому требуется базовое решения, которое не установлено, установить решение вы не сможете. Появится сообщение о том, что решение требует предварительной установки другого решения. Аналогично, из-за зависимостей, нельзя удалить базовое решение, если зависящее от него решение по-прежнему установлено. Необходимо удалить зависимое решение, прежде чем удалять базовое решение. Дополнительные сведения: Удаление зависимостей

Зависимости компонентов решения

Компонент решения представляет что-либо, может потенциально можно настроить. Все, что может быть включено в решение, является компонентом решения, и некоторые компоненты зависят от других компонентов. Например, поле веб-сайта и сводный отчет организации зависят от сущности организации. Дополнительные сведения: Отслеживание зависимостей для компонентов решений

См. также

Слои решений
Создание и управление средами в центре администрирования Power Platform