Environments & Security

Following on from my post last week (https://thecrm.ninja/2019/07/05/environments-for-projects/) where I talked about the different environments for projects, I thought it would be good to talk about security relating to it as well.

Image result for security

What I’ll be discussing below is best practise for projects that relate to (external) clients.

However, there are usually some small differences when it’s an internal project for a company – security is can be slightly more relaxed (after all, the dev teams are usually the ones responsible for rolling the project out, providing on-going support, new features, etc). It’s also the case that internal developers (usually) won’t be prevented from seeing what the actual company data is.

The essential principle is as follows: Users should be restricted to only using environments that they are needing to access

This follows Best Practise for system security, as well as some common sense (it’s surprising how many times this can seem to be lacking!)

Access to the environment/s will depend on roles/s of the person, along with infrastructure that is in place. Users should not be granted access to any environment that they have no need to access at all .

DevIntegrationUATStagingTrainingProductionSupport
Team
Developers✔✔




Consultants

✔✔✔
✔
Clients

✔✔✔✔

Note: There may be exceptional cases people are required to access the Production instance for a client. In such a circumstance, it is vital and absolutely necessary to have a complete audit trail to cover this, setting out the reason/s for it, along with all actions that are taken within the system. This should be ideally be via email, or any other system that may be present to allow a definitive time-stamped communication of request and sign-off

There is an extensive security model within Dynamics365 that can be used to enable and control this, if needed (eg for users to have access to one part of the system, but not another – this could be due to the system holding restricted access data, for example).

Have you come across any cases where this wasn’t followed, and caused issues? Feel free to comment – I’d love to hear about what happened!

Power Platform Admin Centre

Ever wished that you had a single place to manage/create environments, see statistics for all of your systems, view data integrations, etc?

Traditionally, it’s sometimes been quite hard to see all of this – admins have had to go to multiple places to find this information, and then bring it all together manually. A tedious task at times! This was especially true if an organisation had multiple environments – truly a major headache.

Image result for system admin frustration

But now…..there is an answer!

With the new Power Platform Admin Centre (note – it’s currently in Preview), this is all a thing of the past. It’s now extremely easy to see a massive amount of information in just one place. This covers environments, analytics (not only Dynamics environments, but now also the CDS, Flow and PowerApps for a tenant), Data Integrations, Data Gateways, etc.

The URL to use is https://admin.powerplatform.microsoft.com . When logging in, you’ll see the various options in the left hand menu bar.

Some screenshots (some obfuscation for privacy reasons):

Environments

Analytics

CDS Information

So go log in, and see what wonders you can find. Happy discovery…and enjoy the freed up time that you should now be having!

Environments for Projects

As as tech guy, I immediately know what someone is referring to when they’re talking about environments (within a technical context, of course). However there are a large number of (non) technical people who have absolutely no idea what the word ‘environment’ means, leaving aside how they are used.

The aim of this post is therefore to demystify what environments are, the different types, how they’re used, etc.

Image result for technical environment

Caveat: There may be specific circumstances in which these may differ, eg for Dynamics F&O

So firstly – what is an environment?

This is simple to answer – an environment is a full (technical) system. There may be multiple different systems contained within the same environment (or they could be split out). There will be different environments used (more details below) in any company

Incidentally, people may also use the word ‘instance’ instead of ‘environment’.

The next question is – how are environments used?

Thankfully this is also simple to answer – environments are used to enable different parts of the technical system roll-out process. Each environment is unique (and should usually not be connected to each other

Types of environments

There are quite a few different types of environments needed. Listed below are the ones that are usually considered to be MVP (no, not Microsoft Valued Professional….in this context it means Minimum Viable Product)

Development
This is the environment that the development team will use for coding and configuration, as well as initial testing of code
Once code is stable, it will be promoted to the next environment

UAT (User Acceptance Testing)
This environment is where the client/business will access to test the system. Each development item will have a logged story, and these will be tested against. They will either pass (and then be signed off) or not pass (with explanations given as to why they haven’t passed) and be sent back to the development team

Note: It may be possible to use the UAT instance for training, and all client/business users to access it. This will depend greatly on the resources needed, project timeline/progress, etc. It is not usually advised to do this though

Staging
This environment is where data migration is tested out, to ensure that all data from the previous system/s are successfully migrated (with any transformations that may need to take place).

Note: It may be possible to combine the UAT and Staging instances, if the proposed system is very simple and not complicated/large

Production
This is the actual LIVE system for the company

Customisations, code etc are promoted through the different environments with releases. It’s important to ensure that these are carried out properly and scheduled in, especially when applying a release to a production environment. I’ll cover how this should be done, and what things to bear in mind, in a future post.

There are also several other types of environments that may be being used, depending on the type/scale/scope of the project:

Training
This is an instance with all customisations and code (to date) along with data that is used to train all client/business users. Any updates in functionality to test environments would need to be replicated to this environment as well

Integration
Depending on the other system/s that D365 will be exchanging data with (both in and out) it may be necessary to have a specific instance set up to test out the integration with these other components

Support
A clone of the Production environment for use in support cases eg attempting to recreate issues/bugs that have been raised

If you’ve come across any other types of environments, please do comment!

Marketing and Brand

Image result for social media

My current logo is quite standard (I’ve actually used it for a number of years for some things). But it’s not quite what I’m wanting for this. Therefore a logo rebrand is now being kicked off – results to hopefully be displayed soon!

As mentioned by many people, it’s vitally important to have a consistent theme and brand. It’s also important to cover the multiple different channels available.

Additionally I’ve now registered both Twitter and YouTube channels! This will push my comfort zone (for YouTube at least), but will hopefully be good.

Stay tuned!

See which fields have been edited during PowerApps Entity Design

Following on from my tip on Friday ( https://thecrm.ninja/2019/06/28/creating-new-field-s-on-existing-powerapp-entity-quick-tip/), I’ve also realised something else that can be really useful.

Imagine the following scenario:

You’re in the middle of editing the values of specific fields within Dynamics. Suddenly a colleague comes over to your desk to ask you something, or you get a phone call (obviously to assist with a technical matter!). You spend some time on the call, and deal with whatever is needed. You hang up, and look back at the screen.

Hold on. The train of thought is gone. You’re looking at the overall entity, and can’t remember if you did update a specific field, or you didn’t? And if you did, did you already publish the entity, or not?

You’ll need to open up each field that you’re needing to update, to see if you already dealt with it or not. MAJOR pain and headache, and loss of productivity.

https://4.bp.blogspot.com/-pu0blpWIvFw/Wxj3YnjbJJI/AAAAAAAAi8A/ueqrxETgAgA-XBEWC9EMdxZ6ZDr-PbmjQCLcBGAs/s1600/productivity%2B1.jpg

Well…not to fear! When dealing with field values in PowerApps Entities, there’s an extremely helpful visual cue for this (outlined below):

How it works is simple:

  1. You open up an existing field in the Entity Designer, and edit something, anything at all, within it
  2. You save it
  3. Bingo! The icon shows next to it!
  4. When you then Publish the entity, the icon disappears

Now, what could we possibly do with all of that time saved…..

Creating new field/s on existing PowerApp Entity (quick tip)

I’ve recently started my journey into the Microsoft Power Platform, and am digging into how it all works.

Late last night I decided to start playing around with entering the data fields directly into the entity first (the aim is to drive a Model App eventually). Managed to get some stuff done, then headed to bed.

This morning I brought it all up again, and picked up from where I left off. Something immediately jumped out at me – the fields I was adding were shown in bold (as outlined in the image below)

This intrigued me – originally I thought that perhaps I was creating a field that was named the same as a default schema, and the system was letting me know this somehow. However, this wasn’t the case at all.

What it actually is, is showing the new fields that have been added (whilst the entity hasn’t yet been saved). Once you save the entity, then the bolding of the name disappears.

So quite a useful way to see new fields, and work out exactly where you are with things!

Reflections on the last year (or so)

Whilst on the commute into the office this morning, I got to thinking about the last year or so, and how far I’ve come along in that time. If I went back in time to spring/summer 2018, I don’t think I’d have ever (accurately) forecast my development and status that I’ve undergone over that time (both personally and professionally).

A major impetus and assistance for some of the progression has been down to the wonderful people that I’ve met (as well as my family, of course). Without the network that I’ve built up, I would most certainly not be where I am now.

So this post is to say….

Image result for thank you

…to all of the people who I’ve met:

  • The Dynamics Community (CRMUG and others)
  • The MVP’s who I’ve reached out to with questions (ok – some of the questions ‘may’ have been silly, in hindsight!)
  • The SME’s who I’ve pinged to find out more
  • The people who helped me with setting up this blog (as I had no idea what I was doing)
  • The conversations where I joined in, even though it wasn’t directly relevant to me
  • All of the assistance with introductions and interviews
  • The training for taking exams (documented in blog posts here already)
  • The great suggestions
  • The social meets

And last but NOT least, to the support and patience that my family provided me with.

I can only pay back in a small part. What I can do, however, is copy your examples and do my best to help others as well – ‘Pay It Forward’ (which has been touched on before).

So if I may be able to help with something, even in a small way, please reach out 🙂

Microsoft Stack Part 10: Dynamics 365

Microsoft: Dynamics 365

Image result for logo microsoft dynamics 365

Dynamics 365 is Microsoft’s business application suite, combining in a single system its Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM) capabilities. It includes four main applications: Customer Engagement, Finance and Operations, Talent and Retail.

Image result for logo microsoft dynamics 365 customer engagement

Microsoft allows organisations to pick and choose the specific applications they want to use to achieve their needs and objectives. This allows organisations to use only the applications that they need, rather than purchasing licenses to applications that may be left unused.

Dynamics 365 for Customer Engagement

Dynamics 365 for Customer Engagement is Microsoft’s CRM system. It contains a collection of separate applications that make up its CRM system, including: Sales, Marketing, Customer Service, Field Service and Project Service Automation.

Dynamics 365 for Sales

This application enables organisations, and the users within these organisations, to track sales across the entire sales lifecycle from beginning to end, build and maintain close customer relationships through effective management of customer accounts and gain valuable insights on the sales process. The application also includes tips, suggestions and insights which help to maintain customer relationships with ease.

Functionality includes:

  • Contacts/Accounts
  • Leads
  • Opportunities
  • Quotes
  • Orders
  • Invoices

Dynamics 365 for Marketing

Dynamics 365 for Marketing is an application which seeks to optimise the way in which organisations generate sales opportunities and turn them into business relationships. The application seeks to bring together sales and marketing strategy to create a unified approach for managing the whole sales lifecycle. Companies can use the Marketing application to create a personalised marketing strategy which uses data on previous activity to target specific individuals and deliver personalised advertisement messages.

Functionality includes:

  • Event Management
  • Portals
  • LinkedIn Integration
  • Lead Management
  • Surveys
  • Email Marketing
  • Behaviour tracking
  • Customer Journeys

Dynamics 365 for Customer Service

This application provides companies with the ability to provide personalised, high quality customer service on a range of platforms. The Customer Service Hub within the application provides a centralised GUI and includes many tools that companies can use to improve and optimise the service they provide to customers. These tools provide a complete view of customer cases and enable companies to provide personalised support for customers. Users can create and view customer cases, record and monitor progress, view previous customer interactions and see an overview of all open cases, which can be broken down into categories, such as product, priority and incident type.

Functionality includes:

  • Contacts/Accounts
  • Queues
  • Cases
  • Contracts
  • Knowledge Base Articles
  • SLA’s

Dynamics 365 for Field Service

The Field Service application focuses on businesses’ operations in the field and provides companies with tools they need to successfully operate and deliver high quality service to customers when on-site. The application optimises the efficiency of resources through improved scheduling, increasing the effectiveness of staff on-site and utilises Internet of Things to identify and diagnose customer issues early on.

Functionality includes:

  • Resources
  • Bookings
  • Work Orders
  • Inventory
  • Agreements & Billing
  • Universal Resource Scheduling

Dynamics 365 for Project Service Automation

Project Service Automation is an application targeted towards companies that provide project-based services and includes tools to increase productivity, efficiency and the quality of the work being delivered. The application includes tools to assist these organisation through the whole project lifecycle and allows users to plan projects, track progress, forecast price and profitability, monitor the scope, review and assess costs and time, optimise resource scheduling, amongst other things

Dynamics 365 for Finance and Operations

Dynamics 365 for Finance and Operations is Microsoft’s integrated ERP system. It includes a variety of features such as supply chain management, intelligent analytics, financial management, operations support and human resources management. One of the central features of Finance and Operations is its financial management capabilities. This platform allows organisations to use features such as general ledger, accounts payable, accounts receivable, banking, budgeting and forecasting, fixed asset management and tax management.

Finance and Operations also includes a number of capabilities which aid organisations to manage and optimise their supply chain operations. Some of these capabilities include sourcing and procurement, inventory and warehouse management, materials requirements planning (MRP), and manufacturing management. These capabilities enable organisations to optimise and automate their supply chain at every point throughout the process.

Dynamics 365 for Talent

Dynamics 365 for talent, Microsoft’s human capital management application, provides organisations with the tools they need to optimise the way in which they manage and engage with their workforce. Talent is made up of three central parts:

  • Attract
  • Onboard
  • Core HR

Attract focuses on the all parts of the recruitment process, from finding suitable candidates to submitting offers to successful applicants. Once successful applicants become new employees, the Onboard part of Talent helps to assimilate new joiners into the organisation. Finally, Core HR is designed to enrich the experience of employees and managers in organisations by creating a self-service portal. Within this portal employees can request time off, set and track performance goals, receive feedback and monitor skills and capabilities.

LinkedIn is the world’s largest talent database and often the primary system that recruiters use to find, communicate with, and source candidates for the jobs that recruiters are looking to fill. LinkedIn Recruiter integration with Dynamics 365 for Talent (Attract) makes it easier for users to hire, and to keep the data in sync between the two systems

Dynamics 365 for Retail

Dynamics 365 for Retail works to bring together both front and back office function to assists businesses in optimising inventory, merchandising, store operations and hardware to create a unified multi-channel sales approach that delivers a high-quality shopping experience.

Retail shares functionality with both Finance and Operations, and Talent.

Dynamics 365 for Business Central

Microsoft Dynamics 365 Business Central is a cloud-based, all-in-one business management solution which enables customers to upgrade from their entry-level accounting software or legacy ERP system to one single, comprehensive solution to manage finances, operations, sales and customer service. Helping organisations streamline their processes, improve customer relations and enable growth through:

  • Business without silos—connecting businesses and boosting efficiency with automated tasks and workflows, all within the familiar Microsoft interface of applications such as Word, Outlook and Excel.
  • Actionable insights—achieving more and gaining a complete view of the business with connected data, business analytics and guidance delivered by Microsoft’s leading intelligent technologies.
  • Solutions built to evolve—get started quickly, growing and adapting in real time with a flexible platform that makes it easy to extend beyond Business Central based on evolving business needs.

Microsoft Dynamics 365 Business Central Essentials includes the following functionality:

  • Financial Management—general ledger, workflows and audit trails, bank management, budgets, deferrals, bank reconciliation, dimensions, fixed assets and currencies.
  • Customer Relational Management—contacts, campaigns, opportunity management and built-in integration with Dynamics 365 for Sales.
  • Supply Chain Management—sales order management, basic receivables, purchase order management, locations, item transfers, and basic warehousing.
  • Human Resources—employees and expense management.
  • Project Management—resources, estimates, jobs and time sheets.
  • Other—multiple languages, reason codes, extended text, Intrastat reporting, scheduled tasks and Outlook integration

Microsoft Dynamics 365 Business Central Premium will include the above functionality, plus:

  • Service Order Management—service orders, service price management, service item management, service contract management, planning and dispatching.
  • Manufacturing—production orders, version management, agile manufacturing, basic supply planning, demand forecasting, capacity planning, machine centres and finite loading

Microsoft Stack Part 9: CDS & CDM

Microsoft’s Common Data Service

Microsoft’s Common Data Service (CDS) is an Azure-based application which stores and manages the data that is used to create applications on PowerApps and explore insights on Power BI.

CDS is the collective name for two different services offered by Microsoft, CDS for Apps and CDS for analytics.

The former is built into PowerApps and it brings together and stores the data from Dynamics 365 applications and databases to enable users to create business applications.

The latter, on the other hand, is similar to a data warehouse or data lake. It pulls, aggregates, cleans, integrates and stores data from multiple sources which can then be used by organisations for analysis to produce visualisations, dashboards and reports.

Using CDS has a number of benefits, including:

  • Effortless data management: the data is stored in the cloud, so users can benefit from the lower costs associated with cloud storage, scalability. data redundancy and high availability.
  • Security: role-based access allows organisations to easily control who has access to the data
  • Dynamics 365 integration: users can easily utilise data on Dynamics 365 to create business applications
  • Data quality: business rules, workflows and process flows are used to ensure the quality of the data that is stored.

Common Data Model (CDM)

When using multiple sources to create business applications or explore business data, each source may have a specific way in which it categories, formats and structures the data. In order to aid the development of business applications and data analysis, CDS uses the Common Data Model to create standardisation and consistency across the data. The CDM is shared data language that allows different business applications and databases to communicate in the same language, so to speak.

The CDM contains a set of standardised schemas and semantic metadata that creates a standardised structure and format for data coming from different sources. It does this through the set of entities that standard across businesses, as well as the relationships between these entities. Entities are a set of individual data records.

Think of entities as tables within a database and records as specific rows within those tables. It is common for entities to share the same data and thus have a relationship.

For example, the entity “Discount” will likely share data with “Quote”, since businesses will quote a discounted price to attract customers. If a business requires an uncommon, specific entity they have the option of creating their own. Some of the standard entities included in the CDM are listed below.

Training & Certifications – Success!

As I’ve mentioned in a previous post ( https://thecrm.ninja/2019/05/08/training-certifications/), I’ve been updating my knowledge and studying for the MBP-900 exam.

At the same time, I’ve also been studying for the MB2-15 and MB2-716 exams, in order to attain the MCSA qualification. These had an inherent deadline, as the 716 exam and MCSA qualification are ending at the end of June 2019.

Once I felt that my knowledge level was up to the necessary levels, I went to book all three of them! My preference is to take the exam using the Remote Proctored method, whereby you use your own system, and the audio/video is monitored by a remote exam proctor. They check the workspace, room (to make sure that no-one else is there), and keep an eye on things.

The date for my exams was June 19th 2019 (yesterday). I staggered the exams to give some time between each to relax and get ready for the next one.

Amusingly as part of the whole process, I memorised the script that the proctors use…which didn’t necessarily endear me to them, as they’re not allowed to skip any part of it 😀

Having taken the 715 and 716 (and passing!), this then resulted in the MCSA award. Knowing that the MCSE was tantalisingly in reach (and also stopping at the end of June 2019), and only needing one more exam to attain, I decided to book the 717 exam for late afternoon – I’ve been looking at the material for it, but wasn’t sure if I would be able to pass it or not.

The next exam was the MBP-900. This is the new format of exam (only lasting for an hour, with around half the number of questions of the previous exams…at least that’s what I had during it). Thankfully due to the marvellous course by Julian, I was extremely well prepared, and sailed through it. One question didn’t make sense at all, so had to guess it – not sure if I answered correctly or not….

Then the last exam of the day was the 717. I took more time on this than any of the others (almost ran out of time), due to not having spent a lot of time studying the material. Thankfully….I managed to JUST scrape in with a PASS!. And as a result, also got the MCSE for Business Apps.

Many thanks to Mark Smith for the motivation, Julian Sharpe for the MBP-900 training course, Neil Parkhurst for the materials on his blog, and many others as well.

All in all, an intense day, but with a real feeling of satisfaction and accomplishment from it. And not to forget – I also get badges! Woop woop