Sii Polska

SII UKRAINE

SII SWEDEN

  • Szkolenia
  • Kariera
Dołącz do nas Kontakt
Wstecz

Sii Polska

SII UKRAINE

SII SWEDEN

Wstecz

18.08.2025

Automatyzacja pipeline kluczem do sukcesu projektów w DevOps dla D365 F&O. Część III – praktyka

18.08.2025

Automatyzacja pipeline kluczem do sukcesu projektów w DevOps dla D365 F&O. Część III – praktyka

Dwa moje poprzednie artykuły wprowadziły Was w świat Pipeline, praktyk DevOps w zakresie budowania i weryfikacji kodu X++ oraz korzyści z wykorzystywania DevOps Pipelines dla D365 F&O.

W trzeciej części serii ponownie przedstawię praktyczne informacje dotyczących użycia automatyzacji zadań za pomocą Pipeline DevOps (będę używał polskiego słowa „potok” zamiast angielskiego „pipeline”) na przykładzie systemu ERP D365 F&O wdrażanego przez moje Centrum Kompetencyjne. Skupię się m.in. na użyciu automatu potoku DevOps do innych czynności niż tylko sprawdzanie wytwarzanego kodu przez naszych programistów za pomocą automatu potoku DevOps.

W artykule opiszę różne sposoby wdrożenia i używania potoków DevOps.

Kopiowanie branchy/plików w ramach repozytorium

  1. Aby utworzyć potok DevOps, który kopiuje plik w obrębie gałęzi, np. DEV, możesz użyć potoków Azure DevOps lub innego dowolnego narzędzia CI/CD obsługującego operacje na plikach. W tym artykule przedstawię przykład z wykorzystaniem potoków Azure DevOps.
    Oto jak możesz utworzyć taki potok dla skopiowania pliku:
    • Utwórz potok lub utwórz/edytuj plik xml w katalogu głównym repozytorium. Zdefiniuj konfigurację potoku do kopiowania pliku
trigger:
- SAT
pool:
  vmImage: windows-latest'

steps:
- script: |
    echo "Kopiowanie pliku..."
    cp path/to/source/file path/to/destination/
  displayName: 'Kopiowanie pliku'
  1. Aby utworzyć potok DevOps, który kopiuje pliki z jednej gałęzi, np. DEV do SAT, możesz użyć potoków Azure DevOps do stworzenia całego procesu kopiowania plików:
Kopiowanie plików między gałęziami DEV oraz SAT
Ryc. 1 Kopiowanie plików między gałęziami DEV oraz SAT

oraz użyć poleceń:

tf add D:\a\9\s\SAT\ /recursive /noignore .....
tf checkin D:\a\9\s\SAT\ /recursive /comment:"DEV to SAT" .....

Takie działanie pozwala stworzyć potok dla kopiowania plików.

Automatyczne odświeżenie encji w aplikacji D365 F&O

Konsultanci i programiści po jakichkolwiek zmianach w encjach w D365 F&O muszą odświeżać ręcznie listę encji danych na środowisku. Dzięki dodatkowi d365fo.integrations jest możliwość zautomatyzowania tego procesu za pomocą potoków DevOps. Dzięki temu modułowi będziesz mógł odświeżyć listę encji nawet w środowisku produkcyjnym.

Aby rozpocząć, potrzebujemy rejestracji aplikacji w portalu Azure oraz konfiguracji w systemie D365. W ramach rejestracji aplikacji w portalu Azure konieczne będą:

  1. Identyfikator klienta zarejestrowanej aplikacji usługi Azure AD.
  2. Identyfikator klucza klienta zarejestrowanej aplikacji usługi Azure AD.
  3. Identyfikator GUID dzierżawy usługi Azure AD, w której utworzono zarejestrowaną aplikację.

Potrzebujesz także zainstalować plik d365fo.integrations. Otwórz wiersz polecenia programu PowerShell z podwyższonym poziomem uprawnień i użyj następującego polecenia.

Install-Module -Name d365fo.integrations

Ponadto, utwórz potok DevOps:

Potok DevOps dla odświeżenia encji
Ryc. 2 Potok DevOps dla odświeżenia encji

Dla skryptu PowerShell potrzebujesz uzupełnić skrypt:

Install-PackageProvider nuget -Scope CurrentUser -Force -Confirm:$false
write-host "pakiet nuget zainstalowany"
 Install-Module -Name AZ -AllowClobber -Scope CurrentUser -Force -Confirm:$False -SkipPublisherCheck
write-host "az zainstalowany"
 Install-Module -Name d365fo.integrations  -AllowClobber -Scope CurrentUser -Force -Confirm:$false
write-host "d365fo.integrations zainstalowany"
 Add-D365ODataConfig -Name "D365EntityRefresh" -Tenant "AzureTenantId" -url "https://yourenvironment.sandbox.operations.dynamics.com" -ClientId "AzureApplicationId" -ClientSecret "AzureApplicationClientSecret"
write-host "konfiguracja dodana"
 Set-D365ActiveODataConfig -Name D365EntityRefresh
write-host "standardowa konfiguracja"
 $token = Get-D365ODataToken
write-host "token wygenerowany"
 Invoke-D365DmfInit -verbose -Token $token
write-host "dmf inicjalny - wywołany"

Takie działanie pozwala stworzyć potok dla odświeżenia encji.

Automatyczna kopia zapasowa środowisk D365 za pomocą potoków DevOps

Za pomocą potoku DevOps możesz zautomatyzować kopię zapasową środowisk D365 F&O. Istnieje API Database Movement, które pozwala to zrobić. Sii w swoich projektach wdrożeniowych u klientów bardzo często wykorzystuje ten mechanizm.

W celu stworzenia automatycznej kopii zapasowej środowisk D365 powinieneś utworzyć potok DevOps z dwoma zadaniami.

Dodatkowo, tak jak w przypadku potoku dla odświeżania encji, należy zarejestrować aplikację oraz zebrać informacje i parametry potrzebne do konfiguracji.

Potok DevOps dla kopii zapasowej środowiska D365
Ryc. 3 Potok DevOps dla kopii zapasowej środowiska D365

Dla skryptu powershell Token możesz użyć:

$tokenUrl = "https://login.microsoftonline.com/common/oauth2/token"
$tokenBody = @{
grant_type = "password"
client_id = "$(CLIENTID)"
client_secret = "$(CLIENTSECRET)"
resource = "https://lcsapi.lcs.dynamics.com"
username = "$(USERNAME)"
password = "$(PASSWORD)"
}
$tokenResponse = Invoke-RestMethod -Method 'POST' -Uri $tokenUrl -Body $tokenBody
$token = $tokenResponse.access_token
Write-Host $token
Write-Host "##vso[task.setvariable variable=TOKENOUT;isOutput=true]$token"

Dla skryptu powershell Backup możesz użyć:

$cstzone = [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId( (Get-Date), ‘W. Europe Standard Time’)
$filedate = Get-Date $cstzone -f “yyy-MM-dd”
$BackupName = “Golderbackup-$filedate”
Write-Output $BackupName
$refreshUrl = “https://lcsapi.lcs.dynamics.com/databasemovement/v1/export/project/$(LCSPROJID)/environment/$(SAT)/backupName/$BackupName”
$refreshHeader = @{
Authorization = “Sii $(task1.TOKENOUT)”
“x-ms-version” = ‘2017-09-15’
“Content-Type” = “application/json”
}
$refreshResponse = Invoke-RestMethod $refreshUrl -Method ‘POST’ -Headers $refreshHeader
Write-Output $refreshResponse

Takie działanie pozwala stworzyć potok dla automatyzacji kopii zapasowych środowisk D365 F&O.

oferty pracy

Na zakończenie

W artykule skupiłem się na kolejnych aspektach praktycznych dotyczących automatyzacji zadań za pomocą potoków DevOps na przykładzie systemu ERP D365 F&O wdrażanego przez moje Centrum Kompetencyjne. Skupiłem się na części administracyjnej czyli m.in. automatycznej kopii środowisk. Mam nadzieję, że artykuł będzie dla Was pomocny.

W kolejnych częściach przedstawię dalsze możliwości potoków DevOps.

Poprzednie wpisy znajdziecie tutaj:

5/5
Ocena
5/5
Avatar

O autorze

Tomasz Sobestiańczyk

Developer/Administrator z 15-letnim doświadczeniem w zakresie wdrożeń Dynamics AX/D365. Entuzjasta usprawniania i układania procesów wytwarzania oprogramowania. Prywatnie miłośnik i pasjonat różnorodnych roślin oraz wszystkiego, co jest z nimi związane, wielbiciel lasów, pól i bezdroży

Wszystkie artykuły autora

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

Dołącz do nas

Sprawdź oferty pracy

Pokaż wyniki
Dołącz do nas Kontakt

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?