Business Process Flow Key Notes

When we talk about Business Process flow (BPF) , there are lot of questions :

  1. How does it operate, how is it stored in D365? Does it create a a background entity which can be modified? A BPF creates a background entity when the BPF is actually validated. This entity would have everything same as any normal entity. Only difference is we can not create custom forms this entity and also if we try to open BPF record from advanced find, it will open the primary entity of that BPF.
  2. Can it span across multiple entities? Yes it can span across multiple entities(tables), OOB or custom in data verse. Only caveat is each stage can refer to different entities , and first stage would consist of Primary entity.
  3. Can one entity have multiple BPFs? and if yes can I select specific BPF ? or automate the selection based on some condition? Yes one entity can have multiple BPF, based on security role, the correct BPF(s) would be shown to the user. In case the security role has access to two BPFs on the same entity, user can use the switch process and select the wished BPF for this transaction.
  4. How to apply security to BPFs? In earlier versions of D365, BPFs can be assigned security roles exactly the same we apply security roles to entity forms. However in recent versions, this does not work. This has to be done in the individual security roles under Business process flows. Here the business process flows should be given access same as any normal entity. I have not tried giving the lover level access, it would be mostly the top level (org level) access
  5. Can one BPF have multiple branches based on conditions ? Yes there can be branching in BPFs based on the different conditions
  6. Can it store data out side of data verse ? Nope. BPFs can store data only in data verse OOB or custom entities(tables) but not outside of data verse.
  7. What is concept of immersive BPF in data verse ? If we want to implement independent Business Process for any of the functionality, immersive BPF can be created, which can be added to a separate solution and can be deployed using this solution to higher environments . This would not be added to any form, but BPF itself would have all the required fields added . It can also have custom controls on it.
  8. What is Traversed Path for the BPF ? Traversed path is the comma-delimited string of process stage ids that represent visited stages of the business process flow instance. For example if the opportunity is closed won, then traversed path would contain all the stage Ids stating of Identify and then up to Closed Won. This is very interesting to know about this traversed path as it plays important role in data migration and need to create the BFP automatically for migrated data. In case the migrated opportunity record is Closed won, we have to set the traversed path, otherwise BPF creation would error out

Let us check some scenarios and corresponding solutions

  • To add any field on BPF, field is not needed to be present on form,, it will automatically add in the DOM but will be hidden on the form
  • What can not be done with Business process flow entity can not do?  Only custom forms can not be created , rest all can be done. Also you can not access the form of the BPF in D365 from any App. Its only in design. If you open any BPF record from advanced find, it will open the primary entity form of that BPF instead of the BPF form. For ex, if opportunity BPF is opened, it will open opportunity form
  • If you have been hired to configure a new Microsoft Dynamics 365 implementation for a company. You need to create a business process flow that accommodates multiple work flows, in that case adding multiple BPFs , you can add multiple steps to the BPF and call workflows instead of adding additional multiple linear business process flows. or adding stages to the linear business process flow or adding branches to the business process flow
  • You have a custom entity named entity1 that has three activated BPFs named BPF1. BPF2. and BPF3. You need to ensure that BPF2 in visible only to customer service representatives from the web client. In this case you need to configure the security roles of customer service to have access to BPF2 and rest of the security roles should not have this BPFs selected. Now this is the only way we can secure BPF visibility in D365. Earlier like the entity forms , BPFs were also allowed to select specific roles , however this feature does not work as of today and the changes are to be done only at security role level
  • You have a business process named Know Your Customer. Employees use this business process to capture key information about customers. You must implement a business process flow (BPF) in Microsoft Dynamics 365 that represents this business process. You specify the name for the BPF as well as the stage names, entities, and stage category that the BPF will use. You need to complete the BPF implementation. Following are the three additional components you can configure Step Required, Step Display Names, Data Fields
  • You are implementing a new business process flow (BPF) in Microsoft Dynamics 365. You specify a name and the primary intent for the BPF, and define the stages and conditions.
  • You need to configure the composition so you can configure Workflows and Steps as well as Actions
  • When a business process flow (BPF) enters a specific stage, you need to run a workflow. Then below two actions you have to perform, Select an on-demand workflow to run and add a stage specific workflow composition component.
  • You need to provide users that have the Sales manager security role access to multiple business process flows (BPFs). Here Users can select a default BPF for all records and If a user does not have access to the current process that is applied to a record, options will be disabled. You are a subject matter expert for an insurance company. You have a complex business method that is used for settling and releasing claims. You need to create a process in Microsoft Dynamics 365 to assist team members with the claims settlement process. You must limit this process to team members that have a specific security role. This is perfect use case for Business Process Flow (BPF)
  • You are implementing a Lead to Quote business process. The process will update the Lead. Account Contact, and Quote entities. You need to create a business process flow (BPF) that spans the entities. then you have to add a stage and specify the properties for each entity.
  • You need to create a business process flow (BPF) that spans multiple entities. In this case, you can include a maximum of five entities and there is no limit to use same entity multiple times .
  • The system must send a notification to the manager 24 hours after an opportunity Is created based on the date of the next best action. This not BPF use case, instead its async workflow

Reference links

https://coderscollection.wordpress.com/2019/01/26/some-important-facts-about-bpf/#:~:text=No%20Max%20limit%20of%20Draft,multiple%20stage%20for%20Same%20Entity

https://community.dynamics.com/enterprise/b/365teamblog/archive/2016/11/14/get-started-with-designing-dynamics-365-business-apps-by-using-app-designer

Queues in Case Management: Part 2

We have understood queues and creation of queues and routing rules in previous post. Now let us see the usage of the same in this post

All new records matching to the mentioned criteria in routing rule, will be routed to the queue and for existing records we can route those manually by selecting Apply Routing rule button as shown in below snippet. One the item is routed to queue, a new queue item is created which is a separate record than the actual case or activity entity record.

We can see the queue items by opening the queues and selecting the queue as shown i below snippet.

We can also chose from different views to see the records.

There are different actions we can take on the queue items such as Route, Pick, Release , Remove and Queue item details etc

Even though the item is already routed to this queue, it can be still rerouted to another user or queue by using Route option. Just to note, once its re routed, it will be removed from this queue as one item can belong to only one queue at the time.

If the user wants to work on the queue item, he or she can select the item and click on Pick. The queue item will be assigned to that user and same user name will be displayed under Worked By field.

Once the work in done or he or she is not able to work on that queue item, it can be released to queue again. Just to note here, once the item is released back to queue, the owner of the item will be rolled back to the current queue owner and not the earlier owner of the record also the “worked by” field which was set to the user when the item was picked will be set to blank again

The queue item can be removed from the queue by Remove option.

To view the details of the queue item, we can use Queue item details

Queue item details will show the name of the associated queue. Worked by if its been worked by someone, and dates of the item entered in the queue and modified on.

Hope this helps to understand basics of Queues and Routing rules. I would still recommend to play with these entities and practically understand how it works.