שיטות עבודה מומלצות · תחזוקת מפעל
משמעת COMMIT בקריאות BAPI: הודעות ופקודות תחזוקת מפעל
BAPI commit discipline for Plant Maintenance notifications and orders
מהות השיטה
כל רצף כתיבה דרך BAPI בתחזוקת מפעל מסתיים בבדיקת טבלת RETURN ובקריאה ל-BAPI_TRANSACTION_COMMIT; בלעדיה השינויים אינם נשמרים במסד הנתונים.
לפי רשומות אובייקטי הפונקציה במאגר, BAPI כותב (יצירת הודעה, שמירת הודעה, תחזוקת פקודה) אינו מבצע COMMIT WORK בעצמו. הרשומות מתעדות את הרצף CREATE, DATA_ADD, SAVE ולאחריו COMMIT, ואת הכשלים הנפוצים כאשר שלב מדולג. לפי ערכי הזמינות ברשומות, העיקרון חל על SAP ERP 6.0 ועל S/4HANA On-Premise כאחד.
צעדי העבודה7 צעדים
- לקרוא ל-BAPI הכותב, לדוגמה BAPI_ALM_NOTIF_CREATE להודעה או BAPI_ALM_ORDER_MAINTAIN לפקודה, ולשמור את טבלת RETURN שחוזרת.
- לבדוק את RETURN אחרי כל קריאה: שורה עם TYPE בערך E או A פירושה כישלון, ואין להמשיך ברצף.
- בהודעות תחזוקת מפעל להשלים את הרצף CREATE, DATA_ADD, SAVE: המספר הסופי של ההודעה נוצר רק ב-BAPI_ALM_NOTIF_SAVE.
- לאחר הצלחה לקרוא ל-BAPI_TRANSACTION_COMMIT; להעביר WAIT='X' כאשר הנתונים נקראים מיד לאחר ה-COMMIT.
- במקרה שגיאה לקרוא ל-BAPI_TRANSACTION_ROLLBACK כדי לבטל את השינויים שנצברו ברצף.
- בקריאה מרוחקת (RFC) לשמור על אותו חיבור stateful מ-CREATE ועד COMMIT, כדי שהבאפר יהיה משותף בין הקריאות.
- לאמת את התוצאה בטבלאות היעד: QMEL להודעה ו-AUFK לפקודה, דרך IW23 או IW33.
דפוסים שגויים4 דפוסים
- דילוג על BAPI_TRANSACTION_COMMIT: ההודעה או הפקודה אינן נשמרות.
- התעלמות מטבלת RETURN והמשך הרצף לאחר שורת E או A.
- חיבור RFC שאינו stateful: הבאפר אינו משותף בין CREATE ל-SAVE.
- עדכון סטטוס מערכת ישירות במקום BAPI_ALM_NOTIF_CHANGEUSRSTAT.
בדיקות ואימות בשטח3 בדיקות
- בדיקת RETURN ו-COMMIT בכל תרחיש בדיקה של BAPI כותב.
- אימות שהמספר הסופי של ההודעה נוצר לאחר SAVE ו-COMMIT.
- בדיקה שהרשומה קיימת ב-QMEL או ב-AUFK לאחר הרצף.
רשומות מקושרות12/12 עם עמוד
הפניה שקיים לה עמוד בקטלוגי הפרויקט נפתחת כקישור. הפניה אחרת מוצגת כערך ללא קישור.
אימות ומקורות
אימות ומקורות
רשומת שיטת העבודה אינה נושאת תביעת מעמד S/4HANA עצמאית; קביעת המעמד ממתינה לאימות מול תיעוד SAP רשמי בשלב האיסוף.
פעולה מומלצת: נדרש אימות מול תיעוד SAP או מערכת S/4HANA לפני החלטה.
מקורות הרשומה
- הערת ה-RETURN המשותפת ברשומות אובייקטי הפונקציה (RET)
- רשומת BAPI_TRANSACTION_COMMIT ברישום המועשר
- הערות ה-QA של משפחת הודעות BUS2038 ברישום המועשר
- רשומת BAPI_ALM_NOTIF_SAVE באינטליגנציית הפונקציות
נדרש אימות נוסף מול תיעוד SAP או מערכת S/4HANA לפני החלטת מעבר.
אומת לאחרונה בתאריך 2026-09-01סוקר: Project NEO foundation pass
הטענה שכל מקור תומך בה
- הערת ה-RETURN המשותפת ברשומות אובייקטי הפונקציה (RET)מאומת מול נתוני הפרויקטטבלת הודעות BAPIRET2: יש לבדוק TYPE='E' לשגיאה, וחובה לקרוא ל-BAPI_TRANSACTION_COMMIT לאחר הצלחה.data/function-intel.ts#RET
- רשומת BAPI_TRANSACTION_COMMIT ברישום המועשרמאומת מול נתוני הפרויקטביצוע COMMIT WORK חיצוני לאחר קריאות BAPI: הנתונים נשמרים רק לאחר קריאה זו. יש להעביר WAIT='X' כאשר הנתונים נקראים מיד לאחר ה-COMMIT.data/bapi-enrichment.pm.ts#BAPI_TRANSACTION_COMMIT
- הערות ה-QA של משפחת הודעות BUS2038 ברישום המועשרמאומת מול נתוני הפרויקטיש לבדוק את טבלת RETURN אחרי כל קריאה; חובה BAPI_ALM_NOTIF_SAVE ואז BAPI_TRANSACTION_COMMIT על אותו חיבור RFC (stateful) כדי לשתף את הבאפר, ובמקרה שגיאה BAPI_TRANSACTION_ROLLBACK.data/bapi-enrichment.pm.ts#notif
- רשומת BAPI_ALM_NOTIF_SAVE באינטליגנציית הפונקציותמאומת מול נתוני הפרויקטשמירת הודעת האחזקה ושיוך המספר הסופי; חובה אחריה BAPI_TRANSACTION_COMMIT.data/function-intel.ts#BAPI_ALM_NOTIF_SAVE