<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="https://www.schweda.net/style_feed.css" ?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:atom="http://www.w3.org/2005/Atom"	
	xmlns:dc="http://purl.org/dc/elements/1.1/" > 
<channel>
    <title>schweda.net - Blog</title>
    <link>https://www.schweda.net/</link>
    <description>schweda.net - Blog - Blog-Beitraege</description>
    <language>de-at</language>
    <copyright>Copyright 2006-2026</copyright>
    <generator>schweda.net</generator>
    <managingEditor>heinz.schweda@schweda.net (Heinz Schweda)</managingEditor>
    <webMaster>heinz.schweda@schweda.net (Heinz Schweda)</webMaster>
    <category>Blog</category>
	<atom:link href="https://schweda.net/blog_rss.php?bid=461" rel="self" type="application/rss+xml" />
<item>
<title><![CDATA[AX 2012: Nützliche Funktionen rund um das Thema Finanzdimensionen]]></title>
<description><![CDATA[
<p>Wenn man in AX beispielsweise Finanzdimensionen aus einer externen Quelle verarbeiten soll, dann k&ouml;nnen die beiden folgenden Methoden m&ouml;glicherweise hilfreich sein.
</p>

<p>Die Erste Methode namens <strong>existDimension()</strong> pr&uuml;ft ob es die &uuml;bergebene, benannte Dimension in AX &uuml;berhaupt gibt und ob der &uuml;bergebene Dimensionswert ebenfalls g&uuml;ltig ist.
</p>

<div class="div_blog_axcode">boolean existDimension(str 255 _dimensionName, str 255 _dimensionValue)<br />
{<br />
&nbsp;&nbsp;&nbsp; boolean isValid = false;<br />
&nbsp;&nbsp;&nbsp; DimensionAttribute DimensionAttribute;<br />
&nbsp;&nbsp;&nbsp; DimensionAttributeValue DimensionAttributeValue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; DimensionAttribute = DimensionAttribute::findByName(_dimensionName);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; if(DimensionAttribute)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(DimensionAttribute, _dimensionValue);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(DimensionAttributeValue) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isValid = true;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isValid = checkFailed(strFmt(&quot;'%1' f&uuml;r Dimension '%2' nicht gefunden.&quot;, _dimensionValue, _dimensionName));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isValid = checkFailed(strFmt(&quot;Dimension '%1' unbekannt.&quot;, _dimensionName));&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return isValid;<br />
}
</div>

<p>Beispielaufruf: existDimension(&quot;Costcenter&quot;, &quot;3100&quot;);
</p>

<p>Die Zweite Methode namens<strong> existDimensionCombination()</strong> pr&uuml;ft, ob die Kombination des &uuml;bergebenen Hauptkontos und des &uuml;bergebenen Dimensionswertes g&uuml;ltig ist.
</p>

<div class="div_blog_axcode">boolean existDimensionCombination(str 255 _mainAccount, str 255 _dimensionName, str 255_dimensionValue)<br />
{<br />
&nbsp;&nbsp;&nbsp; boolean isValid = false;<br />
&nbsp;&nbsp;&nbsp; FinancialDimensionValidationService FinancialDimensionValidationService;<br />
&nbsp;&nbsp;&nbsp; ledgerAccountValidationContract ledgerAccountValidationContract;<br />
&nbsp;&nbsp;&nbsp; ledgerAccountContract ledgerAccountContract;<br />
&nbsp;&nbsp;&nbsp; dimensionAttributeValueContract dimensionAttributeValueContract;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; FinancialDimensionValidationService = new FinancialDimensionValidationService();<br />
<br />
&nbsp;&nbsp;&nbsp; ledgerAccountValidationContract = new LedgerAccountValidationContract();<br />
&nbsp;&nbsp;&nbsp; ledgerAccountContract = new LedgerAccountContract();<br />
&nbsp;&nbsp;&nbsp; dimensionAttributeValueContract = new DimensionAttributeValueContract();<br />
&nbsp;&nbsp;&nbsp; ledgerAccountContract.parmMainAccount(_mainAccount);<br />
&nbsp;&nbsp;&nbsp; ledgerAccountContract.parmValues(new List(Types::Class));<br />
&nbsp;&nbsp;&nbsp; dimensionAttributeValueContract.parmName(_dimensionName);<br />
&nbsp;&nbsp;&nbsp; dimensionAttributeValueContract.parmValue(_dimensionValue);<br />
&nbsp;&nbsp;&nbsp; ledgerAccountContract.parmValues().addEnd(dimensionAttributeValueContract);<br />
&nbsp;&nbsp;&nbsp; ledgerAccountValidationContract.parmLedgerAccount(ledgerAccountContract);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; isValid = FinancialDimensionValidationService.validateLedgerAccount(ledgerAccountValidationContract);&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; if( !isValid)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error(strFmt(&quot;Ung&uuml;ltige Kombination: %1 - %2: %3&quot;, _mainAccount, _dimensionName, _dimensionValue));&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; return isValid;<br />
}
</div>

<p>Beispielaufruf: existDimensionCombination(&quot;60000&quot;, &quot;Costcenter&quot;, &quot;3100&quot;);
</p>

<p>In der realen AX-Entwickler-Welt wird eine solche Pr&uuml;fung vermutlich etwas komplexer werden und wahrscheinlich auch eine Kombination beider Methoden notwendig sein.
</p>]]></description>
<category>Microsoft Dynamics AX (Axapta)</category>
<pubDate>Tue, 16 Apr 2013 21:27:00 +0200</pubDate>
<link>https://www.schweda.net/blog_ax.php?bid=461</link>
<comments>https://www.schweda.net/blog_ax.php?bid=461</comments>
<guid isPermaLink="true">https://www.schweda.net/blog_ax.php?bid=461</guid>
<author>heinz.schweda@schweda.net (Heinz Schweda)</author>
<wfw:commentRss>https://www.schweda.net/blog_ax.php?bid=461</wfw:commentRss>
</item>
</channel>
</rss>	
