Automating Approval Processes in Dynamics CRM - dynamics-crm-2011

A bit of background before I begin.
Background:
I am working on migrating an existing .NET based system to Dynamics CRM and one of its key feature is its 'Request Approval Process'. I have implemented some simpler versions of such approval processes in past but this one is a bit complex since it involves multi-level approvals, multiple approvers at one level, amendment logic, delegation functionality, etc.
Analysis Till Now:
Before pushing this question at SO, I did a fair analysis of the requirements from my end and have come up with few possible approaches:
Workflow based approach (something on lines of this)
Complete custom logic using Plugins/Web Resources (something on lines of this)
I am not explaining the details of these approaches as of now but the core issue is that none of these two approaches are fitting correctly to my requirements.
Queries:
While analyzing these approaches I came across some newer functionalities added to CRM (listed below) but did not get any additional resources to explore them further. I just want to confirm that I am not trying to achieve something which is already present out-of-the-box or going in the incorrect direction.
1. Internal Process Automation:
Reference: Here
Any leads/thoughts on this approach? I am not able to find any good documentation/articles around this.
2. Graphical Approval Workflow:
Reference: Here
This feature seems to be useful but it is mentioned to be a part of Dynamics Marketing. With the new structuring of Dynamics 365, will this feature be a part of Dynamics CRM by default?
Also, the Prerequisites section of this link mentions certain Item Types for which you can configure this functionality. So can't we use this functionality for any entity records?
Any kind of help/inputs would be appreciated.

I'd suggest the best of both worlds: using out-of-box Workflows along with custom Workflow activities that you can write with C#. Use as much out-of-box functionality as you can, but when you need to query records or run custom logic, create a custom workflow activity that can be used in your out-of-box Workflow. Custom workflow activities are similar to plugins in that they are written using C#. You can have custom inputs and custom outputs for your activity.
For example, maybe your approval process needs to look up the appropriate approving user for this record. You could write a custom workflow activity that takes an input (the record being approved) and an output (the user that has the ability to approve). Then in your Workflow, you'd add your custom activity as a step. After that step, you could send an email to the approver by using the output of that custom step.
More information about custom workflow activities: https://msdn.microsoft.com/en-us/library/gg309745.aspx

Related

How to add a resource to project using workflow in NetSuite

As the title says...
I've successfully got workflows working that create project tasks, so I have some idea how the workflow customization tools work. But I'm struggling to see how I can (or even if I can) use a workflow to auto-magically add resources to the project (and then assign them to the project tasks I dynamically create.
Regarding which users/employees to add as resources, I imagine sorting out an appropriate clause shouldn't be too hard.
If I recall correctly, Resouces on a Project record are sublists. If I am correct, then it is not possible via workflows. There is a limitation with Workflows that they cannot work on record sublists.
You will have to do this via SuiteScript.

Extending NetSuite's default business logic

I am new to NetSuite and am trying to get an understanding of how it works in the area of business rules. So sorry if these are questions with obvious answers.
I understand a user/consultant can extend/customize it to fit with my business needs.
My questions therefore are:
Presumably a default instance of NetSuite contains various business
rules that will fit some business needs. As a user/consultant can
you view this default business logic?
Can a consultant change the core business logic? Or is it more a case of adding code before and after the default logic fires?
Is the default business logic/rules written in SuiteScript, or is SuiteScript only used by 3rd parties when extending/overriding the default logic?
Thanks
We cannot view the code that governs the default NetSuite logic and business rules, but the NetSuite Help documentation has a ton of information about how vanilla NetSuite works. All users can view and study the Help files to become more familiar with NetSuite and its default processes.
We cannot change the default code, but we can absolutely add code before and after many different events.
The default business logic is written in SuiteScript, but again, we cannot view that code. Third parties utilize SuiteScript to extend the default NetSuite functionality.
SuiteScript is not the only option for customizing NetSuite. There is also SuiteFlow, which provides users with the capability of graphically building workflows to define business rules based on user actions. No code is required (though under the covers, workflows essentially build hidden SuiteScript). There are several things that can only be accomplished in workflows and not in SuiteScript, and vice versa.
Netsuite's ERP, CRM, eCommerce modules have predefined standard rules which are acccording to industry standard. But customers have sometimes different business needs. For that we can customize Netsuite. There are various customization tools available in Netsuite. It supports to extend standard functionality as well as implement our custom logic. It provides suite scripts,a java script based API which can be used in almost every where in Netsuite for customization. Along with that it provides UI based customization in the form of SuiteBuilder. We can fire script before any standard business logic, after standard business logic run. We can add client side validations, schedule our application to trigger at specific time and many more. The standard business logic is written by Netsuite, we cant alter them, we cant see the code. It is the way it works. If you are new to Netsuite, it is suggested to read netsuite help guide. There is no online help other than Netsuite available. So you must go through them. If you have other query, feel free to ask.

Workflow on "Activity"?

I'm trying to have CRM 2011 share activities to a Team if the user that created the record is part of another team.
Firstly, is it possible to create either a custom or basic workflow on "Activities" instead of having to create a workflow on each type of activity (Appointement, Phone Call, E-mail, etc.) that does the same thing on each of them ?
Secondly, I see the basic workflows wizard allows you to Assign activities to another team, but I don't see the Share action anywhere. Is this a job for a custom, .NET assembly, workflow ?
Thank you!
You need to select the exact entity when you create a workflow, this means you need to create a worklow for each activity entity-type (1 for Appointment, 1 for Phone Call, ...)
There isn't a built-in share functionality inside the standard Workflow designer, you need to use a custom activity (create one using .NET or install one already compiled)
Check these two:
http://crm2011workflowutils.codeplex.com/
http://crm2011sharestep.codeplex.com/

How do I build custom workflows in SharePoint?

I need to learn how to build custom workflows in SharePoint. In addition to basic stuff like having legal sign-off on documents, I need to be able to execute arbitrary custom code at certain points. For example, after legal signs off it should export the document and update a database table indicating that a new version is ready.
Is this possible using SharePoint? If so, where can I find the documentation or tutorials I would need to get started?
Getting Started Link 1,Getting Started Link 2 links will help you to get started with the SharePoint Custom Workflows. And also it is possible to do any arbitrary code inside the workflow. Also there is another type of work flow called State machine for which there is a class one article
Workflow as the whole is built using sub parts called Activities which dictates what the workflow should do at a particular point of time, I remember you have an activity called Code Activity which will help you to achieve what you want.
Robert Shelton's Workflow Video Tutorial series is very helpful:
http://rshelton.com/Tags/Workflow/default.aspx

can i Programatically Change Sharepoint OOB document approval workflow

I have document library where I am using the Out-Of-the box document approval workflow.
I need to allow users to delegate their tasks to another person during a certain period. This delegation is on workflow level not on item level. something that can be used for example where someone will be out of the office for a long period and needs to assign a delegate to approve documents.
I was thinking of changing the list of approvers programatically to allow someone to use a custom form to enable that delegation.
Can this be done? is there a better way?
My suggestion would be to actually create your own workflow. Much better than trying to hack the OOB workflow. In my experience messing with a running workflow is never good and prone to complications / failures.
If you are wary of/restricted building workflows with VS then using a tool such as Nintex (Nintex.com) is a great option, I haved used it a few projects now.
Sorry I could'nt be more use.

Resources