שתף באמצעות


הוספת טפסי ישות מותאמים אישית חדשים (Project Service Automation 2.x)

חשוב

Dynamics 365 Project Service Automationהתפתח ל-Dynamics 365 Project Operations. למידע נוסף, ראה מעבר של Project Service Automation.

שדה 'סוג'

Dynamics 365 Project Service Automation מתבסס על השדה סוג (msdyn_ordertype) של הישויות 'הזדמנות', 'הצעת מחיר', 'הזמנה' ו'חשבונית' כדי להבחין בין גירסאות מבוססות-עבודה של ישויות אלה לבין גירסאות מבוססות-פריט ומבוססות-שירות. גירסאות מבוססות-עבודה של ישויות אלה מטופלות על-ידי PSA. לוגיקה עסקית רבה בצד הלקוח ובצד השרת של הפתרון תלויה בשדה סוג. לכן, חשוב שהשדה יאותחל עם ערך נכון בעת יצירת הישויות. ערך שגוי עלול לגרום לאופן פעולה שגוי, וייתכן שלוגיקה עסקית מסוימת לא תפעל כהלכה.

החלפת טופס אוטומטית

כדי למנוע השחתת נתונים אפשרית ואופן פעולה לא צפוי שנגרמים על-ידי אתחול ועריכה שגויים של רשומות ישות המכירות, PSA כולל כעת לוגיקה עבור החלפת טפסים אוטומטית בטפסים מוכנים לשימוש. לוגיקה זו מעבירה משתמשים אל הטופס הנכון לעבודה עם הגירסה מבוססת העבודה או כל סוג אחר של ישות 'הזדמנות', 'הצעת מחיר', 'הזמנה' או 'חשבונית'. כאשר משתמש פותח גירסה מבוססת-עבודה של הישות 'הזדמנות', 'הצעת מחיר', 'הזמנה' או 'חשבונית', הטופס עובר אל פרטי פרוייקט.

הלוגיקה של החלפת הטופס האוטומטית מסתמכת על המיפוי בין הערך formId לשדה msdyn_ordertype. כל הטפסים המוכנים לשימוש נוספו למיפוי זה. עם זאת, יש להוסיף באופן ידני טפסים מותאמים אישית כדי לציין באיזו גירסה של הישות הם נועדו לטפל. זה מבוסס על השדה msdyn_ordertype. אם החלפת הטופס חסרה במיפוי, הלוגיקה תעבור לטופס המוכן לשימוש, בהתבסס על הערך שנשמר בשדה msdyn_ordertype של הישות.

הוספת טפסים מותאמים אישית והפעלת לוגיקת החלפת הטופס

הדוגמה הבאה מציגה כיצד להוסיף טופס מותאם אישית, פרטי הפרוייקט שלי, כך שיפעל עם הזדמנויות מבוססות-עבודה. אותו תהליך משמש להוספת טפסים מותאמים אישית כך שיפעלו עם הצעות מחיר, הזמנות וחשבוניות.

בצע את השלבים הבאים כדי ליצור גירסה מותאמת אישית של הטופס פרטי פרוייקט.

  1. בישות 'הזדמנות', פתח את הטופס פרטי פרוייקט ושמור עותק תחת השם פרטי הפרוייקט שלי.

  2. פתח את הטופס החדש ולאחר מכן, במאפיינים, ודא שקבצי ה- Script של אתחול הטופס מהטופס פרטי הפרוייקט קיימים.

    חשוב

    אל תסיר את קבצי ה- Script. אחרת, ייתכן שנתונים מסוימים יאותחלו באופן שגוי.

  3. ודא שהשדה סוג (msdyn_ordertype) קיים בטופס.

    חשוב

    אל תסיר את השדה. אחרת, קבצי ה- Script של האתחול ייכשלו.

  4. מצא את הערך formId של הטופס החדש. באפשרותך לבצע שלב זה בשתי דרכים:

    • יצא את הטופס פרטי הפרוייקט שלי כחלק מפתרון לא מנוהל ולאחר מכן חפש את הערך formId בקובץ customization.xml של הפתרון המיוצא.
    • פתח את הטופס פרטי הפרוייקט שלי בעורך הטפסים וחפש את המזהה הייחודי הכללי (GUID) לצד הפרמטר fromId בכתובת ה- URL, כפי שמוצג באיור הבא.

    הערך formId של הטופס החדש בכתובת ה- URL.

  5. צור מיפוי msdyn_ordertype עבור הערך formId על-ידי עריכת משאב האינטרנט msdyn_/SalesDocument/PSSalesDocumentCustomFormIds.js. הסר את הקוד מהמשאב והחלף אותו בקוד הבא.

    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. שמור ולאחר מכן פרסם את ההתאמות האישיות.