SAP CAP'de Etki Alanı Modelleme

Giriş

SAP CAP'deki Etki Alanı Modeli, bir sorun alanının statik, veriyle ilgili yönlerini varlık-ilişki modelleri açısından tanımlayan bir modeldir. Bu yazımızda SAP CAP'de Domain Modellemeyi detaylı olarak inceleyeceğiz.

Etki Alanı Modelleme

Basit bir deyişle, SAP CAP'deki bir CDS, iş problemini anahtarlar, alanlar ve açıklamalar açısından tanımlayacak şekilde etki alanı modeli üretir. Bir etki alanı modeli oluşturacak kod, bir CDS şemasına (db/schema.cds) yazılır. Bu etki alanı modelleri Hizmet Tanımlarında, Kalıcılık Modellerinde, Veritabanlarında kullanılabilir ve hatta başka bir etki alanı modelinde yeniden kullanılabilir.

Örnek Örnek:

Ad alanı empInfo; '@sap/cds/common' adresinden {Currency, yönetilen} kullanarak; varlık Çalışanlar: yönetilen { anahtar kimliği: Tamsayı; ad: yerelleştirilmiş Dize (111); soyadı: yerelleştirilmiş Dize (1111); yönetici: Yöneticilerle İlişkilendirme; Katılma tarihi: Tamsayı; maaş: Ondalık (9,2); para birimi: Para birimi; }

 

Bu örnekte, bir Çalışanın temel ayrıntılarını içeren bir Çalışanlar varlığı oluşturduğumuz bir schema.cds dosyası oluşturduk.

Bu şemanın tamamına bir ad alanı verilmiştir, yani empInfo

Bu şema standart bir veri türü, yani Para Birimi kullanır. Bunun gibi standart veri türünü kullanmak, onunla ilgili tüm önceden tanımlanmış değerleri getirmemize yardımcı olur.

Bir Model oluşturmak için CDS kullanıyoruz. Bu CDS'de kullandığımız

  1. Benzersiz nesneler kümesini temsil edecek varlıklar, örneğin:
    1. Çalışan Temel Bilgileri
    2. Çalışan İletişim Bilgileri
    3. Çalışan Maaş Bilgileri
  2. İlişkileri tanımlamak için dernekler
    1. Tüm Yöneticiler listesine sahip olacak başka bir varlık Yönetici ile Yönetici ilişkilendirmesi

Adlandırma Sözleşmesi ve Öneriler

  1. Kuruluşun adı büyük harfle başlamalı ve insan tarafından okunabilir ve kendi kendini açıklayıcı olmalıdır – örneğin, Çalışanlar
  2. Öğeleri küçük harfle başlatın - örneğin, ad
  3. Çoğul varlık biçiminin kullanılması önerilir - örneğin, Çalışanlar
  4. Türlerin tekil biçiminin kullanılması önerilir - örneğin, Para Birimi
  5. bağlamları tekrar etmeyin – örneğin, Çalışanlar.ÇalışanAdı yerine Çalışanlar.adı
  6. tek kelimelik isimleri tercih edin – örneğin, maaşAmount yerine maaş
  7. teknik birincil anahtarlar için kimliği kullanın - örneğin, Çalışan Kimliği için Kimlik
  8. Varlıklarınızı benzersiz kılmak için Ad Alanı'nı kullanabilirsiniz. Bu, SAP'deki müşteri konsepti gibidir, burada onları farklılaştırmak için benzersiz Ad Alanı ile yinelenen şemalara (cds dosyaları) sahip olabilirsiniz. Ad alanları isteğe bağlıdır, modelleriniz başka projelerde yeniden kullanılabilirse ad alanlarını kullanın. Günün sonunda bunlar yalnızca bir dosyadaki tüm ilgili adlara otomatik olarak uygulanan öneklerdir. - Örneğin,

ad alanı dizüstü bilgisayarı;entity Dell {}

..… şuna eşittir:

varlık dizüstü bilgisayarı.Dell {}

  1. İç içe ad alanı bölümleri için bağlamları kullanabilirsiniz. - Örneğin,

ad alanı dizüstü bilgisayarı;entity Dell {}           //> dizüstü bilgisayar.Dellbağlam Apple { varlık MacBookPro {}       //> dizüstü bilgisayar.Apple.MacBookPro     varlık MacBookAir {} }

 

Varlıklar

Varlıklar, birincil anahtarları olan tablolar gibidir. Bu Varlıkları kullanarak CRUD işlemini gerçekleştirebiliriz. Mümkün olduğunca düz tutun. Aşırı Normalleştirmeyin. Yeniden kullanılamayan türleri kullanmayın. Bu bölüm sadece modelleme içindir, sadece bireysel alanlarla ilgili notlar eklenmeli ve hiçbir teknik detay (mantık) eklenmemelidir.

Türleri

Türler, SAP ABAP'deki Etki Alanı gibidir, yazılan Veri öğelerini tanımlamak için kullanılır.

Yönleri

Yönler, Modellerin uzantılarıdır ve esas olarak mevcut tanımları ve açıklamaları genişletmek için kullanılır. Bir model tanımlandıktan sonra, belirli bir görev için bunların üzerine ek açıklamalar eklemek için farklı cds dosyalarını (Aspect) kullanabiliriz.

Örneğin-

  • cdleri– temel alan modeliniz, temiz, basit ve anlaşılır
  • denetim-model.cds– bir dosyada denetleme için gerekli olan ek alanları ekler
  • auth-model.cds– yetkilendirme için ek açıklamalar ekler.

Birincil Anahtarlar

SAP ABAP'deki tablolar ve CDS gibi, anahtar kelime kullanan Varlık için Birincil anahtarları koruyoruz tuşuna basın.

Birincil anahtar, ortak tanımların metodolojisi kullanılarak model genelinde yeniden kullanılabilir.

Tüm ortak tanımların saklanabileceği bir common.cds Modeli oluşturabiliriz.

// ortak tanımlar

varlık StandardEntity { anahtar kimliği: UUID; } Şimdi bu yaygın tanımlar aşağıdaki gibi yeniden kullanılabilir: './common'dan { StandardEntity } kullanılarak; varlık Çalışan : StandardEntity { isim : String; ... } varlık Yönetici : StandardEntity { isim : String; ... }

 

Ortak dosya, önceden tanımlanmış bir varlık ile varsayılan olarak zaten oluşturulmuştur. yavru.

UUID'leri OData ile eşleme

CDS, varsayılan olarak tüm OData modellerinde UUID'leri Edm.Guid ile eşler. Ancak, OData standardı Edm.Guid değerleri için kısıtlayıcı kurallar koyar - örneğin, yalnızca tireli dizelere izin verilir - bu mevcut verilerle çakışabilir. Bu nedenle, varsayılan eşlemenin aşağıdaki gibi geçersiz kılınmasına izin veriyoruz:

varlık Kitapları {

anahtar kimliği: UUID @odata.Type:'Edm.String';

...

}

Gerekirse, ilgili özelliği geçersiz kılmak için @odata.MaxLength ek açıklamasını da ekleyebilirsiniz.

Dernek

İki varlık arasındaki ilişkiyi tanımlamak için kullanılır. ABAP CDS gibi, burada da kelimesini kullanıyoruz. Derneği. Burada, anahtar kelime çok gösterir 0..* kardinalite. Kardinalite kısıtlamaları bir kısıtlama olarak eklenebilir (burada koşul) – örneğin, geçersiz değil.

Kompozisyonlar

Bir varlığın alanını bütün bir varlığın nesneleriyle ilişkilendirdiğimiz İlişkilendirmenin aksine, kompozisyonlar sadece başka bir varlığın belirli alanına atıfta bulunur. Kendi kendini yöneten derin işlemler (Ekle/Güncelle) ve kademeli silme (Çoklu Bağımlı tablo silme) ekstra avantajına sahiptir.

// İçerilen OrderItems ile Siparişleri tanımlayınvarlık Siparişler { anahtar kimliği: UUID; Items : Items.parent=$self;}entity Order_Items { üzerinde birçok Order_Items bileşimi // yalnızca Siparişler aracılığıyla erişilecektir  ana ebeveyn : Siparişlerle İlişkilendirme; anahtar kitap : Kitaplarla İlişkilendirme; miktar : Tamsayı;}

En iyi uygulamalar

  1. Kullandığımız Modellerde teknik detay eklemeyin. YönleriBunun için
  2. kullanım kısa isimler ve basit düz modeller
  3. Modellerdeki varlıkları aşırı normalleştirmeyin
  4. Gerçekten yüksek yükler ve hacimlerle uğraşıyorsanız, yerel tamsayı dizilerini kullanın. Aksi takdirde, UUID'leri tercih edin

Şimdiye kadar öğrendiklerimiz: Modelin Oluşturulması ve Üzerine Yönler.

SAP CAP'de Etki Alanı Modelleme

Yorum Yap

Bu site spam'i azaltmak için Akismet'i kullanıyor. Yorum verilerinizin nasıl işlendiğini öğrenin.