טריגר SAP ERP

הטריגר SAP ERP הוא טריגר של אירוע מחבר. מחבר SAP ERP מאפשר לבצע פעולות של הוספה, מחיקה, עדכון וקריאה של נתוני SAP ERP.

לפני שמתחילים

  • אם אתם מתכננים ליצור או להגדיר חיבור חדש לטריגר SAP ERP, ודאו שיש לכם את תפקיד ה-IAM הבא בפרויקט:
    • אדמין של מחבר (roles/connectors.admin)
    • מידע על הקצאת תפקידים מופיע במאמר ניהול הגישה.

  • מקצים לחשבון השירות שרוצים להשתמש בו עבור הטריגר של SAP ERP את תפקידי ה-IAM הבאים:
  • הוספת הטריגר SAP ERP

    כדי להוסיף טריגר של SAP ERP לשילוב:

    1. נכנסים לדף Application Integration במסוף Google Cloud .

      מעבר אל Application Integration

    2. בתפריט הניווט, לוחצים על Integrations (שילובים).

      מוצגת רשימה של כל השילובים שזמינים בפרויקט Google Cloud בדף Integrations List.

    3. בוחרים שילוב קיים או לוחצים על יצירת שילוב כדי ליצור שילוב חדש.

      אם יוצרים שילוב חדש:

      1. מזינים שם ותיאור בחלונית יצירת שילוב.
      2. בוחרים אזור לשילוב.
      3. בוחרים חשבון שירות לאינטגרציה. אפשר לשנות או לעדכן את פרטי חשבון השירות של שילוב בכל שלב מחלונית סיכום השילוב בסרגל הכלים של השילוב.
      4. לוחצים על יצירה.

      השילוב החדש שנוצר ייפתח בכלי השילובים.

    4. בסרגל הניווט של כלי העריכה של השילוב, לוחצים על טריגרים כדי לראות את רשימת הטריגרים הזמינים.
    5. לוחצים על הרכיב SAP ERP trigger וממקמים אותו בכלי לעריכת שילובים.
    6. כדי להגדיר את הטריגר של SAP ERP, אפשר להשתמש בחיבור קיים של SAP ERP שזמין ב-Integration Connectors, או ליצור חיבור חדש של SAP ERP באמצעות האפשרות ליצירת חיבור מוטבע.

    הגדרת טריגר SAP ERP באמצעות חיבור קיים

    הטריגר SAP ERP הוא טריגר של אירוע מחבר, ולכן אפשר להשתמש בחיבור SAP ERP רק אם מופעלת בו הרשמה לאירועים כדי להגדיר את הטריגר.

    מידע על הגדרת טריגר SAP ERP באמצעות חיבור חדש ל-SAP ERP זמין במאמר הגדרת טריגר SAP ERP באמצעות חיבור חדש

    כדי להגדיר טריגר SAP ERP באמצעות חיבור SAP ERP קיים, מבצעים את השלבים הבאים:

    1. לוחצים על הרכיב SAP ERP trigger (טריגר SAP ERP) בכלי לעריכת שילובים כדי לפתוח את חלונית הגדרת הטריגר.
    2. לוחצים על Configure trigger (הגדרת הטריגר).
    3. בדף Connector Event Trigger Editor (עורך טריגרים של אירועים של מחבר), מזינים את פרטי ההגדרה הבאים:
      1. אזור: בוחרים את האזור של חיבור SAP ERP.
      2. חיבור: בוחרים את החיבור ל-SAP ERP שרוצים להשתמש בו.

        ב-Application Integration מוצגים רק חיבורים פעילים ל-SAP ERP שמופעל בהם מינוי לאירועים.

      3. מזינים את שם השדה של סוג האירוע. בשדה הזה מצוין סוג האירוע שמשויך לבקשת האירוע הנכנסת.
        {
            "event_type": "user.created",
            ...
            // other request fields
            ...
            }
      4. חשבון שירות: בוחרים חשבון שירות עם תפקידי ה-IAM הנדרשים להפעלת הטריגר של SAP ERP.
    4. לוחצים על סיום כדי להשלים את הגדרת הטריגר ולסגור את הדף.

    הגדרת טריגר של SAP ERP באמצעות חיבור חדש

    1. לוחצים על הרכיב SAP ERP trigger (טריגר SAP ERP) בכלי לעריכת שילובים כדי לפתוח את חלונית הגדרת הטריגר.
    2. לוחצים על Configure trigger (הגדרת הטריגר).
    3. מדלגים על השדה אזור.
    4. לוחצים על Connection (חיבור) ובוחרים באפשרות Create Connection (יצירת חיבור) מהתפריט הנפתח.
    5. בקטע פרטי החיבור, ממלאים את הפרטים הבאים:
      1. מחבר: בוחרים באפשרות SAP ERP מהרשימה הנפתחת של המחברים הזמינים.
      2. גרסת כלי החיבור: בוחרים את גרסת כלי החיבור מהרשימה הנפתחת של הגרסאות הזמינות.
      3. בשדה Connection Name (שם החיבור), מזינים שם למופע החיבור.

        השמות של החיבורים צריכים לעמוד בקריטריונים הבאים:

        • שמות החיבורים יכולים לכלול אותיות, מספרים או מקפים.
        • האותיות צריכות להיות קטנות.
        • שמות החיבורים צריכים להתחיל באות ולהסתיים באות או במספר.
        • שמות החיבורים לא יכולים לכלול יותר מ-49 תווים.
        • במחברים שתומכים בהרשמה לאירועים, שמות החיבורים לא יכולים להתחיל בקידומת goog.
      4. אפשר גם להזין תיאור לחיבור.
      5. אופציונלי: מפעילים את Cloud Logging ואז בוחרים רמת יומן. כברירת מחדל, רמת היומן מוגדרת כ-Error.
      6. חשבון שירות: בוחרים חשבון שירות שיש לו את התפקידים הנדרשים.
      7. כדי להשתמש בחיבור למינויים לאירועים, בוחרים באפשרות הפעלת מינוי לאירועים. אם בוחרים באפשרות הזו, מוצגות האפשרויות הבאות:
        • הפעלת הרשמה לאירועים עם ישות ופעולות: בוחרים באפשרות הזו כדי להשתמש בחיבור גם להרשמה לאירועים וגם לפעולות של מחבר (יחידות ופעולות).
        • הפעלה של מינוי לאירועים בלבד: בוחרים באפשרות הזו כדי להשתמש בחיבור רק למינוי לאירועים. אם בוחרים באפשרות הזו, לוחצים על הבא ואז מגדירים מינוי לאירועים.
      8. לקוח: הלקוח שמתבצע לגביו אימות במערכת SAP.
      9. מזהה המערכת: מזהה המערכת או R3Name של מערכת SAP הוא מחרוזת באורך של שלושה תווים לכל היותר. לרוב משתמשים בו כדי לאזן עומסים של חיבורים.
      10. מספר המערכת: המספר שבאמצעותו מוגדרת מערכת היעד. המאפיין הזה משמש להגדרת מאפיין החיבור למארח.
      11. מזהה הפרויקט: המזהה של פרויקט Google Cloud שבו נמצאת קטגוריית ה-GCS שמכילה את קובץ ה-JAR של SAP JCo.
      12. Bucket: השם של הקטגוריה שמכילה את הקבצים sapjco3.jar ו-libsapjco3.so.
      13. הנתיב של JCo jar ב-Cloud Storage: הנתיב של JCo jar ב-Cloud Storage.
      14. הנתיב של libsapjco3 ב-Cloud Storage: הנתיב של libsapjco3 jar ב-Cloud Storage.
      15. מצב טבלה: בוחרים את טבלת SAP שרוצים להציג כתצוגה.
      16. פונקציה לקריאת טבלה: השם של הפונקציה שתשמש לקריאת טבלאות. מידע נוסף זמין במאמר בנושא שימוש בפונקציה מותאמת אישית לקריאת טבלה.
      17. מזהה המערכת: מזהה המערכת או R3Name של מערכת SAP. אפשר להזין עד 3 תווים.
      18. מצב שאילתה: בחירה של טבלאות SAP שצריך להציג כתצוגות.
      19. תצוגות שאפשר לעיין בהן: מזינים רשימה של תצוגות שיוצגו, מופרדות בפסיקים. לדוגמה, ViewA,ViewB,ViewC.
      20. שפה: מגדירים את המאפיין הזה לשפה שציינתם כשנכנסתם ל-SAP. המאפיין הזה הוא קוד ISO 639-1 לשפה שבה מערכת SAP משתמשת. כברירת מחדל, המערכת תשתמש ב-EN.
      21. רשומות שירות: רשומות השירות שישמשו לחיבור.
      22. מצב 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 של שרת האפליקציות.
      23. סכמת חיבור: מציינים אם מתחברים למערכת SAP עם שרת הודעות (שרת קבוצה) או שרת אפליקציות. מידע על הדרישות המוקדמות שצריך לעמוד בהן כדי להתחבר למערכת SAP באמצעות שרת הודעות מופיע במאמר סוג החיבור Message Server (Group Server).

        אם בוחרים באפשרות GroupServer, צריך לציין את הפרטים הבאים:

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

        אם אתם מתחברים למערכת SAP עם שרת הודעות (שרת קבוצה), אתם לא צריכים לציין את כתובת המארח בקטע יעדים.

      24. אופציונלי: מגדירים את ההגדרות של צומת החיבור:

        • מספר מינימלי של צמתים: מזינים את המספר המינימלי של צמתי חיבור.
        • מספר הצמתים המקסימלי: מזינים את מספר צמתי החיבור המקסימלי.

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

      25. אופציונלי: לוחצים על + הוספת תווית כדי להוסיף תווית לקישור בצורה של צמד מפתח/ערך.
      26. לוחצים על הבא.
    6. בקטע יעדים, מזינים את הפרטים של המארח המרוחק (מערכת העורף) שאליו רוצים להתחבר. אם אתם מתחברים למערכת SAP עם שרת הודעות, אתם לא צריכים לציין את כתובת המארח.
      1. סוג היעד: בוחרים סוג יעד.
        • בוחרים באפשרות כתובת מארח מהרשימה כדי לציין את שם המארח או את כתובת ה-IP של היעד.
        • אם רוצים ליצור חיבור פרטי למערכות העורפיות, בוחרים באפשרות Endpoint attachment מהרשימה, ואז בוחרים את ה-Endpoint attachment הנדרש מהרשימה Endpoint Attachment.

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

        כדי להזין יעדים נוספים, לוחצים על +הוספת יעד.

      2. לוחצים על הבא.
    7. בקטע אימות, מזינים את פרטי האימות.
      1. בוחרים סוג אימות ומזינים את הפרטים הרלוונטיים.

        החיבור ל-SAP ERP תומך בסוגי האימות הבאים:

        • אימות מבוסס-אישור X509
        • שם משתמש וסיסמה
      2. כדי להבין איך להגדיר את סוגי האימות האלה, אפשר לעיין במאמר בנושא הגדרת אימות.

      3. לוחצים על הבא.
    8. אם הפעלתם את ההרשמה לאירועים, הקטע פרטי ההרשמה לאירועים יופיע בדף יצירת הקישור. במאמר הגדרת מינוי לאירועים מוסבר איך להגדיר את פרטי המינוי לאירועים.
    9. בדיקה: בודקים את פרטי החיבור והאימות.
    10. לוחצים על יצירה.

    הגדרת אימות

    מזינים את הפרטים בהתאם לאימות שבו רוצים להשתמש.

    • אימות שמבוסס על אישור X509
      • X509Certificate: אישור X509 שמשמש לכניסה.
      • גרסת Secret: בוחרים את גרסת ה-Secret.
    • שם משתמש וסיסמה
      • שם משתמש: שם המשתמש של המחבר
      • סיסמה: סוד ב-Secret Manager שמכיל את הסיסמה שמשויכת למחבר.

    הגדרה של מינוי לאירועים

    אם מפעילים הרשמה לאירועים, צריך להגדיר את ABAP SDK. למידע על הגדרת ABAP SDK, אפשר לעיין במאמר סקירה כללית של ABAP SDK for Google Cloud.

    בקטע פרטי מינוי לאירועים, מזינים את הערכים הבאים:

    1. בוחרים אחד מסוגי האימות הבאים עבור רכיב event listener.
    2. מזינים את שם השדה של סוג האירוע. בשדה הזה מצוין סוג האירוע שמשויך לבקשת האירוע הנכנסת.
      {
      "event_type": "user.created",
      ...
      // other request fields
      ...
      }
    3. בוחרים באפשרות הפעלת קישוריות פרטית כדי ליצור קישוריות מאובטחת בין אפליקציית הקצה העורפי לבין החיבור. אם בוחרים באפשרות הזו, צריך לבצע שלבי הגדרה נוספים אחרי יצירת הקישור. מידע נוסף זמין במאמר בנושא קישוריות פרטית למינוי לאירועים.
    4. מזינים את ההגדרה של תור ההודעות המתות. אם מגדירים תיבת דואר להודעות שלא נמסרו, החיבור כותב את האירועים שלא עברו עיבוד אל נושא Pub/Sub שצוין. ממלאים את הפרטים הבאים:
      1. מזהה פרויקט של הודעות שלא ניתן למסור: מזהה הפרויקט ב-Google Cloud שבו הגדרתם את נושא ה-Pub/Sub של הודעות שלא ניתן למסור.
      2. נושא להודעות ללא מוצא: נושא Pub/Sub שבו רוצים לכתוב את הפרטים של האירוע שלא עבר עיבוד.

    שימוש בפונקציה מותאמת אישית לקריאת טבלה

    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 כברירת מחדל כדי לעקוף מגבלות:

    1. משתמשים בפונקציה RFC_READ_TABLE כתבנית לפונקציה החדשה. בוחרים את קוד העסקה SE37 ואת קבוצת הפונקציות SDTX ומעתיקים את RFC_READ_TABLE לקבוצת פונקציות חדשה או לקבוצת הפונקציות שבה אתם עובדים. בדוגמה הזו, הקובץ RFC_READ_TABLE מועתק אל Z_CUSTOM_READ_TABLE.
    2. בכרטיסייה Attributes (מאפיינים) במסך SAP, בוחרים באפשרות Remote Enabled Module.
    3. בכרטיסייה Tables (טבלאות), מגדירים את הפרמטר DATA לערך CHAR8000. לוחצים לחיצה ימנית על המסך ואז לוחצים על תצוגה -> שינוי.
    4. בכרטיסייה קוד מקור, מדביקים את קוד המקור לדוגמה של מודול הפונקציה להחלפה RFC_READ_TABLE שנמצא בתיקיית המשנה db של ספריית ההתקנה. הקוד נמצא ב-Z_CUSTOM_READ_TABLE.txt, אבל מומלץ להשתמש ב-Z_CUSTOM_READ_TABLE_752.txt אם מופעלת במערכת SAP ERP שלכם גרסת ABAP 7.52 ואילך.
    5. לוחצים על Save.
    6. מגדירים את הייבוא, הטבלאות והחריגים כמו שמתואר בטבלת הקריאה המותאמת אישית שסופקה.
    7. מפעילים את מודול הפונקציה ובמחרוזת החיבור מגדירים את ReadTableFunction ל-Z_CUSTOM_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.
    

    מכסות ומגבלות

    מידע על מכסות ומגבלות זמין במאמר מכסות ומגבלות.

    המאמרים הבאים