У цьому розділі ми розглянемо практичний приклад створення проекту кастомізації Acumatica за допомогою ACUCustomizationUtil.
Ініціалізація сховища проекту: Почніть зі створення, а потім клонування сховища проекту до вказаного кореневого каталогу.
Для контексту, давайте розберемо специфіку, з якою ми працюємо:
Ім'я змінної | Значення |
Ім'я сховища | ACUProject |
Назва проекту | ACUProject |
Базовий шлях ERP та Acumatica | C:\Acumatica |
Налаштування базового шляху проекту | C:\Acumatica/project |
Змінна оточення для базового шляху | UBASEDIR% |
Версія ERP | 23.105.0016 |
Структура каталогу проекту:
PowerShell
ACUProject
Вихідний код проекту кастомізації cst
├───pkg пакунки налаштувань
└───src Проект C# - бібліотека розширення
└───ACUProject
.gitignore
acu.json
Directory.Build.props
ACUProject.sln
README.md
У цьому прикладі ми будемо виходити з припущення, що екземпляри ERP та Acumatica не встановлені у вашій системі. Якщо вам потрібно виконати кроки перевірки встановлення, детальні інструкції можна знайти в розділі Посібник користувача.
Тепер, коли ви налаштували репозиторій вашого проекту у вашій улюбленій системі контролю версій (наприклад, GitHub або Bitbucket), наступним кроком буде клонування його на ваш локальний комп'ютер. Ось як це зробити:
PS C:\Acumatica> cd C:\Acumatica\project
PS C:\Acumatica\project> git clone -progress``.
-v https://you.username@url.to.you.repository/repository.project/acuproject.git ACUProject
Перш ніж зануритися в процес кодування, важливо налаштувати відповідні змінні оточення. Це зробить певні процеси простішими та забезпечить безперебійну роботу. Давайте налаштуємо змінні ACUBASEDIR системна змінна:
Відкрийте PowerShell і виконайте наступні команди:
PS C:> cd C:\Acumatica\project
PS C:\Acumatica\project> mkdir cst
PS C:\Acumatica\project> mkdir pkg
PS C:\Acumatica\project> mkdir src
PS C:\Acumatica\project> tree
ACUProject
├───cst
├───pkg
└───src
Скопіюйте файл acu.json з каталогу встановлення ACUCustomizationUtil та відредагуйте його відповідно до наших вимог:
{
"ерп": {
"erpVersion": "23.105.0016",
"installationFileName": "AcumaticaERPInstall.msi",
"destinationDirectory": "UBASEDIR%\\erp",
"url": null
},
"site": {
"instanceName": "23.105.0016",
"instancePath": “UBASEDIR%\\instance\\23.105.0016\\Site”,
"sqlServerName": "localhost",
"dbName": "23.105.0016DB",
"acumaticaAdminName": "admin",
"acumaticaAdminPassword": "123",
"dbConnectionString": null,
"acumaticaToolPath": null,
"iisAppPool": null,
"iisWebSite": null
},
"pkg": {
"url": "http://localhost/23.105.0016/api/ServiceGate.asmx",
"логін": "admin",
"пароль": "123",
"pkgName": "ACUProject",
"pkgDirectory": "pkg",
"tenant": null
},
"src": {
"pkgSourceDirectory": "cst",
"pkgLevel": "0",
"msBuildSolutionFile": "ACUProject.sln",
"msBuildTargetDirectory": "src\\ACUProject\\bin\\Release",
"msBuildAssemblyName": "ACUProject.dll",
"makeMode": null,
"pkgDescription": null
}
}
Запустіть наступні команди, щоб встановити ERP:
PS C:\Acumatica\project> cd ACUProject
PS C:\Acumatica\project\ACUProject> acu erp download
PS C:\Acumatica\project\ACUProject> acu erp install
Перевіримо, чи встановлено ERP
C:\Acumatica
└───erp
└───23.105.0016
└───Acumatica ERP
Щоб встановити екземпляр Acumatica, виконайте наступні команди:
PS C:\Acumatica\project\ACUProject> acu site install
Хоча процес створення проекту для кастомізації вичерпно описаний в Посібник з налаштування проектуважливо виділити кілька важливих аспектів для безперешкодної інтеграції:
1.Проект створено як бібліотеку класів .NET Framework 4.8.x
2. Файл **Directory.Build.props** містить змінну **SiteDir**, її значення має містити повний фізичний шлях до екземпляру Acumatica:
Файл пропсів Directory.Build.props
<PropertyGroup
net48
C:\Acumatica\instance\23.105.0016\Site</SiteDir
Група властивостей
</Project
3. Змінна **$(SiteDir)** буде використовуватися в майбутньому при описі шляхів до ресурсів, на які посилаються в екземплярі Acumatica:
Файл проекту
<ItemGroup
False </ SpecificVersion
$(SiteDir)\Bin\PX.Common.dll
</Reference
.
False </ SpecificVersion
$(SiteDir)\Bin\PX.Data.dll
</Reference
False </ SpecificVersion
$(SiteDir)\Bin\PX.Objects.dll
</Reference
</ItemGroup
4. Додайте до файлу проекту правило Before Build, яке необхідне для керування версіями під час збирання проекту.
Файл проекту
<ItemGroup
$(Version).
<//AssemblyAttributes
</ItemGroup
<ItemGroup
</ItemGroup
</Target
5. Додайте до файлу проекту Post Build обробник подій, який копіює файл збірки до каталогу екземплярів Bin Acumatica.
Файл проекту
<PropertyGroup
<PostBuildEvent
xcopy /F /Y $(TargetPath) $(SiteDir)\Bin\
xcopy /F /Y $(TargetDir)$(TargetName).pdb $(SiteDir)\Bin\
</p
Група властивостей
6. Для проекту має бути встановлений пакет NuGet Acuminator:
Файл проекту
<ItemGroup
</ItemGroup
7. Файл рішення (ACUProject.sln) слід перемістити до кореневої папки проекту та відредагувати шлях до проекту бібліотеки розширень.
8. Екземпляр Acumatica НЕ підключається до рішення. Це робиться як закладка для майбутнього рішення, щоб усунути залежність проекту від екземпляра Acumatica.
Після завершення всіх кроків папка має виглядати так:
PowerShell
C:\Acumatica\project\ACUProject
├───cst
│ ├───Смітник
│ │ ACUProject.dll
│ │
│ └───_project
│ ProjectMetadata.xml
├───pkg
│ ACUProject.zip
├───src
│ └───ACUProject
│ │ ACUProject.csproj
│ │ packages.config
│ └───Властивості
│ AssemblyInfo.cs
. gitignore
│ acu.json
│ ACUProject.sln
│ Directory.Build.props
Створення пакету налаштувань:
Щоб витягти вихідний код з пакунка налаштувань, виконайте наступну команду:
PS C:\Acumatica\project\ACUProject> acu src get
Інтеграція cst для вихідного коду налаштувань тепер має такий вигляд:
C:\Acumatica\project\ACUProject
├───cst
│ ├───Смітник
│ │ ACUProject.dll
│ │
│ └───_project
│ ProjectMetadata.xml
Щоб ініціювати збірку пакунків налаштувань, виконайте наступні команди у вашому терміналі PowerShell:
PS C:\Acumatica\project\ACUProject> acu src buld
PS C:\Acumatica\project\ACUProject> acu src make
PS C:\Acumatica\project\ACUProject> acu src make -mode QA
Після виконання перевірте пкг директорії. Якщо все пройшло за планом, ви повинні побачити два файли:
Тепер важливо переконатися, що створене налаштування можна без проблем інтегрувати в екземпляр Acumatica. Виконайте наступні команди:
PS C:\Acumatica\project\ACUProject> acu pkg upload
PS C:\Acumatica\project\ACUProject> acu pkg publish
Успішне виконання означає, що пакет успішно завантажено та опубліковано в екземплярі Acumatica. Тепер ви на правильному шляху!
Тепер, коли ваш проект створено, настав час перемістити його до сховища. Але спершу ви маєте переконатися, що певні файли або каталоги не будуть включені до сховища. Для цього створіть .gitignore у кореневій теці проекту. Цей файл визначає шаблони файлів і папок, які слід ігнорувати при фіксації до сховища.
Ось що вам варто додати до свого Джитіньйоре:
acu-log*.txt
/pkg/*.zip
смітник
obj
Налагодження
Реліз
.vs
Перед тим, як відправляти файли до сховища, дуже важливо перевірити файли, які ви збираєтесь фіксувати. Для цього скористайтеся командою git-статус надасть вам огляд цих файлів:
PS C:\Acumatica\project\ACUProject> git status
Про розвиток філії
Ваша гілка оновлена в розділі "походження/розвиток".
Зміни, які необхідно здійснити:
(використовуйте "git restore -staged ..." для вилучення етапів)
модифіковано: .gitignore
новий файл: ACUProject.sln
новий файл: Directory.Build.props
новий файл: acu.json
новий файл: cst/Bin/ACUProject.dll
новий файл: cst/_project/ProjectMetadata.xml
новий файл: pkg/ACUProject.zip
новий файл: src/ACUProject/ACUProject.csproj
новий файл: src/ACUProject/Properties/AssemblyInfo.cs
новий файл: src/ACUProject/packages.config
Як тільки ви переконаєтеся, що все в порядку, зафіксуйте і просувайте свої зміни:
PS C:\Acumatica\project\ACUProject> git commit -i "Add customization project & configuration"
PS C:\Acumatica\project\ACUProject> git push origin develop -f
Вітаємо! Ви успішно створили новий проект кастомізації та автоматизували його налаштування за допомогою утиліти ACUCustomizationUtil.
Після того, як ваш проект кастомізації налаштовано, його конфігурацію збережено, а файли зафіксовано у сховищі, перевстановлення середовища стане легкою справою.
Помічаєте різницю?
Детальні інструкції, які ми розглянули для створення проекту, контрастують з короткими кроками для розгортання проекту. Давайте зануримося в цей спрощений процес:
Щоб розпочати розгортання, почніть з клонування сховища.
Перейдіть до кореневої папки ваших проектів кастомізації, відкрийте PowerShell і виконайте команду:
PS C:\Acumatica> cd C:\Acumatica\project
PS C:\Acumatica\project> git clone -progress``.
-v https://you.username@url.to.you.repository/repository.project/acuproject.git ACUProject
Перш ніж зануритися в налаштування, дуже важливо переконатися, що acu.json конфігураційний файл. Чи посилається він на будь-які змінні оточення, такі як UBASEDIR%у параметрах шляху? Якщо так, то вам потрібно встановити ці змінні. Їхні значення також слід чітко задокументувати у файлі readme сховища для зручності використання.
Якщо ці значення не вказані явно, ви можете вивести їх з Directory.Build.props файл. Переконайтеся, що файл SiteDir вирівнюється з параметром site.instancePath в acu.json конфігураційний файл.
Наприклад, якщо розглянути сценарій:
Directory.Build.props
<PropertyGroup
net48
C:\Acumatica\instance\23.105.0016\Site</SiteDir
Група властивостей
</Project
acu.json
{
…
"site": {
…
"instancePath": “UBASEDIR%\\instance\\23.105.0016\\Site”,
…
},
…
}
буде значення змінної оточення:
***UBASEDIR% = C:\Acumatica***
Перевірте наявність і, за необхідності, встановіть відповідну версію ERP:
PS C:\Acumatica\project\ACUProject> acu erp download
PS C:\Acumatica\project\ACUProject> acu erp install
Перевірте доступність та встановіть екземпляр Acumatica, якщо необхідно:
PS C:\Acumatica\project\ACUProject> acu site install
Почніть з компіляції проекту бібліотеки розширень, а потім перейдіть до генерації пакунка налаштувань. Виконайте наступні команди:
PS C:\Acumatica\project\ACUProject> acu src build
PS C:\Acumatica\project\ACUProject> acu src make
Тепер настав час перенести ваш пакунок до екземпляру Acumatica. Скористайтеся цими командами, щоб завантажити, а потім опублікувати пакунок:
PS C:\Acumatica\project\ACUProject> acu pkg upload
PS C:\Acumatica\project\ACUProject> acu pkg publish
Це все. Успішно виконавши всі команди, розробники отримують середовище, готове до розробки кастомізованого проекту. Зручний і швидкий процес, чи не так?
Незважаючи на свою, здавалося б, просту функціональність, утиліта ACUCustomizationUtil є досить складним інструментом. Вона включає в себе наша командаЦе вже третя ітерація такої утиліти, і ми все ще досліджуємо всі можливі сценарії взаємодії між утилітою, користувачем, екземпляром Acumatica та операційною системою.
На створення поточної версії було витрачено більше часу, ніж ми спочатку передбачали. Це було пов'язано, головним чином, зі зміною нашого підходу до реалізації - ми перейшли від використання сценаріїв PowerShell до використання чистого C#. Ця зміна також призвела до нових викликів. Наприклад, нам довелося обернути виклик будь-якого *.exe-файлу в код C#, перехопити потік повідомлень з цього файлу, а потім відформатувати його, щоб забезпечити відображення прогресу.
Однак кожен виклик був можливістю для зростання. Наша прихильність до розробки цієї утиліти підкреслює її виняткову цінність. У Sprinterra ACUCustomizationUtil - це не просто теоретичний актив, це перевірений інструмент у нашій Проекти Acumatica. Автоматизувавши процеси, ми скоротили час розробки та мінімізували помилки.
Ми прагнемо вдосконалювати код, виправляти дрібні помилки та впроваджувати покращення в майбутньому. І, звичайно, ми з нетерпінням чекаємо можливості поділитися нашими знахідками та успіхами зі спільнотою в майбутньому.
Отримуйте найновішу інформацію про експоненціальні технології прямо на вашу скриньку
© 2024 Sprinterra. Всі права захищені.