טריגר SAP ERP
הטריגר SAP ERP הוא טריגר של אירוע מחבר. מחבר SAP ERP מאפשר לבצע פעולות של הוספה, מחיקה, עדכון וקריאה של נתוני SAP ERP.
לפני שמתחילים
- אם אתם מתכננים ליצור או להגדיר חיבור חדש לטריגר SAP ERP, ודאו שיש לכם את תפקיד ה-IAM הבא בפרויקט:
- אדמין של מחבר (
roles/connectors.admin)
מידע על הקצאת תפקידים מופיע במאמר ניהול הגישה.
- אדמין של מחבר (
- מקצים לחשבון השירות שרוצים להשתמש בו עבור הטריגר של SAP ERP את תפקידי ה-IAM הבאים:
- Application Integration Invoker (
roles/integrations.integrationInvoker)
במאמר ניהול הגישה לחשבונות שירות מוסבר איך נותנים לחשבון שירות תפקיד.
- Application Integration Invoker (
- נכנסים לדף Application Integration במסוף Google Cloud .
- בתפריט הניווט, לוחצים על Integrations (שילובים).
מוצגת רשימה של כל השילובים שזמינים בפרויקט Google Cloud בדף Integrations List.
- בוחרים שילוב קיים או לוחצים על יצירת שילוב כדי ליצור שילוב חדש.
אם יוצרים שילוב חדש:
- מזינים שם ותיאור בחלונית יצירת שילוב.
- בוחרים אזור לשילוב.
- בוחרים חשבון שירות לאינטגרציה. אפשר לשנות או לעדכן את פרטי חשבון השירות של שילוב בכל שלב מחלונית סיכום השילוב בסרגל הכלים של השילוב.
- לוחצים על יצירה.
השילוב החדש שנוצר ייפתח בכלי השילובים.
- בסרגל הניווט של כלי העריכה של השילוב, לוחצים על טריגרים כדי לראות את רשימת הטריגרים הזמינים.
- לוחצים על הרכיב SAP ERP trigger וממקמים אותו בכלי לעריכת שילובים.
- לוחצים על הרכיב SAP ERP trigger (טריגר SAP ERP) בכלי לעריכת שילובים כדי לפתוח את חלונית הגדרת הטריגר.
- לוחצים על Configure trigger (הגדרת הטריגר).
- בדף Connector Event Trigger Editor (עורך טריגרים של אירועים של מחבר), מזינים את פרטי ההגדרה הבאים:
- אזור: בוחרים את האזור של חיבור SAP ERP.
- חיבור: בוחרים את החיבור ל-SAP ERP שרוצים להשתמש בו.
ב-Application Integration מוצגים רק חיבורים פעילים ל-SAP ERP שמופעל בהם מינוי לאירועים.
- מזינים את שם השדה של סוג האירוע. בשדה הזה מצוין סוג האירוע
שמשויך לבקשת האירוע הנכנסת.
{ "event_type": "user.created", ... // other request fields ... }
- חשבון שירות: בוחרים חשבון שירות עם תפקידי ה-IAM הנדרשים להפעלת הטריגר של SAP ERP.
- לוחצים על סיום כדי להשלים את הגדרת הטריגר ולסגור את הדף.
- לוחצים על הרכיב SAP ERP trigger (טריגר SAP ERP) בכלי לעריכת שילובים כדי לפתוח את חלונית הגדרת הטריגר.
- לוחצים על Configure trigger (הגדרת הטריגר).
- מדלגים על השדה אזור.
- לוחצים על Connection (חיבור) ובוחרים באפשרות Create Connection (יצירת חיבור) מהתפריט הנפתח.
- בקטע פרטי החיבור, ממלאים את הפרטים הבאים:
- מחבר: בוחרים באפשרות 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 לאימות בין Application Integration לבין מערכת 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 שמכיל את הסיסמה שמשויכת למחבר.
-
בוחרים אחד מסוגי האימות הבאים עבור רכיב 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 שבו רוצים לכתוב את הפרטים של האירוע שלא עבר עיבוד.
- משתמשים בפונקציה
RFC_READ_TABLEכתבנית לפונקציה החדשה. בוחרים את קוד העסקהSE37ואת קבוצת הפונקציותSDTXומעתיקים אתRFC_READ_TABLEלקבוצת פונקציות חדשה או לקבוצת הפונקציות שבה אתם עובדים. בדוגמה הזו, הקובץRFC_READ_TABLEמועתק אלZ_CUSTOM_READ_TABLE. - בכרטיסייה Attributes (מאפיינים) במסך SAP, בוחרים באפשרות
Remote Enabled Module. - בכרטיסייה Tables (טבלאות), מגדירים את הפרמטר
DATAלערךCHAR8000. לוחצים לחיצה ימנית על המסך ואז לוחצים על תצוגה -> שינוי. - בכרטיסייה קוד מקור, מדביקים את קוד המקור לדוגמה של מודול הפונקציה להחלפה
RFC_READ_TABLEשנמצא בתיקיית המשנהdbשל ספריית ההתקנה. הקוד נמצא ב-Z_CUSTOM_READ_TABLE.txt, אבל מומלץ להשתמש ב-Z_CUSTOM_READ_TABLE_752.txtאם מופעלת במערכת SAP ERP שלכם גרסת ABAP 7.52 ואילך. - לוחצים על Save.
- מגדירים את הייבוא, הטבלאות והחריגים כמו שמתואר בטבלת הקריאה המותאמת אישית שסופקה.
- מפעילים את מודול הפונקציה ובמחרוזת החיבור מגדירים את
ReadTableFunctionל-Z_CUSTOM_READ_TABLEאו לשם של מודול הפונקציה.
הוספת הטריגר SAP ERP
כדי להוסיף טריגר של SAP ERP לשילוב:
כדי להגדיר את הטריגר של SAP ERP, אפשר להשתמש בחיבור קיים של SAP ERP שזמין ב-Integration Connectors, או ליצור חיבור חדש של SAP ERP באמצעות האפשרות ליצירת חיבור מוטבע.
הגדרת טריגר SAP ERP באמצעות חיבור קיים
הטריגר SAP ERP הוא טריגר של אירוע מחבר, ולכן אפשר להשתמש בחיבור SAP ERP רק אם מופעלת בו הרשמה לאירועים כדי להגדיר את הטריגר.
מידע על הגדרת טריגר SAP ERP באמצעות חיבור חדש ל-SAP ERP זמין במאמר הגדרת טריגר SAP ERP באמצעות חיבור חדש
כדי להגדיר טריגר SAP ERP באמצעות חיבור SAP ERP קיים, מבצעים את השלבים הבאים:
הגדרת טריגר של SAP ERP באמצעות חיבור חדש
הגדרת אימות
מזינים את הפרטים בהתאם לאימות שבו רוצים להשתמש.
הגדרה של מינוי לאירועים
אם מפעילים הרשמה לאירועים, צריך להגדיר את ABAP SDK. למידע על הגדרת ABAP SDK, אפשר לעיין במאמר סקירה כללית של ABAP SDK for Google Cloud.
בקטע פרטי מינוי לאירועים, מזינים את הערכים הבאים:
שימוש בפונקציה מותאמת אישית לקריאת טבלה
RFC_READ_TABLE
המחבר משתמש בפונקציה RFC_READ_TABLE של SAP כדי לקבל נתונים מטבלאות SAP.
עם זאת, יש לה מגבלות מסוימות. לדוגמה, נניח שיש חריגה מסוג DATA_BUFFER_EXCEEDED. ל-SAP RFC_READ_TABLE יש גודל קבוע של 512 בייטים. הוא יכול לשמור במאגר זמני לכל שורת נתונים, ולכן אי אפשר לבחור יותר עמודות מהכמות שתתאים למאגר הזמני הזה. אם תבחרו יותר מ-512 בייט, תתרחש חריגה שתציין שחרגתם מגודל שטח האחסון הזמני המקסימלי המותר לכל שורה, ותצטרכו לבחור פחות עמודות.
RFC_READ_TABLE2
מחבר SAP ERP תומך בפונקציה RFC_READ_TABLE2 table read. אפשר להחליף את הפונקציה הפעילה לקריאת טבלה ל-RFC_READ_TABLE2 על ידי הגדרת ReadTableFunction ל-/SAPDS/RFC_READ_TABLE2.
פונקציות מותאמות אישית לקריאת טבלאות
המחבר כולל RFC מותאם אישית לקריאת טבלה, Z_CUSTOM_READ_TABLE, שדומה ל-SAP RFC_READ_TABLE, אבל עם מאגר גדול יותר כדי לפתור את הבעיה DATA_BUFFER_EXCEEDED ולעקוף את המגבלות של RFC_READ_TABLE.
כדי להשתמש ב-RFC המותאם אישית לקריאת טבלאות שכלול ב-RFC_READ_TABLE כברירת מחדל כדי לעקוף מגבלות:
טבלת הקריאה המותאמת אישית של ABAP 7.52
בנוסף ל-Z_CUSTOM_READ_TABLE.txt, יש גם קובץ Z_CUSTOM_READ_TABLE_752.txt, לגרסה 7.52 ומעלה של ABAP. היא דומה ל-Z_CUSTOM_READ_TABLE, אבל היא משתמשת במילות המפתח החדשות שזמינות ב-ABAP 7.52 כדי לבצע החלפה בין דפים במסד הנתונים, במקום בסקריפט ABAP עצמו. כך אפשר להשתמש ביעילות באפשרות 'חלוקה לדפים' כשעובדים עם טבלאות גדולות.
מומלץ להשתמש ב-Z_CUSTOM_READ_TABLE_752 RFC.
הגדרת אימות ב-SAP
מגדירים את האימות ב-SAP לפי ההוראות במדריך סקירה כללית על אימות למהדורה מקומית או למהדורה בענן של ABAP SDK for Google Cloud.
אימות הטריגר
כדי לאמת את הטריגר, אפשר ליצור תוכנית ABAP. הדוגמה הבאה היא של תוכנית ABAP שאפשר להשתמש בה כהפניה. השדה ls_event_payload משתנה בהתאם לדרישות שלכם:
*&---------------------------------------------------------------------* *& Report ZR_TEST_INT_CONNECTOR *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT zr_test_int_connector. PARAMETERS: p_auth TYPE char1 RADIOBUTTON GROUP rbg1 USER-COMMAND uc DEFAULT 'X', p_apik TYPE char1 RADIOBUTTON GROUP rbg1. DATA: lv_p_projects_id TYPE string, lv_p_locations_id TYPE string, lv_p_connections_id TYPE string, ls_input TYPE /goog/cl_connectors_v1=>ty_103. TYPES: BEGIN OF event_payload, event_type TYPE string, event_id TYPE string, name TYPE string, org_id TYPE string, END OF event_payload. DATA: ls_event_payload TYPE event_payload. ls_event_payload = VALUE #( event_type = 'create-entity' event_id = '1' name = 'demo-org' org_id = 'SAP' ). TRY. IF p_Auth = abap_true. DATA(lv_client_key) = 'IC_DEMO_GOOGLE_AUTH'. lv_p_connections_id = 'conn-event-triggers-from-sap-erp'. ELSE. lv_client_key = 'IC_DEMO_GOOGLE_APIK'. lv_p_connections_id = 'conn-event-triggers-from-sap-erp-apik'. ENDIF. * Open HTTP Connection DATA(lo_client) = NEW /goog/cl_connectors_v1( iv_key_name = CONV #( lv_client_key ) ). * Populate relevant parameters lv_p_projects_id = lo_client->gv_project_id. lv_p_locations_id = 'us-central1'. GET REFERENCE OF ls_event_payload INTO ls_input-payload . * Call API method: connectors.projects.locations.connections.listenEvent CALL METHOD lo_client->listen_event_connections EXPORTING iv_p_projects_id = lv_p_projects_id iv_p_locations_id = lv_p_locations_id iv_p_connections_id = lv_p_connections_id is_input = ls_input IMPORTING * es_raw = es_output = DATA(ls_output) ev_ret_code = DATA(lv_ret_code) ev_err_text = DATA(lv_err_text) es_err_resp = DATA(ls_err_resp). IF lo_client->is_success( lv_ret_code ). MESSAGE 'Success' TYPE 'S'. ELSE. MESSAGE lv_err_text TYPE 'E'. ENDIF. * Close HTTP Connection lo_client->close( ). CATCH /goog/cx_sdk INTO DATA(lo_exception). MESSAGE lo_exception->get_text( ) TYPE 'E'. ENDTRY.
מכסות ומגבלות
מידע על מכסות ומגבלות זמין במאמר מכסות ומגבלות.