<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Akın Onur Turan</title>
	<atom:link href="http://akin.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://akin.me</link>
	<description>değişik konular üzerine kişisel notlar</description>
	<lastBuildDate>Sun, 15 Apr 2012 18:21:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>X++, .NET Framework alt yapısını mı kullanacak?</title>
		<link>http://akin.me/x-net-framework-alt-yapisini-mi-kullanacak/</link>
		<comments>http://akin.me/x-net-framework-alt-yapisini-mi-kullanacak/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 18:21:20 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[Axapta Hakkında Bilmeniz Gerekenler]]></category>
		<category><![CDATA[Microsoft Dynamics Axapta]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[microsoft dynamics ax]]></category>
		<category><![CDATA[msil]]></category>

		<guid isPermaLink="false">http://akin.me/?p=933</guid>
		<description><![CDATA[Microsoft’un ERP sektörü için yatırım yaptığı Axapta, bildiğiniz üzere X++ dilini kullanıyor fakat Microsoft, Dynamics Ax 2009 ve 2012′de (giderek artan oranda) bazı işlemleri önce Visual Studio’da geliştirtiyor daha sonra geliştirilen kodları Axapta’ya aldırıyor. Bu durumda akla bazı sorular geliyor. “Acaba Microsoft ileride X++’ı .NET çatısı altına mı alacak?” Bu sorunun üzerine gidip bazı araştırmalar [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft’un ERP sektörü için yatırım yaptığı Axapta, bildiğiniz üzere X++ dilini kullanıyor fakat Microsoft, Dynamics Ax 2009 ve 2012′de (giderek artan oranda) bazı işlemleri önce Visual Studio’da geliştirtiyor daha sonra geliştirilen kodları Axapta’ya aldırıyor. Bu durumda akla bazı sorular geliyor. “Acaba Microsoft ileride X++’ı .NET çatısı altına mı alacak?”</p>
<p>Bu sorunun üzerine gidip bazı araştırmalar yaptığımda ise yakın gelecekte Axapta’nın development kısmının Visual Studio’ya gömüleceğini öğrendim fakat bu bilgi şu an için sadece söylentiden ibaret.</p>
<p>Biraz daha araştırdığımda ise aslında bunun bir söylenti olmadığını, muhtemelen bir kaç sene içerisinde X++’ı .NET tabanlı olarak Visual Stuio’da geliştireceğimizi anladım. Nereden bu kanıya vardığımı merak ederseniz, şöyle söyleyeyim, elbette bunlar benim bazı bilgileri yorumlamama dayanıyor.</p>
<p>Yalnız,</p>
<p>Bu bilgiler hakkında birşeyler söylemek istiyorum. Bu yorumuma neden olan bilgiler X++’ın bir sonraki sürümünü geliştiren kişilerin röportajlarına dayanıyor. Örneğin progamın başı Peter Villadsen, X++’ı MSIL’e çevirmek için uğraştıklarını belirtti.</p>
<p>MSIL (Microsoft Intermediate Language) bildiğiniz gibi .NET Framework’ü ile yazılan kodların derlenmesi sonucu çevrildiği dildir. Kısaca .Net Framework ile çevrilen diller makina diline değil de MSIL’e çevrilir. Bu sayede .NET Framework alt yapısı kullanan tüm diller ortak bir platform üzerinde birleşmiş oluyor. Birbirlerine çevrimleri mümkün kılınıyor.</p>
<p>Fazla uzatmadan,</p>
<p>X++’ın MSIL diline çevrilmesi, onun .NET Framework altyapısını kullanacağı anlamına geliyor fakat belirtilene göre bu işlemin gerçekleşmesi sonucu ciddi performans sıkıntıları ortaya çıkıyormuş. Bu durumda x++’ın hemen geçemeyeceğini ama zamanla .NET altyapısı üzerine oturacağını söyleyebiliriz.</p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/x-net-framework-alt-yapisini-mi-kullanacak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Axapta’da Deadlock ve retry komutu</title>
		<link>http://akin.me/axaptada-deadlock-ve-retry-komutu/</link>
		<comments>http://akin.me/axaptada-deadlock-ve-retry-komutu/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 18:20:29 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[Axapta Hakkında Bilmeniz Gerekenler]]></category>
		<category><![CDATA[Microsoft Dynamics Axapta]]></category>

		<guid isPermaLink="false">http://akin.me/?p=931</guid>
		<description><![CDATA[Axapta’da deadlock olaylarının yakalanması oldukça önemlidir. Geliştirdiğiniz kodlarda deadlockları minimuma indirmek için bazı taktikler olsa da, oldukça yoğun kullanılan sistemlerde deadlock olması muhtemeldir. Genel olarak deadlock, iki ayrı transaction’ın birbirlerini kitlemesidir. Örneğin, 1. transaction CustTable’ı kitlemiş ve aynı zamanda VendTable’ı da kitlemek istesin. 2. transaction ise VendTable’ı kitlediği halde CustTable’ı da kitlemek istesin. Bu durumda [...]]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://akin.me/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCSharp.js"></script>
<p>Axapta’da deadlock olaylarının yakalanması oldukça önemlidir. Geliştirdiğiniz kodlarda deadlockları minimuma indirmek için bazı taktikler olsa da, oldukça yoğun kullanılan sistemlerde deadlock olması muhtemeldir.</p>
<p>Genel olarak deadlock, iki ayrı transaction’ın birbirlerini kitlemesidir.</p>
<p>Örneğin,</p>
<p>1. transaction CustTable’ı kitlemiş ve aynı zamanda VendTable’ı da kitlemek istesin.</p>
<p>2. transaction ise VendTable’ı kitlediği halde CustTable’ı da kitlemek istesin.</p>
<p>Bu durumda transactionlar birbirlerini bekleyip duracaklardır. Database engine, deadlock’u algılayıp kendi kuralları neticesinde bir transaction’ı seçecek ve onu düşürecektir. Bu durumda düğüm çözülmüş olacaktır.</p>
<p>Peki database engine’in düşürdüğü transaction ya sizinki ise? O zaman bu olayı yakalamalı ve tekrar denemelisiniz.</p>
<p>Bu durumda aşağıdaki kod sizin işinizi görecektir.</p>
<p><pre class="brush: csharp">	Try
	{
	    //transaction komutlari
	}
	catch (exception::deadlock)
	{
	    retry;
	}</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/axaptada-deadlock-ve-retry-komutu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Axapta QueryBuildDataSource’ta String Empty/Null Kontrolü</title>
		<link>http://akin.me/axapta-querybuilddatasourceta-string-emptynull-kontrolu/</link>
		<comments>http://akin.me/axapta-querybuilddatasourceta-string-emptynull-kontrolu/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 18:19:13 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[Axapta Hakkında Bilmeniz Gerekenler]]></category>
		<category><![CDATA[Microsoft Dynamics Ax For Retail]]></category>
		<category><![CDATA[Microsoft Dynamics Axapta]]></category>
		<category><![CDATA[axapta string]]></category>
		<category><![CDATA[axapta string null]]></category>
		<category><![CDATA[dynamics ax]]></category>
		<category><![CDATA[sysquery]]></category>

		<guid isPermaLink="false">http://akin.me/?p=929</guid>
		<description><![CDATA[Microsoft Dynamics Ax’ta en çok uğraşacağınız noktalardan bir tanesi şüphesiz querylerdir. Çoğu zaman da kayıtlardaki null değerleri karşılaştırmanız gerekecektir. Daha önce tarih alanların null değerlerinin nasıl kontrol edileceğini yazmıştım. Bu yazımda da string değerlerin null olup olmadıklarını nasıl anlayacağınızı gösteriyorum. SysQuery::valueEmptyString() methodu ile querylerde string değerlerin boş olup olmadığını kontrol edebilirsiniz. Bu methodu joblara yazıp [...]]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://akin.me/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCSharp.js"></script>
<p>Microsoft Dynamics Ax’ta en çok uğraşacağınız noktalardan bir tanesi şüphesiz querylerdir. Çoğu zaman da kayıtlardaki null değerleri karşılaştırmanız gerekecektir. Daha önce tarih alanların null değerlerinin nasıl kontrol edileceğini yazmıştım. Bu yazımda da string değerlerin null olup olmadıklarını nasıl anlayacağınızı gösteriyorum.</p>
<p>SysQuery::valueEmptyString() methodu ile querylerde string değerlerin boş olup olmadığını kontrol edebilirsiniz. Bu methodu joblara yazıp değerine bakmak istediğiniz de ise “” (çift tırnak) değeri geliyor. Aslında bu method yerine “” ile de string değerleri kontrol edebilirsiniz. Aşağıdaki kodlarda ise örnek kullanım mevcut.</p>
<p><pre class="brush: csharp">	QueryBuildDataSource qbds;
	;
	qbds =this.query().dataSourceTable(tablenum(RBOTransactionTable));
	qbds.addRange(fieldnum(RBOTransactionTable,statementId))
	.value(SysQuery::valueEmptyString());</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/axapta-querybuilddatasourceta-string-emptynull-kontrolu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Axaptada Regular Expression ve Sayı Alanları</title>
		<link>http://akin.me/axaptada-regular-expression-ve-sayi-alanlari/</link>
		<comments>http://akin.me/axaptada-regular-expression-ve-sayi-alanlari/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 18:05:19 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[Enterprise Portal]]></category>
		<category><![CDATA[Microsoft Dynamics Axapta]]></category>
		<category><![CDATA[axapta sayı alanı]]></category>
		<category><![CDATA[dynamics ax]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[sayı kontrolü]]></category>

		<guid isPermaLink="false">http://akin.me/?p=927</guid>
		<description><![CDATA[Axapta içinde veya Enterprise portal’de müşteri bilgileri için almanız gereken verilerden bir tanesi de telefon numarasıdır. Axapta’nın kendi içinde, telefon numaraları için, sadece sayı girişine izin veren bir kontrol bulunmuyor fakat kullanabileceğiniz birkaç yöntem var. Bunlardan bir tanesine Axapta’da Classes\TaxVATNumValidate\isNumeric yolundan ulaşabilirsiniz. Methodu inceleyerek oradaki yöntemi kullanabilirsiniz. Diğer bir yöntem ise string değeri isInteger methodu [...]]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://akin.me/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCSharp.js"></script>
<p>Axapta içinde veya Enterprise portal’de müşteri bilgileri için almanız gereken verilerden bir tanesi de telefon numarasıdır.</p>
<p>Axapta’nın kendi içinde, telefon numaraları için, sadece sayı girişine izin veren bir kontrol bulunmuyor fakat kullanabileceğiniz birkaç yöntem var.</p>
<p>Bunlardan bir tanesine Axapta’da Classes\TaxVATNumValidate\isNumeric yolundan ulaşabilirsiniz. Methodu inceleyerek oradaki yöntemi kullanabilirsiniz. Diğer bir yöntem ise string değeri isInteger methodu ile kontrol edip, sayı olup olmadığına bakabilirsiniz.</p>
<p>Benim göstermek istediğim yöntem ise Regular Expression kullanarak girişleri validatewrite veya validatefield methodunda kontrol etmek.</p>
<p>Regular expressions, .net’te çalıştığım zaman, sıkça kullandığım yöntemlerden bir tanesi. Axapta’da fazla ihtiyacım olmasa da kullanmam gereken yerler çıkıyor.</p>
<p>Aşağı kodu inceleyip nasıl kullanıldığını anlayabilirsiniz.</p>
<p><pre class="brush: csharp">TextBuffer txt = new TextBuffer();
	str phone = &quot;AkinDeneme55544&quot;;
	;
	 
	txt.setText(phone);
	txt.regularExpressions(true);
	 
	if (!txt.find(&quot;^[0-9]+$&quot;))
	{
	    error (strfmt(&quot;Telefon numarasini kontrol ediniz.&quot;));
	}</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/axaptada-regular-expression-ve-sayi-alanlari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Axapta’da Group By kullanımı</title>
		<link>http://akin.me/axaptada-group-by-kullanimi/</link>
		<comments>http://akin.me/axaptada-group-by-kullanimi/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 18:03:11 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[Axapta Hakkında Bilmeniz Gerekenler]]></category>
		<category><![CDATA[Microsoft Dynamics Axapta]]></category>
		<category><![CDATA[axapta group by]]></category>
		<category><![CDATA[axapta select]]></category>
		<category><![CDATA[group by kullanımı]]></category>
		<category><![CDATA[microsoft dynamics ax]]></category>

		<guid isPermaLink="false">http://akin.me/?p=925</guid>
		<description><![CDATA[Axapta’da group by kullanımı oldukça basittir. Group by bir çok farklı açıdan kullanılabiliyor. Axapta’da group by olarak belirttiğiniz alanları select ile belirlemenize gerek yok. Group by daki alanlar select olarak seçilecektir. Somut hale getirecek olursam aşağıdaki iki kod bloğuda aynı işi yapacaktır. 1: -------------------------------------------- while select salesTable group by CustAccount, SalesId { info(strfmt(&#34;Musteri: %1 - [...]]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://akin.me/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCSharp.js"></script>
<p>Axapta’da group by kullanımı oldukça basittir. Group by bir çok farklı açıdan kullanılabiliyor. Axapta’da group by olarak belirttiğiniz alanları select ile belirlemenize gerek yok. Group by daki alanlar select olarak seçilecektir. Somut hale getirecek olursam aşağıdaki iki kod bloğuda aynı işi yapacaktır.</p>
<p><pre class="brush: csharp">1:
	--------------------------------------------
	    while
	    select  salesTable
	    group by CustAccount, SalesId
	    {
	        info(strfmt(&quot;Musteri: %1 - Siparis No: %2&quot;,salesTable.CustAccount,salesTable.SalesId));
	    }
	--------------------------------------------
2:
	    while
	    select CustAccount, SalesId from  salesTable
	    group by CustAccount, SalesId
	    {
	        info(strfmt(&quot;Musteri: %1 - Siparis No: %2&quot;,salesTable.CustAccount,salesTable.SalesId));
	    }</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/axaptada-group-by-kullanimi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Axapta Global::strSplit Fonksiyonunun Kullanımı</title>
		<link>http://akin.me/axapta-globalstrsplit-fonksiyonunun-kullanimi/</link>
		<comments>http://akin.me/axapta-globalstrsplit-fonksiyonunun-kullanimi/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 18:01:14 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[Axapta Hakkında Bilmeniz Gerekenler]]></category>
		<category><![CDATA[Microsoft Dynamics Axapta]]></category>
		<category><![CDATA[global::strsplit]]></category>
		<category><![CDATA[split fonskiyonu]]></category>
		<category><![CDATA[strsplit]]></category>

		<guid isPermaLink="false">http://akin.me/?p=923</guid>
		<description><![CDATA[Axapta üzerinde proje geliştirirken bazı noktalarda string fonksiyonlarını kullanmanız gerekecektir. Aslında .net framework split fonksiyonlarını Axapta üzerinde kullanabileceğiniz bir proje internette olsa da (daha sonra paylaşmayı planlıyorum) Axapta içindeki split fonksiyonunun nasıl kullanıldığını göstermek istiyorum. Global::strSplit fonksiyonu ile bölünecek texti bir listeye attıktan sonra o listeyi de bir ListIterator’a atmanız gerekir. Daha sonra ise split [...]]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://akin.me/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCSharp.js"></script>
<p>Axapta üzerinde proje geliştirirken bazı noktalarda string fonksiyonlarını kullanmanız gerekecektir. Aslında .net framework split fonksiyonlarını Axapta üzerinde kullanabileceğiniz bir proje internette olsa da (daha sonra paylaşmayı planlıyorum) Axapta içindeki split fonksiyonunun nasıl kullanıldığını göstermek istiyorum.</p>
<p>Global::strSplit fonksiyonu ile bölünecek texti bir listeye attıktan sonra o listeyi de bir ListIterator’a atmanız gerekir. Daha sonra ise split etmek istediğiniz değerlere ulaşabilirsiniz.</p>
<p><pre class="brush: csharp">str ret;
	List list = new List(Types::String);
	container       packedList;
	ListIterator    iterator;
	str first,last;
	;
	 
	list = Global::strSplit(_mainText,_delimiter);
	 
	iterator = new ListIterator(list);
	while(iterator.more())
	{
	    packedList += iterator.value();
	    iterator.next();
	}
	 
	first = conpeek(packedList,1);
	last = conpeek(packedList,2);</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/axapta-globalstrsplit-fonksiyonunun-kullanimi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Table validatewrite() methodu</title>
		<link>http://akin.me/table-validatewrite-methodu/</link>
		<comments>http://akin.me/table-validatewrite-methodu/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 17:59:26 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[Microsoft Dynamics Axapta]]></category>
		<category><![CDATA[axapta validatewrite methodu]]></category>
		<category><![CDATA[validatefield]]></category>
		<category><![CDATA[validatewrite]]></category>

		<guid isPermaLink="false">http://akin.me/?p=920</guid>
		<description><![CDATA[Axapta’da tablolara birşeyler yazarken, bu kayıtların diğer tablolarla ve iş modelinizle uyumlu olması gerekir. Bu durumda kayıt esnasında girilen kayıtların tutarlı olup olmadığı kontrol edilir. Bu kontrol içinde validewrite() methodu veya validatefield methodu override edilir. Validatewrite ile validatefield methodları arasında ki fark ise, validatefield alan alan kontrol yaparken, validatewrite tüm alanları kontrol eder. Bu methodlarda [...]]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://akin.me/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCSharp.js"></script>
<p>Axapta’da tablolara birşeyler yazarken, bu kayıtların diğer tablolarla ve iş modelinizle uyumlu olması gerekir. Bu durumda kayıt esnasında girilen kayıtların tutarlı olup olmadığı kontrol edilir. Bu kontrol içinde validewrite() methodu veya validatefield methodu override edilir.<br />
Validatewrite ile validatefield methodları arasında ki fark ise, validatefield alan alan kontrol yaparken, validatewrite tüm alanları kontrol eder. Bu methodlarda kaydedilmek üzere olan alanlara this. ile ulaşabilirsiniz. Aşağıdaki kod bloğunu incelemenizi tavsiye ederim.</p>
<p><pre class="brush: csharp">public boolean validateWrite()
	{
	    boolean ret;
	 
	    ret = super();
	 
	    if(this.Field1&gt;10)
	    {
	        ret=false;
	    }
	     
	    return ret;
	}</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/table-validatewrite-methodu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Axapta Action Menu Item kullanarak Enterprise Portal’de yönlendirme sağlamak</title>
		<link>http://akin.me/axapta-action-menu-item-kullanarak-enterprise-portalde-yonlendirme-saglamak/</link>
		<comments>http://akin.me/axapta-action-menu-item-kullanarak-enterprise-portalde-yonlendirme-saglamak/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 17:56:01 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[axapta]]></category>
		<category><![CDATA[Enterprise Portal]]></category>
		<category><![CDATA[Microsoft Dynamics Axapta]]></category>
		<category><![CDATA[actionmenuitem]]></category>
		<category><![CDATA[enterprise portal]]></category>
		<category><![CDATA[ep]]></category>

		<guid isPermaLink="false">http://akin.me/?p=915</guid>
		<description><![CDATA[Enterprise Portal’de bir işlevi geliştirmeye çalışırken Axapta’da yazdığınız class’ları çağırmanız gerekebilir. Bu işlevi gerçekleştirmek için birden fazla yönteminiz var. Direk Bussiness Connector ile çağırabileceğiniz gibi, Proxy kullanarak da çağırabilirsiniz. Bu yazıda ise Action Url Menu Item ile bir işlevi gerçekleştirdikten sonra yönlendirmenin nasıl yapılacağını göstereceğim. Aşağıdaki kodu kullanarak, Axgridview’den seçmiş olduğunuz satırın ActionMenuItem’a parametre olarak [...]]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://akin.me/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCSharp.js"></script>
<p>Enterprise Portal’de bir işlevi geliştirmeye çalışırken Axapta’da yazdığınız class’ları çağırmanız gerekebilir. Bu işlevi gerçekleştirmek için birden fazla yönteminiz var. Direk Bussiness Connector ile çağırabileceğiniz gibi, Proxy kullanarak da çağırabilirsiniz. Bu yazıda ise Action Url Menu Item ile bir işlevi gerçekleştirdikten sonra yönlendirmenin nasıl yapılacağını göstereceğim.</p>
<p>Aşağıdaki kodu kullanarak, Axgridview’den seçmiş olduğunuz satırın ActionMenuItem’a parametre olarak gitmesini sağlayabilirsiniz.</p>
<p><pre class="brush: csharp">           protected void Button1_Click(object sender, EventArgs e)
	   {
	       DataSetViewRow dsvr;
	 
	       AxActionMenuItem projMenuItem = new AxActionMenuItem(&quot;PMProjTimesheetView&quot;);
	       Proxy.Args args = new Proxy.Args(this.AxSession.AxaptaAdapter);
	        
	       dsvr =this.AxDataSourceProjListTmp.GetDataSet().DataSetViews[&quot;ProjTable&quot;].GetCurrent();
	       IAxaptaRecordAdapter projTable = dsvr.GetRecord();
	 
	        
	       args.record = projTable;
	       projMenuItem.Run(args);
	   }</pre></p>
<p>ActionMenuItem’a ProjTable’da seçili kaydı gönderdik. Aşağıdaki kodu ise ActionMenuItem’ın ilişkili olduğu class’ta kullanabilirsiniz.</p>
<p><pre class="brush: csharp">           protected void Button1_Click(object sender, EventArgs e)
	   {
	       DataSetViewRow dsvr;
	 
	       AxActionMenuItem projMenuItem = new AxActionMenuItem(&quot;PMProjTimesheetView&quot;);
	       Proxy.Args args = new Proxy.Args(this.AxSession.AxaptaAdapter);
	        
	       dsvr =this.AxDataSourceProjListTmp.GetDataSet().DataSetViews[&quot;ProjTable&quot;].GetCurrent();
	       IAxaptaRecordAdapter projTable = dsvr.GetRecord();
	 
	        
	       args.record = projTable;
	       projMenuItem.Run(args);
	   }</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/axapta-action-menu-item-kullanarak-enterprise-portalde-yonlendirme-saglamak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enterprise Portal’da AxGroup Lookup’ını Filtreleme</title>
		<link>http://akin.me/enterprise-portalda-axgroup-lookupini-filtreleme/</link>
		<comments>http://akin.me/enterprise-portalda-axgroup-lookupini-filtreleme/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 17:51:35 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[Enterprise Portal]]></category>
		<category><![CDATA[Microsoft Dynamics Axapta]]></category>
		<category><![CDATA[axform]]></category>
		<category><![CDATA[axgroup]]></category>
		<category><![CDATA[enterprise portal]]></category>
		<category><![CDATA[ep]]></category>
		<category><![CDATA[loopup]]></category>

		<guid isPermaLink="false">http://akin.me/?p=913</guid>
		<description><![CDATA[nterprise Portal’da bildiğiniz gibi formları oluşturmak için sayfaya öncelikle Datasource daha sonra Axform ve o Axform’un içine Axgroup eklersiniz. Daha sonra Axgroup’ın alanlarını seçerek bu formun güncelleme için mi yoksa yeni kayıt için mi kullanılacağını belirlersiniz. Belirlediğiniz alanlarda bir Lookup var ise, sayfayı publish ettiğinizde bu lookup değeri dropdownlist olarak gözükecek ve siz değer seçmek [...]]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://akin.me/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCSharp.js"></script>
<p>nterprise Portal’da bildiğiniz gibi formları oluşturmak için sayfaya öncelikle Datasource daha sonra Axform ve o Axform’un içine Axgroup eklersiniz.</p>
<p>Daha sonra Axgroup’ın alanlarını seçerek bu formun güncelleme için mi yoksa yeni kayıt için mi kullanılacağını belirlersiniz.</p>
<p>Belirlediğiniz alanlarda bir Lookup var ise, sayfayı publish ettiğinizde bu lookup değeri dropdownlist olarak gözükecek ve siz değer seçmek için tıkladığınızda ise postback olup ajax ile gerçek değerleri getirecektir.</p>
<p>Bu gelen değerler aslında o EDT’deki tüm satırlardır. Bir noktada bu değerleri filtrelemek ve sayfaya göre getirmek isterseniz aşağıdaki adımları ve kodları kullanabilirsiniz..</p>
<p>Önce, Axform’un OnLookup özelliğine yazacağımız methodun ismini veriyoruz: OnLookup=”MainContact_Lookup”&gt;</p>
<p>Daha sonra codebehind’a ise aşağıdaki kodu eklemeniz yeterli.</p>
<p><pre class="brush: csharp">protected void MainContact_Lookup(object sender, AxLookupEventArgs e)
{

try
{
AxLookup lookup = e.LookupControl;
int _OBSRBOEPIncomeExpenseRequestTableNum = TableMetadata.TableNum(this.AxSession, &quot;EmplTable&quot;);

using (Proxy.SysDataSetBuilder sysDataSetBuilder = Microsoft.Dynamics.Framework.BusinessConnector.Proxy.SysDataSetBuilder.constructLookupDataSet(this.AxSession.AxaptaAdapter, TableMetadata.TableNum(this.AxSession, &quot;EmplTable&quot;)))
{
lookup.LookupDataSet = new DataSet(this.AxSession, sysDataSetBuilder.toDataSet());
}

lookup.LookupDataSet.Init();

using (Proxy.Query query = lookup.LookupDataSet.DataSetViews[0].MasterDataSource.query())
{
using (Proxy.QueryBuildDataSource datasource = query.dataSourceName(&quot;EmplTable&quot;))
{
TableMetadata handHeldMetaData = MetadataCache.GetTableMetadata(this.AxSession, _OBSRBOEPIncomeExpenseRequestTableNum);
TableDataFieldMetadata handHeldField = (TableDataFieldMetadata)handHeldMetaData.Fields.GetByName(&quot;EmplId&quot;);


using (Proxy.QueryBuildRange range = datasource.addRange(handHeldField.FieldId))
{
range.status = (int)Proxy.RangeStatus.Hidden;
range.value = &quot;0000&quot;; // filtrelenmek istenen deger
}

}
}
}
catch (Exception ex)
{
InfoWrite(&quot;Lookup olusturulurken hata olustu: &quot; + ex.Message);
}

}</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/enterprise-portalda-axgroup-lookupini-filtreleme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enterprise Portal’da Mevcut Context İle Sayfa Yönlendirmesi</title>
		<link>http://akin.me/enterprise-portalda-mevcut-context-ile-sayfa-yonlendirmesi/</link>
		<comments>http://akin.me/enterprise-portalda-mevcut-context-ile-sayfa-yonlendirmesi/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 17:47:44 +0000</pubDate>
		<dc:creator>akın</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[Enterprise Portal]]></category>

		<guid isPermaLink="false">http://akin.me/?p=911</guid>
		<description><![CDATA[Enterprise Portal’de bazen bir kaç adım içeren işlemler yapmanız gerekebilir. Bu durumda mevcut sayfada kayıt ettiğiniz veya kullandığınız verileri diğer sayfaya da aktarmanız gerekir. Verileri diğer sayfaya aktarabilmek için öncelikle Axapta tarafında Web Url Menu Item oluşturmanız ve bu menünün hangi sayafaya yönleneceğiniz belirtmeniz gerekir. Daha sonra Visual Studio’da code behind’da aşağıdaki kodu kullanmanız yeterli. [...]]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://akin.me/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCSharp.js"></script>
<p>Enterprise Portal’de bazen bir kaç adım içeren işlemler yapmanız gerekebilir. Bu durumda mevcut sayfada kayıt ettiğiniz veya kullandığınız verileri diğer sayfaya da aktarmanız gerekir.</p>
<p>Verileri diğer sayfaya aktarabilmek için öncelikle Axapta tarafında Web Url Menu Item oluşturmanız ve bu menünün hangi sayafaya yönleneceğiniz belirtmeniz gerekir.</p>
<p>Daha sonra Visual Studio’da code behind’da aşağıdaki kodu kullanmanız yeterli.</p>
<p><pre class="brush: csharp">AxTableContext context;
AxUrlMenuItem menuItem;

// Dataset'te mevcut olan satir alinir.
row = AxDataSource1.GetDataSet().DataSetViews[&quot;smmBusRelTable&quot;].GetCurrent();
	 
// Mevcut datasource satirindan context nesnesi yaratilir.
context = AxTableContext.Create(row.GetDefaultTableDataKey(row.DataSetView.Metadata.RootDataSource));
	 
// Sayfayi acmak icin AxUrlMenuItem olusturulur.
menuItem = new AxUrlMenuItem(&quot;OBSBrAddDeneme&quot;);

// Olusturulan menu item'a context belirtilir.
menuItem.MenuItemContext = context;

// ve sayfa yonlendirmesi yapilir.
Response.Redirect(menuItem.Url.OriginalString);</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://akin.me/enterprise-portalda-mevcut-context-ile-sayfa-yonlendirmesi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

