CompanyRemote

Client Portal Development and Data Migration

Deadline: 2026-04-07
Project-Based

Description

Budget: £10000 - £20000

Step 1: Dataverse Storage Clean-up run one-time bulk delete jobs to reduce the size of several log tables, especially the System Jobs, which are by far the largest. add scheduled bulk delete jobs to run every week. Step 2: Set up a “Dev” Sandbox Environment use a “Dev” sandbox environment for preparing changes for subsequent deployment to the Production environment. Under normal circumstances, both environments would be kept in step. Having used a tool to compare the solutions (which are used to move changes from one environment to another) against the Production and sandbox environments, the solution versions matched, up until March 2022, when a “Haulier App” solution was created in Production, but does not exist in the “Plan B Sandbox” environment. take a copy of the Production environment into a new “Dev” sandbox environment. Step 3: Re-implement the Order and Order Product tables The Order and Order Product tables are the only Dynamics 365 Sales provided tables that are currently being used in the system. remove them from use, by doing the following: 1) Creating custom-built versions of these tables, with the same fields and similar form and view layouts.

Update the other Dynamics components that are using the Order and Order Product tables, to use the new custom versions. This will require updating linked tables, Dynamics workflows, Power Automate flows, and perhaps some JavaScript code. 3) Prepare and test a data migration method for copying the existing Order and Order Product data ‘sideways’ into the new custom tables. There are currently 42,113 Order records and 44,411 Order Product records in the system. Fortunately, while this may look like a large number of records, they are ‘small’ tables (i.e. they do not have many data columns) and so we can copy the data with a script, rather than having to write a more complex code-based migration tool. Step 4: Provide a secure client portal, that uses the new custom tables Two options that we could take for moving to a secure client portal are outlined in the sub-sections below. Option A: Update the existing ‘portal’ Canvas App

Re-engineer the internals of the Canvas App to use the new tables. The Canvas App is mainly based around Loads and Load Work Orders, but those tables have links to the Order table (and perhaps the Order Product table), so the links will need to be replaced. 2) The current “double ” approach is very insecure. Sticking with a Canvas App, rather than moving to a web-based portal, the only viable alternative is to provide each external user with their own authenticated, which will require them to have a Power Apps license. These can be assigned to Guest users within your Microsoft tenant. [Note: External people become a Guest user within your Microsoft tenant when something is shared with them, such as a SharePoint folder. They can also be sent a direct invite from Microsoft Entra ID.] 3) The ownership model and security roles will need to be updated to control what records external Guest users could see and update. The exact implementation approach will need to be discussed, but it will likely include moving to an ownership structure based around records being owned client-named Teams or Business Units. Essentially, the security controls within Dynamics will be used to control the access of external Guest users. Note: The above changes would be made to a new copy of the Canvas App. Option B: Replace the ‘portal’ Canvas App with a Power Pages Portal A Power Pages portal is the latest incarnation of what was originally a Dynamics CRM Portal. Power Pages allows you to quickly build secure, external-facing portal websites that connect directly to the data in your Dynamics Dataverse datastore.

Power Pages portal users will using their own normal Microsoft work account, via the Microsoft Entra B2B collaboration service, which will need to be configured within our Microsoft tenant. Each user’s B2B will then be linked to their contact record within Dynamics via an invitation code. The invitation codes are generated within Dynamics and can then be provided to external users via a secure method. Within the Power Pages portal, Web Roles (effectively security roles within the portal) control what records each user can access, based on their relationship with their own contact record. For example, a Web Role can be configured to allow an external user to access their own contact record, its linked Account record, and hence the Order and Loads for that company.

Step 5: Migrate data and onboard users to the new ‘portal’ The final stage in the Plan, will be to migrate the data and users to the new set-up. The cutover schedule will be agreed. It could involve getting external portal users to pre-in advance, to confirm that they have access, before the data is then migrated over a weekend.

Skills

SecurityPower AppsMobile App DevelopmentCloud ComputingApp DesignApp DevelopmentDynamics 365PHPJavaScriptPower AutomateData ManagementDatabase DesignMySQLAPI DevelopmentMicrosoft Access

Want AI to find more roles like this?

Upload your CV once. Get matched to relevant assignments automatically.

Try personalized matching