You are currently viewing Power Pipelines and Enhanced ALM Part 3 – Solution Register

Power Pipelines and Enhanced ALM Part 3 – Solution Register

The Register

This register will serve as the next pillar in this project. This is where all information about a project being proposed, being developed, or in Operations and Maintenance (O&M) will be stored.

When a new low code project is requested it will be entered into a MDA, from there an approval to management will go out requesting time be spent gathering requirements. If approved, the BA team along with the development team will meet with stakeholders gather requirements and define the project scope. Then the development team will request an approval for development work to actually begin. This is being done for a few reasons. First it ensures dev teams are not just running amuck building without control. Secondly, it will act as the gatekeepers to the pipeline. If a project has not had the initial approval the project will no exist in the Development Environment. If a project is not in the register it will not be allowed to push to production. There will be more as we dive deeper into the creation of this project, but enough of the oversight lets build it out.

Data Model

--- title: Register ERD --- erDiagram Register }| -- || Entra :contains Register }| -- || Contacts :contains Entra{ int EntraID PK } Contacts{ int ID PK } Register { string ProjectName PK lookup MicrosoftEntraID-ProjectLead FK lookup Contacts-Customer FK }
  1. Create a solution in Dev called Power Platform Project Management.
  2. Create a table in the solution called Power Platform Projects using the data model below.

    đź’ˇ This will only be the first iteration of the table it will grow as the project evolves

  3. Create a new Main Form called “Platform Project Management Main Form”

Model Driven App

  1. With the form created we will now create a simple MDA called Platform Project Management Application and the Power Platform Projects table.
  2. Remove the Main Form from the app
  3. From the Settings menu enable Enable Areas
  4. Rename the First Area as Projects
  5. Add the Contacts and the Entra ID
  6. Save and Publish the app
  7. Play the application and ensure that you can enter in the information as intended
  8. Push the Solution to Test in pipelines and ensure it works the way as intended.

Adding Solution ID to Table

  1. Within the Power Platform Projects table add a new column called “Development Solution ID”.
  2. This will eventually contain the Solution ID of the solution within our development environment
  3. Add the column to a new tab called Project Technical Information
  4. Since we do not want users to directly edit this ID we will set it to read only then hide the tab.
  5. We are hiding the tab because we do not want users to have to mess with to many fields on initial during project intake.
  6. To show the tab after the record has been created we will use JavaScript to manage it.
    function onFormLoad(executionContext) {
      var formContext = executionContext.getFormContext();
      // Get the record ID
      var recordId = formContext.data.entity.getId();
      // Set the vars
      var tabinfo = formContext.ui.tabs.get("tab_tech");
    
      // Check if the record has been created
      if (recordId === null || recordId === "") {
        // If the record has not been created, hide the tabs
        hideOrShowTabsAndSections(false);
      } else {
        // If the record has been created, show all tabs
        hideOrShowTabsAndSections(true);
      }
      function hideOrShowTabsAndSections(isVisible) {
        tabinfo.setVisible(isVisible);
      }
    }
    
  7. Then add the JavaScript into as a library
  8. Update the Events to load the JavaScript onload
  9. Save and Publish the Form. Then test the app to ensure that the JavaScript works as expected.

Intake Questions

Now that we have the start of the app and table created, we will add in some project intake questions. These will serve as the “kick-off” meeting questions for the project. For starters we will only as the following questions.

  1. Is this Solution Permeant or Temporary?
  2. When does the solution need to be delivered?

    đź’ˇ To see the entire process please refer to process map found on GitHub

This list can and will grow as needed, but for demonstrations purposes we will only show these two.

  1. In the Power Platform Projects create a choice column called “Is this solution Permeant or Temporary” using a new global choice called Temporary or Permanent
  2. Create a new Date Only column called When does the solution need to be delivered
  3. Update the main form as follows

Business Rules

Now that all intake is completed we can build a business rule that will set the fields to read only after it has been created. We could update our JavaScript to handle this, but I prefer to use business rules to control filed read only status.

  1. From the Power Platform Projects table create a new Business rule called Lock Fields when created
  2. Set the initial condition as follows
  3. Add a lock for Name and both intake questions
  4. Activate the Business Rule then test it out to ensure it works as expected.
  5. The project is created, we can update the customer and lead is need be, but the initial intake questions are locked in.

That's going to do it for this post. In the next one we will go over adding the approvers and building out the approvals process.

Leave a Reply