dhtmlxScheduler с SalesForce LWC
В этом руководстве описан процесс интеграции dhtmlxScheduler в SalesForce Lightning Web Component.
Посмотрите онлайн‑демо по теме интеграции компонентов DHTMLX с Salesforce LWC (Логин: user, Пароль: demo). Исходный код демо‑примера приведён на GitHub.
Если вы используете другую технологию, ниже приведён список доступных вариантов интеграции:
- dhtmlxScheduler с ASP.NET Core
- dhtmlxScheduler с ASP.NET MVC
- dhtmlxScheduler с PHP
- dhtmlxScheduler с PHP:Slim
- dhtmlxScheduler с PHP:Laravel
- dhtmlxScheduler с Ruby on Rails
- dhtmlxScheduler с dhtmlxConnector
Мы будем использовать SalesForce CLI для создания Lightning Web Component и загрузки его в организацию. См. эту статью для руководства по установке. Вы также можете установить Salesforce Extension Pack в Visual Studio Code для работы с разработческими организациями.
Полный исходный код дост упен на GitHub.
Вы можете посмотреть видеоруководство, которое показывает, как создать Scheduler с Salesforce LWC.
Требования
Установите SalesForce CLI, если его нет. См. эту статью для руководства по установке.
Шаг 1. Создание проекта
Зарегистрируйтесь для бесплатной учетной записи разработчика, если у вас её нет. См. эту статью для инструкций по установке.
Слева в строке поиска найдите и выберите Dev Hub:

В новом окне настроек выберите Enable Dev Hub:

Давайте создадим базовый каталог для проекта Salesforce DX:
$ mkdir ~/salesforce
Создайте проект Salesforce DX через CLI:
$ cd ~/salesforce
$ sfdx project generate -n scheduler-salesforce-app
target dir = C:UsersUsersalesforce
create scheduler-salesforce-appconfigproject-scratch-def.json
create guides/scheduler-salesforce-appREADME.md
create scheduler-salesforce-appsfdx-project.json
create scheduler-salesforce-app.huskypre-commit
create scheduler-salesforce-app.vscodeextensions.json
create scheduler-salesforce-app.vscodelaunch.json
create scheduler-salesforce-app.vscodesettings.json
create scheduler-salesforce-appforce-appmaindefaultlwc.eslintrc.json
create scheduler-salesforce-appforce-appmaindefaultaura.eslintrc.json
create scheduler-salesforce-appscriptssoqlaccount.soql
create scheduler-salesforce-appscriptsapexhello.apex
create scheduler-salesforce-app.eslintignore
create scheduler-salesforce-app.forceignore
create scheduler-salesforce-app.gitignore
create scheduler-salesforce-app.prettierignore
create scheduler-salesforce-app.prettierrc
create scheduler-salesforce-appjest.config.js
create scheduler-salesforce-apppackage.json
Перейдите в созданный проект:
$ cd scheduler-salesforce-app
Шаг 2. Авторизация
Авторизуйте организацию с использованием потока Web Server:
$ sfdx org login web -d
Successfully authorized ...@...com with org ID ...
Обновите файл конфигурации проекта (sfdx-project.json). Установите параметр "sfdcLoginUrl" на ваш "My Domain URL". Найти ваш "My Domain URL" можно на странице настройки "My Domain". Например:

"sfdcLoginUrl" : "https://xbs2-dev-ed.my.salesforce.com"
Создайте Scratch Org:
$ sfdx org create scratch -f config/project-scratch-def.json -d
Creating Scratch Org...
RequestId: 2SR8a000000PLf5GAG (https://xbs2-dev-ed.my.salesforce.com/2SR8a000000PLf5GAG)
OrgId: 00D8G000000EEMs
Username: test-3baxo2k0tpej@example.com
✓ Prepare Request
✓ Send Request
✓ Wait For Org
✓ Available
✓ Authenticate
✓ Deploy Settings
Done
Your scratch org is ready.
Шаг 3. Добавление Scheduler в Salesforce
Чтобы начать использовать библиотеку, её нужно загрузить в Salesforce как Static Resource. Откройте ваш scratch org:
$ sfdx org open
Теперь перейдите на вкладку "Static Resources" и нажмите кнопку "New"

Дайте осмысленное имя (мы используем dhtmlxscheduler), выберите ZIP‑архив самой библиотеки (архив должен содержать файлы dhtmlxscheduler.js и dhtmlxscheduler.css), и выберите режим кэшир ования "Public" для повышения производительности. Нажмите кнопку "Save".

Теперь у нас внутри Salesforce есть dhtmlxScheduler.

Шаг 4. Создание модели данных
Основные сущности dhtmlxScheduler — это События. Хорошим подходом является хранение всех свойств сущностей dhtmlxScheduler в виде простого JSON внутри Salesforce. Давайте создадим объект Event. Откройте Object Manager и выберите "Create", затем "Custom Object":
