Introduction | Overview | Prerequisites installations | Repo code setup | Deploy | Tools
The Financial Services Repository contains the code-base for the Unified customer profile, Loan onboarding, Onboarding essentials, Banking data model, Small business data model and Property and Casualty data model.
The Unified customer profile provides a 360-degree perspective of the customer in a clear and intuitive way. It helps professionals have a good understanding of their customer’s financial details, important life moments, goals and much more, in order to be able to effectively maintain or deepen their loyalty. It has been tailored to fit the specific needs of professionals operating in the retail banking and the wealth management industries.
Loan onboarding has been designed to streamline the lending process by leveraging key capabilities such as document and data collection and verification. The application is easily configurable and extensible so that you can customize it to fit the needs of any financial institution looking to provide lending professionals with a unified interface to manage loans. Learn more about Loan onboarding here.
Onboarding essentials provides a set of configurable components to address any onboarding scenarios. You can create an application using a combination of the Onboarding components and out-of-the-box platform components. Learn more about Onboarding essentials here.
Banking data model provides the foundation for operational capabilities across retail banking and wealth management. Learn more about retail banking data model here
Small business data model extends the Microsoft Cloud for Financial Services data model foundation to represent individuals and allows linking small businesses to individual financial holdings. Learn more about small business data model here
Property and Casualty data model captures new attributes including policy and coverage information, claims, insurance providers and producers. Learn more about property and casualty data model here
Introduction | Overview | Prerequisites installations | Repo code setup | Deploy | Tools
This guide walks you through the entire process of building and deploying any of the solutions within the Financial Services Experiences, such as the Unified customer profile, Loan onboarding or Onboarding essentials. It introduces the list of essential prerequisites, a set of detailed code setup instructions, a deployment guidance into the Power Platform environment, and an overview of the tools at your disposal. To install the solution, you can either carefully follow the instructions outlined in the following sections or use InstallTools.cmd in Tools.
Note: To guarantee a smooth build process, you may need to have a memory of 8GB or more to avoid running out of memory on build. Consider using Windows PowerShell of version 5.1 as needed throughout setup steps.
Introduction | Overview | Prerequisites installations | Repo code setup | Deploy | Tools
Install NVM to use the specified Node.js version (18.14.1).
nvm install 18.14.1 and then nvm use 18.14.1 on Windows PowerShell.npm install -g pnpm@8.6.2 command.Install-Module Microsoft.Xrm.Tooling.CrmConnector.PowerShell (use Administrator Windows PowerShell). You can use the instructions in this guide to change the registry and allow file path longer then 260 characters.git config --global core.longpaths true.To install the CRM SDK tools, you can manually the specified steps, or run the CrmSdk Tools PowerShell script installer located in $RepoRoot> ./Crm.Sdk.Core.Installer.ps1 after cloning the repo.
| Introduction | Overview | Prerequisites installations | Repo code setup | Deploy | Tools |
pnpm install in \frontend directory to install all dependent node libraries. If you encountered an error, run Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass and try again.pnpm build-libs in \frontend directory to build all dependent node libraries.Modules\FSI.sln in Visual Studio, and build the solution. If the build fails, go to the next step.\Modules and run dotnet build. The build should complete without any errors.Note: It is important that you follow the setup steps in the following sections, as without them, the build process won’t work properly and you might spend quite a lot of time in debugging issues.
Follow this section when adding a new solution to the code. If the solution already exists, skip to the Export solution or data section.
There are two name convention in the setup that will be shorten for readability.
module: The module name is the package you are working on.fullName: The concatenation of the group and solution in the <GroupName><solutionName> format. Here, group name is the name of the group in which you are working. For example, if a group name is FSI and a solution name is BankingDataModel, the full name is FSIBankingDataModel.
modules, with the name <module>.fsinew\Modules\FSI.sln) in Visual Studio and create a new solution folder with the name <module>.The anchor solution is the indicator that all the solutions in a package were deployed at the client.
Class Library (.NET Framework) with the name <fullname>Anchor under the <module> folder. In this case, solutionName is module, so fullname is <Groupname><module> and the new project name is <Groupname><module>Anchor. Note that the default project path is incorrect. Make sure the project is created under the <module> folder.Properties.Class1.cs.FSIBaseSolution.csproj from the <projectDirectory>/templates to the newly created csproj file and update the ModuleName attribute with <module>.build\include and add a "<fullname>Anchor." entry to the xrmcopyexcludes.txt file (note the period at the end).<module>Anchor.exports\solutions and open the SolutionMappings.json file.
ProjectName is the name of the solution in the repo. SolutionName is the display name of the solution ( in the Dynamics 365 environment) you want to add to the repo.SolutionMappings.json by following the pattern in the file.The package project combines all the other projects, such as solution, plugin, and PCF, into one package for shipping to the client and in the local deployment for testing. To set up your package project, follow these steps:
power platform package deployment project to get this package type. Naming convention is <module>.Package. Remember to make sure the project is created under the module directory. If you don’t have the Power Platform package project, you can copy from <projectDirectory>/templates/SampleProject.package.importConfig.xml file content from <projectDirectory>/templates/SampleProject.package and update importConfig.xml of the newly created package file (\Modules\<module>\<module>.Package\PkgFolder\ImportConfig.xml). Update the configsolutionfile attributes accordingly.pkgFolder to <module>.PackageTemplate.cs, override the return value of GetImportPackageDataFolderName with <module>.BaseSolution.Package.csproj file from <projectDirectory>/templates to <module>.Package\<module>.Package.csproj.
csproj, find and replace all references to FSIBaseSolution with the FSI<module>.ModuleName attribute with current <module>.properties folder and packages.config file.\Modules\<module>\<module>.Package\<module> create a ConfigData folder and copy into it the placeholder file readme.md from <projectDirectory>/templates. This folder can store data.xml files that will be unpacked there.PackageExtra folder from <projectDirectory>/templates/SampleProject.package and paste it under <module>.Package.
- Setup by project type
Set up a data project
Solution project 1. Go to the
exports\datafolder. 2. Create a schema XML file and add it to the schema folder.- The Schema file is created using the configuration migration tool. You can find more details in
readme.mdunder theexports\datafolder.- Use the schema file to download the data from your solution and paste it in the data folder.
Solution project
If you want to add a new solution with the name <SolutionName> available in your Dynamics 365 environment, follow these steps:
Class Library (.NET Framework) with the name <fullName> under the relevant <module> folder (package). Note that the default project path is incorrect. Make sure the project is created under the <module> folder.Properties.Class1.cs.template project to the newly created csproj file and update the ModuleName attribute with <module>.build\include and add a "<fullName>." entry to the xrmcopyexcludes.txt file (note the period at the end).exports\solutions folder and open the SolutionMappings.json file.
ProjectName is the name of the solution in the repo. SolutionName is the display name of the solution (in the Dynamics 365 environment) you want to add to the repo.SolutionMappings.json by following the pattern in the file. For information about the initial export, refer to this section.Plug-ins must be signed before the deployment stage. Otherwise, the deployment will fail. Follow the steps down below to sign the plug-in:
build\config folder, and follow the steps in this documentation to create a key pair, call it “key.snk”.sn -tp public.snk on Visual Studio Developer Command Prompt and save the extracted public key token.$(MSBuildThisFileDirectory)\build\config\key.snk.For plug-ins registration, you can follow the steps in this documentation.
Because Power Apps component framework (PCF) projects are special Javascript projects, they have a different build cycle. To create PCF projects, follow these instructions:
internal\src folder`<ModuleName>.PCF for the folder.src folder and a solutions folder inside the folder you created in the previous step.solutions folder, create a folder with the solution’s name considering the naming conventions specified in the naming and solutions note below.src folder, create a folder with the name of the PCF you are creating.Note about Naming and Solutions:
You must follow the recommended folder structure for the PCF, as any deviations might cause compile-time or run-time failures. As far as the naming and structure are concerned, we recommend that you have a single PCF folder for an industry vertical, such as FSI.PCF or HealthCare.PCF. This approach might cause complexity when working on common solutions or on several offering in similar verticals. Therefore, you must follow the guidelines for creating the folder structure.
In most cases, you need to create a new PCF under the <PCF folder>\src and add it to an existing PCF solution.
Post Building: After successfully building the PCF solution, you’ll need to deploy it to an environment and create a solution project, as mentioned in step 4 of the Setup guide. The solution is packed with the rest of your customizations and contains the PCFs.
As part of creating and working with plug-ins, you need to create a class library project, similar to a solution project, and update the csproj to mimic the template.
Javascript or typescript web resources are built in the frontend/web-resources/WebResources folder. To work with web resources, follow these steps:
.js extension.frontend/web-resources/WebResources folder and add a ts or js file with the same name in the newly created folder.packageMap.xml if one doesn’t already exist.
Add the following rows to the packageMap.xml:
<?xml version="1.0" encoding="utf-8"?>
<Mapping>
<FileToPath map="WebResources\**\*.js" to="..\..\..\target\WebResources\<Parent folder>\<current folder>\**" />
<FileToPath map="WebResources\*.js" to="..\..\..\target\WebResources\<Parent folder>\<current folder>\**" />
</Mapping>
Note: The <xml> and <Mapping> tags are only required if this is a new file. If the file already exists, just add the <FileToPath> tags in the right location.
.csproj file, add <SolutionMapFile>packageMap.xml</SolutionMapFile> to PropertyGroup.InstallTool only_webresource or install and run the web resource package (npm i && npm run build in the frontend/web-resources/WebResources folder).Unit test projects can be added to test plugins and run in the pipeline
to create a unit test project create a folder under Modules/tests and add a .csproj file with the following template:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net42</TargetFramework>
<RootNamespace></RootNamespace>
<AssemblyName></AssemblyName>
<DynamicsProjectType>Testing</DynamicsProjectType>
</PropertyGroup>
<ProjectReference Include="" />
</ItemGroup>
</Project>
Note that the FakeXrmEasy is taken locally since it is an edited version of the fakeXrmEasy package.
| Introduction | Overview | Prerequisites installations | Repo code setup | Deploy | Tools |
[ExtractedLocation]\tools.Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass to bypass MS policies..\RegisterXRMPackageDeployment.ps1.$RepoRoot\Modules\UnifiedCustomerProfile\Localization into your environment.| Solution | Solution Dependencies |
|---|---|
| Banking data model | - |
| Document intelligence data model | - |
| Onboarding essentials | Document intelligence data model |
| Unified customer profile for retail banking | Banking data model |
| Unified client profile for wealth management | Banking data model |
| Loan onboarding | Onboarding essentials |
| Small business data model | - |
| Property and Casualty data model | - |
Currently, no automated import tool is available. However, to use the PowerShell tool to import package, you can follow the instructions outlined in the official documentation, and to use the Package Deployer tool, you should consider this version mentioned previously in step 1 above, instead of the version attached in the documentation.
PackageDeployer is a deploy tool for the solutions. The build process compresses the packages into zip files that can be found in drop\Debug\AnyCPU\PDPackages. You can use the package deployer to deploy an entire package to your environment, eliminating the need to import solutions one-by-one followed by the data and publish customizations.
We’ve added a tool to help with the deployment. You can find the tool in tools\PackageDeployHelper. The folder contains a detailed readme file with troubleshooting steps that can help if you are using the package deployer without the helper tool.
To enable multiple languages on your Power Platform environment, follow these steps:
Select preferred language: When creating your environment, choose the desired language to enable localization right from the start. Or you can enable/disable available languages in the environment settings.
./Localization/your-language-code/your-solution.[Content_Types].xml and crmTranslation.xml).crmTranslation.xml in an Excel app.crmTranslation.xml file with [Content_Types].xml as it was before.Introduction | Overview | Prerequisites installations | Repo code setup | Deploy | Tools
You can use ExportTool.cmd to export the solution and data or manually export them.
You can use the file to export either data or solutions (both managed and unmanaged) from an org to (root)\exports folder. As a prerequisite to export solutions, you must have downloaded the Power Apps CLI from https://aka.ms/PowerAppsCLI.
The following parameters are required for export. You need to follow these steps:
'Solution' or 'Data'. The rest of the parameters are based on the first one. For example, .\ExportTool.cmd 'Solution'.solutionmapping.json or filemapping.json (for Solution and Data respectively):
'Solution') Version: The version number, or leave empty for latest.'Solution') URL: The url for your environment, or leave empty to use the default URL from the logged in PAC profile.'Data'): The organization name, or leave empty to use the default organization name from the logged in PAC profile.
When the solution export is complete, the managed and unmanaged solution zip files are placed under exports\solutions\<ProjectName>.You can use InstallTool.cmd to install and build the front-end modules.
To run the installation tool, run the ./InstallTool.cmd command in PowerShell.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.