Přidat nové vlastní formuláře entit (Project Service Automation 2.x)
Důležité
Aplikace Dynamics 365 Project Service Automation se změnila na Dynamics 365 Project Operations. Další informace naleznete v části Přechod na Project Service Automation.
Typ pole
Dynamics 365 Project Service Automation spoléhá na pole Typ (msdyn_ordertype) entit Příležitost, Nabídka, Objednávka a Faktura, aby rozlišil verze těchto entit založené na práci od verzí založených na položce a založených na službě. Verze těchto entit založené na práci jsou zpracovávány pomocí PSA. Mnoho obchodní logiky na straně klienta a na straně serveru daného řešení závisí na poli Typ. Proto je důležité, aby při vytváření entit bylo toto pole inicializováno se správnou hodnotou. Nesprávná hodnota může způsobit nesprávné chování a některá obchodní logika nemusí fungovat správně.
Automatické přepínání formulářů
Chcete-li předejít možnému poškození dat a nečekanému chování způsobenému nesprávnou inicializací a úpravou záznamů entit prodeje, bude funkce PSA nyní obsahovat logiku pro automatické přepínání formulářů v připravených formulářích. Tato logika vrátí uživatele do správného formuláře pro práci s verzí založenou na práci nebo s jakýmkoli jiným typem entity Příležitost, Nabídka, Objednávka nebo Faktura. Když uživatel otevře verzi entity Příležitost, Nabídka, Objednávka nebo Faktura založené na práci, bude formulář přepnut do Informací o projektu.
Logika automatického přepínání formulářů se opírá o mapování mezi hodnotou formId a polem msdyn_ordertype. K tomuto mapování byly přidány všechny připravené formuláře. Vlastní formuláře však musí být přidány ručně, aby bylo možné určit, kterou verzi entity mají zpracovávat. To vychází z pole msdyn_ordertype. Pokud v mapování chybí přepínání formuláře, přepne logika do připraveného formuláře na základě hodnoty uložené v poli msdyn_ordertype entity.
Přidání vlastních formulářů a zapnutí logiky přepínání formulářů
Následující příklad ukazuje, jak přidat vlastní formulář Mé informace o projektu, aby fungoval s příležitostmi založenými na práci. Stejný proces se používá k přidání vlastních formulářů tak, aby fungovaly s nabídkami, objednávkami a fakturami.
Chcete-li vytvořit vlastní verzi formuláře Informace o projektu, postupujte následovně.
V entitě Příležitost otevřete formulář Informace o projektu a uložte kopii s názvem Mé informace o projektu.
Otevřete nový formulář a potom ve vlastnostech zkontrolujte, zda jsou k dispozici inicializační skripty z formuláře Informace o projektu.
Důležité
Neodstraňujte skripty. V opačném případě může dojít k nesprávné inicializaci některých dat.
Ověřte, zda je pole Typ (msdyn_ordertype) ve formuláři k dispozici.
Důležité
Toto pole neodstraňujte. V opačném případě dojde k selhání inicializačních skriptů.
Najděte hodnotu formId nového formuláře. Tento krok můžete provést dvěma způsoby:
- Exportujte formulář Mé informace o projektu jako součást nespravovaného řešení a potom vyhledejte v souboru customization.xml exportovaného řešení hodnotu formId.
- Otevřete formulář Mé informace o projektu v editoru formulářů a potom vyhledejte globálně jedinečný identifikátor (GUID) vedle parametru fromId v adrese URL, jak je znázorněno na následujícím obrázku.
Vytvořte mapování msdyn_ordertype pro hodnotu formId pomocí úprav webového prostředku msdyn_/SalesDocument/PSSalesDocumentCustomFormIds.js. Odeberte kód ze zdroje a nahraďte jej následujícím kódem.
define(["require", "exports"], function (require, exports) { "use strict"; var SalesDocumentCustomFormIds = (function () { function SalesDocumentCustomFormIds() { } SalesDocumentCustomFormIds.overwriteFormIds = function (mappedFormIds) { /* ---- Notes ---- mappedFormIds[SalesEntity][OrderType] => The array of forms IDs that support particular entity and order type Add or overwrite customized formId for the particular entity and order type by calling: mappedFormIds[<EntityType>][<msdyn_ordertype>].push("<formId>"); Allowed msdyn_ordertype values for reference: ServiceBased: 690970002 (Field Service version of the entity) WorkBased: 192350001 (PSA version of the entity) ItemBased: 192350000 (Regular out of the box entity) Uncomment and update one of the following lines to register custom PSA form for required entity: */ //mappedFormIds[1][192350001].push("<formId>"); //Quote //mappedFormIds[5][192350001].push("<formId>"); //Quote Line //mappedFormIds[2][192350001].push("<formId>"); //Sales Order //mappedFormIds[6][192350001].push("<formId>"); //Sales Order Line // In this example we have added new form for Opportunity mappedFormIds[0][192350001].push("192EE537-DCC4-45D3-B7AF-EA694B9113D2"); //Opportunity //mappedFormIds[4][192350001].push("<formId>"); //Opportunity Line }; return SalesDocumentCustomFormIds; }()); exports.default = SalesDocumentCustomFormIds; });
Uložte a poté publikujte vlastní nastavení.