1. Ana Sayfa
  2. Dynamics 365
  3. X++ :14- ValidateWrite Metodu Ne İşe Yarar?

X++ :14- ValidateWrite Metodu Ne İşe Yarar?

Dynamics-365

Bu yazıda Dynamics 365 Finance and Operations tablo metotlarından () metodunu anlatacağım. validateWrite () bir kaydın DB’ye Insert veya Update işlemelerinden önce çalışan doğrulamaların yapıldığı metottur. Bir örnek yapalım.

FDBookTable tablosunda metotlara sağ tıklayıp validateWrite () metodunu Override ettim.


Resim-1

Şöyle bir kontrol yazalım. Eğer BookCount == 0 ise hata versin. Bunun için checkFailed() kullanılır. Otomatik olarak info verip hata döndüren bir koddur.


Resim-2

Kaydedip tablo tarayıcısını açalım. Sıfır girip kaydetmeye çalıştığımızda hata mesajını alırız.


Resim-3

boolean validateWrite()

{

#isoCountryRegionCodes

boolean ret;

DirPartyType type;

ret = super();

// Warn user if this customer lacks a tax exempt number, but do not fail to save the revision.

if (!this.OneTimeCustomer && TaxVATNumTable::isVATNumMandatory(CustParameters::find().MandatoryVATNum, this))

{

warning(“@SYS54494”);

}

if (ret)

{

if (PaymTerm::isCashAccount(this.PaymTermId) && this.PaymSched)

{

ret = checkFailed(“@SYS25074”);

}

}

// Add check MandatoryTaxGroup is set on CustParameters.

if (ret && CustParameters::find().MandatoryTaxGroup && !this.TaxGroup)

{

ret = checkFailed(“@SYS113299”);

}

if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoMX]))

{

taxRegistrationValidator = TaxRegistrationValidator_MX::construct(this);

ret = taxRegistrationValidator.validateCustomerTaxRegistration() && ret;

}

if (this.MainContactWorker)

{

ret = ret && smmUtility::isValidWorkerInCurrentCompany(this.MainContactWorker);

}

if (ret && !CustVendTable::validateContactForParty(true, this.ContactPersonId, this.Party))

{

ret = checkFailed(“@SCM:InvalidPrimaryContactErrorMessage”);

}

return ret;

}

CustTable
ValidateWrite() metodunu inceleyelim. checkFailed kullanımını görebilirsiniz. Eğer birkaç satırdan uzun bir kod gerekiyorsa ayrı metot yazıp buradan onu çağırmak genel yaklaşımdır.

Selamlar.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar:
www.mshowto.org

www.fatihdemirci.net

TAGs: ,validateWrite, , , , , ,

Yorum Yap

Yazar Hakkında

2005 yılında Kocaeli Üniversitesi Bilgisayar Mühendisliğinden mezun oldum. Okulda ve ilk iş tecrübelerimde farklı yazılım dilleri kullandım. 2007 yılında Akşam gazetesinde işe başladım ve Microsoft Dynamics 365 (eski adıyla Axapta) ile orda tanıştım. Hiç duymadığım bir dil olan X++ kullanılıyordu. Kısa sürede adapta oldum ve kariyerimi bu alanda şekillendirdim. Bir kaç iş değişikliğinde sonra kendi firmamı kurdum. Şu anda DMR de yönetici ortak ve Çözüm mimarı olarak çalışmaktayım. 2010 yılında MCT oldum. Birçok faklı ortamda eğitimler verdim. Bloğum ve Youtube kanalımda tecrübelerimi paylaşmaktayım.

Yorum Yap