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

הסרת ההתקנה של פתרון 1 גורמת למחיקת רכיב מכיוון שהיא השכבה היחידה עבור הרכיב.
תרחיש 2: הסרת התקנה של שכבות פתרון ממפרסמים שונים

- הסרת ההתקנה של פתרון 2 אינה גורמת למחיקת רכיבים. רק שכבה זו תוסר.
- הסרת ההתקנה של פתרון 1 גורמת למחיקת רכיב מכיוון שהפעולה מתרחשת בשכבת הבסיס. למעשה, לא ניתן להסיר את ההתקנה של פתרון 1 בתרחיש זה, משום שפתרון ממפרסם אחר מרחיב את הרכיב.
תרחיש 3: הסרת התקנה של שכבות פתרון מרובות ממפרסמים שונים

- הסרת ההתקנה של פתרון 3 אינה גורמת למחיקת רכיבים. רק שכבה זו תוסר.
- הסרת ההתקנה של פתרון 2 אינה גורמת למחיקת רכיבים. רק שכבה זו תוסר.
- הסרת ההתקנה של פתרון 1 אינה גורמת למחיקת רכיבים, מכיוון שבמקרה זה יש פתרון אחר מאותו מפרסם (מפרסם A = מפרסם C)). הפלטפורמה מסירה את השכבה מפתרון 1 ומחליפה אותה בשכבה מפתרון 3.
תרחיש 4: הסרת ההתקנה של שכבות פתרון בהתאמה אישית לא מנוהלת

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

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

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

מבלי להיכנס לפרטים, ניתן להסיק שהסרת ההתקנה של הפתרון מנסה למחוק ישות בשם ישות מותאמת אישית ושלושה שדות—ישות מותאמת אישית, שם ו שדה מספר—ולכל ארבעת הרכיבים יש יחסי תלות.
הערה
הסרת ההתקנה של הפתרון עשויה למחוק רכיבים נוספים, אך מכיוון שאין להם יחסי תלות, הם לא יופיעו ברשימה.
השלב הבא הוא בדיקת הקישור שכבות פתרון (העמודה הימנית ביותר) עבור כל תלות. זה יעזור לך להחליט מה לעשות כדי להסיר את התלות.
באיור הבא מופיעים פרטי תלות בין הישות (ישות מותאמת אישית) ותהליך (זרימת עבודה לבדיקה).

בהתבסס על הנתונים המוצגים, באפשרותך לראות שהרכיב התלוי שייך לפתרון בשם SolutionWorkflow. כדי להסיר תלות זו, אנחנו יכולים:
- לעדכן את הגדרת זרימת העבודה ב- SolutionWork Flow על-ידי הסרת הפניות לישות או לרכיבי המשנה שלה. לאחר מכן לעדכן או לשדרג את הפתרון.
- להסיר את ההתקנה של הפתרון SolutionWorkflow.
- להסיר את זרימת העבודה מגירסה חדשה של הפתרון SolutionWorkflow ולבצע שדרוג.
מכיוון שכל רכיב תלוי אחד יכול למנוע את הסרת הפתרון, אנו ממליצים לבדוק את כל יחסי התלות ולבצע את כל השינויים הנדרשים בפעולה יחידה.
באיור הבא מופיעים פרטי תלות בין הישות (ישות מותאמת אישית) ויישום מונחה-דגמים (היישום שלי).

בהתבסס על הנתונים המוצגים, באפשרותך לראות שהרכיב התלוי שייך לפתרון בשם Active. זה מצביע על כך שהתלות נוצרה על-ידי ייבוא פתרון לא מנוהל, או באמצעות התאמה אישית לא מנוהלת שבוצעה באמצעות ממשק המשתמש או ה- API המודרני.
כדי להסיר תלות זו, באפשרותך:
- לערוך את ההגדרה של היישום מונחה הדגמים כדי להסיר כל הפניה שהיא לישות או לרכיבי המשנה שלה. מכיוון שיישומים מונחי-דגמים תומכים בפרסום, עליך לפרסם את השינויים שלך.
- מחק את היישום מונחה הדגמים.
הערה
הסרת התקנה של פתרון לא מנוהל אינה אפשרות להסרת תלות זו, מכיוון שפתרונות לא מנוהלים הם רק אמצעי לקיבוץ רכיבים.
פעולות להסרת תלות מנוהלת
יחסי תלות מנוהלים הם אלה שבהם הרכיב התלוי משויך לפתרון מנוהל. כדי לפתור תלות מסוג זה, עליך לפעול לפי הפתרון שבו נוסף הרכיב. פעולה זו עשויה להיות שונה בהתאם למה שאתה מנסה לעשות.
אם אתה מנסה להסיר התקנת פתרון
פעל בהתאם לשלבים אלה:
- בארגון היעד, בדוק את הקישור שכבות פתרון כדי לגלות מהו הפתרון העליון ברשימת הרכיבים התלויים.
- בארגון המקור, הכן גירסה חדשה של פתרון זה שבה הפתרון אינו מכיל את הרכיב התלוי, או שיש לו גירסה מעודכנת של הרכיב התלוי שאינה מכילה הפניות לרכיב הנדרש. המטרה שלך היא להסיר כל הפניה לרכיבים הנדרשים בגירסה החדשה של הפתרון.
- יצא את הגירסה החדשה של הפתרון.
- בארגון היעד, שדרג פתרון הזה.
- נסה שוב את הסרת ההתקנה.
אם אתה מנסה לשדרג פתרון
במקרה זה, עליך לאשר שרצית למחוק את הרכיב הנדרש (זכור שיחסי תלות נאכפים רק ברכיבים שנמחקים).
אם לא רצית למחוק את הרכיב, באפשרותך לתקן את הגירסה החדשה של הפתרון על-ידי הוספת הרכיב בחזרה על-ידי ביצוע הפעולות הבאות:
- בארגון היעד, הסר את התקנת הפתרון המבוצע (הפתרון שמסתיים ב- _Upgrade).
- בארגון המקור, הוסף את הרכיבים הנדרשים לפתרון.
- יצא את הגירסה החדשה.
- נסה שוב לשדרג.
אם המחיקה מכוונת, עליך להסיר את התלות. נסה את השלבים המפורטים בסעיף הקודם, "אם אתה מנסה להסיר התקנת פתרון."
שכבות ויחסי תלות
ניתן לפרוס בשכבות את הרכיבים התלויים, כך שייתכן שיהיה עליך לשנות יותר מפתרון אחד כדי להסיר לגמרי תלות. מסגרת התלות מחשבת רק יחסי תלות בין השכבות העליונות ביותר עבור הרכיבים הנדרשים והתלויים. המשמעות היא שעליך להתקדם מלמעלה למטה בפתרונות של הרכיב התלוי.
לפניך התרחיש הבא:

עליך לנסות להסיר את ההתקנה של פתרון - ישות מותאמת אישית, והפעולה נחסמת על-ידי תלות.

עליך להתחיל לאבחן את התלות על-ידי בחירת שכבות פתרון בתכונה new_numberfield. אתה רואה את המסך הבא:

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

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

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

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

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

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

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

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

הסר את כל ההפניות ולאחר מכן שמור ופרסם הן את היישום והן את מפת האתר.
הערה
לאחר העריכה ניתן להוסיף רכיבים לפתרונות מנוהלים ולהעביר אותם לארגונים אחרים כדי להסיר יחסי תלות מנוהלים.