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 tych encji oparte na pracy są zarządzane przez program PSA. Od pola Typ zależy wiele aspektów logiki biznesowej po stronach klienta i serwera rozwiązania. Dlatego ważne jest, aby podczas tworzenia encji pole było inicjowane z poprawną wartością. Niepoprawna wartość może spowodować nieprawidłowe zachowanie, a część logiki biznesowej może 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 wykorzystuje mapowanie między wartością formId a polem msdynordertype. Wszystkie gotowe formularze są dodane do tego mapowania. Natomiast formularze niestandardowe należy dodać ręcznie, aby wskazać, którą wersję encji mają obsługiwać. Zależy to od pola 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 niestandardowych formularzy i włączanie logiki przełączania formularzy
W poniższym przykładzie pokazano, jak dodać niestandardowy formularz Moje informacje o projekcie przeznaczony dla szans sprzedaży opartych na pracy. Ten sam proces służy do dodawania niestandardowych formularzy dla ofert, zamówień i faktur.
Wykonaj te kroki, aby utworzyć niestandardową wersję formularza Informacje o projekcie.
W encji Szansa sprzedaży otwórz formularz Informacje o projekcie i zapisz jego kopię pod nazwą Moje informacje o projekcie.
Otwórz nowy formularz, a następnie w oknie właściwości sprawdź, czy są obecne skrypty inicjowania formularza pochodzące z formularza Informacje o projekcie.
Ważne
Nie należy usuwać skryptów. W przeciwnym razie niektóre dane mogą być niepoprawnie inicjowane.
Sprawdź, czy w formularzu jest obecne pole Typ (msdynordertype).
Ważne
Nie należy usuwać tego pola. W przeciwnym razie skrypty inicjalizacji nie zadziałają.
Znajdź wartość formId dotyczącą nowego formularza. Ten krok można wykonać na dwa sposoby:
- Wyeksportuj formularz Moje informacje o projekcie jako część niezarządzanego rozwiązania, a następnie poszukaj wartości formId w pliku customization.xml wyeksportowanego rozwiązania.
- Otwórz formularz Moje informacje o projekcie w edytorze formularzy, a następnie wyszukaj unikatowy identyfikator globalny (GUID) obok parametru fromId w adresie URL, jak przedstawiono na poniższym rysunku.
Utwórz mapowanie pola msdyn_ordertype dla wartości formId, odpowiednio modyfikują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; });
Zapisz i opublikuj dostosowania.