Blog Listem

26 Nisan 2019 Cuma

AX 2012 - View'a computed column eklemek

AX 2012 View'a computed column eklerken yaptığımız aslında create view cümlesine ekleme yapmak ve SQL Server tarafında hatasız oluşmasını sağlamak.

Öncelikle view tablo metodlarına eklemek istediğimiz kolon için bir metod ekliyoruz:

public static server str SNBisBuggedReverse()
{
return strFmt("select top 1 sign(sum(accountingcurrencyamount)) from GENERALJOURNALACCOUNTENTRY g "+
"where isnull(%1,'') <> '' and exists (select * from TRANSACTIONREVERSALTRANS t where t.TRACENUM = %1 and t.REFRECID = g.RECID and t.REFTABLEID = %2) "+
"group by g.LEDGERACCOUNT "+
"order by 1 desc",SysComputedColumn::comparisonField(identifierstr(PAXMizanView), identifierstr(TransactionReversalTrans), identifierstr(TraceNum)),
 tableNum(GeneralJournalAccountEntry));
}

Yukarıda görüldüğü gibi AX sorgusu değil de SQL Server sorgusu kullandım metodu eklerken. Metodumuz aşağıdaki gibi bir string değer döndürecek:

select top 1 sign(sum(accountingcurrencyamount)) from GENERALJOURNALACCOUNTENTRY g where isnull(T4.TRACENUM,'') <> '' and exists (select * from TRANSACTIONREVERSALTRANS t where t.TRACENUM = T4.TRACENUM and t.REFRECID = g.RECID and t.REFTABLEID = 3119) group by g.LEDGERACCOUNT order by 1 desc

View'a eklediğimiz kolonun NoYes cinsinde Enum olmasını istiyoruz. O zaman:




Ardından Eklediğimiz View metodu ViewMethod property alanından seçiyoruz.




Eklediğim yeni kolon maalesef view hızını çok yavaşlatan bir kolondu, mümkün oldukça daha basit birşeyler seçmek view hızı açısından önemli.

Hiç yorum yok:

Yorum Gönder