{"id":364,"date":"2022-12-13T01:47:01","date_gmt":"2022-12-12T23:47:01","guid":{"rendered":"https:\/\/www.kogero.hu\/?p=364"},"modified":"2022-12-31T11:53:18","modified_gmt":"2022-12-31T09:53:18","slug":"creating-custom-action","status":"publish","type":"post","link":"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/","title":{"rendered":"How to create custom action in Dataverse"},"content":{"rendered":"<p>In this post we will check how to create an custom action, which can be triggered by any entity and run a custom business logic.<\/p>\r\n<h2>What is a Custom Action<\/h2>\r\n<p>A custom action is a process which category is action. This action can be triggered with a custom message, can be independent from entities and can be run a custom business logic written in C# like plugins.<\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading --><\/p>\r\n<h2>Creating Custom Action<\/h2>\r\n<p><!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>Let&#8217;s see how to create a custom action through a simple example project. The business logic is as follows:<\/p>\r\n<ol>\r\n<li>We need an input parameter which can be any text.<\/li>\r\n<li>Our action will convert it to uppercase<\/li>\r\n<li>And the converted text will be returned as an output parameter.<\/li>\r\n<\/ol>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>Unlike the plugins, we do not code and register immediately, because the first step is to create an action typed process in Dataverse.<\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>Let&#8217;s see this step-by-step on the maker portal:<\/p>\r\n<ol>\r\n<li>Create or select an existing solution,<\/li>\r\n<li>then select action through &#8220;New &gt; Automation &gt; Process &gt; Action&#8221;:<\/li>\r\n<\/ol>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:image {\"id\":366,\"sizeSlug\":\"large\",\"linkDestination\":\"none\"} --><\/p>\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"483\" src=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-11-1024x483.png\" alt=\"Create a new action in solution\" class=\"wp-image-366\" srcset=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-11-1024x483.png 1024w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-11-300x142.png 300w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-11-768x362.png 768w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-11.png 1159w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\r\n<figcaption class=\"wp-element-caption\">Creating an Action from the solution<\/figcaption>\r\n<\/figure>\r\n<p><!-- \/wp:image -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>An action creation blade will be come in on the left, where we can provide:<\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:list {\"ordered\":true} --><\/p>\r\n<ol><!-- wp:list-item -->\r\n<li>a name, which will be used for the custom message<\/li>\r\n<!-- \/wp:list-item -->\r\n\r\n<!-- wp:list-item -->\r\n<li>select &#8220;None&#8221; under option &#8220;Add to&#8221; which means it will be unbound to any entities, so it will be globally available.<\/li>\r\n<!-- \/wp:list-item --><\/ol>\r\n<p><!-- \/wp:list -->\r\n\r\n<!-- wp:image {\"id\":372,\"width\":328,\"height\":381,\"sizeSlug\":\"full\",\"linkDestination\":\"none\"} --><\/p>\r\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/nXXWTUyivD.png\" alt=\"Creating new action\" class=\"wp-image-372\" width=\"328\" height=\"381\" srcset=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/nXXWTUyivD.png 437w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/nXXWTUyivD-258x300.png 258w\" sizes=\"(max-width: 328px) 100vw, 328px\" \/>\r\n<figcaption class=\"wp-element-caption\">Creating new Action<\/figcaption>\r\n<\/figure>\r\n<p><!-- \/wp:image -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>Save it, and let&#8217;s see our new process:<\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:image {\"id\":373,\"sizeSlug\":\"large\",\"linkDestination\":\"none\"} --><\/p>\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"263\" src=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-13-1024x263.png\" alt=\"The new action\" class=\"wp-image-373\" srcset=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-13-1024x263.png 1024w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-13-300x77.png 300w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-13-768x197.png 768w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-13-1536x394.png 1536w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-13-1530x393.png 1530w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-13.png 1917w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\r\n<figcaption class=\"wp-element-caption\">The recently created action<\/figcaption>\r\n<\/figure>\r\n<p><!-- \/wp:image -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>Note that the name of the process is created from the &#8220;Unique name&#8221; and the publisher prefix.<\/p>\r\n<ul><!-- \/wp:list-item -->\r\n\r\n<!-- wp:list-item -->\r\n<li>The type of &#8220;Category&#8221; is &#8220;Action&#8221;.<\/li>\r\n<li>Scrolling down downwards we can define the input and output paremeters. The type of parameters must be provided and they can be optional or required.<\/li>\r\n<!-- \/wp:list-item --><\/ul>\r\n<p><!-- \/wp:list -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>In our case the input parameter will be a text and the output parameter which will be the camel case text:<\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:image {\"id\":379,\"sizeSlug\":\"full\",\"linkDestination\":\"none\"} --><\/p>\r\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"807\" height=\"347\" src=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-14.png\" alt=\"Parameters\" class=\"wp-image-379\" srcset=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-14.png 807w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-14-300x129.png 300w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-14-768x330.png 768w\" sizes=\"(max-width: 807px) 100vw, 807px\" \/>\r\n<figcaption class=\"wp-element-caption\">Parameters<\/figcaption>\r\n<\/figure>\r\n<p><!-- \/wp:image -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>Keep in mind that name of the parameters will be used in the code. Now we need to activate the action by clicking on the button &#8220;Activate&#8221; located on the ribbon:<\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:image {\"id\":380,\"sizeSlug\":\"full\",\"linkDestination\":\"none\"} --><\/p>\r\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"788\" height=\"47\" src=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-15.png\" alt=\"\" class=\"wp-image-380\" srcset=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-15.png 788w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-15-300x18.png 300w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-15-768x46.png 768w\" sizes=\"(max-width: 788px) 100vw, 788px\" \/>\r\n<figcaption class=\"wp-element-caption\">Activating the process<\/figcaption>\r\n<\/figure>\r\n<p><!-- \/wp:image -->\r\n\r\n<!-- wp:simple-note\/info --><\/p>\r\n<div class=\"wp-block-simple-note-info\"><strong>Note:<\/strong> The popup dialog for confirming activation can be very slow, but if you try to turn it on in the solution itself, it is much quicker.<\/div>\r\n<p><!-- \/wp:simple-note\/info -->\r\n\r\n<!-- wp:heading --><\/p>\r\n<h2>Business Logic<\/h2>\r\n<p><!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>Let&#8217;s see how to write and compile our business logic in Visual Studio. First we need a project, <a href=\"https:\/\/www.kogero.hu\/2022\/12\/09\/plugin-irasa-dataverse-hez\/\" target=\"_blank\" rel=\"noreferrer noopener\">see my previous post<\/a> for further details. Now we can focus only on the code:<\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:code {\"lineNumbers\":true} --><\/p>\r\n<pre title=\"TextToUpperCase  action\" class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">using Microsoft.Xrm.Sdk;\r\nusing System;\r\n\r\nnamespace kogerohu.Actions\r\n{\r\n    public class TextToUpperCase : IPlugin\r\n    {\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ Action to convert an input text to upper case and return\r\n        \/\/\/ &lt;\/summary&gt;\r\n        public void Execute(IServiceProvider serviceProvider)\r\n        {\r\n            IPluginExecutionContext executionContext = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));\r\n\r\n            var inputText = (string)executionContext.InputParameters[\"inputText\"];\r\n\r\n            if (string.IsNullOrWhiteSpace(inputText)) return;\r\n\r\n            var outputText = inputText.ToUpper();\r\n\r\n            executionContext.OutputParameters[\"outputText\"] = outputText;\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\r\n<p><!-- \/wp:code -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>After building our code, uploade the assembly according to the method presented in <a href=\"https:\/\/www.kogero.hu\/2022\/12\/09\/plugin-irasa-dataverse-hez\/\">this previous post<\/a>. Important difference is that when you set the &#8220;Message&#8221;, then you need to provide the unique name of the process itself. We do not have to set a primary entity, because we defined our action as global (unbound). Also do not forget to set the stage as post operation:<\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:image {\"id\":389,\"sizeSlug\":\"large\",\"linkDestination\":\"none\"} --><\/p>\r\n<figure class=\"wp-block-image size-large\">\r\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-18-1024x654.png\" alt=\"Update existing step\" class=\"alignnone wp-image-389\" width=\"1024\" height=\"654\" srcset=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-18-1024x654.png 1024w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-18-300x192.png 300w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-18-768x491.png 768w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-18-1197x765.png 1197w, https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/image-18.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\r\n<\/figure>\r\n<p><!-- \/wp:image -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>That&#8217;s it, our plugin typed custom action is ready to use. Now it will be triggered and we can also call it from JavaScript, as workflow step or in Power Automate as unbound action.<\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:paragraph --><\/p>\r\n<p>The source code with the VS project is available on my <a href=\"https:\/\/github.com\/koger23\/PluginExample\/tree\/master\/Actions\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub page.<\/a><\/p>\r\n<p><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading --><\/p>\r\n<h2>Source<\/h2>\r\n<p><!-- \/wp:heading -->\r\n\r\n<!-- wp:list {\"ordered\":true} --><\/p>\r\n<ol><!-- wp:list-item -->\r\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/dynamics365\/customerengagement\/on-premises\/developer\/create-own-actions?view=op-9-1\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/learn.microsoft.com\/en-us\/dynamics365\/customerengagement\/on-premises\/developer\/create-own-actions?view=op-9-1<\/a><\/li>\r\n<\/ol>","protected":false},"excerpt":{"rendered":"<p>In this post we will check how to create an custom action, which can be triggered by any entity and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":360,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62,11,32,31],"tags":[63,64,61,7],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Create a custom action - KOGERO<\/title>\n<meta name=\"description\" content=\"Create custom action step-by-step in Dataverse with Visual Studio 2022.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a custom action - KOGERO\" \/>\n<meta property=\"og:description\" content=\"Create custom action step-by-step in Dataverse with Visual Studio 2022.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/\" \/>\n<meta property=\"og:site_name\" content=\"KOGERO\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=100087142779981\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/profile.php?id=100087142779981\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-12T23:47:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-31T09:53:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"680\" \/>\n\t<meta property=\"og:image:height\" content=\"680\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"koger\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"koger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/\"},\"author\":{\"name\":\"koger\",\"@id\":\"https:\/\/www.kogero.hu\/#\/schema\/person\/6c15ee4d93ffb9cabfde83439041c202\"},\"headline\":\"How to create custom action in Dataverse\",\"datePublished\":\"2022-12-12T23:47:01+00:00\",\"dateModified\":\"2022-12-31T09:53:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/\"},\"wordCount\":1306,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.kogero.hu\/#\/schema\/person\/6c15ee4d93ffb9cabfde83439041c202\"},\"image\":{\"@id\":\"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp\",\"keywords\":[\"Action\",\"Custom Action\",\"Custom Business Logic\",\"Plugin\"],\"articleSection\":[\"Dataverse\",\"Dynamics 365\",\"Power Apps\",\"Power Platform\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/\",\"url\":\"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/\",\"name\":\"Create a custom action - KOGERO\",\"isPartOf\":{\"@id\":\"https:\/\/www.kogero.hu\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp\",\"datePublished\":\"2022-12-12T23:47:01+00:00\",\"dateModified\":\"2022-12-31T09:53:18+00:00\",\"description\":\"Create custom action step-by-step in Dataverse with Visual Studio 2022.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/#primaryimage\",\"url\":\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp\",\"contentUrl\":\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp\",\"width\":680,\"height\":680,\"caption\":\"dataverse_logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Kezd\u0151lap\",\"item\":\"https:\/\/www.kogero.hu\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Egyedi m\u0171velet (custom action) l\u00e9trehoz\u00e1sa a Dataverse-ben\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.kogero.hu\/en\/#website\",\"url\":\"https:\/\/www.kogero.hu\/en\/\",\"name\":\"KOGERO\",\"description\":\"A Power Platform &amp; CRM Developer&#039;s blog\",\"publisher\":{\"@id\":\"https:\/\/www.kogero.hu\/en\/#\/schema\/person\/6c15ee4d93ffb9cabfde83439041c202\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.kogero.hu\/en\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.kogero.hu\/en\/#\/schema\/person\/6c15ee4d93ffb9cabfde83439041c202\",\"name\":\"koger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.kogero.hu\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/10\/logo_kogero.hu_.png\",\"contentUrl\":\"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/10\/logo_kogero.hu_.png\",\"width\":298,\"height\":90,\"caption\":\"koger\"},\"logo\":{\"@id\":\"https:\/\/www.kogero.hu\/en\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.kogero.hu\",\"https:\/\/www.facebook.com\/profile.php?id=100087142779981\"],\"url\":\"https:\/\/www.kogero.hu\/en\/author\/koger\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create a custom action - KOGERO","description":"Create custom action step-by-step in Dataverse with Visual Studio 2022.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/","og_locale":"en_US","og_type":"article","og_title":"Create a custom action - KOGERO","og_description":"Create custom action step-by-step in Dataverse with Visual Studio 2022.","og_url":"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/","og_site_name":"KOGERO","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=100087142779981","article_author":"https:\/\/www.facebook.com\/profile.php?id=100087142779981","article_published_time":"2022-12-12T23:47:01+00:00","article_modified_time":"2022-12-31T09:53:18+00:00","og_image":[{"width":680,"height":680,"url":"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp","type":"image\/webp"}],"author":"koger","twitter_card":"summary_large_image","twitter_misc":{"Written by":"koger","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/#article","isPartOf":{"@id":"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/"},"author":{"name":"koger","@id":"https:\/\/www.kogero.hu\/#\/schema\/person\/6c15ee4d93ffb9cabfde83439041c202"},"headline":"How to create custom action in Dataverse","datePublished":"2022-12-12T23:47:01+00:00","dateModified":"2022-12-31T09:53:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/"},"wordCount":1306,"commentCount":0,"publisher":{"@id":"https:\/\/www.kogero.hu\/#\/schema\/person\/6c15ee4d93ffb9cabfde83439041c202"},"image":{"@id":"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp","keywords":["Action","Custom Action","Custom Business Logic","Plugin"],"articleSection":["Dataverse","Dynamics 365","Power Apps","Power Platform"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/","url":"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/","name":"Create a custom action - KOGERO","isPartOf":{"@id":"https:\/\/www.kogero.hu\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/#primaryimage"},"image":{"@id":"https:\/\/www.kogero.hu\/2022\/12\/13\/creating-custom-action\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp","datePublished":"2022-12-12T23:47:01+00:00","dateModified":"2022-12-31T09:53:18+00:00","description":"Create custom action step-by-step in Dataverse with Visual Studio 2022.","breadcrumb":{"@id":"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/"]]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/#primaryimage","url":"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp","contentUrl":"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/12\/Dataverse_1600x1600.webp","width":680,"height":680,"caption":"dataverse_logo"},{"@type":"BreadcrumbList","@id":"https:\/\/www.kogero.hu\/en\/2022\/12\/13\/creating-custom-action\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Kezd\u0151lap","item":"https:\/\/www.kogero.hu\/en\/"},{"@type":"ListItem","position":2,"name":"Egyedi m\u0171velet (custom action) l\u00e9trehoz\u00e1sa a Dataverse-ben"}]},{"@type":"WebSite","@id":"https:\/\/www.kogero.hu\/en\/#website","url":"https:\/\/www.kogero.hu\/en\/","name":"KOGERO","description":"A Power Platform &amp; CRM Developer&#039;s blog","publisher":{"@id":"https:\/\/www.kogero.hu\/en\/#\/schema\/person\/6c15ee4d93ffb9cabfde83439041c202"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kogero.hu\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.kogero.hu\/en\/#\/schema\/person\/6c15ee4d93ffb9cabfde83439041c202","name":"koger","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kogero.hu\/en\/#\/schema\/person\/image\/","url":"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/10\/logo_kogero.hu_.png","contentUrl":"https:\/\/www.kogero.hu\/wp-content\/uploads\/2022\/10\/logo_kogero.hu_.png","width":298,"height":90,"caption":"koger"},"logo":{"@id":"https:\/\/www.kogero.hu\/en\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.kogero.hu","https:\/\/www.facebook.com\/profile.php?id=100087142779981"],"url":"https:\/\/www.kogero.hu\/en\/author\/koger\/"}]}},"_links":{"self":[{"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/posts\/364"}],"collection":[{"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/comments?post=364"}],"version-history":[{"count":21,"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/posts\/364\/revisions"}],"predecessor-version":[{"id":633,"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/posts\/364\/revisions\/633"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/media\/360"}],"wp:attachment":[{"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/media?parent=364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/categories?post=364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kogero.hu\/en\/wp-json\/wp\/v2\/tags?post=364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}