Legg til nye egendefinerte enhetsskjemaer (Project Service Automation 2.x)

Viktig!

Dynamics 365 Project Service Automation har utviklet seg til Dynamics 365 Project Operations. Hvis du vil ha mer informasjon, kan du se Overgang til Project Service Automation.

Typefelt

Dynamics 365 Project Service Automation er avhengig av typefeltet (msdyn_ordertype) for enhetene Salgsmulighet, Tilbud, Ordre og Faktura for å skille mellom arbeidsbaserte versjoner av disse enhetene fra elementbaserte og tjenestebaserte versjoner. Arbeidsbaserte versjoner av disse enhetene håndteres av PSA. Mye forretningslogikk på klientsiden og serversiden av løsningen avhenger av Type-feltet . Derfor er det viktig at feltet initialiseres med en riktig verdi når enhetene opprettes. En feil verdi kan forårsake feil virkemåte, og det kan hende at noe forretningslogikk ikke kjører riktig.

Automatisk skjemabytte

For å unngå potensielle datafeil og uventede virkemåter som skyldes feil initialisering og redigering av salgsenhetspostene, inkluderer PSA nå logikk for automatisk skjemabytte i ut-av-boksen-skjemaer. Denne logikken tar brukerne til riktig skjema for å arbeide med den arbeidsbaserte versjonen eller en annen type salgsmulighet, tilbud, ordre eller fakturaenhet. Når en bruker åpner den arbeidsbaserte versjonen av en enhet for salgsmulighet, tilbud, ordre eller faktura, byttes skjemaet til prosjektinformasjon.

Den automatiske skjemabyttelogikken er avhengig av tilordningen mellom formId-verdien og msdyn_ordertype-feltet . Alle ut-av-boksen skjemaer er lagt til denne tilordningen. Egendefinerte skjemaer må imidlertid legges til manuelt for å angi hvilken versjon av enheten de skal håndtere. Dette er basert på msdyn_ordertype-feltet . Hvis skjemabytte mangler fra tilordningen, vil logikken bytte til ut-av-boksen-skjemaet, basert på verdien som er lagret i msdyn_ordertype-feltet for enheten.

Legg til egendefinerte skjemaer, og aktiver skjemabyttelogikken

Eksemplet nedenfor viser hvordan du legger til et egendefinert skjema, Min prosjektinformasjon, slik at det fungerer med arbeidsbaserte salgsmuligheter. Den samme prosessen brukes til å legge til egendefinerte skjemaer slik at de fungerer med tilbud, ordrer og fakturaer.

Følg disse trinnene for å opprette en egendefinert versjon av prosjektinformasjonsskjemaet .

  1. Åpne Prosjektinformasjon-skjemaet i Salgsmulighet-enheten, og lagre en kopi under navnet Min prosjektinformasjon.

  2. Åpne det nye skjemaet, og kontroller deretter at skjema initialiseringsskriptene fra prosjektinformasjonsskjemaet finnes i egenskapene.

    Viktig!

    Ikke fjern skriptene. Ellers kan noen data initialiseres feil.

  3. Kontroller at typefeltet (msdyn_ordertype) finnes i skjemaet.

    Viktig!

    Ikke fjern dette feltet. Ellers vil initialiseringsskriptene mislykkes.

  4. Finn formId-verdien for det nye skjemaet. Du kan fullføre dette trinnet på to måter:

    • Eksporter skjemaet Mitt prosjektinformasjon som en del av en uadministrert løsning, og slå deretter opp formId-verdien i customization.xml-filen for den eksporterte løsningen.
    • Åpne Skjemaet For min prosjektinformasjon i redigeringsprogrammet for skjemaet, og se deretter etter den globalt unike identifikatoren (GUID) ved siden av fromId-parameteren i nettadressen, som vist i illustrasjonen nedenfor.

    FormId-verdien for det nye skjemaet i URL-adressen.

  5. Opprett en msdyn_ordertype tilordning for formId-verdien ved å redigere nettressursen msdyn_/SalesDocument/PSSalesDocumentCustomFormIds.js. Fjern koden fra ressursen, og erstatt 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. Lagre og publiser deretter tilpassingene.