<?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://www.schweda.net/blog_rss.php?bid=707" rel="self" type="application/rss+xml" />
<item>
<title><![CDATA[SysOperation-Framework: Finanzdimension als Parameter anbieten]]></title>
<description><![CDATA[
<p>Um in einer Funktion, die &uuml;ber das SysOperation-Framework umgesetzt wurde, dem Benutzer einen Finanzdimensionswert einer bestimmten Dimension als Parameter anzubieten, kann man sich des folgenden Codes bedienen:
</p>


<h2>DataContract
</h2>


<pre class="pre_blog_axcode">
[
    DataContractAttribute
    ,SysOperationContractProcessingAttribute(classStr(SysOperationTemplateUIBuilder))
]
internal final class SysOperationTemplateDC implements SysOperationValidatable
{
    private DimensionValue myDimensionValue;

    [
        DataMember,
        SysOperationLabelAttribute(literalStr(&quot;@SYS105870&quot;)), 
        SysOperationDisplayOrderAttribute(&#39;3&#39;)
    ]
    public DimensionValue parmMyDimensionValue(DimensionValue _dimensionValue = myDimensionValue)
    {
        myDimensionValue = _dimensionValue;
        return myDimensionValue;
    }

}
</pre>


<h2>UI-Builder
</h2>


<pre class="pre_blog_axcode">
internal final class SysOperationTemplateUIBuilder extends SysOperationAutomaticUIBuilder
{
    private DialogField myDimensionValueField;

    public void postBuild()
    {
        super();

        myDimensionValueField= this.bindInfo().getDialogField(
            this.dataContractObject(), 
            methodStr(SysOperationTemplateDC, parmMyDimensionValue));

        if (myDimensionValueField)
        {
            myDimensionValueField.lookupButton(FormLookupButton::Always);
        }
    }

    public void postRun()
    {
        super();
    
        // register overrides for form control events
        myDimensionValueField.registerOverrideMethod(
            methodStr(FormStringControl, lookup), 
            methodStr(SysOperationTemplateUIBuilder, lookupMyDimension), 
            this);
    }

    public void lookupMyDimension(FormStringControl _dimensionValueControl)
    {
        Name dimensionAttributeName = &quot;CostCenter&quot;;

        if (_dimensionValueControl != null)
        {
            // Construct arguments for the custom lookup
            Args args = new Args();
            args.name(formStr(DimensionLookup));
            args.lookupValue(_dimensionValueControl.text());
            args.caller(_dimensionValueControl);

            DimensionAttribute dimensionAttribute = DimensionAttribute::findByLocalizedName(
                dimensionAttributeName, 
                false, 
                SystemParameters::find().SystemLanguageId);

            args.lookupField(dimensionAttribute.ValueAttribute);
            args.record(dimensionAttribute);

            // Do the lookup
            FormRun lookupFormRun = classFactory.formRunClass(args);
            lookupFormRun.init();

            _dimensionValueControl.performFormLookup(lookupFormRun);
        }
    }

}

</pre>


<p>&nbsp;
</p>]]></description>
<category>Microsoft Dynamics 365 for Finance and Operations</category>
<pubDate>Wed, 25 Jan 2023 13:38:00 +0100</pubDate>
<link>https://www.schweda.net/blog_d365.php?bid=707</link>
<comments>https://www.schweda.net/blog_d365.php?bid=707</comments>
<guid isPermaLink="true">https://www.schweda.net/blog_d365.php?bid=707</guid>
<author>heinz.schweda@schweda.net (Heinz Schweda)</author>
<wfw:commentRss>https://www.schweda.net/blog_d365.php?bid=707</wfw:commentRss>
</item>
</channel>
</rss>	
