Lägg till nya anpassade entitetsformulär (Project Service Automation 2.x)
Viktigt!
Dynamics 365 Project Service Automation har utvecklats till Dynamics 365 Project Operations. Mer information finns i övergång av Project Service Automation.
Typfält
Dynamics 365 Project Service Automation beror på fältet Typ (msdyn_ordertype) för affärsmöjlighet, offert, order och faktura för att särskilja arbetsbaserade versioner av dessa entiteter från objektbaserade och tjänstbaserade versioner. Arbetsbaserade versioner av dessa entiteter hanteras av PSA. Många affärs logiker på klientsidan och serversidan av lösningen beror på fältet typ. Därför är det viktigt att fältet initieras med ett korrekt värde när entiteterna skapas. Ett felaktigt värde kan orsaka felaktiga beteenden och en del affärslogik kanske inte fungerar korrekt.
Automatisk formulärväxling
För att undvika potentiella dataskador och oväntade problem som orsakas av felaktig initiering och redigering av försäljningsentitetsposterna inkluderar PSA nu logik för automatisk formulärväxling i färdiga formulär. Den här logiken använder rätt formulär för att arbeta med den arbetsbaserade versionen eller någon annan typ av entitet för affärsmöjlighet, offert, order eller faktura. När en användare öppnar den arbetsbaserade versionen av en entitet för affärsmöjlighet, offert, order eller faktura växlas formuläret till projektinformation.
Den automatiska formulär växlingslogiken förlitar sig på mappningen mellan formId och fältet msdyn_ordertype. Alla färdiga formulär har lagts till i mappningen. Anpassade formulär måste dock läggas till manuellt för att ange vilken version av entiteten de ska hantera. Det här baseras på fältet msdyn_ordertype. Om formulärväxlingen saknas i mappningen växlar logik till det färdiga formuläret utifrån värdet som sparas i fältet msdyn_ordertype i entiteten.
Lägga till egna formulär och aktivera formulärväxlingslogik
I följande exempel visas hur du lägger till ett anpassat formulär min projektinformationså att det fungerar med arbetsbaserade affärsmöjligheter. Samma process används för att lägga till egna formulär så att de fungerar med offerter, order och fakturor.
Följ stegen nedan om du vill skapa en anpassad version av formuläret projektinformation.
I entiteten Affärsmöjlighet, öppna formuläret Projektinformation och spara en kopia under namnet Min projektinformation.
Öppna det nya formuläret och kontrollera att skripten för formulärinitiering från formuläret projektinformation finns.
Viktigt!
Ta inte bort skripten. Annars kan vissa data ha initierats felaktigt.
Kontrollera att fältet Typ (msdyn_ordertype) finns i formuläret.
Viktigt!
Ta inte bort det här fältet. Annars misslyckas initieringsskripten.
Leta upp värdet formId för det nya formuläret. Du kan slutföra detta steg på två olika sätt:
- Exportera Min projektinformation som en del av en ohanterad lösning och leta upp värdet för formId i filen customization.xml för den exporterade lösningen.
- Öppna formuläret Min projektinformation i formulärredigerare och leta upp globalt unik identifierare (GUID) bredvid parametern fromId i URL som visas i följande bild.
Skapa en mappning msdyn_ordertype för värdet formId genom att redigera webbresursen msdyn_/SalesDocument/PSSalesDocumentCustomFormIds.js. Ta bort koden från resursen och ersätt den med följande kod.
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; });
Spara och publicera anpassningarna.