פעלד מאָדעלינג אין SAP CAP

הקדמה

א פעלד מאָדעל אין SAP CAP איז אַ מאָדעל וואָס באשרייבט די סטאַטיק, דאַטן-פֿאַרבונדענע אַספּעקץ פון אַ פּראָבלעם פעלד אין טערמינען פון ענטיטי-שייכות מאָדעלס. אין דעם אַרטיקל מיר וועלן לערנען די פעלד מאָדעלינג אין SAP CAP אין דעטאַל.

פעלד מאָדעלינג

אין פּשוט ווערטער, אַ CDS אין SAP CAP טראגט פעלד מאָדעל אין אַזאַ אַ וועג אַז עס דיפיינז די געשעפט פּראָבלעם אין טערמינען פון שליסלען, פעלדער און אַנאַטיישאַנז. דער קאָד צו דזשענערייט אַ פעלד מאָדעל איז געשריבן אין אַ CDS סטשעמאַ (db/schema.cds). די פעלד מאָדעלס קענען זיין גענוצט אין סערוויס דעפינישאַנז, פּערסיסטאַנס מאָדעלס, דאַטאַבייסיז אָדער אפילו ריוזד אין אן אנדער פעלד מאָדעל.

ביישפּיל:

Namespace empInfo; ניצן {קראַנטקייַט, געראטן} פֿון '@sap/cds/common'; ענטיטי עמפּלויעעס: געראטן { שליסל שייַן: ינטעגער; ערשטער נאָמען: לאָוקאַלייזד שטריקל (111); לעצטע נאָמען: לאָוקאַלייזד שטריקל (1111); פאַרוואַלטער: אַססאָסיאַטיאָן צו מאַנאַדזשערז; dateofJoining: ינטעגער; געצאָלט: דעצימאַל (9,2); קראַנטקייַט: קראַנטקייַט; }

 

אין דעם בייַשפּיל מיר האָבן באשאפן אַ טעקע schema.cds ווו מיר האָבן באשאפן אַן ענטיטי עמפּלוייז וואָס כולל יקערדיק דעטאַילס פון אַן עמפּלויעע

דער גאנצער סכעמע האט באקומען אַ נאָמען ספּאַסיפיקלי, עמפּינפאָ

דעם סטשעמאַ ניצט אַ נאָרמאַל דאַטע טיפּ הייסט קראַנטקייַט. ניצן די סטאַנדאַרט דאַטן טיפּ ווי דאָס העלפּס אונדז צו ברענגען אַלע די פּרעדעפינעד ווערט העלפּס שייַכות צו עס.

מיר נוצן CDS צו שאַפֿן אַ מאָדעל. אין אַז CDS, מיר נוצן

  1. ענטיטיז צו פאָרשטעלן אַ סכום פון יינציק אַבדזשעקץ, למשל:
    1. אָנגעשטעלטער באַסיק אינפֿאָרמאַציע
    2. אָנגעשטעלטער קאָמוניקאַציע אינפֿאָרמאַציע
    3. אָנגעשטעלטער געצאָלט אינפֿאָרמאַציע
  2. אַססאָסיאַטיאָנס צו דעפינירן באציונגען
    1. פאַרוואַלטער פאַרבאַנד צו אן אנדער ענטיטי מאַנאַגער וואָס וועט האָבן אַלע די מאַנאַדזשערז רשימה

נאַמינג קאַנווענשאַן & רעקאַמאַנדיישאַנז

  1. דער נאָמען פון דער ענטיטי זאָל אָנהייבן מיט אַ קאַפּיטאַל בריוו און עס זאָל זיין ליינעוודיק פֿאַר מענטש און זיך-יקספּלאַנאַטאָרי - פֿאַר בייַשפּיל, עמפּלוייז
  2. אָנהייב עלעמענטן מיט אַ לאָווערקאַסע בריוו - פֿאַר בייַשפּיל, FirstName
  3. עס איז רעקאַמענדיד צו נוצן מערצאָל פאָרעם פון ענטיטיז - פֿאַר בייַשפּיל, עמפּלוייז
  4. עס איז רעקאַמענדיד צו נוצן איין טיפּ פון טייפּס - פֿאַר בייַשפּיל, קראַנטקייַט
  5. טאָן ניט איבערחזרן קאַנטעקסץ - פֿאַר בייַשפּיל, Employees.name אַנשטאָט פון Employees.EmployeeName
  6. בעסער נעמען איין וואָרט - פֿאַר בייַשפּיל, געצאָלט אַנשטאָט פון געצאָלט אַמאַונט
  7. ניצן ID פֿאַר טעכניש ערשטיק שליסלען - פֿאַר בייַשפּיל, ID פֿאַר עמפּלויעע שייַן
  8. איר קענט נוצן Namespace צו מאַכן דיין ענטיטיז יינציק. עס איז ווי אַ קליענט באַגריף אין SAP, ווו איר קענען האָבן דופּליקאַט סטשעמאַס (קדס טעקעס) מיט יינציק נאַמעספּאַסע צו דיפערענשיייט זיי. נאַמעספּאַסעס זענען אַפּשאַנאַל, נוצן נאַמעספּאַסעס אויב דיין מאָדעלס קענען זיין ריוזד אין אנדערע פּראַדזשעקס. אין די סוף פון די טאָג זיי זענען נאָר פּרעפיקס, וואָס זענען אויטאָמאַטיש געווענדט צו אַלע באַטייַטיק נעמען אין אַ טעקע. — למשל,

נאַמעספּאַסע לאַפּטאַפּ; ענטיטי Dell {}

... איז עקוויוואַלענט צו:

ענטיטי לאַפּטאַפּ.Dell {}

  1. איר קענען נוצן קאַנטעקסץ פֿאַר נעסטעד נאַמעספּאַסע סעקשאַנז. — למשל,

נאַמעספּאַסע לאַפּטאַפּ; ענטיטי Dell {}           //> לאַפּטאַפּ.דעללקאָנטעקסט עפּל { ענטיטי מאַקבאָאָקפּראָ {}       //> לאַפּטאַפּ.אַפּפּלע.מאַבאָאָקפּראָ     ענטיטי MacBookAir {}}

 

ענטיטיז

ענטיטיז זענען ווי טישן מיט ערשטיק שליסלען. מיר קענען דורכפירן CRUD אָפּעראַציע ניצן די ענטיטיז. האַלטן עס ווי פלאַך ווי מעגלעך. צי ניט איבער נאָרמאַלייז עס. דו זאלסט נישט נוצן ניט-ריוזאַבאַל טייפּס. דער אָפּטיילונג איז בלויז פֿאַר מאָדעלינג, בלויז אַנאַטיישאַנז שייַכות צו יחיד פעלדער זאָל זיין מוסיף און קיין טעכניש דעטאַילס (לאָגיקס) זאָל זיין צוגעגעבן.

טייפּס

טייפּס זענען ווי פעלד אין SAP ABAP, עס איז געניצט צו דעפינירן די טייפּט פון דאַטאַ עלעמענטן.

אַספּעקץ

אַספּעקץ זענען די יקסטענשאַנז פון די מאָדעלס און זענען דער הויפּט געניצט צו פאַרברייטערן די יגזיסטינג זוך און אַנאַטיישאַנז. אַמאָל אַ מאָדעל איז דיפיינד, מיר קענען נוצן פאַרשידענע קדס טעקעס (אַספּעקט) צו לייגן אַנאַטיישאַנז אויף שפּיץ פון זיי פֿאַר ספּעציפיש אַרבעט.

צום ביישפּיל

  • cds- דיין האַרץ פעלד מאָדעל, ריין, פּשוט און פאַרשטיייק
  • audit-model.cds- מוסיף נאָך פעלדער פארלאנגט פֿאַר אַדאַטינג אין אַ טעקע
  • auth-model.cds- מוסיף אַנאַטיישאַנז פֿאַר דערלויבעניש.

ערשטיק קיז

ווי טישן & CDS אין SAP ABAP, מיר האַלטן ערשטיק שליסלען פֿאַר ענטיטי ניצן קיווערד key.

א ערשטיק שליסל קענען זיין ריוזד אַריבער די מאָדעל דורך ניצן די מעטאַדאַלאַדזשי פון פּראָסט זוך.

מיר קענען מאַכן אַ common.cds מאָדעל ווו אַלע די פּראָסט זוך קענען זיין סטאָרד.

// פּראָסט זוך

ענטיטי סטאַנדאַרדענטיטי { שליסל שייַן: UUID; } איצט די פּראָסט דעפֿיניציעס קענען זיין ריוזד ווי אונטן: ניצן { StandardEntity } פֿון './common'; ענטיטי עמפּלויעע: StandardEntity { נאָמען: שטריקל; ... } ענטיטי מאַנאַגער: סטאַנדאַרדענטיטי { נאָמען: שטריקל; ... }

 

דער פּראָסט טעקע איז שוין באשאפן דורך פעליקייַט מיט אַ פּרעדעפינעד ענטיטי געהייסן קויד.

מאַפּינג UUIDs צו OData

CDS מאַפּס UUIDs צו Edm.Guid, דורך פעליקייַט, אין אַלע די OData מאָדעלס. אָבער, די OData נאָרמאַל לייגט ריסטריקטיוו כּללים פֿאַר Edm.Guid וואַלועס - פֿאַר בייַשפּיל, בלויז כייפאַנייטיד סטרינגס זענען ערלויבט - וואָס קען קאָנפליקט מיט יגזיסטינג דאַטן. דעריבער, מיר לאָזן די פעליקייַט מאַפּינג צו זיין אָווועררייד ווי גייט:

ענטיטי ביכער {

שליסל שייַן: UUID @אָדאַטאַ.טיפּ:'Edm.String';

...

}

אויב נייטיק, איר קענט אויך לייגן די אַנאָטאַציע @odata.MaxLength צו אָווועררייד די קאָראַספּאַנדינג פאַרמאָג.

פאַרבאַנד

עס איז געניצט צו דעפינירן די שייכות צווישן צוויי ענטיטיז. ווי ABAP CDS, אויך דאָ מיר נוצן דעם וואָרט פאַרבאַנד. דאָ, די קיווערד פילע ינדיקייץ אַ 0..* קאַרדינאַליטי. די ריסטריקשאַנז פֿאַר קאַרדינאַליטי קענען זיין מוסיף ווי אַ קאַנסטריינץ (וואו צושטאַנד) - למשל, ניצן ניט נאַל.

חיבורים

ניט ענלעך אַססאָסיאַטיאָן ווו מיר פאַרבינדן אַ פעלד פון ענטיטי מיט די אַבדזשעקץ פון אַ גאַנץ ענטיטי, די חיבורים נאָר אָפּשיקן צו ספּעציפיש פעלד פון אן אנדער ענטיטי. עס האט עקסטרע מייַלע פון ​​זיך-געראטן טיף אַפּעריישאַנז (אַרייַנלייגן / דערהייַנטיקן) און קאַסקייד דילישאַן (דילישאַן פון מולטי אָפענגיק טישן).

// דעפינירן אָרדערס מיט קאַנטיינד אָרדעריטעמסענטיטי אָרדערס { שליסל שייַן: UUID; ייטאַמז: זאַץ פון פילע אָרדער_יטעמס אויף Items.parent=$self;} ענטיטי אָרדער_יטעמס { // וועט זיין אַקסעסט בלויז דורך אָרדערס  שליסל פאָטער: אַססאָסיאַטיאָן צו אָרדערס; שליסל בוך: פאַרבאַנד צו ספר; קוואַנטיטי: ינטעגער;}

בעסטער פּראַקטיסיז

  1. טאָן ניט לייגן טעכניש דעטאַילס אין מאָדעלס, מיר נוצן אַספּעקץוועגן דעם
  2. נוצן קורצע נעמען און פּשוט פלאַך מאָדעלס
  3. צי ניט איבער נאָרמאַלייז די ענטיטיז אין מאָדעלס
  4. ניצן היגע ינטאַדזשער סיקוואַנסיז אויב איר טאַקע האַנדלען מיט הויך לאָודז און וואַליומז. אַנדערש, בעסער UUIDs

ביז איצט וואָס מיר האָבן געלערנט: שאַפונג פון מאָדעל און אַספּעקץ אויף שפּיץ פון עס.

פעלד מאָדעלינג אין SAP CAP

לאָזן אַ באַמערקונג

דעם פּלאַץ ניצט אַקיסמעט צו רעדוצירן ספּאַם. לערן ווי דיין קאָמענטאַר דאַטע איז פּראַסעסט.