0% found this document useful (0 votes)
39 views11 pages

Dynamics 365 Developer Experience Overview

Saikiran is a Dynamics 365 developer with 4 years of experience, specializing in CRM customizations, configurations, and various technical tasks such as workflows, plugins, and Power Automate. His latest project involves working in a sales module with a team of five, focusing on technical development and customizations. He also has extensive knowledge of debugging plugins, managing security roles, and implementing business rules and workflows.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views11 pages

Dynamics 365 Developer Experience Overview

Saikiran is a Dynamics 365 developer with 4 years of experience, specializing in CRM customizations, configurations, and various technical tasks such as workflows, plugins, and Power Automate. His latest project involves working in a sales module with a team of five, focusing on technical development and customizations. He also has extensive knowledge of debugging plugins, managing security roles, and implementing business rules and workflows.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Self introduction:

Hi Myself Saikiran i am having total 4 years of experience and relevant experience in


dynamics 365 is also same

in the span of this 4 years i have worked on all customizations and configurations in crm,

in dynamics 365 I have worked in creation of environments,

I have worked on creation of users

i have worked on creation of entities, fields, forms, relationships

i have good experience in business rules

I have worked on workflows, actions, business process flows

I have worked on JavaScript’s

I have worked on plugins

I have good expirence in power automate

I have worked on canvas apps and model driven apps

I have knowledge on deployments

and I have worked on dashboards and reports

I have worked on security roles

this is quick brief about me and coming to my latest project

my recent project is ......... and it is in sales module

in this project we are team of 5 members and I am one of the developer in that, I used to
handle all the technical related things in this projects

mention description of project

in this project I used to handle all the customizations and I am also responsible for writing
plugins and JavaScript’s

I am responsible for configuring workflows, business rules, business process flows and
actions based on requirements

I have also configured some power automate flows to send an emails and for doing some
CRUD operations in Dataverse.
Self Introction (2)
Hello, my name is Saikiran.

I have 4 years of experience, fully focused on Microsoft Dynamics 365. Over the years, I’ve gained hands-
on expertise across various areas of CRM development, both in terms of customization and
configuration.

My experience covers:

Setting up environments and managing users.

Creating custom entities, fields, forms, and setting up relationships.

Designing and implementing business rules, workflows, actions, and business process flows.

Developing JavaScript customizations for form and field-level logic.

Writing and deploying custom plugins to meet complex business requirements.

Building Power Automate flows for automation like email alerts and data updates.

Working with both canvas apps and model-driven apps.

Setting up dashboards, reports, and configuring security roles.

Managing solution deployments across environments.

Latest Project Experience:

In my most recent project, which is based on the Sales module, I’ve been working as one of the key
developers in a 5-member team. I’m responsible for handling all technical development tasks, including:

Implementing customizations like entities, forms, and validations

Writing plugins and JavaScript for business logic and field-level behaviors

Configuring workflows, BPFs, and business rules as per business needs

Automating routine processes through Power Automate flows

Ensuring smooth deployments and addressing post-deployment fixes

Sales life cycle:


 starts with lead, lead is nothing but potential customer
 if we qualify the lead, Account contact and opportunity gets created and we
will redirect to opportunity page
 in opportunity we add price list and products
 then we create quote, initially quote is in draft state, so we need to activate
the quote
 if customer satisfy the quote then we create order, and from order we create
the invoice

Debug plugin:
How to debug plugin

1) Install profiler

2) select plugin and plugin step

3) start profiling

4) throw exception

5) open crm and run the trigger point of that plugin, here we get exception download the log file

6) open plugin registration tool select the plugin and click debug

7) add the log file

8) open visual studio click debug, select the plugin registration tool

9) open plugin registration tool click start execution

plugin pipeline stages:


 prevalidation: it executes before the main operation and before the security checks and outside
the database, if there is any error occurs in this stage code will not get roll backed
 pre-operation: it executes before the main operation and after the security checks and inside
the database, if there is any error occurs in this stage code will get roll backed
 post-operation: it executes after the main operation and after the security checks and inside the
database, if there is any error occurs in this stage code will get roll backed

 example: prevalidation: If we want to throw some exception and code should not get roll back
then we use prevalidation
 pre-operation: if we want to run the plug-in before main operation performs then we use pre-
operation(before creating some record I need to check some condition's if those satisfies then
only create record r else no then we can use pre-operation
 post-operation: If we want to run plugin async r after the main operation completes the we use
post-operations(after creation of record assign it to some user we can user post-operation)
Images
 images are used to get values from crm to plugin
 pre-image: we get before updated values
 post-image we get after updated values
 for example I am updating value of one field from A to B, in preimage we get A and in post
image we get B.

depth:
We can prevent infinite loops using context. depth, minimum depth 1 , maximum depth 8

Impersonation:
it is used to run the plugin on behalf of another user, As all the users don’t have all the privilege’s
sometimes it is required to run the plugin from admin user, this we can do using impersonation/ calling
user

secure and unsecure


configs are used to pass information from plugin registration tool to plugin code

secure config: it is visible to only user who has added it, if we move solution to another environment,
secure configs will not be moved

unsecure config: it is visible to all the users and it will be moved along with solution

Target: we get only updated values.

filtering attribute:
for update message if you want to run plugin only on update of few fields, we can select those fields in
plugin registration tool.

field level security:


 if we enable field level security, only users who have access can see the data, other users can't
see data of that field
 to enable the field level security, we have to open the field and click on enable field level
security, then open settings -> security-> field level security-> select the field and give access to
the users

access teams:
 if we want to have a unique set of users requires access to a single record without having an
ownership of the record then we use access teams

How to create access teams:


 first we need to enable access teams in entity, in security select access teams templates and
create new, then open the entity and select for add subgrid and select entity as user and view as
access team template

owner teams:
is group of users, if we share any record to owner team ownership of the record also changes

access levels in security roles:


 user, business unit, parent-child business unit, organization

privilege’s in security roles:


 create, read, write, delete, append, append to, assign, share

append and append to:


 for example if we want to add account lookup in contact, we should have append permission to
contact and append to permission to account

Solution: Solution is just like A folder which is used to store the components

managed solution
 we cannot do any customizations in managed solution
 we cannot export managed solution
 if we delete managed solution all the components which are present in that solution gets
deleted
unmanaged solution
we can do customizations only in unmanaged solutions

we can export unmanaged solution

if we delete unmanaged solution only solution gets deleted and all the components still exist in default
solution

Publisher: it is used to identify who has created those components, for every component created in
the solution it will append with prefix which is available from publisher

Patch
After the deployment if we want to move any small component instead of moving whole solution again
we can create patch solution and add our changes in it and we can do patch deployment

clone
After creating patch whenever we are doing complete deployment we can clone the solution so that all
the patch solution will merge into main solution

Display Rules :
are used when we want to show/hide the button on the form. Display rule will completely remove
button from form.

Enable Rules :
are used to make the button enabled or disabled. Button will be present but will be in enabled or
disabled state.

Businessprocessflow:
 if we enable business process flow, it defines a set of stages and steps that are then displayed in
a control at the top of the form.
 bpf stages: we can add max 30 stages
 we can add max 5 entities
 we can add max 10bpf for one entity

trigger points of workflow:


when record is created, record is updated, record is assigned, record shared, field change
SCOPE OF Business rules
Form: It will run only for the selected form and in client side

All Forms: It will run for all the forms and in client side

Entity: It will run on all forms and server side

Client side means we need to open the form to execute the business rule

Server side means it will execute in the backend and even if we didn’t open the form it will execute

Business rules Actions:


1. Lock / Unlock
2. Set Visibility
3. [Link] error Message
4. [Link] recommendation
5. [Link] Business required
6. 6. Set Field Value
7. [Link] Default Value

scope of workflow:

 User: Workflow will run only on the records owned by the same user as the workflow
user.
 Business Unit: Workflow will run on the records owned by the users of the
business unit same as the workflow user.
 Parent Child Business Units: Workflow will run on the records owned by the users of
the business unit same as the workflow user as well as any child business units.
 Organization: Workflow will run on records owned by any user in CRM

types of workflow: real-time workflow (Sync process), background workflow(Async process)

relationships:
 1:N one record in A entity can be linked to multiple records in B entity
 N:1 multiple records in A entity can be linked to one record in B entity
 N:N one record in A entity can be linked to multiple B records and at the same time one B record
can be linked to multiple records in A entity.
relationship behaviours:
 Parental: if we give parental relationship then what ever the changes that occur to parent that
will reflect to child records as well, for example if we delete/share/assign the parent records
then child records also delete/share/assign
 referential: in referential relationship, whatever the changes that occurs to parent will not
reflect to child records
 referential restrict delete: in this type of relationship of there is any child record we can not
delete the parent record.
 cascandial: in this type we can give our own configurations

ROLL-UP FIELDS- 1)The rollups are calculated by scheduled system jobs that run asynchronously in the
background.

2)Wide selection of aggregate functions. You can aggregate data by using the following functions: SUM,
COUNT, MIN, MAXand AVG.

3)The roll up fields comprise of Aggregation that use the fields from the current entity or related child
entities.

4)The data types include decimal or whole numbers, currency, and date/time.

CALCULATED FIELDS- 1)Data is calculated as soon as form is loaded

2)ADDHOURS, ADDDAYS, ADDWEEKS, ADDMONTHS, ADDYEARS, SUBTRACTHOURS, SUBTRACTDAYS,


SUBTRACTWEEKS, SUBTRACTMONTHS, SUBTRACTYEARS, DIFFINDAYS, DIFFINHOURS, DIFFINMINUTES,
DIFFINMONTHS, DIFFINWEEKS, DIFFINYEARS, CONCAT, TRIMLEFT, and TRIMRIGHT.

3)The calculated fields comprise of calculations that use the fields from the current entity or related
parent entities.

4)The available data types for the calculated field:

Single line of text,Option Set,Two Options,Whole Number,Decimal Number,Currency,Date and Time

product catalog:
product catalog consists of pricelist, products, discount, product families, unit groups
diff b/n model driven app/ canvas app:
Model-Driven Apps Canvas App
Model-Driven Apps is an AppModule enabling Canvas App is an AppModule enabling users
users to design and develop component-focused to design and develop task-specific apps with
apps to implement an end-to-end business process.
designing flexibility.
To implement and develop Model-Driven Apps To implement and develop Canvas Apps one
one needs, needs,
 The license of Dynamics 365 Product  The license of Power Platform
( CE : Finance: Operations)  Necessary Roles and
Permission in Data Verse
Canvas Apps can connect and interact with
Model-Driven Apps can connect and interact with
over 350+ Connectors, empowering users to
only one data connector that is Data Verse.
have more functionalities.
Logic implementation can be done in multiple
ways including, Logic implementation is app-specific and
 Business Rules can be done through,
 Workflows  Excel-like formula and
 Actions conditional checks
 Plugins
Design of application is more user friendly
The design and view of App are governed by the
and larger flexibility for the developer to
components been utilized in the application.
cater to look and feel requirement.
Does not support version control, changes once Supports version control and changes once
done have to be rolled back by subsequent done can be reverted at any point through a
deployment. simple click.

global variable vs local variable:


global variable we can use all over the app, local variable is specific to screen

error handling in flows:


we need to add try catch inside the scope, we need to create 2 scopes, 1 st one will be try and 2nd one is
catch, 2nd scope is configured is failed of 1st one.

types of flows:
 Instant flow, cloud flow, desktop flow, schedule flow
How you get requriments/ what is your daily routine:
 Generally we use Azure Devops to maintain our daily activities, in devops user stories and bugs
will be created and my team lead will assign them to us, I used to pick up based on priority and
work on those tasks.
 from ribbon button if we want to pass context to javascript we need to use primary control

Difference between System workflow and plugin


 [Link] points of workflow are different from trigger points of plugin
 [Link] can not get child records in workflow
 [Link] will not have images in workflow
 [Link] will not have pipeline stages in workflow

Difference between custom workflow and plugin


 [Link] workflow need to be called form system workflow/actions it cannot trigger by its own
 [Link] can add input and output parameters for custom workflow
 [Link] plugin we can select pipeline stages, images, filtering attribute, execution order these
things are not available in custom workflow
 4. plugin will get timeout after 2mins, workflow will not have timeout.

Business rules vs javascript


 [Link] can perform only 7 actions in business rules
 [Link] rules cannot be triggeres on lookup fileds.
 3. javascripts triggers first and then business rules gets triggered
 [Link] can not get other record values in business rules.
 5. business rules can run both on client and server side, but javascript will run only on client
side

difficultplugin which you have written

[Link] matrix
in one of my project there is approval matrix, Here we are having 4 levels of people, L1,L2,L3,L4, if any
booking is created with any discount percentage

first we need to check the user level and discount percentage is with in his limit or not, and if it is not
with in his limit then we need to create approval records to all the above level people,for example if L4
created booking we need to created approval record to L3,L2,L1 and first we need we make L3 record as
active and other L2,L1 records as draft, if L3 approves then we make L2 as active, if L2 approves then we
make L1 as active, if all approves then only we make booking as approved, else it will be rejected.

here for sending approvals we have used power automate flows, we have used outlook send email with
options, if we use this ,the receiver of this email can directly approve/reject from the email itself no
need to open the crm and that response we get in flow itself and we update the appropriate record as
approved

[Link] integration:
In our project we have used outbound integrations, for example on create of account we need to send
the account details to some external source(SAP/molesoft)

here we have used plugin for doing this, on create of account plugin gets triggered and gathers all the
required information and converts as json body, and we send http request to the given API by adding
the authentication details and request body and sends the request, in response we get account
activation ID and that again we update in the same record in CRM.

You might also like