Introduction to our IP Address Management Solution

In this blog post, we will utilize Microsoft’s Power Platform to streamline and enhance the internal IT management process. If you own Office 365 licenses and have access to SharePoint, PowerApps, and Flow, you will be able to follow this blog post and design a custom IP address management solution without a development background.

IT departments try to find an efficient, automated, and streamlined way of completing day-to-day tasks but not all have a dedicated development team to design and develop internal custom solutions. Microsoft is empowering non-developers with tools that help to achieve their desired goals.

Today, we have a goal to help Network Administrators to enhance and streamline IP address management systems. Working with networks and subnets, IT professionals always keep track of all internal IP addresses and their utilization. Almost every environment has some sort of IP address management system. In today’s blog post we will modernize IP address management and the IP address request process.

Let’s look at the problem, (legacy approach):

We have a Network Administrator who keeps an excel spreadsheet tracking all IP addresses utilization. The main issues with the legacy approach are lack of transparency and cumbersome IP address request process.

IP Address Management Screenshot

Now, let’s look at how we’re going to automate the manual processes to solve the problem and save IT Admin’s precious time.

To fix the problem, we will need a centralized database of all IP addresses with an ability to view them on demand by any Network Admin as well as an automated process of requesting IP addresses from a mobile device. The diagram below demonstrates the high-level overview of what we are going to achieve by the end of this blog post.

IP Address Management Screenshot

As you can see in the diagram above, Admins can access the IP address mapping system without Network Administrator intervention, as well as have an ability to request IP addresses right from their mobile device. On the other hand, the Network Administrator will have full and transparent control of all requests.

Now we understand the problem and have the desired solution in mind, the next step is to identify all the required pieces in the development process. We are going to be using three main components in our solution:

  • Backend: The place where we will be storing our data such as IP address information and IP address requests. Basically, you can utilize an Excel spreadsheet, SQL database or CDS entity to store IP address information. But in our example, I am going to be using a SharePoint online list.
  • Frontend: We will be designing a user interface to communicate with the Backend to retrieve IP address information from the SharePoint list and submit requests for approval. To design the user interface and provide an ability to access it via a mobile device, we will be utilizing PowerApps.
  • Workflow: To trigger automated emails and update Backend data based on user’s input we will be using Microsoft Flow. Microsoft Flow is a powerful workflow engine that is available as part of Microsoft’s Power Platform.

Let’s dive deeper in to each component of the solution to design the IP address management system in an hour.

Backend

Our IP address management system’s data will reside in a SharePoint list. We can utilize SharePoint Team Site to create a list.  You will need to have access to create SharePoint list, you can request access from your SharePoint Admin.

Generally, you will need to create two SharePoint lists, one to store IP address mapping (IPaddressMap) and the other to store and monitor all requests (IPRequestList).

To learn how to create SharePoint lists, follow Microsoft’s documentation here.

This is an example of the list that I created for this blog post. You can add additional columns based on business requirements.

IP Address Map

If I navigate to IPaddressMap list settings, you can see the type of the columns of that list.

SharePoint columns

Column name Column type
Title Singe line of text
Description Multiple lines of text
Location Choice (Chicago, Atlanta, Dallas)
Status Choice (In use, Available)

Location is a choice field with “Chicago”, “Atlanta” and “Dallas” options. Status is another choice field with options “In use” and “Available” Permissions must be applied based on your business needs. In general, IT Admins should have read-only, and Network Administrator should have contribute or full access to the list.

Next, let’s create a SharePoint list which will hold all requests from other Admins:

IP Request List

This list consists of columns below:

Column name Column type
Requested IP Single line of text
Purpose Multiple lines of text
Status Choice (Requested, Approved, Rejected)

Follow Microsoft’s documentation on how to create SharePoint columns.

IP Address Status Requested

Frontend

Now we are ready to design the user interface to view IP addresses available and provide the ability to request one.

Navigate to IPaddressMap SharePoint list, click on PowerApps button on the ribbon and choose to Create an app.

IP Address Map

To create an app right from SharePoint list, you will need to specify the name of the app and wait until PowerApps builds the core of the application.

After PowerApps completes building base screen of the app, you should see the screen below:

How to enhance IP address management using Microsoft’s Power Platform – Part One

Applying basic design changes to the app

In the next few steps, I will demonstrate how to customize app design to make it relevant to the business requirements. All the changes that are demonstrated below are the minimum needed to accomplish the desired result. You can make additional design changes to meet your own business requirements:

  • Header text change to “IP address map”: Double click on the text and make required modifications.
  • Change the layout of the fields that we show in the card: I need to show IP address, Server name, and Status. I already have two out of three that I need. I am going to replace Description field with Status field. When you work with PowerApps galleries, make sure that you work with the first item in the galley which replicates changes to all items in the gallery.

Click on the Description field and change the property in the formula bar to ThisItem.Status.Value

Gallery Setup Basic
How to enhance IP address management using Microsoft’s Power Platform – Part One
  • Make some visual modifications such as IP address font weight and size: Select IP address and apply changes using Home ribbon options.
How to enhance IP address management using Microsoft’s Power Platform – Part One

After making design changes, we will start building the app logic. First, let’s change search behavior as well as sorting the IP addresses in the gallery. Based on the requirements, we should be able to search by IP address or description.

To achieve this requirement, highlight the gallery and paste below code into the Item property of the gallery:

How to enhance IP address management using Microsoft’s Power Platform – Part One
SortByColumns(
    Filter(
        IPaddressMap,
        ((TextSearchBox1.Text in Title) Or (TextSearchBox1.Text in Description))
    ),
    "Title",
    If(
        SortDescending1,
        Descending,
        Ascending
    )
)

IPaddressMap – SharePoint list data source

Title – SharePoint column where we store IP address value

Description – SharePoint column where we store the description value of the IP address

Now let’s make some visual changes to the Status field. Requirements are to show “In use” status in green color and “Available” in blue. To achieve the requirements, highlight Status text field in the formula bar and change property to Color and paste the code below:

How to enhance IP address management using Microsoft’s Power Platform – Part One
 If(Status.Value="In use", Blue, Green) 

Next, we are going to design a dynamic button which will show the details of the IP address if it is in use or submits a request if IP address is available. Before we start designing dynamic button, let’s connect second SharePoint list data source to store IP address requests.

Click on View, Data sources, Add Data source. Choose SharePoint from available data sources and paste the URL of the team site where SharePoint lists are created.

NewDataSource
How to enhance IP address management using Microsoft’s Power Platform – Part One

In the next screen select, IPRequestList list and click Connect. You should see two data sources in the Data pane.

ShowData

Now, we have to add an additional screen for IP address request form. In the top ribbon, select Home and click on the New screen. From the available templates, select Form screen template:

New Form Screen

Next, we will have to connect this screen to the data source. Click Connect to data and select a data source.

Connect Data Source

After completing these three steps, you should see a similar screen:

BaseForm

We will have to make some adjustments. First, we will rename the screen to RequestFormScreen and hide unnecessary fields, such as Status, and Attachments.

In the Screens pane double click on Screen1 (generic name) and type RequestFormScreen.

How to enhance IP address management using Microsoft’s Power Platform – Part One

Next select EditForm2 (generic name), IPrequestList and uncheck Status and Attachments to hide this fields from the form.

How to enhance IP address management using Microsoft’s Power Platform – Part One

While in the Data pane, change Purpose text field to multiline text field.

How to enhance IP address management using Microsoft’s Power Platform – Part One

We will also need to change the form type to New. Select the Form and change DefaultMode to New.  

CleanScreen

Change OnSelect action for (X) button to Back();  

Also, let’s place a nice big Submit button. Select the form and from the ribbon select button. Change the text of the button to “Submit Request”. OnSelect action should submit the request (creates a SharePoint list Item), reset the form and navigates to a success screen. Success screen is not created yet; we will do it after we set OnSelect action.

SubmitButton
SubmitForm(EditForm2); ResetForm(EditForm2);Navigate(Success,ScreenTransition.Cover) 

The PowerApps will complain that something is wrong and the reason is that the Success screen does not exist yet. You will see the red “X” right on the button. Let’s fix it, click on New Screen and from the templates available choose Success screen template. After the screen is added, rename the screen to Success.

NewSuccessScreen

As soon as you add and rename the screen error alert should disappear.

Now we are ready to go back and design the button which will have:

  • Dynamic button text
  • Dynamic OnSelect event
  • Dynamic color

Note: For production apps, it is best practice to rename all the screens and cards in your app for better documentation.

In the BrowseScreen1, select the first item in the gallery and insert button. You can delete the default View details button (>).

We are going to write a few formulas to make this button dynamic. Let’s control the color of the button first based on the status of the IP address. Select the button and in the Fill property, paste the code below:

DynamicButton
If(Status.Value="In use", "View details","Request IP") 

And the most important is OnSelect action of the button. The logic is:

If IP address is available, on click, navigate to DetailScreen1.

If IP address is in use, on click, navigate to RequestFormScreen.

ButtonControl
If(Status.Value="In use", Navigate(DetailScreen1,ScreenTransition.Cover), Navigate(RequestFormScreen,ScreenTransition.Cover)) 

We will need to make sure that when the user clicks on Request IP address button, the IP address is pre-populated in the Title field of the request form. Navigate to RequestFormScreen screen, select the Title field and unlock it first.

Unlock

 After the field is unlocked, let’s change the default value to the code below:

SetValue
BrowseGallery1.Selected.Title 

This code places the value of the selected Item’s Title (which is the IP address) to Requested IP address field of the form. For protection purposes, we will lock this field that users can’t change the value. While the card is selected set DisplayMode to View.

ReadOnlyValue

Lastly, let’s build a feature to let users know that certain IP address is already requested by someone to eliminate double requests.

If requested, we will mark the IP address using Pin” icon next to the button.  Select the first item in the gallery and insert pin icon.

PinConfig

Now we need to program the icon to be visible if someone already requested this particular IP address. Select the Icon and paste below code:

How to enhance IP address management using Microsoft’s Power Platform – Part One
If(CountIf(IPRequestList,'Requested   IP' = Title1.Text And Status.Value="Requested")>0,true,false)      

We are now finished designing IP address application. The last step is to build the workflow.

In part two of this blog, I will provide a step-by-step guide of how to create a workflow for your IP address management solution in Microsoft’s Power Platform.

About the Author

Daler Sayfiddinov

Daler is an MCSE specialising in Office 365. He builds business applications using SharePoint, PowerApps, Flow and PowerBI. Daler is passionate about automating day to day business processes to save customers time and increase revenue (automateiq.rocks). Connect with Daler on LinkedIn.

Comments

  1. Nelson Ruest

    Hi Daler, excellent article thank you. Is it possible to share the code for the solution?

  2. Nat Muniz

    I’m having issues with the buttons where the If(Status.Value=”In use”, “View details”,”Request IP”) is generating an error due to the syntax. Can you provide any feedback.

    1. nonymous

      If(ThisItem.Status.Value=”In Use”, “View details”,”Request IP”)

      seems the syntax changed.

Leave a Reply