המספור תואם לתיקיות: בתיקייה 01 מופיעות השאלות 01-01, 01-02 וכן הלאה. שלוש שאלות ההתחלה הן 01-05, 01-08 ו־01-02; מקור ערכי פילטר התהליך הוא 01-20. מזהי OBP ושמות קובצי SQL נשארים קבועים.
זהו צילום המקור שנבדק ב־8 בנובמבר 2026, ולא SQL ששוחזר מהכותרת. החליפו {{schema}} בסכימה המורשית שלכם והריצו שאלה אחת בכל פעם. פילטרי הדשבורד והתצוגה אינם כלולים כאן. כינויי העמודות והערכים בעברית נשמרו בדיוק כפי שהם בשאלות המקור.
02-01 · ריצות ייצור לפי מצב
ספירת ריצות שממתינות להתחלה, נמצאות בעבודה או הסתיימו. ריצה עשויה לייצג יחידה או אצווה. הסיווג „בעבודה” כולל בקוד גם מצב חסר או אחר; לכן ייתכן פער מול שאלות שמציגות רק ריצות בעבודה.
דגש לבדיקה: כל מצב שאינו WF.NEW או WF.FINISH, כולל NULL, מסווג כבתהליך. שאלות 02-02, 02-03, 02-09 ו־02-11 מוציאות NULL באמצעות NOT IN.
SELECT CASE status WHEN 'WF.NEW' THEN 'ממתינות' WHEN 'WF.FINISH' THEN 'הסתיימו' ELSE 'בעבודה' END AS "מצב ריצה",count(*) AS "ריצות" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL GROUP BY 1 ORDER BY 2 DESC;02-02 · עבודה בתהליך לפי תהליך
כמה ריצות נמצאות בעבודה בכל תהליך. ריצות ממתינות וריצות גמורות אינן נכללות.
דגש לבדיקה: NOT IN מוציא גם מצב חסר. אין בכך הוכחה שמתבצעת עבודה ברגע זה.
SELECT workflowname AS "תהליך",count(*) AS "ריצות בעבודה" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status NOT IN ('WF.NEW','WF.FINISH') GROUP BY 1 ORDER BY 2 DESC;02-03 · מיקום עבודה בתהליך לפי השלב הבא
מספר הריצות שבעבודה, בחלוקה לפי תהליך, השלב הבא והפרק הבא שרשומים בהן. הנתונים מראים היכן הריצה נמצאת בתהליך, ולא היכן היחידה נמצאת פיזית או כמה זמן היא ממתינה בתחנה.
דגש לבדיקה: רמת הפירוט היא תהליך × שלב הבא × פרק הבא. שמות זהים יכולים להתאחד; אין מדידה של מועד הכניסה לתחנה.
SELECT workflowname AS "תהליך",nextnodename AS "שלב הבא המדווח",nextchaptername AS "פרק הבא",count(*) AS "ריצות" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status NOT IN ('WF.NEW','WF.FINISH') GROUP BY 1,2,3 ORDER BY 4 DESC;02-04 · ריצות הממתינות להתחלה
ריצות שנוצרו ועדיין מוגדרות כממתינות, עם תאריך יצירה וכמות רשומה.
דגש לבדיקה: כמות אינה מספר ריצות. לבדיקת מקרה מסוים השתמשו במזהה הריצה.
SELECT _id AS "מזהה ריצה",workflowname AS "תהליך",partsku AS "מק״ט",created AS "תאריך יצירה",quantity AS "כמות" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status='WF.NEW' ORDER BY created;02-05 · ריצות שהסתיימו לפי שבוע
מספר הריצות הגמורות בכל שבוע, לפי מועד הסיום. אינה סופרת את הכמות שיוצרה.
דגש לבדיקה: שבוע Trino מתחיל ביום שני. פילטר בתוצאה בוחר את תאריך תחילת השבוע ולא ימים בודדים בתוכו.
SELECT date_trunc('week',"end") AS "שבוע סיום",count(*) AS "ריצות שהסתיימו" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status='WF.FINISH' AND "end" IS NOT NULL GROUP BY 1 ORDER BY 1;02-06 · כמויות בריצות גמורות לפי מק״ט
מספר הריצות הגמורות וסכום הכמות הרשומה בהן לכל מק״ט. אין לחבר מק״טים בעלי יחידות מידה שונות לתפוקה כוללת.
דגש לבדיקה: כמות חסרה אינה מוסיפה ל־SUM, אבל הריצה עדיין נספרת. הכמויות אינן תפוקה תקינה שאומתה בנפרד.
SELECT partsku AS "מק״ט",count(*) AS "ריצות",sum(quantity) AS "כמות רשומה" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status='WF.FINISH' GROUP BY 1 ORDER BY 3 DESC;02-07 · זמן מחזור כולל לפי תהליך
חציון ו־P90 של השעות מתחילת ריצה ועד סיומה, לריצות גמורות עם רצף זמנים תקין.
דגש לבדיקה: נדרשים start ו־end בסדר תקין. בדקו את מספר הריצות שנמדדו ואת כיסוי התאריכים בשאלה 06-01.
SELECT workflowname AS "תהליך",count(*) AS "ריצות",approx_percentile(date_diff('second',start,"end")/3600.0,0.5) AS "חציון שעות",approx_percentile(date_diff('second',start,"end")/3600.0,0.9) AS "P90 שעות" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status='WF.FINISH' AND start IS NOT NULL AND "end">=start GROUP BY 1 ORDER BY 3 DESC;02-08 · זמן נטו וזמן כולל לפי תהליך
השוואה בין חציון זמן הנטו הרשום לבין חציון הזמן שעבר מתחילת הריצה ועד לסיומה. ההפרש אינו מסביר מה גרם להמתנה ואינו מודד את זמן העבודה של העובדים. החישוב הנוכחי עשוי לכלול בזמן הנטו ערכי אפס או ערכים שליליים; מספר ערכי הנטו והזמן הכולל אינו בהכרח זהה.
דגש לבדיקה: תאריכי הזמן הכולל נבדקים, אך זמן הנטו אינו חייב להיות חיובי. NULL אינו נכנס לחציון; אפס ושלילי יכולים להיכנס. שני החציונים עשויים להתבסס על אוכלוסיות שונות; בדקו 06-05.
SELECT workflowname AS "תהליך",count(*) AS "ריצות",approx_percentile(nettimespent/3600.0,0.5) AS "חציון שעות נטו",approx_percentile(date_diff('second',start,"end")/3600.0,0.5) AS "חציון שעות כולל" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status='WF.FINISH' AND start IS NOT NULL AND "end">=start GROUP BY 1 ORDER BY 4 DESC;02-09 · התקדמות ריצות פתוחות
ריצות בעבודה, עם ההתקדמות הרשומה, השלב הבא ומועד ההתחלה. ריצות ממתינות וגמורות אינן נכללות.
דגש לבדיקה: ההתקדמות מוצגת כפי שנשמרה, ללא המרת הסולם לאחוזים. לא נדרש מועד התחלה.
SELECT _id AS "מזהה ריצה",workflowname AS "תהליך",partsku AS "מק״ט",progress AS "התקדמות",nextnodename AS "שלב הבא",start AS "התחלה" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status NOT IN ('WF.NEW','WF.FINISH') ORDER BY progress DESC;02-10 · יצירת ריצות לפי חודש
מספר הריצות שנוצרו בכל חודש, בלי קשר למצבן הנוכחי.
דגש לבדיקה: יצירת ריצה אינה אומרת שהחלה או הסתיימה. מצב נוכחי אינו משחזר מצב היסטורי.
SELECT date_trunc('month',created) AS "חודש יצירה",count(*) AS "ריצות שנוצרו" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL GROUP BY 1 ORDER BY 1;02-11 · ריצות בעבודה לפי מק״ט
ספירת הריצות בעבודה לכל מק״ט. זו ספירת ריצות, ולא כמות יחידות.
דגש לבדיקה: נספרות ריצות ולא SUM(quantity). לבדיקת ריצה מסוימת השתמשו ב־02-09.
SELECT partsku AS "מק״ט",count(*) AS "ריצות בעבודה" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status NOT IN ('WF.NEW','WF.FINISH') GROUP BY 1 ORDER BY 2 DESC;06-01 · כיסוי תאריכים לחישוב זמן מחזור
כמה ריצות גמורות כוללות התחלה וסיום תקינים, וכמה מצריכות בדיקה, לפי תהליך.
דגש לבדיקה: משך אפס עובר את תנאי סדר התאריכים. זו בדיקת כיסוי ולא בדיקת סבירות עסקית.
SELECT workflowname AS "תהליך",count(*) AS "ריצות גמורות",count_if(start IS NOT NULL AND "end">=start) AS "ניתנות למדידה",count_if(start IS NULL OR "end" IS NULL OR "end"<start) AS "לבדיקת תאריכים" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status='WF.FINISH' GROUP BY 1 ORDER BY 2 DESC;06-02 · כיסוי מועדי יעד בפקודות פתוחות
כמה פקודות חדשות ובעבודה כוללות מועד יעד וכמה אינן כוללות אותו, לפי תהליך.
דגש לבדיקה: נבדק קיום תאריך בלבד ולא סבירותו. פקודות מוקפאות אינן נכללות.
SELECT workflowname AS "תהליך",count(*) AS "פקודות פתוחות",count_if(expecteddate IS NOT NULL) AS "עם מועד יעד",count_if(expecteddate IS NULL) AS "ללא מועד יעד" FROM {{schema}}.workorder WHERE deletedat IS NULL AND replace(statustype,'WO.STATUSES.','') IN ('NEW','IN_PROGRESS') GROUP BY 1 ORDER BY 2 DESC;06-03 · כיסוי נתונים לעמידה במועדי סיום
כמה פקודות סגורות כוללות גם מועד יעד וגם מועד סיום, ולכן אפשר לכלול אותן במדד עמידה במועד.
דגש לבדיקה: אין בדיקת תאריכי התחלה או שחרור, או סבירות עסקית של חותמות הזמן.
SELECT workflowname AS "תהליך",count(*) AS "פקודות סגורות",count_if("end" IS NOT NULL AND expecteddate IS NOT NULL) AS "ניתנות למדידה",count_if("end" IS NULL OR expecteddate IS NULL) AS "חסר מידע" FROM {{schema}}.workorder WHERE deletedat IS NULL AND replace(statustype,'WO.STATUSES.','')='END' GROUP BY 1 ORDER BY 2 DESC;02-12 · זמן המתנה לפתיחת עבודה לפי תהליך
חציון מספר הימים משחרור הפקודה ועד לתחילת העבודה. נכללות פקודות שהתאריכים שלהן מאפשרים לחשב משך תקין, גם אם הן עדיין פתוחות. אם חסר מועד שחרור, משתמשים במועד היצירה ומציגים כמה פקודות חושבו כך.
דגש לבדיקה: שחרור חסר מוחלף ביצירה. בניגוד ל־01-11, לא נדרש מצב END; גם פקודה פתוחה שכבר החלה יכולה להיכלל.
SELECT workflowname AS "תהליך",count(*) AS "פקודות שנמדדו",approx_percentile(date_diff('hour',coalesce(releasedat,createdat),start)/24.0,0.5) AS "חציון ימי המתנה",count_if(releasedat IS NULL) AS "חושב ממועד יצירה" FROM {{schema}}.workorder WHERE deletedat IS NULL AND start>=coalesce(releasedat,createdat) GROUP BY 1 ORDER BY 3 DESC;01-13 · כמויות פקודות לפי מק״ט
סיכום כמות מתוכננת, תקינה מדווחת ופסולה מדווחת, בכל מצבי הפקודות ולפי מק״ט. נתון חסר אינו הוכחה לאפס פסילות.
דגש לבדיקה: שלושת הסכומים מגיעים משדות שונים. אין אכיפה של תקין ועוד פסול שווה מתוכנן. בדקו יחידות וכללי דיווח.
SELECT sku AS "מק״ט",count(*) AS "פקודות",sum(quantity) AS "כמות מתוכננת",sum(validquantity) AS "כמות תקינה מדווחת",sum(invalidquantity) AS "כמות פסולה מדווחת" FROM {{schema}}.workorder WHERE deletedat IS NULL GROUP BY 1 ORDER BY 2 DESC;02-13 · ריצות גמורות לפי תהליך
מספר הריצות הגמורות בכל תהליך, בכל מועדי הסיום.
דגש לבדיקה: נכללות גם ריצות ללא מועד סיום. המספר יכול להיות גדול מזה שב־02-05 או ב־02-07, הדורשות תאריכים מתאימים.
SELECT workflowname AS "תהליך",count(*) AS "ריצות גמורות" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status='WF.FINISH' GROUP BY 1 ORDER BY 2 DESC;06-05 · כיסוי זמן נטו בריצות גמורות
מספר הריצות הגמורות שנרשם בהן זמן נטו גדול מאפס, לעומת ריצות שהזמן שלהן חסר, אפס או שלילי. הבדיקה עוזרת להבין על אילו נתונים מבוססת ההשוואה בשאלה 02-08.
דגש לבדיקה: האוכלוסייה היא כל הריצות הגמורות, ולא בדיוק האוכלוסייה עם תאריכי זמן כולל תקינים ב־02-08. חיוביות אינה מאשרת דיוק.
SELECT workflowname AS "תהליך",count(*) AS "ריצות גמורות",count_if(nettimespent>0) AS "עם זמן נטו חיובי",count_if(nettimespent IS NULL OR nettimespent<=0) AS "ללא זמן נטו חיובי" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status='WF.FINISH' GROUP BY 1 ORDER BY 2 DESC;02-14 · ריצות גמורות — פירוט זמנים
מועדי ההתחלה והסיום, הזמן הכולל וזמן הנטו הרשום לכל ריצה גמורה. הזמן הכולל מוצג רק אם קיימים תאריכים תקינים ומועד הסיום אינו מוקדם ממועד ההתחלה.
דגש לבדיקה: כל ריצות WF.FINISH נשארות. שעות הזמן הכולל ריקות אם התאריכים חסרים או הפוכים; שעות נטו מוצגות בנפרד ללא בדיקת חיוביות.
SELECT _id AS "מזהה ריצה",workflowname AS "תהליך",partsku AS "מק״ט",start AS "התחלה","end" AS "סיום",CASE WHEN "end">=start THEN date_diff('second',start,"end")/3600.0 END AS "שעות כולל",nettimespent/3600.0 AS "שעות נטו" FROM {{schema}}.workflowsessionitem WHERE deletedat IS NULL AND status='WF.FINISH' ORDER BY "end" DESC;