Del via


Tilføj nye brugerdefinerede objektformularer (Project Service Automation 2.x)

Vigtige oplysninger

Dynamics 365 Project Service Automation har udviklet sig til Dynamics 365 Project Operations. Du kan finde flere oplysninger under Overgang til Project Service Automation.

Typefelt

Dynamics 365 Project Service Automation er afhængig af feltet Type (msdyn_ordertype) for enhederne Salgsmulighed, Tilbud, Ordre og Faktura for at skelne mellem arbejdsbaserede versioner af disse enheder og varebaserede og tjenestebaserede versioner. Arbejdsbaserede versioner af disse enheder håndteres af PSA. Masser af forretningslogik på klient- og serversiden af løsningen afhænger af feltet Type . Det er derfor vigtigt, at feltet initialiseres med en korrekt værdi, når objekterne oprettes. En forkert værdi kan medføre forkerte funktionsmåder, og nogle forretningslogik kører muligvis ikke korrekt.

Automatisk skift af formular

PSA indeholder nu logik til automatisk skift af formular i standardformularer for at undgå potentielt beskadigelse af data og uventede funktionsmåder, der skyldes forkert initialisering og redigering af salgsenhedsposterne. Denne logik fører brugerne til den korrekte formular til at arbejde med den arbejdsbaserede version eller en hvilken som helst anden type objekt af typen Salgsmulighed, Tilbud, Ordre eller Faktura. Når en bruger åbner den arbejdsbaserede version af et objekt af typen Salgsmulighed, Tilbud, Ordre eller Faktura, ændres formularen til Projektoplysninger.

Logikken for automatisk formularskift er afhængig af tilknytningen mellem værdien af formId og feltet msdyn_ordertype . Alle formularer, der ikke er i brug, er føjet til denne tilknytning. Brugerdefinerede formularer skal dog tilføjes manuelt for at angive, hvilken version af objektet de er beregnet til at håndtere. Dette er baseret på feltet msdyn_ordertype . Hvis der mangler et formularskift i tilknytningen, skifter logikken til den standardformular, der er baseret på den værdi, der er gemt i feltet msdyn_ordertype i objektet.

Tilføj brugerdefinerede formularer, og aktivér logikken for skift af formularer

I følgende eksempel kan du se, hvordan du tilføjer en brugerdefineret formular Mine projektoplysninger, så den fungerer sammen med arbejdsbaserede salgsmuligheder. Den samme proces bruges til at tilføje brugerdefinerede formularer, så de arbejder med tilbud, ordrer og fakturaer.

Følg disse trin for at oprette en brugerdefineret version af formularen Project Information .

  1. Åbn formularen Projektoplysninger i objektet Salgsmulighed, og gem en kopi under navnet Mine projektoplysninger.

  2. Åbn den nye formular, og sørg derefter for, at formularinitialiseringsscriptene fra formularen Projektoplysninger findes i egenskaberne.

    Vigtige oplysninger

    Fjern ikke scripts. Ellers kan nogle data være initialiseret forkert.

  3. Kontrollér, at feltet Type (msdyn_ordertype) findes i formularen.

    Vigtige oplysninger

    Fjern ikke dette felt. Ellers mislykkes initialiseringsscripts.

  4. Find værdien formId for den nye formular. Du kan fuldføre dette trin på to måder:

    • Eksportér formularen Mine projektoplysninger som en del af en ikke-administreret løsning, og slå derefter værdien formId op i den customization.xml fil for den eksporterede løsning.
    • Åbn formularen Mine projektoplysninger i formulareditoren, og søg derefter efter det globalt entydige id (GUID) ud for parameteren fromId i URL-adressen, som vist i følgende illustration.

    Værdien formId for den nye formular i URL-adressen.

  5. Opret en msdyn_ordertype tilknytning for værdien af formId ved at redigere webressourcen msdyn_/SalesDocument/PSSalesDocumentCustomFormIds.js. Fjern koden fra ressourcen, og erstat den med følgende kode.

    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;
    });
    
  6. Gem og publicer derefter tilpasningerne.