{"id":2355,"date":"2021-03-11T14:15:08","date_gmt":"2021-03-11T11:15:08","guid":{"rendered":"https:\/\/guvensahin.com\/?p=2355"},"modified":"2021-03-11T16:28:04","modified_gmt":"2021-03-11T13:28:04","slug":"dynamics-365-fo-enum-etiketlerine-sql-sorgusu-ile-erismek","status":"publish","type":"post","link":"https:\/\/guvensahin.com\/tr\/dynamics-365-fo-enum-etiketlerine-sql-sorgusu-ile-erismek\/","title":{"rendered":"Dynamics 365 F&#038;O &#8211; Enum Etiketlerine SQL Sorgusu ile Eri\u015fmek"},"content":{"rendered":"\n<p>Daha \u00f6nce <a href=\"https:\/\/guvensahin.com\/tr\/dynamics-ax-enum-etiketlerine-sqlden-erismek\/\">bu yaz\u0131mda<\/a> Dynamics AX 2012 de enum etiketlerine SQL \u00fczerinden nas\u0131l ula\u015fabilece\u011fimizden bahsetmi\u015ftim. Bu yaz\u0131da ayn\u0131 i\u015flemi D365 F&amp;O&#8217;da nas\u0131l yapar\u0131z onu anlataca\u011f\u0131m. Yapaca\u011f\u0131m\u0131z bu i\u015flem ile enum&#8217;\u0131n de\u011ferlerini ve etiketlerini bir tabloya yazaca\u011f\u0131z. B\u00f6ylece SQL sorgular\u0131nda enum etiketlerini \u00e7a\u011f\u0131rabilece\u011fiz. Bu sayede:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Data entity&#8217;lerde enum&#8217;\u0131n etiketini sabit bir dil kodunda d\u00f6nebiliriz.<\/li><li>Union query kullanan view&#8217;lar\u0131n\u0131z varsa birbirinden farkl\u0131 enumlar\u0131n oldu\u011fu alanlar\u0131 normalde birle\u015ftiremessiniz. Fakat enum&#8217;\u0131n string etiketlerini union ile tek kolonda birle\u015ftirip g\u00f6sterebiliriz.<\/li><\/ul>\n\n\n\n<p>D365 F&amp;O da standart olarak gelen <strong>SRSAnalysisEnums<\/strong> isimli bir tablo bulunuyor. Bu tabloda baz\u0131 sistem enum&#8217;lar\u0131n\u0131n etiketleri mevcut. Fakat i\u00e7inde her enum yok. G\u00f6sterece\u011fim y\u00f6ntem ile istedi\u011finiz herhangi bir enum&#8217;\u0131 istedi\u011finiz dil kodu baz\u0131nda bu tabloya ekleyece\u011fiz.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nas\u0131l Yap\u0131l\u0131r<\/h2>\n\n\n\n<p>A\u015fa\u011f\u0131daki s\u0131n\u0131f\u0131 kendi projenize ekleyin ve \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Created by: G\u00fcven \u015eahin - guvensahin.com\nclass GvnEnumLabelGenerator extends RunBaseBatch\n{\n    DialogField dlgEnumName;\n    DialogField dlgLanguageId;\n\n    SRSEnumName enumName;\n    LanguageId  languageId;\n\n\n    public Object dialog()\n    {\n        Dialog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dialog = super();\n   \n        dialog.caption(GvnEnumLabelGenerator::description());\n        dlgEnumName = dialog.addField(extendedTypeStr(SRSEnumName));\n        dlgLanguageId = dialog.addFieldValue(extendedTypeStr(LanguageId), CompanyInfo::languageId());\n   \n        return dialog;\n    }\n\n    public boolean getFromDialog()\n    {\n        enumName = dlgEnumName.value();\n        languageId = dlgLanguageId.value();\n   \n        return super();\n    }\n\n    public void run()\n    {\n        SRSAnalysisEnums    SRSAnalysisEnums;\n        DictEnum            currentEnum = new DictEnum(enumName2Id(enumName));\n\n        if (currentEnum == null)\n        {\n            throw error(strfmt(\"%1 enum bulunamad\u0131.\", enumName));\n        }\n\n        ttsbegin;\n            \n        delete_from SRSAnalysisEnums\n        where SRSAnalysisEnums.EnumName == enumName\n            &amp;&amp; SRSAnalysisEnums.LanguageId == languageId;\n            \n\n        LabelId labelId;\n        SRSEnumLabel label;\n\n        for (int x = 0; x &lt; currentEnum.values(); x++)\n        {\n            labelId = currentEnum.index2LabelId(x);\n            label = SysLabel::labelId2String(labelId, languageId);\n\n            SRSAnalysisEnums.clear();\n            SRSAnalysisEnums.EnumName       = enumName;\n            SRSAnalysisEnums.EnumItemName   = currentEnum.index2Symbol(x);\n            SRSAnalysisEnums.EnumItemValue  = currentEnum.index2Value(x);\n            SRSAnalysisEnums.LanguageId     = languageId;\n            SRSAnalysisEnums.EnumItemLabel  = label;\n            SRSAnalysisEnums.insert();\n        }\n\n        ttscommit;\n\n        Info(strFmt(\"%1 - %2 i\u00e7in tamamland\u0131.\", enumName, languageId));\n    }\n\n    public static ClassDescription description()\n    {\n        return \"Enum etiketlerini tabloya aktar\";\n    }\n\n    public boolean runsImpersonated()\n    {\n        return true; \/\/ on server\n    }\n\n    public static void main(Args _args)\n    {\n        GvnEnumLabelGenerator GvnEnumLabelGenerator = new GvnEnumLabelGenerator();\n\n        if (GvnEnumLabelGenerator.prompt())\n        {\n            GvnEnumLabelGenerator.run();\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p>Dialog sizden enum ad\u0131 ve dil kodu isteyecek. Tamam dedikten sonra de\u011ferler <strong>SRSAnalysisEnums <\/strong>tablosunda olu\u015fmu\u015f olacakt\u0131r. Art\u0131k bu tabloyu sorgular\u0131n\u0131za dahil ederek kullanabilirsiniz.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/guvensahin.com\/tr\/wp-content\/uploads\/2021\/03\/d365fo_SRSAnalysisEnums.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"260\" src=\"https:\/\/guvensahin.com\/tr\/wp-content\/uploads\/2021\/03\/d365fo_SRSAnalysisEnums-1024x260.png\" alt=\"\" class=\"wp-image-2357\" srcset=\"https:\/\/guvensahin.com\/tr\/wp-content\/uploads\/2021\/03\/d365fo_SRSAnalysisEnums-1024x260.png 1024w, https:\/\/guvensahin.com\/tr\/wp-content\/uploads\/2021\/03\/d365fo_SRSAnalysisEnums-300x76.png 300w, https:\/\/guvensahin.com\/tr\/wp-content\/uploads\/2021\/03\/d365fo_SRSAnalysisEnums-768x195.png 768w, https:\/\/guvensahin.com\/tr\/wp-content\/uploads\/2021\/03\/d365fo_SRSAnalysisEnums.png 1193w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Son Olarak<\/h2>\n\n\n\n<p>T\u00fcm yap\u0131lacaklar bu kadard\u0131.<\/p>\n\n\n\n<p>D365 F&amp;O ile ilgili di\u011fer yaz\u0131lar\u0131ma&nbsp;<a href=\"https:\/\/guvensahin.com\/tr\/category\/dynamics-365\/\">\u015furadan<\/a>, Dynamics AX yaz\u0131lar\u0131ma da&nbsp;<a href=\"https:\/\/guvensahin.com\/tr\/category\/dynamics-ax\/\">buradan<\/a>&nbsp;bakabilirsiniz.<\/p>\n\n\n\n<p>Ho\u015f\u00e7akal\u0131n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Daha \u00f6nce bu yaz\u0131mda Dynamics AX 2012 de enum etiketlerine SQL \u00fczerinden nas\u0131l ula\u015fabilece\u011fimizden bahsetmi\u015ftim. Bu yaz\u0131da ayn\u0131 i\u015flemi D365 F&amp;O&#8217;da nas\u0131l yapar\u0131z onu anlataca\u011f\u0131m. Yapaca\u011f\u0131m\u0131z bu i\u015flem ile enum&#8217;\u0131n de\u011ferlerini ve etiketlerini bir tabloya yazaca\u011f\u0131z. B\u00f6ylece SQL sorgular\u0131nda enum etiketlerini \u00e7a\u011f\u0131rabilece\u011fiz. Bu sayede: Data entity&#8217;lerde enum&#8217;\u0131n etiketini sabit bir dil kodunda d\u00f6nebiliriz. Union query&hellip;&nbsp;<a href=\"https:\/\/guvensahin.com\/tr\/dynamics-365-fo-enum-etiketlerine-sql-sorgusu-ile-erismek\/\" rel=\"bookmark\">Daha fazlas\u0131n\u0131 oku &raquo;<span class=\"screen-reader-text\">Dynamics 365 F&#038;O &#8211; Enum Etiketlerine SQL Sorgusu ile Eri\u015fmek<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":2364,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[405],"tags":[193,446,394,438,198,434,285],"class_list":["post-2355","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dynamics-365-fo","tag-axapta","tag-data-entity","tag-dynamics-365","tag-dynamics-365-finance-and-operations","tag-dynamics-ax-2","tag-sql","tag-x"],"_links":{"self":[{"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/posts\/2355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/comments?post=2355"}],"version-history":[{"count":9,"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/posts\/2355\/revisions"}],"predecessor-version":[{"id":2373,"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/posts\/2355\/revisions\/2373"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/media\/2364"}],"wp:attachment":[{"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/media?parent=2355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/categories?post=2355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guvensahin.com\/tr\/wp-json\/wp\/v2\/tags?post=2355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}