DynamicsAxCommunity modul – Příklady

Předchozí článek popisoval základy PowerShell modulu DynamicsAxCommunity, tento příspěvek je hlavně o tom jak ho používat.

Společná témata

Je zde několik věcí, s kterými byste se měli seznámit, než začnete modul používat.

Konfigurace

Funkce potřebují vědět, jakou použít konfiguraci AX. První poziční parametr očekává jméno konfigurace (tak jak ho můžete vidět v Configuration utility) a můžete ho dokonce vypustit – pak se použije aktivní konfigurace. Jinou možností je použít konfigurační soubor – buďto pomocí parametru -Path nebo z roury (pipe).

AxVersion

Všechny funkce potřebují znát verzi AX, aby našly správné klíče v registrech atd. Výchozí hodnota je nastavena na 6 (=AX2012). Pokud používáte jinou verzi, máte tři možnosti:

  • Použít parametr AxVersion (alias Version), např. Get-AXConfig -AxVersion 5
  • Změnit hodnotu proměnné $AxVersionPreference (např. $AxVersionPreference=5)
  • Změnit výchozí hodnotu v kódu (ale já bych raději nastavil $AxVersionPreference v PowerShellovém profilu počítače)

Remoting

Pokud pracujete jen s klientem AX a klientskými konfiguracemi, žádný PowerShell remoting není potřeba. To platí také pokud je AOS nainstalován na stejném počítači. Pokud ale potřebujete pracovat se vzdáleným AOS (třeba jen dostat jméno databáze z konfigurace AOS), bez remotingu se neobejdete.

Nemusíte se starat o jména počítačů, jediná informace, kterou musíte poskytnout, jsou přihlašovací údaje. Relevantní funkce k tomu nabízí parametr -Credential.

Aliasy parametrů

Parametry mají jména a mohou mít také aliasy. Ale to není všechno – můžete zkrátit jméno jakéhokoli parametru na cokoli co je stále jednoznačné, takže můžete použít prostě -ax namísto -AxVersion bez jakéhokoli speciálního aliasu.

Funkce a příklady

Konfigurace AX

Funkce: Get-AXConfig, Set-AXConfig

Get-AXConfig zobrazuje konfigurace z registrů Windows a podrobnosti o instancích AX, například adresář pro logy. Tyto informace jsou využívány ostatními funkcemi a můžete je také použít ve vlastních skriptech.

Příklady:

Zobrazení všech konfigurací z registrů Windows (lokální počítač, aktuální uživatel):

Get-AXConfig -List

Změna aktivní konfigurace (parametr -Verbose je použit jen pro získání nějakého výstupu):

Set-AXConfig Release -Verbose

Zobrazení podrobností o aktivní konfiguraci (používám zde Format-List (nebo fl) abych nedostal příliš široký výstup):

Get-AXConfig | Format-List

Zobrazení podrobností o pojmenované konfiguraci:

Get-AXConfig Release | fl

Zobrazení podrobností o konfiguraci uložené v souboru:

Get-AXConfig -Path C:ax2012.axc | fl

Můžete také předat cestu k souboru z roury (ačkoli ani tak nemůžete zpracovat více konfigurací najednou):

(Join-Path c: ax2012.axc) | Get-AXConfig | fl

Potřebujete-li informace o serverových komponentách, použijte parametr -IncludeServer (alias Server):

Get-AXConfig -IncludeServer

Dynamics AX 2009 má vlastnost navíc- ApplDir:

Get-AXConfig -s -ax 5

Tyto vlastnosti můžete využít v dalším  zpracování. Například následujícím příkazem dostanete všechny .aod soubory:

Get-AXConfig -s -ax 5 | select -exp ApplDir | ls -filter *.aod

Spouštění AX klienta

Funkce: Start-AXClient

Stejně jako jiné funkce i Start-AXClient může být spuštěna bez parametrů (použije výchozí konfiguraci), se jménem konfigurace AX nebo s cestou k .axc. Ačkoli zjednodušuje spouštění AX z příkazové řádky, její hlavní účel je být volána z jiných funkcí.

Spouštění startovacích příkazů AX

Funkce: Compile-AXXpp, Compile-AXIL, Synchronize-AXDatabase, Synchronize-AXVCS, Update-XRef

Tyto příkazy spouští klienta AX se startup příkazem. Všimněte si parametrů ve “What if” hlášení:

Compile-AXXpp -WhatIf

Když je příkaz skutečně spuštěn (bez -WhatIf), nastartuje klient AX a funkce čeká na jeho ukončení:

Compile-AXXpp -Verbose

Můžete také nastavit nějaký timeout:

Compile-AXIL -Timeout 3600 -Verbose

Přílišnému počítání se můžete vyhnout zadáním hodnoty například jako (New-Timespan -Hours 4).TotalSeconds.

Můžete také použít parametr -Confirm a být dotázani před tím, než je zpracování spuštěno:

Synchronize-AXDatabase Release -Confirm

Synchronize-AXVCS

Funkce Synchronize-AXVCSje prvním pokusem o build AX prostředí přímo ze správy verzí. Provádí to samé jako když z menu Version Control v AX zavoláte Synchronize s volbou “Force”.

Model k synchronizaci zvolíte parametrem -Model:

Synchronize-AXVCS -Model ISV

Update xRef indexes

Funkce: Update-AXXrefIndex

Update-AXXrefIndex znovuvytvoří indexy na všech xRef tabulkách. Bez toho může dojít k znatelné degradaci výkonu, zvláště po kompletní aktualizaci referencí.

Tato funkce volá přímo SQL Server, takže vyžaduje jiné nastavení oprávnění než ostatní funkce. Také závisí na utilitě sqlps. Na druhou stranu nevyžaduje žádnou změnu v AX.

Volá se stejným způsobem jako jiné funkce, například:

Update-AXXRefIndex -Name Dev -Timeout (15*60)

Složby AOS

Funkce: Start-AXAOS, Stop-AXAOS, Restart-AXAOS

Všechny tři funkce jsou velmi podobné a akceptují jména a cesty konfigurací stejným způsobem jako funkce výše.

Například, takto se restartuje AOS pro konfiguraci “Dev”:

Restart-AXAOS Dev

Přihlašovací údaje

Je-li AOS na vzdáleném počítači, musí být zadány přihlašovací údaje pro vzdálené připojení. Pokud je neposkytnete, PowerShell si o ně řekne:

Restart-AXAOS -Path C:\AX2012.axc

Přihlašovací údaje se zapamatují a automaticky použijí v následných příkazech. Nicméně je také můžete uložit do proměnné a tu předat do parametru -Credential:

Restart-AXAOS -Path C:\AX2012.axc -Credential $credential

Přeji hodně zábavy s PowerShellem!