SAP ERP
מחבר SAP ERP מאפשר לכם לבצע פעולות של הוספה, מחיקה, עדכון וקריאה של נתוני SAP ERP.
מהדורות נתמכות
מחבר SAP ERP יכול לתקשר עם מערכות SAP R/3 באמצעות השיטות הבאות:
- ממשקי תכנות יישומים (API) עסקיים (BAPIs)
- בקשות להפעלת פונקציות מרחוק (RFC)
- טבלאות SAP
- שאילתות SAP
- הודעות IDoc
- SAP ECC
- SAP ERP
- SAP R/3
- SAP S/4 Hana on-premise
- גרסת SAP JCo.
כדי ליצור את החיבור למחבר הזה, צריך לספק שני קובצי JCo:
sapjco3.jarו-libsapjco3.so(ל-Unix). אפשר להוריד את גרסת JCo 3.1.5 מהאתר של SAP Connectors.
אם מערכת SAP תומכת בחיבור RFC וה-RFC הנדרשים זמינים, החיבור למערכת SAP יפעל. יכול להיות שיהיה תמיכה גם במהדורות אחרות שתומכות בחיבורי RFC.
טבלאות SAP: טבלאות SAP נחשפות כתצוגות באופן אוטומטי באמצעות מאפיין החיבור TableMode. מציינים את טבלאות SAP שרוצים לעבוד איתן באמצעות מאפיין החיבור Views, שמבטל את TableMode. ב-SAP לא מומלץ לשנות את הטבלאות ישירות. במקום זאת, מומלץ להשתמש ב-BAPI כדי לשנות נתונים טבלאיים. אין תמיכה בשינוי ישיר של טבלאות SAP.
BAPIs ו-RFCs: BAPIs ו-RFCs נחשפים ישירות כפרוצדורות מאוחסנות. כברירת מחדל, כל ה-RFC שמתחילים במילת המפתח BAPI מוצגים כפרוצדורה מאוחסנת זמינה.
IDoc: קבצים של מסמך ביניים (IDoc) הם אובייקטים של SAP שנושאים נתונים של עסקאות עסקיות ממערכת אחת לאחרת בצורה של הודעה אלקטרונית. IDocs מעבירים נתונים מ-SAP למערכות שאינן SAP באמצעות מערכות Electronic Data Interchange (EDI).
מידע נוסף על התנאים האלה זמין במילון המונחים של SAP.
לפני שמתחילים
לפני שמשתמשים במחבר SAP ERP, צריך לבצע את המשימות הבאות:
- בפרויקט שלכם ב-Google Cloud:
- מוודאים שהגדרתם חיבור לרשת. מידע על תבניות רשת זמין במאמר קישוריות לרשת.
- נותנים למשתמש שמגדיר את המחבר את תפקיד ה-IAM roles/connectors.admin.
- מקצים לחשבון השירות שרוצים להשתמש בו עבור המחבר את תפקידי ה-IAM הבאים:
roles/secretmanager.viewerroles/secretmanager.secretAccessorroles/storage.objectViewer
חשבון שירות הוא סוג מיוחד של חשבון Google שמייצג משתמש לא אנושי, שצריך לאמת ולאשר כדי לתת לו גישה לנתונים ב-Google APIs. אם אין לכם חשבון שירות, אתם צריכים ליצור חשבון שירות. המחבר וחשבון השירות צריכים להיות שייכים לאותו פרויקט. מידע נוסף זמין במאמר בנושא יצירת חשבון שירות.
- מפעילים את השירותים הבאים:
-
secretmanager.googleapis.com(Secret Manager API) -
connectors.googleapis.com(Connectors API)
במאמר הפעלת שירותים מוסבר איך להפעיל שירותים.
-
אם השירותים או ההרשאות האלה לא הופעלו בפרויקט שלכם בעבר, תתבקשו להפעיל אותם כשאתם מגדירים את המחבר.
אם מפעילים הרשמה לאירועים, צריך להגדיר את ABAP SDK. למידע על הגדרת ABAP SDK, אפשר לעיין במאמר סקירה כללית של ABAP SDK for Google Cloud.
-
צריך ליצור קטגוריה ייעודית ולהעלות את מזהי האובייקטים הבאים שהורדו מפורטל SAP ERP:
- הנתיב של קובץ ה-JAR של JCo ב-Cloud Storage: הנתיב של קובץ ה-JAR של Java Connector (JCo) ב-Cloud Storage.
- הנתיב של libsapjco3 ב-Cloud Storage: הנתיב של קובץ ה-JAR של libsapjco3 ב-Cloud Storage.
הגדרת המחבר
החיבור הוא ספציפי למקור נתונים. אם יש לכם הרבה מקורות נתונים, תצטרכו ליצור חיבור נפרד לכל אחד מהם. כדי ליצור קישור:
- במסוף Cloud, עוברים לדף Integration Connectors > Connections ובוחרים או יוצרים פרויקט בענן.
- לוחצים על + יצירת חיבור חדש כדי לפתוח את הדף יצירת חיבור.
-
בקטע מיקום, בוחרים את המיקום של החיבור.
- אזור: בוחרים מיקום מהרשימה הנפתחת.
רשימה של כל האזורים הנתמכים מופיעה במאמר מיקומים.
- לוחצים על הבא.
- אזור: בוחרים מיקום מהרשימה הנפתחת.
- בקטע פרטי החיבור, ממלאים את הפרטים הבאים:
- מחבר: בוחרים באפשרות SAP ERP מהרשימה הנפתחת של המחברים הזמינים.
- גרסת כלי החיבור: בוחרים את גרסת כלי החיבור מהרשימה הנפתחת של הגרסאות הזמינות.
- בשדה Connection Name (שם החיבור), מזינים שם למופע החיבור.
השמות של החיבורים צריכים לעמוד בקריטריונים הבאים:
- שמות החיבורים יכולים לכלול אותיות, מספרים או מקפים.
- האותיות צריכות להיות קטנות.
- שמות החיבורים צריכים להתחיל באות ולהסתיים באות או במספר.
- שמות החיבורים לא יכולים לכלול יותר מ-49 תווים.
- במחברים שתומכים בהרשמה לאירועים, שמות החיבורים לא יכולים להתחיל בקידומת goog.
- אפשר גם להזין תיאור לחיבור.
- אופציונלי: מפעילים את Cloud Logging ואז בוחרים רמת יומן. כברירת מחדל, רמת היומן מוגדרת כ-
Error. - חשבון שירות: בוחרים חשבון שירות שיש לו את התפקידים הנדרשים.
- כדי להשתמש בחיבור למינויים לאירועים, בוחרים באפשרות הפעלת מינוי לאירועים. אם בוחרים באפשרות הזו, מוצגות האפשרויות הבאות:
- הפעלת הרשמה לאירועים עם ישות ופעולות: בוחרים באפשרות הזו כדי להשתמש בחיבור גם להרשמה לאירועים וגם לפעולות של מחבר (יחידות ופעולות).
- הפעלה של מינוי לאירועים בלבד: בוחרים באפשרות הזו כדי להשתמש בחיבור רק למינוי לאירועים. אם בוחרים באפשרות הזו, לוחצים על הבא ואז מגדירים מינוי לאירועים.
- לקוח: הלקוח שמתבצע לגביו אימות במערכת SAP.
- מזהה המערכת: מזהה המערכת או R3Name של מערכת SAP הוא מחרוזת באורך של שלושה תווים לכל היותר. לרוב משתמשים בו כדי לאזן עומסים של חיבורים.
- מספר המערכת: המספר שבאמצעותו מוגדרת מערכת היעד. המאפיין הזה משמש להגדרת מאפיין החיבור למארח.
- מזהה הפרויקט: המזהה של פרויקט Google Cloud שבו נמצאת קטגוריית ה-GCS שמכילה את קובץ ה-JAR של SAP JCo.
- Bucket: השם של הקטגוריה שמכילה את הקבצים sapjco3.jar ו-libsapjco3.so.
- הנתיב של JCo jar ב-Cloud Storage: הנתיב של JCo jar ב-Cloud Storage.
- הנתיב של libsapjco3 ב-Cloud Storage: הנתיב של libsapjco3 jar ב-Cloud Storage.
- מצב טבלה: בוחרים את טבלת SAP שרוצים להציג כתצוגה.
- פונקציה לקריאת טבלה: השם של הפונקציה שתשמש לקריאת טבלאות. מידע נוסף זמין במאמר בנושא שימוש בפונקציה מותאמת אישית לקריאת טבלה.
- מזהה המערכת: מזהה המערכת או R3Name של מערכת SAP. אפשר להזין עד 3 תווים.
- מצב שאילתה: בחירה של טבלאות SAP שצריך להציג כתצוגות.
-
תצוגות שאפשר לעיין בהן: מזינים רשימה של תצוגות שיוצגו, מופרדות בפסיקים.
לדוגמה,
ViewA,ViewB,ViewC. - שפה: מגדירים את המאפיין הזה לשפה שציינתם כשנכנסתם ל-SAP. המאפיין הזה הוא קוד ISO 639-1 לשפה שבה מערכת SAP משתמשת. כברירת מחדל, המערכת תשתמש ב-EN.
- רשומות שירות: רשומות השירות שישמשו לחיבור.
-
מצב SNC: בוחרים באפשרות הזו כדי להפעיל SNC לאימות בין Integration Connectors לבין מערכת SAP. אם בוחרים באפשרות הזו, צריך לציין את הפרטים הבאים:
- מזהה האובייקט של SNC_LIB: מזהה האובייקט של ספריית SNC.
- PSE name: שם קובץ סביבת האבטחה האישית (PSE) שרלוונטי לקטגוריה. קובץ PSE מאחסן את זוג המפתחות הציבורי והפרטי, וגם אישורי X.509 במבנה ASN.1.
- קוד גישה ל-SNC: בוחרים את הסוד של קוד הגישה לספריית SNC ב-Secret Manager.
- גרסת Secret: בוחרים את גרסת ה-Secret.
- שם SNC: מזינים שם לחיבור SNC.
-
SNC qop: בוחרים רמת הגנה. אלה הרמות הנתמכות:
- 1 – הגשת בקשה לאימות בלבד.
- 2 – הפעלת ההגנה על שלמות האפליקציה. ההגנה כוללת גם אימות.
- 3 – הפעלת הגנה על הפרטיות. ההגנה כוללת גם הגנה על השלמות ועל האימות.
- 8 – הפעלת הגנת ברירת המחדל.
- 9 – הפעלת ההגנה המקסימלית.
- שם שותף SNC: מזינים את שם ה-SNC של שרת האפליקציות.
-
סכמת חיבור: מציינים אם מתחברים למערכת SAP עם שרת הודעות (שרת קבוצה) או שרת אפליקציות. מידע על הדרישות המוקדמות שצריך לעמוד בהן כדי להתחבר למערכת SAP באמצעות שרת הודעות מופיע במאמר סוג החיבור Message Server (Group Server).
אם בוחרים באפשרות GroupServer, צריך לציין את הפרטים הבאים:
- שרת הודעות: מציינים את שרת ההודעות כשמתחברים למערכת SAP שמשתמשת באיזון עומסים.
- שירות שרת ההודעות: שירות שרת ההודעות שאליו רוצים להתחבר.
- קבוצה: קבוצת הכניסה שבה נעשה שימוש. צריך לציין את הפרמטר הזה רק כשמתחברים למערכת SAP שמשתמשת באיזון עומסים.
אם אתם מתחברים למערכת SAP עם שרת הודעות (שרת קבוצה), אתם לא צריכים לציין את כתובת המארח בקטע יעדים.
- אופציונלי: מגדירים את ההגדרות של צומת החיבור:
- מספר מינימלי של צמתים: מזינים את המספר המינימלי של צמתי חיבור.
- מספר הצמתים המקסימלי: מזינים את מספר צמתי החיבור המקסימלי.
צומת הוא יחידה (או עותק) של חיבור שמבצעת עיבוד של עסקאות. כדי לעבד יותר עסקאות לחיבור נדרשים יותר צמתים, ולהפך: כדי לעבד פחות עסקאות נדרשים פחות צמתים. כדי להבין איך הצמתים משפיעים על התמחור של המחבר, אפשר לעיין במאמר בנושא תמחור של צמתי חיבור. אם לא מזינים ערכים, כברירת מחדל, מספר הצמתים המינימלי מוגדר כ-2 (לזמינות טובה יותר) ומספר הצמתים המקסימלי מוגדר כ-50.
- אופציונלי: לוחצים על + הוספת תווית כדי להוסיף תווית לקישור בצורה של צמד מפתח/ערך.
- לוחצים על הבא.
- בקטע יעדים, מזינים את הפרטים של המארח המרוחק (מערכת העורף) שאליו רוצים להתחבר. אם אתם מתחברים למערכת SAP עם שרת הודעות, אתם לא צריכים לציין את כתובת המארח.
- סוג היעד: בוחרים סוג יעד.
- בוחרים באפשרות כתובת מארח מהרשימה כדי לציין את שם המארח או את כתובת ה-IP של היעד.
- אם רוצים ליצור חיבור פרטי למערכות העורפיות, בוחרים באפשרות Endpoint attachment מהרשימה, ואז בוחרים את ה-Endpoint attachment הנדרש מהרשימה Endpoint Attachment.
אם רוצים ליצור חיבור ציבורי למערכות העורפיות עם אבטחה נוספת, אפשר להגדיר כתובות IP סטטיות יוצאות לחיבורים, ואז להגדיר את כללי חומת האש כך שרק כתובות ה-IP הסטטיות הספציפיות יופיעו ברשימת ההיתרים.
כדי להזין יעדים נוספים, לוחצים על +הוספת יעד.
- לוחצים על הבא.
- סוג היעד: בוחרים סוג יעד.
-
בקטע אימות, מזינים את פרטי האימות.
- בוחרים סוג אימות ומזינים את הפרטים הרלוונטיים.
החיבור ל-SAP ERP תומך בסוגי האימות הבאים:
- אימות מבוסס-אישור X509
- שם משתמש וסיסמה
- לוחצים על הבא.
כדי להבין איך להגדיר את סוגי האימות האלה, אפשר לעיין במאמר בנושא הגדרת אימות.
- בוחרים סוג אימות ומזינים את הפרטים הרלוונטיים.
- אם הפעלתם את ההרשמה לאירועים, הקטע פרטי ההרשמה לאירועים יופיע בדף יצירת הקישור. במאמר הגדרת מינוי לאירועים מוסבר איך להגדיר את פרטי המינוי לאירועים.
- בדיקה: בודקים את פרטי החיבור והאימות.
- לוחצים על יצירה.
הגדרת אימות
מזינים את הפרטים בהתאם לאימות שבו רוצים להשתמש.
-
אימות שמבוסס על אישור X509
- X509Certificate: אישור X509 שמשמש לכניסה.
- גרסת Secret: בוחרים את גרסת ה-Secret.
-
שם משתמש וסיסמה
- שם משתמש: שם המשתמש של המחבר
- סיסמה: סוד ב-Secret Manager שמכיל את הסיסמה שמשויכת למחבר.
הגדרה של מינוי לאירועים
אם מפעילים הרשמה לאירועים, צריך להגדיר את ABAP SDK. למידע על הגדרת ABAP SDK, אפשר לעיין במאמר סקירה כללית של ABAP SDK for Google Cloud.
בקטע פרטי מינוי לאירועים, מזינים את הערכים הבאים:
-
בוחרים אחד מסוגי האימות הבאים עבור רכיב event listener.
- אימות של Google. אם מפעילים את האפשרות הזו, צריך לפעול לפי השלבים שבקטע אימות באמצעות אסימוני אינטרנט מסוג JSON כדי להגדיר את האימות עבור ABAP SDK. בנוסף, חשוב לוודא שלחשבון השירות יש את התפקיד roles/connectors.listener שאסימון הגישה שלו משמש לאימות.
- אימות באמצעות מפתח API. אם בוחרים באפשרות הזו, צריך ליצור מפתח API ואז לשמור אותו כסוד ב-Secret Manager. מידע נוסף מופיע במאמר יצירת מפתח API.
-
מזינים את שם השדה של סוג האירוע. בשדה הזה מצוין סוג האירוע שמשויך לבקשת האירוע הנכנסת.
{ "event_type": "user.created", ... // other request fields ... }
- בוחרים באפשרות הפעלת קישוריות פרטית כדי ליצור קישוריות מאובטחת בין אפליקציית הקצה העורפי לבין החיבור. אם בוחרים באפשרות הזו, צריך לבצע שלבי הגדרה נוספים אחרי יצירת הקישור. מידע נוסף זמין במאמר בנושא קישוריות פרטית למינוי לאירועים.
- מזינים את ההגדרה של תור ההודעות המתות. אם מגדירים תיבת דואר להודעות שלא נמסרו, החיבור כותב את האירועים שלא עברו עיבוד אל נושא Pub/Sub שצוין. ממלאים את הפרטים הבאים:
- מזהה פרויקט של הודעות שלא ניתן למסור: מזהה הפרויקט ב-Google Cloud שבו הגדרתם את נושא ה-Pub/Sub של הודעות שלא ניתן למסור.
- נושא להודעות ללא מוצא: נושא Pub/Sub שבו רוצים לכתוב את הפרטים של האירוע שלא עבר עיבוד.
דוגמאות להגדרת חיבור
בקטעים הבאים מפורטים ערכי הדוגמה של השדות השונים כשיוצרים את החיבור ל-SAP ERP, והפרמטרים שנדרשים לסוגי החיבור השונים.
התחברות למערכת SAP מבוזרת
אם מתחברים למערכת SAP מבוזרת, כמו מערכת שמשתמשת באיזון עומסים, צריך לציין את מאפייני החיבור הנוספים הבאים. אדמין יכול לקבל את מאפייני החיבור האלה בכרטיסייה Connection (חיבור) בתיבת הדו-שיח System Entry Properties (מאפייני רשומת המערכת) במערכת SAP.
- מזהה המערכת: מציינים את הערך שקיבלתם מהמאפיין SystemId. מזהה המערכת הוא מזהה המערכת או R3Name של מערכת SAP. מזהה המערכת הוא מחרוזת באורך של עד שלושה תווים.
- שרת הודעות: כשמתחברים למערכת SAP שמשתמשת באיזון עומסים, צריך לציין את השדה 'שרת הודעות'. מגדירים את המאפיין הזה לערך שקיבלתם מהמאפיין MessageServer במערכת SAP. בנוסף, מוסיפים לפני הערך של השדה Message Server (שרת הודעות) את הערך של התיבה SAProuter.
- קבוצה: מגדירים את המאפיין הזה לערך שקיבלתם מהמאפיין Group/Server. המאפיין Group מציין את קבוצת הכניסה שבה נעשה שימוש. ערך ברירת המחדל הוא PUBLIC.
התחברות לשרת של אפליקציה בהתאמה אישית
אם מתחברים למערכת SAP עם שרת אפליקציות ייעודי או עם שרת אפליקציות בהתאמה אישית, צריך לציין את מאפייני החיבור הנוספים הבאים. אדמין יכול לקבל את מאפייני החיבור האלה ממערכת SAP.
- מזהה המערכת: מציינים את הערך שקיבלתם מהמאפיין SystemId. זהו מזהה המערכת או R3Name של מערכת SAP. מזהה המערכת הוא מחרוזת באורך של עד שלושה תווים.
- מארח: מציינים את הערך שקיבלתם משרת האפליקציות.
כאן מציינים את שם המארח של מערכת היעד. הערך הזה יכול להיות שם מארח רגיל, כתובת IP או כתובת של נתב SAP.
- מספר המערכת: מציינים את הערך שקיבלתם מהמאפיין SystemNumber.
המאפיין SystemNumber מגדיר את מערכת היעד.
הגדרת חיבורים מאובטחים לרשת
אם האדמין הגדיר תקשורת מאובטחת ברשת (SNC), צריך להגדיר את המאפיינים הנוספים הבאים. ממערכת SAP, אפשר לקבל את המאפיינים הבאים של מחרוזת החיבור של SNC בכרטיסייה Network (רשת) בתיבת הדו-שיח System Entry Properties (מאפייני רשומת המערכת).
- מצב SNC: אם תיבת הסימון 'הפעלת חיבורים מאובטחים לרשת' מופעלת ב-SAP, צריך להגדיר את מאפיין החיבור של מצב SNC כ-True. אחרת, מגדירים את מאפיין החיבור SNC Mode ל-False.
מאפיין החיבור SNCMode הוא ערך בוליאני שקובע אם משתמשים ב-SNC. ערך ברירת המחדל הוא False.
- SNC PartnerName: SNC PartnerName מציין את שם ה-SNC של שרת האפליקציות. לדוגמה: p:CN=IDS, OU=IT, O=CSW, C=DE
- שם SNC: אופציונלי. המאפיין SNCName מציין את השם של חיבור ה-SNC. מגדירים את המאפיין הזה כדי לוודא שמשתמשים בשם ה-SNC הנכון לחיבור.
- SNC Qop: מגדירים את המאפיין הזה לאפשרות שנבחרה בקטע Secure Network Settings (הגדרות רשת מאובטחת). לדוגמה, אם האפשרות Integrity (שלמות) נבחרה, צריך להגדיר את המאפיין SNCQop לערך 3.
המאפיין SNCQop מציין את הרמה (או האיכות) של הגנה על נתונים. אם לא מציינים את המאפיין הזה, הערך שמוגדר לו הוא המספר השלם -1. הערכים החוקיים הם 1, 2, 3, 8 או 9, שמתאימים לרמות ההגנה.
- מזהה אובייקט של SNC_Lib: מגדירים את המאפיין הזה לנתיב ולשם הקובץ של ספריית ה-SNC. מציינים את הנתיב המלא לספריית האבטחה שבה אתם משתמשים, כמו
C:\Secude\secude.xll.
סוג החיבור של ApplicationServer
לגבי קישוריות של שרת האפליקציות, צריך להגדיר את Private Service Connect ואת מאזן העומסים עם כתובת ה-IP של מערכת SAP ויציאה 33XX בקבוצה של נקודות קצה ברשת (NEG) ובבדיקת התקינות. כאשר XX הוא מספר המערכת או המופע של מערכת SAP שבה נעשה שימוש. בטבלה הבאה מפורטים ערכי התצורה לדוגמה של סוג החיבור ApplicationServer. כדי לדעת אילו שדות חובה למלא ואילו שדות הם אופציונליים, אפשר לעיין בממשק ליצירת חיבור במסוף.
| שם השדה | ערך לדוגמה |
|---|---|
| אזור | us-central1 |
| מחבר | SAP ERP |
| גרסת המחבר | 1 |
| שם מחבר | saperp-applicationserver-conn |
| תיאור | לא זמין |
| חשבון השירות | xxxxxxxxx-compute@developer.gserviceaccount.com |
| לקוח | 800 |
| מספר המערכת | 00 |
| מזהה פרויקט | xxxx-gcp-project |
| קטגוריה | sap-erp-bucket |
| מזהה אובייקט Jco Jar | sapjco3.jar |
| מזהה אובייקט libsapjco3 | libsapjco3.so |
| מצב שולחן | TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None |
| פונקציית קריאת טבלה | Z_CUSTOM_READ_TABLE |
| סכמת החיבור | ApplicationServer |
| מזהה המערכת | SA1 |
| מצב שאילתה | לא זמין |
| צפיות שניתן לעיין בהן | לא זמין |
| רמת הפירוט | 5 |
| מספר הצמתים המינימלי | 2 |
| מספר הצמתים המקסימלי | 50 |
| כתובת המארח | 10.30.X.XX או מחרוזת של נתב של מערכת SAP חיצונית. |
| אימות | סיסמת משתמש |
| שם משתמש | 12345 |
| סיסמה | xyz@12345 |
| גרסאות | 1 |
סוג החיבור של שרת ההודעות (שרת קבוצה)
לפני שמתחברים למערכת SAP עם שרת הודעות (שרת קבוצה), צריך לוודא שמתקיימות הדרישות המוקדמות הבאות:- צריך להגדיר את Private Service Connect ואת מאזן העומסים עם כתובת ה-IP של מערכת SAP ביציאות 33XX ו-36XX בקבוצה של נקודות קצה ברשת (NEG) ובבדיקת התקינות. כאשר XX הוא מספר המערכת או המופע של מערכת SAP שבה נעשה שימוש.
- צריך ליצור אזור DNS ב-Cloud DNS ולמפות את נקודת הקצה של שרת האפליקציות, שמוגדרת ביציאה 33XX עם שם המארח של מערכת SAP.
- אפשר להתחבר למערכת SAP עם שרת הודעות (שרת קבוצה) רק אם שרת ההודעות מחזיר את כתובת שם דומיין שמוגדר במלואו (FDQN) של שרת האפליקציות. אי אפשר להתחבר למערכת SAP עם שרת הודעות (שרת קבוצה) אם שרת ההודעות מחזיר את כתובת ה-IP.
- שרת ההודעות חייב להגיב עם ה-DNS של שרתי האפליקציות שהאפליקציה צריכה להתחבר אליהם כשהאפליקציה מבקשת.
- ה-DNS של שרתי האפליקציות חייב להיות ייחודי ולא להיות בשימוש על ידי אף מערכת SAP אחרת.
- באפליקציית SAP, צריך לשמור את כתובות ה-IP של נקודות הקצה של קבצים מצורפים עבור שרתי האפליקציות ושרתי ההודעות בפרמטרים gw/alternative_hostnames.
- עוברים אל Tcode – RZ10 ויוצרים רשומה לפרמטר gw/alternative_hostname בפרופיל המכונה.
- מגדירים את הפרמטר
ms/lg\_with\_hostnameל-1 כדי להגדיר גרסאות של שרת הודעות SAP מגרסה 7.53 ומטה להחזרת שמות מארחים. בגרסאות 7.53 ואילך, שמות המארחים מוחזרים כברירת מחדל. - מפעילים מחדש את אפליקציית SAP כדי שהפרמטרים ייכנסו לתוקף.
בטבלה הבאה מפורטים ערכי ההגדרה לדוגמה של Group Server סוג החיבור:
| שם השדה | ערך לדוגמה |
|---|---|
| אזור | us-central1 |
| מחבר | SAP ERP |
| גרסת המחבר | 1 |
| שם מחבר | saperp-groupserver-conn |
| תיאור | לא זמין |
| חשבון השירות | SA-compute@developer.gserviceaccount.com |
| לקוח | 800 |
| מספר המערכת | 00 |
| מזהה פרויקט | Google-cloud-project |
| קטגוריה | sap-erp-bucket |
| מזהה אובייקט Jco Jar | sapjco3.jar |
| מזהה אובייקט libsapjco3 | libsapjco3.so |
| מצב שולחן | TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None |
| קבוצה | ציבורי |
| שרת הודעות | 10.30.X.XX |
| פונקציית קריאת טבלה | Z_CUSTOM_READ_TABLE |
| סכמת החיבור | GroupServer |
| מזהה המערכת | SA1 |
| מצב שאילתה | לא זמין |
| צפיות שניתן לעיין בהן | לא זמין |
| רמת הפירוט | 5 |
| מספר הצמתים המינימלי | 2 |
| מספר הצמתים המקסימלי | 50 |
| אימות | סיסמת משתמש |
| שם משתמש | שם משתמש |
| סיסמה | PASSWORD |
| גרסאות | 1 |
סוג החיבור לאישור X509
כדי להשתמש ב-Secure Network Communications (SNC) עם קישוריות X509, צריך להגדיר את Private Service Connect ואת מאזן העומסים עם כתובת ה-IP של מערכת SAP ויציאה 48XX בקבוצה של נקודות קצה ברשת (NEG) ובבדיקת תקינות. כאשר XX הוא מספר המערכת או המופע של מערכת SAP שבה נעשה שימוש. בטבלה הבאה מפורטים ערכי התצורה לדוגמה של סוג החיבור X509 certificate. כדי לדעת אילו שדות חובה למלא ואילו שדות הם אופציונליים, אפשר לעיין בממשק ליצירת חיבור במסוף.
הגדרת SNC במערכת Linux
לפני שמפעילים את SNC במערכת Linux, חשוב לוודא שיש לכם את הקבצים הבאים:
- קובץ האישור של מערכת SAP, כמו
SA1cert.crt. - גרסת קובץ SAPCAR המתאימה ליצירת קובץ .PSE, כמו
SAPCAR.exe. - ה-
.SAR fileשמכיל את קובצי ה-dll בספריות שלlibsapcrypto.soושלsapgenpse, כמוSAPCRYPTOLIBP_*.SAR.
- יוצרים ספרייה בשם
sncבמיקום הרצוי ומעתיקים אליה את כל הקבצים שצוינו למעלה. במקרה הזה, הספרייהsncנוצרת במיקום/home/admin/snc. משתמשים בטרמינל, במכונה וירטואלית או בלקוח SSH, כמו PuTTY, כדי ליצור את הספרייה. - מריצים את הפקודה הבאה כדי לחלץ את ארכיון ה-SAR ואת קובצי ה-
sapgenpseו-libsapcrypto.soהבינאריים:./SAPCAR.exe -xvf SAPCRYPTOLIBP_8524-20011697.SAR. - יוצרים את קובץ סביבת האבטחה האישית (PSE) באמצעות הפקודה:
./sapgenpse get_pse -p EHP8_GCP_SA1.pse -x google,123.תתבקשו להזין את שם ה-PSE בפורמט הבא:
CN=EHP8_GCP_SA1, OU=IT, O=CSW, C=DE. כאן,EHP8_GCP_SA1הוא השם שסיפקתם ו-PSE.תתבקשו גם להזין סיסמת גישה, שמשמשת כסיסמה וצריך לשמור אותה לשימוש עתידי.
קובץ ה-PSE של SNC מכיל את פרטי האבטחה של השרת שמשמשים לאבטחת החיבור של SNC. המידע הזה כולל את המפתח הציבורי והמפתח הפרטי של השרת ואת רשימת האישורים התואמת.
אם מופיעה שגיאה, כמו
SECUDIR is not set, מריצים את הפקודה הבאה:SECUDIR=/home/admin/snc; export SECUDIR. - מייצאים את אישור הלקוח מקובץ ה-PSE החדש שנוצר:
./sapgenpse export_own_cert -o EHP8_GCP_SA1.crt -p EHP8_GCP_SA1.pse -x google,123. הפקודה הזו יוצרת את אישור הלקוחEHP8_GCP_SA1.crt, שמכיל את המפתח הציבורי של זהות ה-SNC.כאן צריך לציין את שם האישור. מומלץ להשתמש באותו שם גם עבור PSE וגם עבור אישור הלקוח.
- מקשרים את אישור המערכת ל-PSE:
./sapgenpse maintain_pk -a SA1cert.crt -p EHP8_GCP_SA1.pse. כך משייכים את האישור של מערכת SAP (SA1cert.crt) ל-PSE המקומי. - מייבאים את אישור הלקוח במערכת SAP בעזרת צוות BASIS וממפים אותו למשתמש עבור סוג החיבור של אישור X509.
-
EHP8_GCP_SA1.crt: זהו האישור הציבורי שמשמש ליצירת חיבור מהימן ממערכת SAP אל Google Cloud. הוא מבטיח את האותנטיות של חשבון השירות שמתקשר. -
EHP8_GCP_SA1.pse: קובץ סביבת האבטחה האישית (PSE) מאחסן את המפתח הפרטי ואת פרטי האישור שנדרשים לתקשורת מאובטחת בסביבת SAP NetWeaver. הקובץ הזה חיוני לחיבורים שמבוססים על SSL/TLS. -
SA1cert.crt: אישור נוסף, שיכול להיות לאימות של רשות אישורים בסיסית או ביניים, שמשמש להשלמת שרשרת האמון במהלך אימות האישור. כך אפשר לוודא ש-SAP יכולה לאמת את האותנטיות של חשבון השירות של GCP או של נקודות קצה קשורות. -
libsapcrypto.so: קובץ האובייקט המשותף של הספרייה הקריפטוגרפית של SAP (סביבות Linux/Unix) נדרש כדי להפעיל תקשורת מאובטחת (SSL, SNC) בתוך SAP. הוא מספק פונקציות קריפטוגרפיות, כמו הצפנה וטיפול באישורים. -
libsapjco3.so: קובץ ספריית Native עבור SAP Java Connector (JCo). הפעולה הזו חיונית כדי לאפשר לאפליקציות או לתוכנות ביניים מבוססות-Java לתקשר עם מערכות SAP. -
sapgenpse: כלי שורת הפקודה של SAP שמשמש לניהול קובצי PSE, אישורים ופעולות קריפטוגרפיות. הכלי הזה חיוני ליצירה ולתחזוקה של זהויות מאובטחות בסביבות SAP. -
sapjco3.jar: קובץ ארכיון Java עבור SAP Java Connector. האפשרות הזו מאפשרת לאפליקציות Java להפעיל פונקציות SAP באמצעות בקשות להפעלת פונקציות מרחוק (RFC). הוא נדרש לכל שילוב מבוסס-Java עם SAP. - מתחברים ל-SAP GUI ופותחים את קוד הטרנזקציה
STRUST. - עוברים אל
SNC (SAPCRYPTOLIB). - במערכות מסוימות, יכול להיות שתצטרכו לעבור למצב
Display Change. לוחצים על הלחצן ייבוא בתחתית הדף. - מעיינים ברשימה ובוחרים שם PSE תקין של לקוח. בוחרים בפורמט הקובץ Binary (בינארי).
- לוחצים על הוספה לרשימת האישורים ואז על שמירה.
- מתחברים ל-SAP GUI ופותחים את קוד הטרנזקציה
SM30 - ממפים את האישור לטבלה
VSNCSYSACLבאמצעות השלבים הבאים:- פותחים את הטבלה
VSNCSYSACLלצורך תחזוקה. - בוחרים את סוג אזור העבודה החיצוני
E. - בוחרים באפשרות New Entries (רשומות חדשות).
- מזינים את הנתונים הבאים בשדות המתאימים:
- מזהה המערכת: השם של מערכת SAP.
- שם SNC: שם הנושא שמשויך לאישור הלקוח (מוסיפים
p:לפני האישור)
דוגמה:p:CN=QAEHP8ER8, OU=IT, O=CSW, C=DE.
- שומרים את הנתונים.
- פותחים את הטבלה
- ממפים את האישור לטבלה
VUSREXTIDבאמצעות השלבים הבאים:- פותחים את הטבלה
VUSREXTIDלצורך תחזוקה. - בוחרים את אזור העבודה
DN. - בוחרים באפשרות New Entries (רשומות חדשות).
- מזינים את הנתונים בשדות המתאימים, כמו שמוסבר בהמשך:
- משתמש: מזינים את מזהה המשתמש שצריך למפות לאישור.
- מספר רצף: מזינים את מספר הלקוח של SAP.
- שם SNC: מזינים את שם הנושא שמשויך לאישור הלקוח.
דוגמה:CN=QAEHP8ER8, OU=IT, O=CSW, C=DE - הפעלה: בוחרים באפשרות הזו
- שומרים את הנתונים.
- פותחים את הטבלה
- חוזרים על אותו התהליך עבור X.
- מתחברים ל-SAP GUI ופותחים את קוד הטרנזקציה
SU01 - בשדה המשתמש, מזינים את שם המשתמש ב-SAP שרוצים להעניק לו הרשאות להפעלת הפונקציות של SNC.
- לוחצים על סמל השינוי.
- לוחצים על הכרטיסייה SNC.
- בשדה 'שם SNC', מזינים את השם המובחן של PSE הלקוח עם הקידומת
p:, כמו בדוגמה שלמטה.
דוגמה:p:CN=QAEHP8ER8, OU=IT, O=CSW, C=DE - לוחצים על 'אישור' ואז על 'שמירה'. מופיעה הודעה שמציינת שהשם הקנוני נקבע.
כדי להבטיח שילוב תקין וגישה לנתונים, השמות של הקבצים שנוצרו בשלבים הקודמים, השמות של הקבצים שהועלו לדלי האחסון של היעד והשמות של הקבצים שצוינו בהגדרות הקישור צריכים להיות זהים.
קבצים נדרשים בקטגוריה של Cloud Storage
כדי לאפשר תקשורת מאובטחת בין מערכות SAP לבין שירותים, צריך לאחסן את הקבצים הבאים בקטגוריה של Cloud Storage: Google Cloud הקבצים האלה חיוניים ליצירת חיבורים מהימנים, להפעלת הצפנה ולתמיכה בספריות ההצפנה והתקשורת של Java של SAP:
הגדרת SAP GUI
כדי לייבא את האישור שנוצר על ידי הלקוח:
הגדרות SAP ל-X.509
האישור צריך להיות ממופה לטבלאות הבאות:
הגדרת מיפוי משתמשים
| שם השדה | ערך לדוגמה |
|---|---|
| אזור | us-central1 |
| מחבר | SAP ERP |
| גרסת המחבר | 1 |
| שם מחבר | saperp-X509Certificate-conn |
| תיאור | לא זמין |
| חשבון השירות | xxxxxxxxx-compute@developer.gserviceaccount.com |
| לקוח | 800 |
| מספר המערכת | 00 |
| מזהה פרויקט | xxxx-gcp-project |
| קטגוריה | sap-erp-bucket |
| מזהה אובייקט Jco Jar | sapjco3.jar |
| מזהה אובייקט libsapjco3 | libsapjco3.so |
| מצב שולחן | TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None |
| מזהה אובייקט SNC_LIB | libsapcrypto.so |
| שם ה-PSE ליצירת קובץ cred_v2 | EHP8_GCP_SA1.pse |
| פונקציית קריאת טבלה | Z_CUSTOM_READ_TABLE |
| סכמת החיבור | ApplicationServer |
| מזהה המערכת | SA1 |
| קוד גישה ל-SNC | xyz@gcp |
| מצב SNC | ערך בוליאני שקובע אם אתם משתמשים ב-SNC. כדי להשתמש ב-SNC, צריך להגדיר את הערך הזה כ-true. |
| שם ה-SNC | p:CN=EHP8_GCP_SA1, OU=IT, O=CSW, C=DE |
| SNC Qop | 3 |
| SNC PartnerName | p:CN=SA1, OU=I0020070395, OU=SAP Web AS, O=SAP Trust Community, C=DE |
| מצב שאילתה | לא זמין |
| צפיות שניתן לעיין בהן | לא זמין |
| רמת הפירוט | 5 |
| מספר הצמתים המינימלי | 2 |
| מספר הצמתים המקסימלי | 50 |
| כתובת המארח | 10.30.X.XX או מחרוזת נתב של מערכת SAP חיצונית. |
| אימות | אימות מבוסס-אישור X509 |
| X509Certificate | אפשר לציין את אישור X509 באמצעות נתיב קובץ שמצביע על קובץ שמכיל אישור X509 בפורמט PEM, באמצעות blob של PEM שמתחיל בכותרת "-----BEGIN ...", או באמצעות blob של PEM ללא הכותרת "-----BEGIN ...". |
| גרסאות | 1 |
אם החיבור ל-SNC לא הופך לפעיל אחרי שמבצעים את כל השלבים:
- מוודאים שכתובת ה-IP של נקודת הקצה המצורפת נוספה לפרמטר הפרופיל
gw/alternative_hostnamesשל SAP. - בחיבורי SNC למערכות SAP מקומיות, שער SAP בדרך כלל מאזין ביציאה
48XX, כאשרXXהוא מספר המופע.
כשמציינים את SNC Name ואת PartnerName בהגדרות החיבור, צריך להוסיף להם את הקידומת p:.
X509Certificate Authentication: מייבאים את אישור הלקוח שנוצר קודם וכבר זמין במערכת SAP.
מגבלות המערכת
מחבר SAP ERP יכול לעבד 7 טרנזקציות בשנייה, לכל צומת, ומגביל את מספר הטרנזקציות מעבר למגבלה הזו. כברירת מחדל, Integration Connectors מקצה 2 צמתים (לזמינות טובה יותר) לחיבור.
מידע על המגבלות שחלות על Integration Connectors זמין במאמר מגבלות.
שימוש בחיבור SAP ERP בשילוב
אחרי שיוצרים את החיבור, הוא זמין גם ב-Apigee Integration וגם ב-Application Integration. אפשר להשתמש בחיבור בשילוב באמצעות המשימה Connectors.
- כדי להבין איך ליצור ולהשתמש במשימה Connectors ב-Apigee Integration, אפשר לעיין במאמר משימת Connectors.
- מידע על יצירה ושימוש במשימת מחברים ב-Application Integration זמין במאמר משימת מחברים.
ישויות, פעולות ופעולות
כל Integration Connectors מספקים שכבת הפשטה לאובייקטים של האפליקציה המחוברת. אפשר לגשת לאובייקטים של אפליקציה רק דרך ההפשטה הזו. ההפשטה מוצגת לכם כישויות, פעולות ופעולות.
- ישות: ישות היא אובייקט או אוסף של מאפיינים באפליקציה או בשירות המקושרים. ההגדרה של ישות משתנה ממחבר למחבר. לדוגמה, במחבר של מסד נתונים, הטבלאות הן הישויות, במחבר של שרת קבצים, התיקיות הן הישויות, ובמחבר של מערכת הודעות, התורים הם הישויות.
עם זאת, יכול להיות שמחבר לא תומך בישויות או שאין לו ישויות, ובמקרה כזה הרשימה
Entitiesתהיה ריקה. - פעולה: פעולה היא הפעילות שאפשר לבצע בישות. אפשר לבצע כל אחת מהפעולות הבאות בישות:
בחירה של ישות מתוך הרשימה הזמינה יוצרת רשימה של פעולות שזמינות לישות. תיאור מפורט של הפעולות זמין במאמר פעולות על ישויות של משימת המחברים. עם זאת, אם מחבר לא תומך באף אחת מהפעולות על ישויות, הפעולות הלא נתמכות האלה לא יופיעו ברשימה
Operations. - פעולה: פעולה היא פונקציה מסוג first class שזמינה לשילוב דרך ממשק המחבר. פעולה מאפשרת לבצע שינויים בישות אחת או בכמה ישויות, והיא משתנה ממתחם למתחם. בדרך כלל, לפעולה יהיו כמה פרמטרים של קלט ופרמטר של פלט. עם זאת, יכול להיות שמחבר לא תומך באף פעולה, ובמקרה כזה הרשימה
Actionsתהיה ריקה.
פעולות
בקטע הזה מפורטים מסמכי ה-RFC ומוצגות הפעולות שהמחבר תומך בהן. כדי להבין איך להגדיר את הפעולות, אפשר לעיין בדוגמאות לפעולות.
שימוש ב-RFC
בקטע הזה מפורטים מסמכי ה-RFC הנדרשים ומוסבר איך להשתמש בהם.
מסמכי RFC נדרשים
אם אחד מה-RFC הנדרשים לא זמין, יכול להיות שחלק מהפונקציונליות או כולה לא יפעלו. אפשר להשתמש ב-T-Code SE37 כדי לראות את מודולי הפונקציות שזמינים ב-SAP.
המחבר SAP ERP משתמש ב-RFC הבאים.
- DDIF_FIELDINFO_GET
- RFC_GET_FUNCTION_INTERFACE
- RFC_GET_STRUCTURE_DEFINITION
- RFC_GET_SYSTEM_INFO
- RFC_GET_UNICODE_STRUCTURE
- RFC_READ_TABLE
- SLDAG_CHECK_FOR_UNICODE
קריאת נתונים גדולים
בקטע הזה מתואר הגישה שצריך לפעול לפיה כדי לקרוא נתונים גדולים מהקצה העורפי של SAP.
מחבר SAP ERP משתמש בפונקציה SAP RFC_READ_TABLE כדי לקבל נתונים מטבלאות SAP, והגודל הקבוע של הפונקציה הזו הוא 512 בייט. הוא יכול לשמור נתונים זמנית לכל שורה של נתונים, ולכן אי אפשר לבחור יותר עמודות מהכמות שתתאים למאגר הזמני הזה. אם בוחרים יותר מ-512 בייטים, החריגה DATA_BUFFER_EXCEEDED תתרחש כשמריצים את השילוב. המשמעות היא שחרגתם מגודל שטח האחסון הזמני המקסימלי המותר לכל שורה, ועליכם לבחור פחות עמודות.
כדי לפתור את הבעיה הזו, אפשר לכלול את הקוד של Custom RFC_READ_TABLE, שדומה ל-SAP RFC_READ_TABLE, אבל עם מאגר גדול יותר כדי לפתור את הבעיה DATA_BUFFER_EXCEEDED.
שימוש בפונקציה מותאמת אישית לקריאת טבלה
המחבר תומך ב-Custom RFC_READ_TABLE שדומה ל-SAP RFC_READ_TABLE אבל יש לו מאגר גדול יותר כדי לפתור את הבעיה DATA_BUFFER_EXCEEDED.
יצירת RFC_READ_TABLE מותאם אישית ב-SAP backend
כדי להשתמש ב דוגמה של RFC_READ_TABLE בהתאמה אישית, פועלים לפי השלבים הבאים.
- משתמשים בפונקציה
RFC_READ_TABLEכתבנית לפונקציה החדשה: בוחרים את קוד העסקה SE37 ואת קבוצת הפונקציות SDTX ומעתיקים אתRFC_READ_TABLEלקבוצת פונקציות חדשה או לקבוצת הפונקציות שבה אתם עובדים. בדוגמה הזו, הקובץRFC_READ_TABLEמועתק לתיקייהZ_CUSTOM_RFC_TABLE. - בכרטיסייה Attributes בדף SAP, בוחרים באפשרות Remote Enabled Module.
- בכרטיסייה טבלאות, מגדירים את הפרמטר
DATAלערךCHAR8000(יכול להיות שתצטרכו ללחוץ לחיצה ימנית ואז על הצגה -> שינוי). - בכרטיסייה Source Code (קוד מקור), מזינים את קוד ה-RFC של טבלת הקריאה המותאמת אישית. לשם השוואה, אפשר לעיין בדוגמה Z_CUSTOM_RFC_TABLE_function.txt.
- לוחצים על Save.
- מגדירים את הייבוא, הטבלאות והחריגים כמו שמתואר בטבלת הקריאה המותאמת אישית שסופקה.
- מפעילים את מודול הפונקציות.
טבלת קריאה בהתאמה אישית ל-ABAP 7.52
אם אתם משתמשים ב-ABAP בגרסה 7.52 ואילך, תוכלו לעיין בדוגמה Z_CUSTOM_RFC_TABLE_function_ABAP752.txt.
פונקציית הדוגמה מיועדת ל-ABAP מגרסה 7.52 ואילך. היא דומה לפונקציה Z_CUSTOM_RFC_TABLE, אבל היא מנצלת מילות מפתח חדשות שזמינות ב-ABAP 7.52 כדי לבצע חלוקה לדפים במסד הנתונים במקום בסקריפט ABAP עצמו. כך אפשר להשתמש בחלוקה לעמודים בצורה יעילה הרבה יותר, ולשפר את הביצועים כשעובדים עם טבלאות גדולות. מומלץ להשתמש ב-Z_CUSTOM_RFC_TABLE_752 RFC כשזה אפשרי.
גישה לפונקציה RFC_READ_TABLE
בקטע הזה מפורט התפקיד שצריך להקצות למשתמש SAP כדי לגשת לפונקציה RFC_READ_TABLE. הפונקציה הזו היא מודול פונקציות שמופעל מרחוק ומאפשר גישת קריאה כללית לטבלאות שרירותיות.
כדי שהטבלאות יופיעו בקטע Entities בזמן הגדרת המשימה SAP ERP Connectors, צריך להשתמש בפונקציה RFC_READ_TABLE ברמת SAP ERP Connection ולקבל הרשאה לגשת לפונקציה R/3 RFC_READ_TABLE.
מוסיפים הרשאה S_TABU_DIS לפעילות 03 (תצוגה) וקבוצת הרשאות 'SC' לפונקציה RFC_READ_TABLE.
אלה חלק מהמגבלות הטכניות של RFC_READ_TABLE:
- אפשר לקרוא רק טבלאות עם סוגי נתונים פשוטים. אין תמיכה בשדות STRING או XSTRING.
- רוחב הקו המקסימלי הוא 512 תווים.
- מספר הרשומות שמוחזרות מוגבל על ידי ספי זיכרון.
הפעולה BAPI_MATERIAL_SAVEDATA
הפעולה הזו מאפשרת לכם לבצע משימות ספציפיות. לדוגמה, אפשר להשתמש בו כדי ליצור או לשנות נתוני אב של חומרים ב-SAP ERP.
פרמטרי קלט של הפעולה BAPI_MATERIAL_SAVEDATA
| שם הפרמטר | סוג הנתונים | חובה | תיאור |
|---|---|---|---|
| HEADDATA | String | כן | פרמטר הקלט HEADDATA. |
| CLIENTDATA | String | כן | פרמטר הקלט CLIENTDATA. |
| CLIENTDATAX | String | כן | פרמטר הקלט CLIENTDATAX. |
| MATERIALDESCRIPTION | String | כן | הטבלה MATERIALDESCRIPTION. |
פרמטרים של פלט של הפעולה BAPI_MATERIAL_SAVEDATA
הפעולה הזו מחזירה את הסטטוס 200 (OK) אם היא בוצעה בהצלחה.
דוגמה להגדרת הפעולה BAPI_MATERIAL_SAVEDATA מופיעה במאמר דוגמאות לפעולות.
פעולה ZFM_GCP_MULTIDATA_TAB
הפעולה הזו מאפשרת למשתמשים לבצע משימות ספציפיות. לדוגמה, אפשר ליצור נתונים עם כמה סוגי נתונים ב-SAP ERP.
פרמטרים של קלט בפעולה ZFM_GCP_MULTIDATA_TAB
| שם הפרמטר | סוג הנתונים | חובה | תיאור |
|---|---|---|---|
| ReturnTables | String | כן | רשימה מופרדת בפסיקים שמציינת אילו טבלאות במודול הפונקציה צריכות להיות הפלט. אם לא מציינים טבלאות, כל הטבלאות שמוחזרות יוצגו בפלט. |
| T_TABLE | String | כן | הטבלה T_TABLE. |
| IM_INPUT_1 | String | כן | פרמטר הקלט IM_INPUT_1. |
| IM_INPUT_2 | String | כן | פרמטר הקלט IM_INPUT_2. |
פרמטרים של פלט של הפעולה ZFM_GCP_MULTIDATA_TAB
הפעולה הזו מחזירה את הסטטוס 200 (OK) אם היא בוצעה בהצלחה.
דוגמה להגדרת הפעולה ZFM_GCP_MULTIDATA_TAB מופיעה במאמר דוגמאות לפעולות.
פעולה PushIDoc
הפעולה הזו מאפשרת לכם לבצע משימות ספציפיות. לדוגמה, אפשר להעביר נתונים מ-SAP למערכת חיצונית.
פרמטרים של קלט לפעולה PushIDoc
| שם הפרמטר | סוג הנתונים | חובה | תיאור |
|---|---|---|---|
| FileType | String | כן | סוג הקובץ.הערכים המותרים הם XML ו-IDoc. |
| מצב | String | כן | מצב ההעברה.הערכים המותרים הם Sync ו-ASync. |
| תוכן | String | כן | תוכן הקובץ. |
פרמטרים של פלט של הפעולה PushIDoc
הפעולה הזו מחזירה את הסטטוס 200 (OK) אם היא בוצעה בהצלחה.
דוגמאות להגדרת הפעולה PushIDoc מופיעות במאמר דוגמאות לפעולות.
פעולת ExecuteCustomQuery
הפעולה הזו מאפשרת להריץ שאילתה בהתאמה אישית.
כדי ליצור שאילתה בהתאמה אישית, פועלים לפי השלבים הבאים:
- פועלים לפי ההוראות המפורטות ל הוספת משימה של מחברים.
- כשמגדירים את משימת המחבר, בוחרים באפשרות פעולות בסוג הפעולה שרוצים לבצע.
- ברשימה Action, בוחרים באפשרות Execute custom query ולוחצים על Done.
- מרחיבים את הקטע Task input (קלט למשימה) ומבצעים את הפעולות הבאות:
- בשדה Timeout after, מזינים את מספר השניות להמתנה עד להפעלת השאילתה.
ערך ברירת המחדל:
180שניות. - בשדה Maximum number of rows (מספר השורות המקסימלי), מזינים את מספר השורות המקסימלי שיוחזר ממסד הנתונים.
ערך ברירת המחדל:
25. - כדי לעדכן את השאילתה המותאמת אישית, לוחצים על עריכת סקריפט בהתאמה אישית. תיפתח תיבת הדו-שיח עורך הסקריפטים.
- בתיבת הדו-שיח הכלי לעריכת סקריפטים, מזינים את שאילתת ה-SQL ולוחצים על שמירה.
אפשר להשתמש בסימן שאלה (?) בהצהרת SQL כדי לייצג פרמטר יחיד שצריך לציין ברשימת פרמטרים של שאילתה. לדוגמה, שאילתת ה-SQL הבאה בוחרת את כל השורות מהטבלה
Employeesשתואמות לערכים שצוינו בעמודהLastName:SELECT * FROM Employees where LastName=?
- אם השתמשתם בסימני שאלה בשאילתת ה-SQL, צריך להוסיף את הפרמטר על ידי לחיצה על + הוספת שם פרמטר לכל סימן שאלה. במהלך ההפעלה של השילוב, הפרמטרים האלה מחליפים את סימני השאלה (?) בשאילתת ה-SQL באופן עקבי. לדוגמה, אם הוספתם שלושה סימני שאלה (?), אתם צריכים להוסיף שלושה פרמטרים לפי הסדר.
כדי להוסיף פרמטרים של שאילתה:
- מהרשימה סוג בוחרים את סוג הנתונים של הפרמטר.
- בשדה ערך, מזינים את הערך של הפרמטר.
- כדי להוסיף כמה פרמטרים, לוחצים על + הוספת פרמטר של שאילתה.
הפעולה Execute custom query לא תומכת במשתני מערך.
- בשדה Timeout after, מזינים את מספר השניות להמתנה עד להפעלת השאילתה.
אם הפעולה בוצעה ללא שגיאות, היא מחזירה את הסטטוס 200 (OK) עם גוף תגובה שכולל את תוצאות השאילתה.
דוגמאות לפעולות
דוגמה – יצירת רשומה
בדוגמה הזו נוצרת רשומת חומר באמצעות הפעולה BAPI_MATERIAL_SAVEDATA.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלActions. - בוחרים את הפעולה
BAPI_MATERIAL_SAVEDATAולוחצים על סיום. - בקטע Task Input (קלט המשימה) של המשימה Connectors (מחברים), לוחצים על
connectorInputPayloadואז מזינים ערך דומה לערך הבא בשדהDefault Value:{ "HEADDATA": "{\"MATERIAL\":\"000000000000009001\",\"IND_SECTOR\":\"M\",\"MATL_TYPE\":\"HALB\",\"BASIC_VIEW\":\"X\"}", "CLIENTDATA" : "{\"MATL_GROUP\":\"00107\",\"BASE_UOM\":\"KG\"}", "CLIENTDATAX" : "{\"MATL_GROUP\":\"X\",\"BASE_UOM\":\"X\"}", "MATERIALDESCRIPTION" : "{\"LANGU\":\"E\",\"MATL_DESC\":\"Classification Google\"}" }
אם הפעולה מצליחה, ערך הפרמטר BAPI_MATERIAL_SAVEDATA response connectorOutputPayload של המשימה יהיה דומה לדוגמה הבאה:
[{ "RETURN_TYPE": "S", "RETURN_ID": "MM", "RETURN_NUMBER": 356, "RETURN_MESSAGE": "The material 9001 has been created or extended", "RETURN_LOG_NO": "", "RETURN_LOG_MSG_NO": 0, "RETURN_MESSAGE_V1": "9001", "RETURN_FIELD": "", "RETURN_SYSTEM": "T90CLNT090", "RESULT_TABLE": null }]
דוגמה – עדכון רשומה
בדוגמה הזו מתבצע עדכון של רשומה של חומר באמצעות הפעולה BAPI_MATERIAL_SAVEDATA.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלActions. - בוחרים את הפעולה
BAPI_MATERIAL_SAVEDATAולוחצים על סיום. - בקטע Task Input (קלט המשימה) של המשימה Connectors (מחברים), לוחצים על
connectorInputPayloadומזינים ערך דומה לערך הבא בשדהDefault Value:{ "HEADDATA": "{\"MATERIAL\":\"000000000000009000\",\"IND_SECTOR\":\"A\",\"MATL_TYPE\":\"FHMI\",\"BASIC_VIEW\":\"X\"}", "CLIENTDATA": "{\"MATL_GROUP\":\"013\",\"BASE_UOM\":\"ST\"}", "CLIENTDATAX": "{\"MATL_GROUP\":\"X\",\"BASE_UOM\":\"X\"}", "MATERIALDESCRIPTION": "{\"LANGU\":\"E\",\"MATL_DESC\":\"Classification Googlecloud\"}" }
אם הפעולה מצליחה, לפרמטר התגובה BAPI_MATERIAL_SAVEDATA של המשימה connectorOutputPayload יהיה ערך שדומה לזה:
[{ "RETURN_TYPE": "S", "RETURN_ID": "MM", "RETURN_NUMBER": 356, "RETURN_MESSAGE": "The material 9000 has been created or extended", "RETURN_LOG_NO": "", "RETURN_LOG_MSG_NO": 0, "RETURN_MESSAGE_V1": "9000", "RETURN_PARAMETER": "", "RETURN_ROW": 0, "RETURN_FIELD": "", "RETURN_SYSTEM": "T90CLNT090", "RESULT_TABLE": null }]
דוגמה – מחיקת רשומה
בדוגמה הזו נרשמת מחיקה של רשומה של חומר באמצעות הפעולה BAPI_MATERIAL_SAVEDATA.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלActions. - בוחרים את הפעולה
BAPI_MATERIAL_SAVEDATAולוחצים על סיום. - בקטע Task Input (קלט המשימה) של המשימה Connectors (מחברים), לוחצים על
connectorInputPayloadומזינים ערך דומה לערך הבא בשדהDefault Value:{ "HEADDATA": "{\"MATERIAL\":\"000000000000009000\",\"BASIC_VIEW\":\"X\"}", "CLIENTDATA": "{\"DEL_FLAG\":\"X\"}", "CLIENTDATAX": "{\"DEL_FLAG\":\"X\"}" }
אם הפעולה מצליחה, לפרמטר התגובה BAPI_MATERIAL_SAVEDATA של המשימה connectorOutputPayload יהיה ערך שדומה לזה:
[{ "RETURN_TYPE": "S", "RETURN_ID": "MM", "RETURN_NUMBER": 356, "RETURN_LOG_NO": "", "RETURN_LOG_MSG_NO": 0, "RETURN_MESSAGE_V1": "9000", "RETURN_PARAMETER": "", "RETURN_ROW": 0, "RETURN_FIELD": "", "RETURN_SYSTEM": "T90CLNT090", "RESULT_TABLE": null }]
דוגמה – יצירת נתונים עם כמה סוגים
בדוגמה הזו נוצרים נתונים עם כמה סוגים באמצעות הפעולה ZFM_GCP_MULTIDATA_TAB.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלActions. - בוחרים את הפעולה
ZFM_GCP_MULTIDATA_TABולוחצים על סיום. - בקטע Task Input (קלט המשימה) של המשימה Connectors (מחברים), לוחצים על
connectorInputPayloadומזינים ערך דומה לערך הבא בשדהDefault Value:{ "T_TABLE": "{\"ZACCP\":\"111\",\"ZCHAR\":\"CHARACTER1\",\"ZCLNT\":\"100\",\"ZCUKY\":\"INR\",\"ZCURR\": 200,\"ZDATS\": \"20231213\",\"ZINT1\": 45,\"ZINT2\":54,\"ZDEC\": 0.12,\"ZFLTP\": 1234,\"ZLANG\":\"E\",\"ZNUMC\":\"110\",\"ZPREC\": 3,\"ZQUAN\": 188.0,\"ZRAW\":\"01010008010101050401\",\"ZTIMS\": \"103056\",\"ZUNIT\":\"11\",\"ZINT4P\": 45,\"ZINT4\": 54,\"ZLRAW\":\"0101000801010105040100030101010300040000\"}", "IM_INPUT_1": "{\"ZACCP\":\"222\",\"ZCHAR\":\"CHARACTER1\",\"ZCLNT\":\"100\",\"ZCUKY\":\"INR\",\"ZCURR\": 200,\"ZDATS\": \"20231213\",\"ZINT1\": 45,\"ZINT2\":54,\"ZDEC\": 0.12,\"ZFLTP\": 1234,\"ZLANG\":\"E\",\"ZNUMC\":\"110\",\"ZPREC\": 3,\"ZQUAN\": 188.0,\"ZRAW\":\"01010008010101050401\",\"ZTIMS\": \"103056\",\"ZUNIT\":\"11\",\"ZINT4P\": 45,\"ZINT4\": 54,\"ZLRAW\":\"0101000801010105040100030101010300040000\"}", "IM_INPUT_2": "{\"ZSTRING\": \"HI Google\",\"ZSSTRING\": \"HI Google How are you\"}" }
אם הפעולה מצליחה, לפרמטר התגובה ZFM_GCP_MULTIDATA_TAB של המשימה connectorOutputPayload יהיה ערך שדומה לזה:
[{ "EX_OUTPUT_1_ZACCP": 222, "EX_OUTPUT_1_ZCHAR": "CHARACTER1", "EX_OUTPUT_1_ZCLNT": "100", "EX_OUTPUT_1_ZCUKY": "INR", "EX_OUTPUT_1_ZCURR": 200, "EX_OUTPUT_1_ZDATS": "2023-12-13", "EX_OUTPUT_1_ZRAW": "01010008010101050401", "EX_OUTPUT_1_ZTIMS": "10:30:56", "EX_OUTPUT_1_ZUNIT": "11", "EX_OUTPUT_1_ZINT4P": 45, "EX_OUTPUT_1_ZINT4": 54, "EX_OUTPUT_1_ZLRAW": "0101000801010105040100030101010300040000\u0000", "EX_OUTPUT_2_ZSTRING": null, "EX_OUTPUT_2_ZSSTRING": null, "RESULT_TABLE": null, "T_TABLE_ZACCP": null, "T_TABLE_ZCHAR": null, "T_TABLE_ZCLNT": null, "T_TABLE_ZQUAN": null, "T_TABLE_ZRAW": null, "T_TABLE_ZTIMS": null, "T_TABLE_ZUNIT": null },{ "EX_OUTPUT_1_ZACCP": null, "EX_OUTPUT_1_ZCHAR": null, "EX_OUTPUT_1_ZCLNT": null, "EX_OUTPUT_1_ZCUKY": null, "EX_OUTPUT_1_ZRAW": null, "T_TABLE_ZLANG": null, "T_TABLE_ZNUMC": null, "T_TABLE_ZPREC": null, "T_TABLE_ZQUAN": null, "T_TABLE_ZRAW": null, "T_TABLE_ZTIMS": null, "T_TABLE_ZUNIT": null },{ "EX_OUTPUT_1_ZACCP": null, "EX_OUTPUT_1_ZCHAR": null, "EX_OUTPUT_1_ZCLNT": null, "EX_OUTPUT_1_ZCUKY": null, "EX_OUTPUT_1_ZCURR": null, "EX_OUTPUT_1_ZDATS": null, "EX_OUTPUT_1_ZDEC": null, "EX_OUTPUT_1_ZQUAN": null, "T_TABLE_ZNUMC": 110, "T_TABLE_ZPREC": 3, "T_TABLE_ZQUAN": 188, "T_TABLE_ZRAW": "01010008010101050401", "T_TABLE_ZTIMS": "10:30:56", "T_TABLE_ZUNIT": "11" }]
דוגמה – שליחת IDoc
בדוגמה הזו, נדחף IDoc אל SAP ERP.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלActions. - בוחרים את הפעולה
PushIDocולוחצים על סיום. - בקטע Task Input (קלט המשימה) של המשימה Connectors (מחברים), לוחצים על
connectorInputPayloadומזינים ערך דומה לערך הבא בשדהDefault Value:{ "Content": "\n\n\n EDI_DC40\n 800\n 0000000008604824\n 740\n 53\n 2\n \n MATMAS05\n MATMAS\n ZLS_QA23\n LS\n ZLS_QA23\n SAPSA1\n LS\n SA1CLNT800\n 20230218\n 232556\n\n\n 005\n 000000000000000012\n 20170328\n 42039\n 20170727\n 42039\n KLVC\n FERT\n M\n 02\n BG\n 000\n 002\n 0.000\n 0.000\n KGM\n 0.000\n 0001\n 0.000\n 0.000\n 0.000\n 0.000\n 0.000\n", "FileType": "XML", "Mode": "ASync" }
. אם הפעולה מצליחה, לפרמטר התגובה connectorOutputPayload של המשימה PushIDoc יהיה ערך שדומה לזה:
[{ "Result": "Success", "Message": "Push IDoc success" }]
דוגמאות לפעולות על ישויות
בקטע הזה מוסבר איך לבצע חלק מהפעולות על ישויות במחבר הזה.
דוגמה – הצגת כל הרשומות
בדוגמה הזו מוצגת רשימה של כל הרשומות בישות T001.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלEntities. - בוחרים באפשרות
T001מהרשימהEntity. - בוחרים את הפעולה
Listולוחצים על סיום. - אופציונלי: בקטע Task Input (קלט משימה) במשימה Connectors (מחברים), אפשר לסנן את קבוצת התוצאות על ידי ציון filter clause (סעיף סינון). תמיד מציינים את הערך של סעיף המסנן בתוך גרשיים בודדים (').
דוגמה – אחזור רשומה מישות
בדוגמה הזו מאחזרים רשומה עם המזהה שצוין מהישות T001.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלEntities. - בוחרים באפשרות
T001מהרשימהEntity. - בוחרים את הפעולה
Getולוחצים על סיום. - בקטע Task Input (קלט של משימה) במשימה Connectors (מחברים), לוחצים על EntityId (מזהה ישות) ואז מזינים
0001בשדה Default Value (ערך ברירת מחדל).כאן,
0001הוא מזהה רשומה ייחודי בישותT001.
יצירת חיבורים באמצעות Terraform
אפשר להשתמש במשאב של Terraform כדי ליצור חיבור חדש.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
כדי לראות תבנית לדוגמה של Terraform ליצירת חיבור, אפשר לעיין בתבנית לדוגמה.
כשיוצרים את החיבור הזה באמצעות Terraform, צריך להגדיר את המשתנים הבאים בקובץ ההגדרות של Terraform:
| שם הפרמטר | סוג נתונים | חובה | תיאור |
|---|---|---|---|
| לקוח | מחרוזת | נכון | הלקוח שמתבצע לגביו אימות במערכת SAP. |
| קבוצה | מחרוזת | לא נכון | קבוצת הכניסה שבה נעשה שימוש. בדרך כלל צריך לציין את זה רק כשמתחברים למערכת SAP שמשתמשת באיזון עומסים. |
| message_server | מחרוזת | לא נכון | צריך לציין את שרת ההודעות כשמתחברים למערכת SAP שמשתמשת באיזון עומסים. |
| read_table_function | מחרוזת | לא נכון | הפונקציה שמשמשת לקריאת נתוני הטבלה. |
| connection_scheme | ENUM | לא נכון | מציינת אם אתם מתחברים למערכת SAP עם שרת הודעות (GroupServer) או בלי שרת הודעות (ApplicationServer). הערכים הנתמכים הם: ApplicationServer, GroupServer |
| system_id | מחרוזת | לא נכון | מזהה המערכת או R3Name של מערכת SAP הם מחרוזת באורך של עד שלושה תווים. לרוב משתמשים בו כדי לאזן עומסים של חיבורים. |
| system_number | מחרוזת | נכון | המספר שבאמצעותו מוגדרת מערכת היעד. המאפיין הזה משמש להגדרת מאפיין החיבור למארח. |
| project_id | מחרוזת | נכון | מזהה הפרויקט בענן של Google Cloud שבו נמצא קובץ ה-jar של SAP JCo בקטגוריה של Cloud Storage. |
| bucket | מחרוזת | נכון | השם של קטגוריית ה-bucket שמכילה את הקבצים sapjco3.jar ו-libsapjco3.so |
| sapjco3_jar | מחרוזת | נכון | מזהה האובייקט של sapjco3.jar |
| libsapjco3_so | מחרוזת | נכון | מזהה האובייקט של libsapjco3.so |
| snc_lib | מחרוזת | לא נכון | מזהה האובייקט של ספריית SNC |
| snc_mode | בוליאני | לא נכון | ערך בוליאני שקובע אם אתם משתמשים ב-SNC. כדי להשתמש ב-SNC, צריך להגדיר את הערך הזה כ-true. |
| snc_name | מחרוזת | לא נכון | קלט אופציונלי עם השם של חיבור ה-SNC. |
| snc_qop | ENUM | לא נכון | איכות ההגנה על חיבור ה-SNC.הערכים האפשריים הם 1, 2, 3, 8 או 9, שמתאימים לרמות ההגנה הבאות: 1 החלת אימות בלבד. 2. החלת הגנה על שלמות האפליקציה (אימות). 3. הפעלת הגנה על פרטיות (תקינות ואימות). 8. מחילים את ההגנה שמוגדרת כברירת מחדל. 9 מחילים את ההגנה המקסימלית. הערכים הנתמכים הם: 1, 2, 3, 8, 9 |
| snc_partner_name | מחרוזת | לא נכון | שם ה-SNC של שרת האפליקציות. זהו קלט חובה כשמשתמשים ב-SNC. |
| query_mode | ENUM | לא נכון | קובעת אילו טבלאות SAP יוצגו כתצוגות, אם בכלל. הערכים הנתמכים הם: Global, Local, All, None |
| table_mode | ENUM | לא נכון | קובעת אילו טבלאות SAP יוצגו כתצוגות, אם בכלל. הערכים הנתמכים הם: TransparentApplication, TransparentCustomer, TransparentSystem, Pooled, Cluster, All, None |
| דרגת מלל | מחרוזת | לא נכון | רמת המלל של החיבור, משתנה מ-1 עד 5. רמת הפירוט הגבוהה יותר תתעד את כל פרטי התקשורת (בקשה,תגובה ואישורי SSL). |
פתרון בעיות בהגדרת SAP מקומי
אם מערכת SAP שלכם היא מקומית, אתם צריכים ליצור מאזן עומסים של proxy עם NEG היברידי.
- יוצרים מנהרת IpSec בין המערכת המקומית לבין Google Cloud עם רשתות משנה מותרות.
- צריך לאפשר שימוש ברשת משנה לאיזון עומסים וברשת משנה לשרת proxy בחומות אש מקומיות.
- מוסיפים את כל היציאות הנדרשות, כמו 33XX לחיבור לשרת האפליקציות, 36XX לחיבור לשרת ההודעות או לשרת איזון העומסים ו-48XX לחיבור SNC-X509. כאשר XX הוא מספר המערכת או המופע של מערכת SAP. מוסיפים את כתובת ה-IP הנדרשת לחומת האש לרשימת כתובות ה-IP המורשות לכניסה בפרויקט Google Cloud, כמו כתובת ה-IP והיציאה של מאזן העומסים, וכתובת ה-IP והיציאה של מערכת SAP.
- הגדרת מאזן עומסי רשת אזורי פנימי בשרת proxy באמצעות Hybrid NEG. מידע נוסף זמין במאמר איזון עומסים אזורי פנימי ברשת עם קישוריות של קבוצת נקודות קצה אזורית היברידית.
אם נתקלתם בשגיאה דומה לזו שמופיעה בהמשך אחרי שהגדרתם את קישוריות הרשת,אתם יכולים להשתמש בפתרון העקיף שמופיע בהמשך כדי להוסיף את כתובת ה-IP של נקודת החיבור לרשימת ההיתרים.
Initialization of destination SAP--1910584855 failed: Connect from SAP gateway to RFC server failed connection parameters: TYPE=A DESTINATION=SAP--1910584855 ASHOST=10.128.0.43 SYSNR=00 PCS=1 LOCATION SAP-Gateway on host DELVM05S15.bcone.com / sapgw00 ERROR timeout during allocate TIME Wed Apr 3 17:24:40 2024 RELEASE 754 COMPONENT SAP-Gateway VERSION 2 RC 242 MODULE D:/depot/bas/754_REL/src/krn/si/gw/gwr3cpic.c LINE 2208 DETAIL no connect of TP sapdp00 from host 10.128.0.43 after 20 sec COUNTER 2
מילון המונחים של SAP
SAP: המונח SAP הוא מונח כללי לכל מהדורות SAP הנתמכות. בדרך כלל זה מציין SAP ECC בגרסה 6 ומעלה. כדי שהמחבר של SAP ERP יפעל, הוא צריך חיבור למהדורה של SAP שתומכת ב-RFC SDK.
מודול פונקציה: מודול פונקציה הוא סוג של תוכנית או פונקציה ב-SAP שאפשר להשתמש בהן כדי לבצע כמעט כל פעולה. אפשר לבדוק ולכתוב את המודולים האלה ב-SAP באמצעות קוד העסקה SE37.
RFC: קריאה לפונקציה מרחוק (RFC) היא קריאה ל-RFM או ל-FM נתונים שאפשר להפעיל באמצעות אפליקציות חיצוניות. השימוש כולל ספריות שמופצות על ידי SAP ומוגדרות בשרת SAP, ויכול להיות שהן גם ניתנות להורדה מ-sap.com. יכול להיות שפונקציות RFM ספציפיות יתעדכנו בשדרוגים של SAP, ויכול להיות שלא. יש RFM סטנדרטיים שסופקו על ידי SAP, ולכן יכול להיות שיהיו הבדלים או שהם לא יופיעו במהדורות ישנות יותר. אפשר ליצור מודלים מותאמים אישית של RFM (ולרוב זה מה שקורה) כדי לתמוך בשילובים, והלקוח של SAP צריך לתחזק אותם. לפי המוסכמה, קהלים בהתאמה אישית מסוג RFM מתחילים באות Z.
BAPI: Business API (BAPI) הוא שיטת API של אובייקט עסקי, שהוא בתורו מודול פונקציה עם הפעלת RFC של SAP, שמאפשר גישה לפעולות של לוגיקה עסקית. לדוגמה, יש כ-60 ממשקי BAPI שקשורים רק לאובייקט Customer. בפועל, בדרך כלל משתמשים רק בכמה מהם.
טבלת SAP: טבלה שמאחסנת נתונים ב-SAP. הם לא זהים לאובייקטים עסקיים. לדוגמה, אין טבלה של הזמנות רכש ב-SAP. במקום זאת, יש הרבה טבלאות שכוללות נתוני הזמנות רכש, כמו EBAN, EBKN, EINA, EKPO וכו'. טבלאות בהתאמה אישית מתחילות באות Z.
שאילתות SAP: שאילתת SAP היא אובייקט שנשמר ב-SAP ומפרט מידע שאפשר לאחזר מטבלה אחת או יותר. בדרך כלל משתמשים בהם לצורכי דיווח.