{"id":1783,"date":"2007-11-05T16:32:00","date_gmt":"2007-11-05T16:32:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/cesardelatorre\/2007\/11\/05\/developing-high-level-workflows-in-microsoft-dynamics-crm-4-0-titan-web-editor\/"},"modified":"2007-11-05T16:32:00","modified_gmt":"2007-11-05T16:32:00","slug":"developing-high-level-workflows-in-microsoft-dynamics-crm-4-0-titan-web-editor","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/developing-high-level-workflows-in-microsoft-dynamics-crm-4-0-titan-web-editor\/","title":{"rendered":"Developing high level workflows in Microsoft Dynamics CRM 4.0 Titan (Web Editor)"},"content":{"rendered":"<p><SPAN lang=\"EN-US\">\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">In <B>Microsoft Dynamics CRM 4.0 &#8216;Titan&#8217;<\/B> we can choose to develop workflows among two types of workflows, but both of them are internally based on <B>WF<\/B> (<B><I>Windows Workflows Foundation<\/I><\/B>, which is part of <B>.NET 3.x<\/B>). <\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">So, we can choose between the following:<\/SPAN><\/P>\n<P class=\"MsoListParagraphCxSpFirst\"><A class=\"\" title=\"OLE_LINK2\" name=\"OLE_LINK2\"><\/A><A class=\"\" title=\"OLE_LINK1\" name=\"OLE_LINK1\"><\/A><SPAN><SPAN lang=\"EN-US\"><SPAN>&#8211;<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/SPAN><\/SPAN><\/SPAN><B><SPAN lang=\"EN-US\">High level workflows with CRM Web client as development environment<\/SPAN><\/B><\/SPAN><SPAN><\/SPAN><SPAN><\/SPAN><SPAN lang=\"EN-US\">: <\/SPAN><\/P>\n<P class=\"MsoListParagraphCxSpMiddle\"><SPAN lang=\"EN-US\"><SPAN>o<SPAN>&nbsp;&nbsp; <\/SPAN><\/SPAN><\/SPAN><SPAN lang=\"EN-US\">It is suitable for business administrators who want to create basic workflows<\/SPAN><\/P>\n<P class=\"MsoListParagraphCxSpMiddle\"><SPAN lang=\"EN-US\"><SPAN>&#8211;<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/SPAN><\/SPAN><\/SPAN><B><SPAN lang=\"EN-US\">Low level workflows with Visual Studio and WF as development environment<\/SPAN><\/B><SPAN lang=\"EN-US\">: <\/SPAN><\/P>\n<P class=\"MsoListParagraphCxSpLast\"><SPAN lang=\"EN-US\"><SPAN>o<SPAN>&nbsp;&nbsp; <\/SPAN><\/SPAN><\/SPAN><SPAN lang=\"EN-US\">It is suitable for .NET developers who have to develop complex and powerful workflows.<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">By the way, <I>SharePoint v3<\/I> &amp; <I>MOSS-2007<\/I> are following a similar pattern, high level workflows created with <I>Office SharePoint Designer<\/I> and low level workflows developed with Visual Studio and WF.<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">So, in this blog-posting I\u2019m gonna talk about the first type, I mean, about \u201c<B>High level workflows with CRM Web client as development environment<\/B>\u201d.<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">The most important change to workflows (visible for end-users) in <B>Microsoft Dynamics CRM 4.0<\/B> is the <B>new Web-based user interface<\/B>. Users no longer need access to the Microsoft Dynamics CRM server to create, modify, and monitor workflows (like when creating workflows in CRM 3.0). Instead, end-users can perform these actions on their own computers. Therefore, workflow is now much more visible and useful for Microsoft Dynamic CRM end-users (Business administrators, for instance).<\/SPAN><\/P>\n<P class=\"MsoNormal\"><B><SPAN lang=\"EN-US\">New Web User Interface for creating workflows.<\/SPAN><\/B><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">The new user interface exposes the workflow life cycle to end users so they can:<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">\u2022 Create workflows<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">\u2022 Run workflows<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">\u2022 Monitor workflows<\/SPAN><\/P>\n<P><SPAN lang=\"EN-US\">Users with adequate permissions can participate in all of these phases. <\/SPAN><\/P>\n<P><SPAN lang=\"EN-US\">The following screen shot shows a Workflow (CRM 4.0 Titan web based workflow) already finished:<\/SPAN><\/P>\n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/image_2.png\"><IMG height=\"358\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/image_thumb.png\" width=\"619\" border=\"0\"><\/A> <\/P><SPAN lang=\"EN-US\">\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\"><STRONG><U>Creating a basic Workflow <\/U><\/STRONG><\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">So, what I\u2019m gonna do now, is to create that high level workflow, so you can see how ease is to make it with the CRM web workflow editor.<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">1. Start Dynamics CRM 4.0 web client and in the navigation pane, click <\/SPAN><B><SPAN lang=\"EN-US\">Settings<\/SPAN><\/B><SPAN lang=\"EN-US\">, and then click <\/SPAN><B><SPAN lang=\"EN-US\">Workflows<\/SPAN><\/B><SPAN lang=\"EN-US\">. <\/SPAN><\/P>\n<P><SPAN lang=\"EN-US\">2. Click <\/SPAN><B><SPAN lang=\"EN-US\">New<\/SPAN><\/B><SPAN lang=\"EN-US\">. Then the \u2018Create Workflow\u2019 window appears:<\/SPAN><\/P>\n<P><SPAN lang=\"EN-US\"><IMG src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2007_10_21_07_Titan_Create_Workflow_Window.jpg\">&nbsp;<\/SPAN><\/P><SPAN lang=\"EN-US\">\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">3. In the <\/SPAN><B><SPAN lang=\"EN-US\">Workflow name <\/SPAN><\/B><SPAN lang=\"EN-US\">box, type a name for the workflow. For instance, I typed \u201cSales Process\u201d.<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">4. In the <\/SPAN><B><SPAN lang=\"EN-US\">Entity <\/SPAN><\/B><SPAN lang=\"EN-US\">box, select the entity you want to base on this workflow, in this case <\/SPAN><B><SPAN lang=\"EN-US\">Opportunity<\/SPAN><\/B><SPAN lang=\"EN-US\">.<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">5. Under <\/SPAN><B><SPAN lang=\"EN-US\">Type<\/SPAN><\/B><SPAN lang=\"EN-US\">, select <\/SPAN><B><SPAN lang=\"EN-US\">New blank workflow<\/SPAN><\/B><SPAN lang=\"EN-US\">, and then click <\/SPAN><B><SPAN lang=\"EN-US\">OK<\/SPAN><\/B><SPAN lang=\"EN-US\">.<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">Then we have the workflow web editor, which is logically empty, at the moment, like the following screen-shot:<\/SPAN><\/P>\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">6. Under <\/SPAN><B><SPAN lang=\"EN-US\">Available to Run<\/SPAN><\/B><SPAN lang=\"EN-US\">, select <\/SPAN><B><SPAN lang=\"EN-US\">On demand<\/SPAN><\/B><SPAN lang=\"EN-US\">.<\/SPAN><\/P>\n<P><SPAN lang=\"EN-US\">So, actually, it should be kind of the following screen-shot:<\/SPAN><\/P>\n<P><SPAN lang=\"EN-US\"><IMG src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/2007_10_21_07_Titan_Empty_Workflow_Window.jpg\">&nbsp;<\/SPAN><\/P><SPAN lang=\"EN-US\">\n<P class=\"MsoNormal\"><SPAN lang=\"EN-US\">Then, instead of directly creating actions (steps), we are first going to create a <B>stage<\/B>, because we\u2019re going to distribute all our actions within <B>stages<\/B>. Stages are not mandatory, but they are good to classify our steps and internally it is good for workflow persistence (persistence in database can be based on stages). That is why I\u2019m creating this workflow split in stages. <\/SPAN><\/P>\n<P><SPAN lang=\"EN-US\">7. Click <\/SPAN><B><SPAN lang=\"EN-US\">Add Step<\/SPAN><\/B><SPAN lang=\"EN-US\">, and then click \u2019<STRONG>Stage<\/STRONG>\u2019 and write on its description, \u2018<B>Opportunity Assignment<\/B>\u2019. So we have our first stage!<\/SPAN><\/P>\n<P>8. Then, we want to check about the opportunity\u2019s volume. So, if it is a big opportunity, we\u2019ll assign it to any person, and so on. So, what we gotta do now is add a new \u201ccheck condition\u201d and configure it as the following screen shot, I mean, in case that the opportunity is greater than 50.000, it will be a big opportunity son we\u2019ll execute several activities. The following is how we\u2019ll configure that \u201cif then\u201d: \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image002_2.jpg\"><IMG height=\"299\" alt=\"clip_image002\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image002_thumb.jpg\" width=\"466\" border=\"0\"><\/A> \n<P>Once we have finished that control sentence, we should see our workflow as the following: \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image004_2.jpg\"><IMG height=\"352\" alt=\"clip_image004\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image004_thumb.jpg\" width=\"580\" border=\"0\"><\/A> \n<P>9. Then, we click on the \u2018Select this row and Add Step\u2019 and we create an assignment step. So, in our case, we want to assign this opportunity to the \u201cAdministrator\u201d (could be any other real user, etc.). Here is how we configure it: \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image006_2.jpg\"><IMG height=\"307\" alt=\"clip_image006\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image006_thumb.jpg\" width=\"418\" border=\"0\"><\/A> \n<P>10. After that, but within same \u201cif then\u201d, we want to send an e-mail to the target user (Administrator), so he\u2019ll be aware of this opportunity. We add a new step, called \u201cSend E-mail\u201d. Here is how we can configure an e-mail: \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image008_2.jpg\"><IMG height=\"282\" alt=\"clip_image008\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image008_thumb.jpg\" width=\"478\" border=\"0\"><\/A> \n<P>11. Now we do both two steps, but in this case within the \u2018else\u2019. And of course, because it is for smaller opportunities, we should assign it to any other user. Also, we can send a notification about it (email). \n<P>So, at this moment, our first stage and workflow would look like this: \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image010_2.jpg\"><IMG height=\"416\" alt=\"clip_image010\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image010_thumb.jpg\" width=\"631\" border=\"0\"><\/A> \n<P>12. Then, we create a second stage, called \u201cRequirements Confirmation\u201d. \n<P>After creating that stage, we add a \u201cCreate Record\u201d step where we specify that we want to create a Phone Call. \n<P>Here is how it looks like before selecting the \u201cPhone Call\u201d type: \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image012_2.jpg\"><IMG height=\"418\" alt=\"clip_image012\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image012_thumb.jpg\" width=\"621\" border=\"0\"><\/A> \n<P>13. And down below we can see how we can create a phone call from within our Workflow! \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image014_2.jpg\"><IMG height=\"339\" alt=\"clip_image014\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image014_thumb.jpg\" width=\"544\" border=\"0\"><\/A> \n<P>14. So, at the end of our work, this is how it would like (our finished workflow): \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image016_2.jpg\"><IMG height=\"396\" alt=\"clip_image016\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image016_thumb.jpg\" width=\"686\" border=\"0\"><\/A> \n<P><B><\/B>\n<P>Finally, when we publish our workflow, it changes a little bit, basically it has a cleaner look. J \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image018_2.jpg\"><IMG height=\"499\" alt=\"clip_image018\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image018_thumb.jpg\" width=\"691\" border=\"0\"><\/A> \n<P>So far so good! We have finished creating our workflow. Now what we have to do is test it! \n<P>We gotta go to sales, Opportunities and then create a new opportunity. Depending of the way you\u2019d like the workflow to go, write a \u201cEstiamted Revenue\u201d greater or smaller than 50.000 (the currency will be the one selected in your entity, Euro, U.S. Dollar, etc.). \n<P>Here you can see how I tested my workflow creating an opportunity: \n<P><A href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image020_2.jpg\"><IMG height=\"341\" alt=\"clip_image020\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/clip_image020_thumb.jpg\" width=\"581\" border=\"0\"><\/A> \n<P>Just after you save your new opportunity, the workflow will be launched!. So, wait a few seconds and after that you could check that your opportunity is assigned to the Administrator or to the other person you selected. \n<P>Another tip\u2026, you can open again your workflow and monitor how it executed. See that option on the left menu after opening your workflow. \n<P>So!, next important milestone could be trying another workflow development but from Visual Studio and WF (Workflow Foundation)!!. That is a bit more complicated, but it unleashes all .NET and WF potential!!. \ud83d\ude42 \n<P><SPAN lang=\"EN-US\"><\/SPAN><\/SPAN><\/SPAN><\/SPAN><\/SPAN><\/P><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Microsoft Dynamics CRM 4.0 &#8216;Titan&#8217; we can choose to develop workflows among two types of workflows, but both of them are internally based on WF (Windows Workflows Foundation, which is part of .NET 3.x). So, we can choose between the following: &#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; High level workflows with CRM Web client as development environment: o&nbsp;&nbsp; It [&hellip;]<\/p>\n","protected":false},"author":362,"featured_media":12806,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[97],"class_list":["post-1783","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cesardelatorre","tag-titan"],"acf":[],"blog_post_summary":"<p>In Microsoft Dynamics CRM 4.0 &#8216;Titan&#8217; we can choose to develop workflows among two types of workflows, but both of them are internally based on WF (Windows Workflows Foundation, which is part of .NET 3.x). So, we can choose between the following: &#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; High level workflows with CRM Web client as development environment: o&nbsp;&nbsp; It [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/posts\/1783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/users\/362"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/comments?post=1783"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/posts\/1783\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/media\/12806"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/media?parent=1783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/categories?post=1783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/tags?post=1783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}