Incident Management Application

Incident Management Application in Canvas Application

 

Objective

Incident management is a procedure that aids in the restoration of normal service operations as soon as possible.

We are creating two canvas app one is Employee App and Agent App.

·        Employee can Login, Add the incident and View the Dashboard.

·        Agent App is used by Agents to view all the incidents and according to the set SLA’s Agent can change the priority and update the Status of the incident. Agent can also view the graphical representation to check the insights.

 

Process of Incident Management App

• Detection and recording of incidents

• Understanding the details of the incident context

• Communication and reporting on incidents (reporting is mainly done by reporter and communication is between support team and reporter)

• Priority Classification and initial assistance (classifying the severity of the incident, i.e. prioritizing tasks based on their impact on the business)

• Research and analysis (To understand the RCA and analysis of the patterns that may lead to the incident)

• Resolution and documentation (For example, fixing network errors, replacing hardware, and renewing licenses). Maintaining records is essential for staying organized.)

• Incident closure, ownership, monitoring, tracking, and communication of incidents

• Create an incident management framework.

• Assessment of incident framework management.          

 

Database: -

We have to create three tables: -

1.)    Employee Table: -

a.      Employee Code -

b.      Employee Name

c.      DOJ

d.      Is Agent

e.      ID

f.       Created

g.      Created By

h.      Incident Category

i.       Incident Subcategory

j.       Priority

k.      Status

l.       Incident Description

m.    Incident Image

2.)    Agent Table: -

a.      Employee Code

b.      Employee Name

c.      DOJ

d.      Is Agent?

e.      Incident ID- Lookup with Employee table

f.       Created By

g.      Created On

h.      Incident category

i.       Incident Sub Category

j.       Incident Description

k.       Priority

l.       Status

m.    Incident Image

3.)    Incident: -

a.      Incident Category

b.      Incident Sub Category

 

We have created three tables for this Incident App and we have interlinked them.

 




 

Linking of Data between Apps

We have used Power Automate flow to update data between the apps.

Flow 1: Once the employee is submitting the incident in the Employee Incident App the data will be used from Employee Database and Posted in the Agent Database and that will be updated in the Agent Dashboard.

POST: -

·        {"source":"la-draft-clipboard","value":[{"tokenKey":"C117CDB3-6097-4541-A63F-C594B8A4A4B4","type":"enum","tokenExpression":"EmployeeIncidentTracker","token":{"title":"EmployeeIncidentTracker"}}]}

·         {"source":"la-draft-clipboard","value":[{"tokenKey":"12B0003B-97B2-4CFC-B18C-305C3E7B0A9C","type":"enum","tokenExpression":"POST","token":{"title":"POST"}}]}

 


Flow 1: Once the Agent is updating the incident in the Agent Incident App the data will be used from Agent Database and will be patch to the Employee Database as with the reference to the IncidentID and that will be updated in the Employee Dashboard.

PATCH: -

·        {"source":"la-draft-clipboard","value”: [{"tokenKey":"5004AE2C-4A47-4359-A793-DE4C9393BC80","type":"enum","tokenExpression":"AgentIncidentTracker","token”: {"title":"AgentIncidentTracker"}}]}

·        {"source":"la-draft-clipboard","value”: [{"tokenKey":"60156AD2-5331-4953-8FD2-B1D776D3F429","type":"enum","tokenExpression":"PATCH","token”: {"title":"PATCH"}}]}

 



  

 

Employee Incident App

In this, we will create a canvas app tablet view in which we will take a Gallery and add the incident, and in the dashboard, we will be able to see the data that we recently added.

·        Header gallery

·        Gallery to display the data

·        Textbox for search

·        Add incident Button

·        Design colour and Rectangle with different colours.

On Log in Screen

On Login Button: - Set(UID,TIUserName.Text);Set(VarEName,LookUp(ListLogin,UID=Title,EmpName));If(!IsBlank(LookUp(ListLogin,Title=TIUserName.Text And Password=TIPassword.Text).Title),Navigate(SecondScreen,ScreenTransition.None),UpdateContext({VarShowError: true }))

ShowButton:-  Disabled Colour, pressed colour, Hover colour, border and colour is transparent.

TIPassword Text Input Box:- If(ShowButton.Pressed,SingleLine,Password)

View Icon:- On Icon property :- If(ShowButton.Pressed, Icon.View,Icon.Hide)


 


On Dashboard Screen :-

Open:- CountRows(Filter(EmployeeIncidentTracker,Status.Value = "Open"))

Closed:- CountRows(Filter(EmployeeIncidentTracker,Status.Value = "Closed"))

Awaiting confirmation:- CountRows(Filter(EmployeeIncidentTracker,Status.Value = "Awaiting confirmation"))

On Hold:- CountRows(Filter(EmployeeIncidentTracker,Status.Value = "On Hold"))

 

On Gallery:- SortByColumns(Filter([@EmployeeIncidentTracker],StartsWith(Title,SerchTextBox.Text)),"ID",Descending)

View Button :-  Navigate(ThirdScreen,ScreenTransition.None,{LocalVarNav:ThisItem.ID})

Delete Button: -  Select(Parent);UpdateContext({VarPopUp:true})






Three in one form :-

This is Three in one form, where we can Add a new incident, Edit it and View it.

Screen OnVisible :- UpdateContext({LVarRecSub:LookUp(EmployeeIncidentTracker,ID=LocalVarNav)})

Form DataSource:- EmployeeIncidentTracker

Form OnSuccess :- UpdateContext({LVarRecSub:FormThreeInOne.LastSubmit});

UpdateContext({LVarEdit:false})

Item:- LVarRecSub

Default Mode:- If(LVarEdit,If(IsBlank(LVarRecSub),FormMode.New,FormMode.Edit),FormMode.View)

Reset Button :- ResetForm(FormThreeInOne)

Edit Button:- UpdateContext({LVarEdit:true})

Save Button:- SubmitForm(FormThreeInOne);Notify("Your Record has been saved",NotificationType.Success); Navigate(SecondScreen)

 


                                                                                    

 

Agent Incident App

Agent Incident App will help us view all the incident raised by Employees for Any Hardware or Software/Service Issue. To display data on the screen we have used

·        Header gallery

·        Gallery to display the data

·        Textbox for search

·        View Incident

·        View Dashboard

·        Buttons and Icons to Bifurcate on Incident Category

·        Data Cards to view Count of Incident by Status

              

The incident will be Handled by agent until closed and Agent has the access to change the Priority and Set Status as per Resolution and SLA’s

 

On Dashboard Screen

On Items of Gallery Display-  If(

    !IsBlank(LvarFilterByFilter),

    Search(

        Filter(

            AgentIncidentTracker,

            IncidentCategory = LvarFilterByFilter

        ),

        seachQuery,"IncidentSubCategory"

    ),

    IsBlank(LvarFilterByFilter),

    Search(AgentIncidentTracker,seachQuery,"IncidentSubCategory"),

    AgentIncidentTracker

)

 

To Count the Values of Status: CountRows(Filter(AgentIncidentTracker,Priority.Value = "Low"))

 

To Filter Content by Clicks on Buttons as per category: CountRows(Filter(AgentIncidentTracker,IncidentCategory="Hardware"))

 



 

On Select of Item: The Form is getting displayed which will display the incident Details by

 

UpdateContext({ImgVisible:true,ImgValue:ThisItem})

 

And Container is getting Visible by ImgVisible

 

 



 

 

On Select of View Dashboard : UpdateContext({BIVisible:true})

On on BI Tile Visible: BIVisible



 

This is how we have created separate applications for EmployeeApp and AgentApp, Both applications have their own databases , mirror versions of the same Entities. On save of new Incident request in the EmployeeApp, created the Same record in the Agent App as well using POST  concept.On update of the request status in the AgentApp, update the same record in EmployeeApp using Patch.Kept a Unique identifier between both Applications “Incident” tables to identify correct records for operations.

 

Thank you for reading!

 

 















Comments

Popular posts from this blog

Desktop Flows in Power Automate

Integrating page in model driven app