Dynamics AX 2012 SysOperation Framework Sürətli Baxış
Nəşr olundu: 15 fevral 2025 at 22:40:53 UTC
Son yeniləmə: 12 yanvar 2026 at 08:40:25 UTC
Bu məqalədə Dynamics AX 2012 və Dynamics 365 for Operations-da SysOperation çərçivəsində emal siniflərinin və toplu işlərin necə tətbiq ediləcəyi barədə qısa məlumat (və ya fırıldaqçı vərəq) təqdim olunur.
Dynamics AX 2012 SysOperation Framework Quick Overview
Bu yazıdakı məlumat Dynamics AX 2012 R3-ə əsaslanır. Digər versiyalar üçün keçərli ola bilər və ya olmaya bilər. (Yeniləmə: Bu məqalədəki məlumatın Dynamics 365 for Operations üçün də keçərli olduğunu təsdiqləyə bilərəm)
Bu yazı sadəcə qısa bir baxış və fırıldaqçı vərəqi kimi nəzərdə tutulub. Əgər SysOperation çərçivəsi ilə yeni tanışsınızsa, bu mövzuda Microsoft-un ağ sənədini də oxumağınızı tövsiyə edirəm. Bu çərçivə ilə əməliyyatların hazırlanmasında iştirak edən müxtəlif siniflər haqqında qısa bir məlumat almaq istəyirsinizsə, buradakı məlumatlar faydalı ola bilər.
Variasiyalar var, amma çərçivədən istifadə edərkən adətən üç sinif tətbiq edirəm:
- Məlumat müqaviləsi (SysOperationDataContractBase-i genişləndirməlidir)
- Xidmət (SysOperationServiceBase-i genişləndirməlidir)
- Nəzarətçi (SysOperationServiceController-i genişləndirməlidir)
Bundan əlavə, mən UIBuilder sinfini də tətbiq edə bilərəm (SysOperationUIBuilder-i genişləndirməliyəm), lakin bu, yalnız nədənsə dialoq pəncərəsi çərçivənin avtomatik olaraq yaratdığından daha inkişaf etmiş olmalıdırsa lazımdır.
Məlumat müqaviləsi
Məlumat müqaviləsi əməliyyatınız üçün lazım olan məlumat üzvlərini saxlayır. Bu, RunBase çərçivəsində müəyyən edilmiş tipik CurrentList makrosu ilə müqayisə edilə bilər, lakin bunun əvəzinə bir sinif kimi tətbiq olunur. Məlumat müqaviləsi SysOperationDataContractBase-i genişləndirməlidir, lakin işləməsə belə işləyəcək. Super sinifin genişləndirilməsinin üstünlüyü ondan ibarətdir ki, o, faydalı ola biləcək bəzi sessiya məlumatları təqdim edir.
class MyDataContract extends SysOperationDataContractBase
{
ItemId itemId;
}
Bu nümunədə itemId məlumat üzvüdür. Hər bir məlumat üzvü üçün parm metodu tətbiq etməli və onu DataMemberAttribute ilə etiketləməlisiniz ki, çərçivə onun nə olduğunu bilsin. Bu, çərçivənin sizin üçün avtomatik olaraq dialoq qurmasına imkan verir.
public ItemId parmItemId(ItemId _itemId = itemId)
{
;
itemId = _itemId;
return itemId;
}
Xidmət
Xidmət sinfi, faktiki biznes məntiqini ehtiva edən sinifdir. Dialoqları, toplu emalı və ya bu kimi şeyləri göstərməklə məşğul deyil - bu, nəzarətçi sinfinin məsuliyyətidir. Bunu ayırmaqla kodunuzu daha yaxşı dizayn etmə və daha çox təkrar istifadə edilə bilən kod yaratma ehtimalınız daha yüksəkdir.
Məlumat müqaviləsi sinfi kimi, xidmət sinfinin də konkret bir şeydən miras qalmasına ehtiyac yoxdur, lakin ən azı xidmətin toplu iş kimi işlədiləcəyini gözləsəniz, SysOperationServiceBase sinfindən miras qalmalıdır, çünki super sinif toplu kontekst haqqında bəzi məlumatlar verir. Əməliyyatı başladan (yəni biznes məntiqini işlədən) metod, məlumat müqaviləsi sinfinizin bir obyektini giriş kimi qəbul etməli və [SysEntryPointAttribute] ilə bəzədilməlidir. Məsələn:
{
}
Run adlı bir metodla:
public void run(MyDataContract _dataContract)
{
// run business logic here
}
Nəzarətçi
Kontroller sinfi əməliyyatınızın icrasını və toplu emalını idarə edir. Maksimum performans üçün kodun CIL-də icra olunmasını da təmin edir. Kontroller sinfi adətən SysOperationServiceController sinfindən miras qalır, baxmayaraq ki, başqa seçimlər də mövcuddur.
{
}
Super sinifin konstruktoru parametrlər olaraq sinif adını, metod adını və (isteğe bağlı) icra rejimini götürür. Sinif və metod adları xidmət sinifinizin və üzərində işlədilməli olan metodun adı olmalıdır. Beləliklə, kontrollerinizin konstrukt metodunu aşağıdakı kimi tətbiq edə bilərsiniz:
{
;
return new MyController(classStr(MyService),
methodStr(MyService, run));
}
Onda MyController sinfinin əsas metodu qədər sadə ola bilər
{
;
MyController::construct().startOperation();
}
Və demək olar ki, hazırsınız. Yuxarıda göstərilənlər, əlbəttə ki, çox sadə bir nümunədir və çərçivədə bir çox digər seçim və imkanlar var, lakin bu, çərçivəni bir müddətdir istifadə etmədiyiniz zaman təkmilləşdirməyə ehtiyacınız varsa, qısa bir baxış kimi xidmət edir.
Əlavə Oxu
Bu yazı xoşunuza gəldisə, bu təklifləri də bəyənə bilərsiniz:
- Dynamics AX 2012-də SysOperation Data Müqavilə Sinifində Sorğunun İstifadəsi
- Dynamics AX 2012-də X++-dan birbaşa AIF Sənəd Xidmətlərinə zəng etmək
- Dynamics AX 2012-də Bütün Decimals ilə Bir Realı String-ə Çevir
