Udostępnij przez


Dodawanie nowych niestandardowych formularzy encji (Project Service Automation wer. 2.x)

Ważne

Rozwiązanie Dynamics 365 Project Service Automation rozwinęło się w Dynamics 365 Project Operations. Aby uzyskać więcej informacji, zobacz przejście do rozwiązania Project Service Automation.

Pole Typ

Program Dynamics 365 Project Service Automation wykorzystuje pole Typ (msdynordertype) w encjach Szansa sprzedaży, Oferta, Zamówienie i Faktury do rozróżniania między wersjami tych encji opartymi na pracy, opartymi na towarach i opartymi na usługach. Wersje robocze tych jednostek są obsługiwane przez PSA. Wiele logiki biznesowej po stronie klienta i po stronie serwera rozwiązania zależy od pola Typ . Dlatego ważne jest, aby pole było inicjowane przy użyciu poprawnej wartości podczas tworzenia jednostek. Nieprawidłowa wartość może powodować nieprawidłowe zachowania, a niektóre logiki biznesowej mogą nie działać poprawnie.

Automatyczne przełączanie formularzy

Aby uniknąć potencjalnego uszkodzenia danych i nieoczekiwanych zachowań spowodowanych niepoprawną inicjalizacją i zmodyfikowaniem rekordów encji sprzedaży, program PSA zawiera teraz logikę automatycznego przełączania gotowych formularzy. Logika powoduje przeniesienie użytkownika do formularza odpowiedniego do pracy z wersją opartą na pracy lub z dowolnym innym typem encji Szansa sprzedaży, Oferta, Zamówienie lub Faktura. Kiedy użytkownik otworzy wersję encji Szansa sprzedaży, Oferta, Zamówienie lub Faktura opartą na pracy, formularz jest przełączany na Informacje o projekcie.

Logika automatycznego przełączania formularzy opiera się na mapowaniu między wartością formId a polem msdyn_ordertype . Wszystkie gotowe formularze zostały dodane do tego mapowania. Należy jednak ręcznie dodać formularze niestandardowe, aby wskazać, która wersja jednostki ma być obsługiwana. Jest to oparte na polu msdyn_ordertype . Jeśli opcji przełączania formularzy nie ma w mapowaniu, logika przełączy na gotowy formularz na podstawie wartości zapisanej w polu msdyn_ordertype w encji.

Dodawanie formularzy niestandardowych i włączanie logiki przełączania formularzy

W poniższym przykładzie pokazano, jak dodać formularz niestandardowy My Project Information, aby współdziałał z możliwościami pracy. Ten sam proces służy do dodawania formularzy niestandardowych, tak aby działały z ofertami, zamówieniami i fakturami.

Wykonaj następujące kroki, aby utworzyć niestandardową wersję formularza Informacje o projekcie .

  1. W obiekcie 'Szansa' otwórz formularz Informacje o projekcie i zapisz jej kopię pod nazwą Moje Informacje o Projekcie.

  2. Otwórz nowy formularz, a następnie we właściwościach upewnij się, że istnieją skrypty inicjowania formularza z formularza Informacje o projekcie .

    Ważne

    Nie usuwaj skryptów. W przeciwnym razie niektóre dane mogą zostać zainicjowane niepoprawnie.

  3. Sprawdź, czy pole Typ (msdyn_ordertype) znajduje się w formularzu.

    Ważne

    Nie usuwaj tego pola. W przeciwnym razie skrypty inicjalizacyjne zakończą się niepowodzeniem.

  4. Znajdź wartość formId nowego formularza. Ten krok można wykonać na dwa sposoby:

    • Wyeksportuj informacje o moim projekcie jako część rozwiązania niezarządzanego, a następnie wyszukaj wartość formId w pliku customization.xml wyeksportowanego rozwiązania.
    • Otwórz formularz Moje informacje o projekcie w edytorze formularzy, a następnie wyszukaj globalnie unikatowy identyfikator (GUID) obok parametru fromId w adresie URL, jak pokazano na poniższej ilustracji.

    Wartość formId nowego formularza w adresie URL.

  5. Utwórz mapowanie msdyn_ordertype dla wartości formId , edytując zasób internetowy msdyn_/SalesDocument/PSSalesDocumentCustomFormIds.js. Usuń kod z zasobu i zastąp go następującym kodem.

    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. Zapisz, a następnie opublikuj dostosowania.