Введение
Платформа Scalaxi предоставляет возможность использовать Python для различных целей в качестве удобного широко известного языка сценариев/программирования.
Сценарии Python, поддерживаемые платформой Scalaxi, должны использовать Python версии 3.0, как описано здесь: https://docs.python.org/3/. Полное руководство разработчика можно найти в Руководстве разработчика Python.
Версия Python, которую использует Scalaxi Platform, называется Iron Python, которая предоставляет интерфейс для кода C#. Он предоставляет две важные библиотеки, которые необходимо импортировать в начале скрипта — clr и system. Эти библиотеки предоставляют доступ к сущностям платформы Scalaxi, которые можно запрашивать и контролировать из скрипта.
Способы использования скриптов Python на платформе Scalaxi
Существует несколько способов использования Python на платформе Scalaxi:
- Как часть Component Script который существует для каждого Component. Он позволяет контролировать формы приложений, разработанные и выполняемые с помощью платформы Scalaxi, а также предоставлять настраиваемые индексы, которые можно запускать в качестве реакции на какое-либо событие, например нажатие кнопки клиентом. Существует 3 основных способа использования кода Python в Component Script
- Основная часть Component Script, которая выполняется каждый раз при отображении формы компонента
- Вызов функции внутри Component Script, например, при нажатии кнопки
- Для этого вам нужно определить функцию внутри Component Script, а затем перейти к элементу управления пользовательского интерфейса, такому как Button, перейти в раздел «Actions» и установить для параметра «Command Type» значение «Execute Script». Затем вам нужно ввести имя и параметры вызова (если есть) вашего скрипта в предоставленные поля
- Использование функции внутри Component Script для событий изменения значения
- Для этого вам нужно определить функцию внутри скрипта компонента, а затем перейти к элементу управления пользовательского интерфейса, такому как текстовое поле и т. д., затем перейти в раздел «Events» и ввести имя вашего скрипта в поле «On value change».
- Обратите внимание, что эта функция будет вызываться только в том случае, если данные поля изменились, и фокус элемента управления пользовательского интерфейса в форме уйдет от этого элемента управления пользовательского интерфейса.
- Подписавшись на изменения данных с помощью метода context.DataModel.Model.Subscribe()
- Самый простой способ сделать это — определить функцию перехвата всех изменений (например, def check_all_changes()) в вашем компонентном скрипте, а затем подписаться на нее.
- Ваша функция будет вызываться каждый раз, когда происходит изменение текущих данных элемента управления пользовательского интерфейса, в тот момент, когда этот элемент управления пользовательского интерфейса теряет фокус (например, пользователь переключается на другой элемент управления пользовательского интерфейса или другое приложение).
- В рамках действия DataFlow выполните скрипт для определения логики принятия решений и преобразования данных и установки внутренних переменных, которые будут использоваться как часть сценариев DataFlow. Вы можете увидеть примеры использования скрипта Python для DataFlow в нашем Уроке №2.
Использование Python для доступа к компонентам платформы Scalaxi
Чтобы получить доступ к компонентам платформы Scalaxi, сначала необходимо импортировать clr библиотеки IronPython, как показано ниже курсивом.
#Add IronPython library that imports system CRL (.NET) names into Python
import clr
После импорта к нескольким объектам можно получить доступ изнутри скрипта Python через системную переменную «context».
Использование context.Model & context.DataModel
context.Model & context.DataModel обеспечивают доступ к различным полям данных модели Scalaxi Platform.
Для context.Model поля данных включают как поля компонента по умолчанию, предоставляемые платформой Scalaxi, так и настраиваемые поля, добавленные разработчиком компонента.
Для context.DataModel доступны только настраиваемые поля, добавленные разработчиками компонентов.