Přesun modelu do jiné vrstvy

Vypadá to, že modely v Dynamics AX 2012 nepodporují přesuny mezi vrstvami. Kód nebývá přesouván do jiné vrstvy každý den, ale není to zas tak výjimečná situace. Máme pořád naše staré nástroje jako export a import souborů .xpo, ale modely tento proces jen komplikují, místo aby ho zjednodušovaly (protože is musíte poradit s vlastnostmi modelu jako jsou jméno nebo verze).

Ukáži zde jednoduché řešení, ačkoli není vhodné pro všechny týmy a všechny situace. Pokud znáte lepší způsob, dejte mi prosím vědět.

Předpokládejme, že máte v USR vrstvě model nazvaný “Move”, který obsahuje nějaké objekty, a rádi byste to celé přesunuli do vrstvy ISV. Dá se toho dosáhnout následujícím postupem:

  1. Přidejte model do řízení verzí v TFS
    Musíte vytvořit podadresář v repozitáři, pak kliknout na Version Control > Add model to version control v development workspace (vývojářská plocha?) a nastavit ID modelu a podadresář repozitáře.
  2. Odinstalujte model
    Můžete použít tento Powershellový příkaz: Uninstall-AXModel -Model Move (Move je jméno modelu)
  3. Restartujte AOS
    Následující přílaz restartuje všechny lokální AOS: Restart-Service aos*
  4. Změňte vrstvu v manifestu modelu
    Běžte do Source Control Exploreru ve Visual Studiu, ujistěte se, že používáte stejný workspace jako Dynamics AX, a nalezněte adresář s modelem “Move”. Pak Otevřte Model.xml, najděte element layer a změňte hodnotu z Usr na Isv.
    Nemusíte tuto změnu vkládat do správy verzí, pokud nejde o trvalou změnu. (To dává smysl pokud jen instalujete model do jiné vrstvy v jiné aplikaci, ale nepřesouváte ho.)
  5. Sesynchronizujte AX s TFS
    Spusťe AX development workspace a z menu Version Control zvolte Synchronize. Zaškrtněte Force a vyberte složku pro synchronizaci:

A to je vše – model a jeho definice, stejně jako všechny jeho objekty, jsou ve vrstvě ISV.

Máme-li být zcela přesní, model jsme nepřesunuli. Model jsem smazali a když AX nastartovala, načetla (námi změněný) soubor manifestu, na jeho základě vytvořila nový model a synchronizace přidala všechny objekty do tohoto nového modelu.