RSS

Dynamics AX memo türünde alanlarında arama yapmak

10 Tem

Merhaba,

Dynamics AX içinde Memo türünde olan string alanlarda arama/filtreleme yapmak imkansızdır. Fakat bu alandaki bir metni aramak zorundaysak bunun için bir yol var. AX içinde ilgili memo alanı için arama yapılamazken, ilgili tablonun ve alanın SQLdeki karşılığında AX içerisinden yazılacak bir kodla arama yapılabilir. Aramanın geri dönüş yapmak istediğiniz işleme göre değişebilir.

Aşağıdaki kod örneğinde gönderdiğim arama metine uyan satırların RECID değerleri bulunup geri dönderilmektedir.


// Changed on 09 Tem 2011 at 17:56:38 by mesut
//TABLENAME must be replaced by real table name contains Memo field.
public static server container searchText(TABLENAME _table,SearchString _searchText)
{
str                             sql;
Connection                      userConnection;
SqlStatementExecutePermission   permission;
Statement                       stmt;
ResultSet                       sqlres;
SqlSystem                       sqlSystem = new SqlSystem();
SysSQLSystemInfo                systemInfo =  SysSQLSystemInfo::construct();
container                       cRecId;
int                             i=1;
;

cRecId = conNull();
//Setup the connection needed to send the command to SQL Server.
userConnection = new Connection();
stmt = userConnection.createStatement();

//BP Deviation Documented
sql = "select RecId from [%1].[DBO].[%2] where %3 like '%%4%' and %5 = %6";

sql = strfmt(sql,
systemInfo.getloginDatabase(),
ReleaseUpdateDB::backendTableName(tablenum(TABLENAME)),
ReleaseUpdateDB::backendFieldName(tablenum(TABLENAME), fieldnum(TABLENAME,MEMOFIELDNAME)),
_searchText,
ReleaseUpdateDB::backendFieldName(tablenum(TABLENAME ), fieldnum(TABLENAME,MEMOFIELDNAME)),
sqlSystem.sqlLiteral(_table.DataAreaId));

//info(sql);
permission = new SqlStatementExecutePermission(sql);
permission.assert();

//BP Deviation Documented
sqlres = stmt.executeQuery(sql);

//Select queries record
while( sqlres.next())
{
cRecId = conIns(cRecId,i,sqlres.getInt64(1));
i++;
}
CodeAccessPermission::revertAssert();
return cRecId;

}

NOT: Yazıda belirtilen kodun, değiştirilmeden veya değiştirilerek, development/test/canlı ortamlarında kullanılması sonucu oluşabilecek olumlu/olumsuz durumlarda tüm sorumluluk kodu kullanan kişiye aittir.

Mesut BOZTAŞ

Dynamics AX ERP Danışmanı ve
İstanbul Ticaret Üni. Y.Lisans öğrencisi

İstanbul 2011

http://www.etg-it.com

Reklamlar
 
Yorum yapın

Yazan: 10/07/2011 in Geliştirme

 

Etiketler:

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

 
%d blogcu bunu beğendi: