Description of the functional aspects of importing and initial configuration of Bluefort LISA Project Operations Integration managed solution.
Release 1 – SDD & Components
This design document provides a high-level overview of the integration flow between the D365 Project Operations application (PO) running on the Microsoft Power Platform with the LISA ISV subscription application available for the D365 Finance and Supply Chain apps (FO).
The aim is to create an integration without creating more process steps and minimal footprint on the out-of-box functionality for a more resilient and robust. The project integration flow will start with D365 Project Operations where project contracts are created, and resources planned. The subscriptions associated with these projects together with their duration, pricing and entitled resources are then synched with LISA to enable invoicing of project sales orders.
The solution proposed is based on the dual-write out-of-the-box application provided by Microsoft to integrate model-driven apps like Project Operations with Finance and Operations apps.
Figure 1: Dual-Write overview
With dual-write, synchronous and bidirectional flow between the two applications of the underlying master data for customers, project contracts, resources, tasks and time entries can be achieved. Existing Microsoft solutions can be found in App Source to map these entities between the two applications. This solution design assumes that these mappings can be configured using out-of-the-box functionality and therefore effort to configure this dual-write mapping and integration for master data is not included.
The master configuration of the LISA module will remain in FO. No master parameters related to the subscription module will be duplicated in PO. This is to ensure data integrity of the LISA setup with regards to the main processes running in the Subscription module.
Figure 2: Subscription management master parameters
The main setup which defines the subscription products and pricing of these items that includes trade agreements will also remain in FO and will not be replicated in Project Operations.
Thus, which products can be selected as subscription items in the Project and their respective pricing will need to be set up in FO. Users of Project Operations will be allowed to select these items based on the configuration of Supply Chain Operations.
Figure 3: Product level subscription parameters
Properties and attributes related to the actual subscription lines added to a project will be made available to Project Operations users so that they can add and modify these fields. This gives the flexibility to the users to setup the required subscriptions whilst ensuring the integrity of the subscription products and their validation which will be kept in FO.
Figure 4: Creating project subscriptions
From PO, users will be provided with a button / link that opens a separate page in Finance Operations linked to the current Project. This page can be used to enter the Project subscription lines including prices and resource entitlements. To access this page users will only need a Team Member license for FO.
With this solution Project Operations users can still view subscriptions whilst the validation and pricing engine remain in the core LISA product running in Finance Operations. This proposed solution aims to avoid duplication of the LISA functionality, and thus eliminate the risk of inconsistent subscription functionality and keep the code maintainable for future updates without the need of additional effort.
Integration Flow Architecture
For the integration to work, a process flow needs to be followed. Customer and project data first need to be in-sync between the Project Operations and Finance Operations apps. The LISA module in FO needs to be set up and subscription products configured before PO users can enter project subscriptions.
Below is a sequence of steps which explain the integration flow also depicted in the figure below.
- Customers created in FO and synchronized with PO
- Projects created in PO and synchronized with FO
- Users configure LISA master setup in FO
- Users configure LISA subscription products in FO
- PO users create project subscriptions and subscription hours entitlements using the integration page made available from FO.
- Subscriptions plans, plan lines and entitlements will be synchronised to the Subscription management module using a button “Transfer to subscription management” which will also have the option to run this transfer in batch mode
- Records which are successfully transferred to Subscription Management are marked as Success. Records that (for any reason) fail to be synchronized are marked as failed. PO users can then click on an Infolog button to see the validation errors. The same form will be made available in FO so that admin users can review failed records.
- The LISA engine (batch process) will then create subscription actions of type “Project sales order” based on the entered project subscriptions for the selected project and customer. These can be invoiced using standard Project Invoice proposal functionality.
- When these subscriptions actions are firmed either manually or by a batch process the project invoices are created in FO.
- The LISA engine (batch process) also creates actions of type “Project hours entitlements”
- Workers enter time entries in PO, and these are synchronized with FO.
- When generating invoice proposal for the project hours which have been synchronized, the actions of type “Project hours entitlements” will be used to zero-ise invoice proposal lines which are included in the project subscription and thus not to be billed again.
Figure 5: Integration flow
Bluefort LISA Project Operations Integration 220.127.116.11
Bluefort solution for project operations integration with FinOps are as below
- FinOpsParameter: a new entity used to save data related to connection between ProjOps and FinOps
- New fields
- New relations
- Project entity
- 2 new fields.
- Customized standard form (to be excluded)
- Relation with the new implemented entity
- Company entity
- Relation with the new implemented entity
- 2 java scripts that handle the new control in the project form.
Release 2 – SDD & Components
Bluefort LISA Project Operations Integration 18.104.22.168
New custom entity to be created in D365-ProjOps (CE-side). This will contain the entitlements data coming from LISA actions from D365-Finance. It is important that one field holds the contract id and another field holds the project id. This makes filtering via views easier.
Generic views (active / fully consumed / all) will show all entitlements across all contracts/project, will be created and made accessible from the sitemap.
At the moment there isn’t a table in the CE side of Dynamics 365 Project Operations where we can hold entitlement data.
The solution Bluefort LISA Project Operations Integration should be extended with a new Dataverse table (previously known as entity) called Project Entitlement, Plural name: Project Entitlements which will hold entitlement records to be transferred from the LISA solution in Dynamics 365 Finance and Operations.
The new Dataverse entity should be organisation owned and contains the following columns (previously known as fields):
- Action – text – Primary Column – unique
- Project Contract– text
- Project – text
- Subscription Plan – text
- From Date – date only
- To Date – date only
- Original Hours – Decimal Number
- Remaining Hours – Decimal Number
- Pending Hours – Decimal Number
- Status – option set with values Active / Inactive
- Description – text
Dual-write mappings would then need to be created and bundled with into the Bluefort LISA Project Operations Integration solution or to a separate solution according to the latest Microsoft best practice which is usually documented here: https://docs.microsoft.com/en- us/dynamics365/fin-ops-core/dev-itpro/data-entities/dual-write/app-lifecycle- management#test-your-exported-solution-package
The mappings should be as follows:
|D365-FinOps Dual-Write Data Entity Field
|D365-ProjOps Table Column (entity field)
It is important that dual-write is configured to handle updates so that when the LISA action Project hours entitlement get the status Fully Consumed (i.e. NetAmount field is zero) then the record on the CE side will become inactive.
Release 3 – SDD & Components
Bluefort LISA Project Operations Integration 22.214.171.124
In Release 3 we enabled creating project subscriptions for Project quotations and Project Contracts. It is also possible to synchronize Project subscription Contract Templates from FinOps to ProjOps in order to formalise a subscription into a fixed term contract. On the quote header you can see the Total Subscription Value of the quote. This totals either the first cycle of the subscription (in case of a non-contract subscription) or the first term of the contract (in case of a contract subscription).
Project subscriptions are linked to a quote line (1..N) and the automatically copied to a contract line (1..N). This happens after you create a ProjOps project and link the contract line to a specific project and a specific project task from the WBS and, optionally, a subscription commercial template.
It is also possible to re-transfer a project subscription from a quote line to a contract line by manually setting the “Transferred” flag to false.
Project subscriptions can also be created directly on the project contract line (without coming from a quote first). Only project subscriptions linked to a project contract line (copied from the project quote line or directly created on the contract line) are synchronized to the Project Subscriptions table and form in FinOps. This is done via dual-write.
It is optional to specify a “Project Subscription Commercial Template” and a “Vendor”.
Depending on the configuration of the “Project Subscription Commercial Template”, the contract value field is calculated as the Cycle Value X Contract Cycles.