PowerGantt Setup and Usage
This topic covers the fundamental aspects of creating a write-back capable report using the PowerGantt visual.
Setup and configuration of the visual
This main section describes the available configuration options for PowerGantt. Also, the following pages describes a short step by step instructions for building a simple report using it. You will find the details of the configuration elements later in this document, it is recommended that while you are going over the steps you also look up each mentioned option.
Validate the Write-back Service
After installation you might want to be sure that the write-back service is installed properly. You can validate that by navigating to your deployed URL, which is in the following format:
http(s)://yourserverName/PPWebService/PPWebService.svc
If you see the following page after the page load, then the Write-Back Service is up and running:
Setting up the Basics
After you launched Power BI Desktop, connected to a data source and imported the visual into your report, the first step is to tell the visual where can it find the write-back service and which connection should it use during the process. The configuration options will appear in the Format section of the Visualizations after you dropped in the first column to the visual. You must complete the following steps in order to have a working report element for the write-back functionality.
Starting with Data Entry, you must set the Web Service, Type and Connection properties (see referring chapters) to make the write- back service working.
Publishing and Testing the Report
When you finished your report, publish it to either your on-premise Power BI Report Server, or to PowerBI.com. The write-back works dependably only, if your report is published. So, you cannot test the full functionality in Power BI Desktop while you are authoring it. After publishing your report try to modify a value and click on ’Save Changes’ button. To validate that your changes have been committed to the database, connect to your underlying database where your table can be found with a tool like SQL Server Management Studio, and execute a SELECT * FROM yourTable statement to see the content of the table. Your modification should be visible there as well as in your report.
Completing the above steps, you should have a working, simple, write-back capable report using PowerGantt visual.
The following pages cover more detailed configuration options as well as typical use-cases that you might find useful for your needs.
Configuration Options
This chapter contains detailed description of the available configuration options for PowerGantt visual.
Data Entry
This section contains the configurations regarding the main behavior of the visual.
Web Service
Here you must set the write-back service URL which should point to the hosting machine – or app service – where it has been installed. Typical URL is:
http(s)://WEBSERVICE_COMPUTER_NAME/PPWebservice/PPWebservice.svc
Be careful not to have an extra slash at the end of the URL.
Type
This option is referring to the connection type that the write-back service uses. The setting is required.
- SSAS Datasource: Set a connection name in the Connection property defined in the web.config of the webservice
- SQL Datasource: The connection is set in the PPWebService web.config and you will have to refer it by its name in the Connection property
- SSAS: Set the connection string directly in the Connection property (leave the connection blank if using the default "SSASConnection" in set in the web.config of the webservice)
- SQL: Set the connection string directly in the Connection property (leave the connection blank if using the default "SQLConnection" in set in the web.config of the write-back service)
These last two options are used for testing, developing purposes first.
Connection
Specify Name of the SQL or SSAS connection defined in the web.config file of the webservice, or the connection string directly, or leave blank depending on the Type setting.
Customer
Customer name provided by us along with the License server license key. If already specified in the web.config file (generally, you don’t have to set this at it is done by the setup), leave blank. If you are sharing one webservice between multiple license keys, specify here the customer key you want to use.
Domain
Set it to one of the following. Generally, this should be left blank as it is configured in the write-back service web.config file during setup.
- the fixed the name of the internal domain used (e.g.: DOMAIN)
- auto: use the domain part (part after @) of the powerbi.com user
- auto-short: use the short domain part (part after @ and before the .) of the powerbi.com user
- azure: use the full powerbi.com username (e.g.: user@domain.com) for Azure Active Directory authentication
- leave empty for no domain (e.g.: for a SQL authentication user)
- SQL=…, SSAS=… set domain options for SQL and SSAS separately
- Custom user mapping of powerbi.com users to SQL and SSAS users can be set up in the UserMapping table in the SQL database (should contain User, SQLUser, SSASUser varchar columns). For more information please visit: https://support.poweronbi.com/portal/kb/articles/custom-user-mapping-when-using-powerbi-com-service
Windows Authentication
If you are in an on-premise environment using Power BI Report Server and Windows Authentication is turned on in the IIS for the write-back service this setting must be turned on, so that the Windows credentials can be passed back to the underlying data source. If you are completely in the cloud - your reports are published to PowerBI.com service - and you are using Azure AD, the setting should be turned off, so that AD credentials will be used when accessing the data source.
In case of Gateway by turning on Windows Authentication will have the following effects: Instead of setting the PowerBI.com credentials in the write-back service request, the visual posts the Windows login context. This value (e.g.: domain\user instead of username@domain.com) will be set if you use USERNAME() in computed and/or default value columns (see later in this document) as well in SQL context variables. Also, this makes possible to use impersonation, and it is necessary to be turned on if Windows Authentication is set in IIS for the write-back service.
Source Table
It is important that you configure this property correctly as misconfiguration can lead to save errors. Please read this chapter carefully.
This property tells the write-back service which table should be the target for data modifications. The name of the write-back target table needs to be entered here. Note, that the property is case sensitive! For example, if you put fields into the visual from the Product table, this property value should be Product as you want to save the modifications to the product table.
You should not rename tables or columns in your report. If you need to change the visual representation of a column, you can use the Title property for the column under Column Properties group.
In case of SSAS data source the value must be the name of the entity exactly how it is specified in the model.
In case of SQL only data source the value must be the name of the SQL table that is being used with the visual.
In case of SQL connections when the table is in a different schema then dbo, you need to make some adjustments. When you import a table with a schema to a report, Power BI automatically renames the table for you. For instance, if you are importing hr.SalesPerson table, in the Fields section you will see it renamed something similar like ”Hr Sales Person”. Because of this operation, PowerGantt visual will not be able to determine on which table it should initiate the write-back process. Please do the followings to overcome this situation:
- Rename the table in the Fields list so that it contains exactly the actual SQL table name without the schema name (in the example it is SalesPerson)
- Remove and re-add the columns to your PowerGantt visual
- Enter into the Source Table property the full qualified table name in the format of: schema.table (in the example it is hr.SalesPerson)
Gantt Style
Here you can find the basic coloring settings considering all tasks and/or milestones.
Task Font Color
The font color of all tasks.
Task Background Color
The background color of all tasks.
Progress Color
The progress color of all tasks.
Milestone Background Color
The background color of all milestones.
Responsible Font Color
The responsible font color of all tasks and milestones
Responsible Background Color
The responsible background color of all tasks and milestones.
Comment Font Color
The comment font color of all tasks and milestones.
Comment Background Color
The comment background color of all tasks and milestones.
It is important to know, if you set a color in the pop-up container (see later: modal) of a task or milestone, that color will be applied to that element specifically, not all of them.
Color Palette that you can use:
Gantt settings
Auto Scheduling
Re-calculates the position of tasks depending on their constraint types.
Scheduling is an ability to schedule tasks automatically depending on relations between them. Auto Scheduling recalculates the schedule of the project.
e.g.: Let‘s assume you have two tasks connected by a dependency link saying the second task starts when the first one ends, and you need to change the schedule of the first task by moving it to a new date.
Auto scheduling calculates the start date of the second task update according to the end date of the first task each time when it changes. This feature allows you to generate and maintain a project schedule by specifying relations between tasks without setting each task dates manually.
Today Marker
A red horizontal line showing you the current date in the timeline.
Critical Path
Highlighting with red the critical tasks/ milestones and links in your project.
A critical path is a sequence of tasks that cannot be delayed. Otherwise, the whole project would be delayed.
The critical path also determines the shortest time the project can take.
A task is considered critical if it has no days of slack and any delay would directly affect the project completion date.
Slack time is the time that a task can slip without affecting other tasks or the project's completion date.
It is a cornerstone in project management, which determines vital tasks and the minimum duration of the whole project. Tasks that cannot be postponed are highlighted in red.
Snap To Scale
When you drag or resize a task/ milestone, its starting date will snap to the closest column in the timeline.
Predecessors
Showing the Work Breakdown Structure (WBS) code of the parent task and the type of links between them. (A WBS is a decomposition of a project into parts. It is usually hierarchical in nature. It can provide a valuable link to other management and administrative elements of projects.)
Possible values:
- SS = Start to Start
- SF = Start to Finish
- FF = Finish to Finish
- number[.number[.number]] = Finish to Start, where the number is the number of the (sub)task
Row Height
Sets the height of the rows.
Task Name Min Width
Sets the minimum width of the Task name column in the grid. If you resize the grid, it might be wider.
Header Height
Sets the height of the header.
Date Format
The default date format is MM/dd/YYYY, e.g.: May/24/2021.
It is possible to change the date format:
American: MM/dd/YYYY (e.g.: May/24/2021) OR mm/dd/YYYY (e.g.: 05/24/2021)
MM-dd-YYYY (e.g.: May-24-2021) OR mm-dd-YYYY (e.g.: 05-24-2021)
European: dd/MM/YYYY (e.g.: 24/May/2021) OR dd/mm/YYYY (e.g.: 24/05/2021)
OR dd.mm.YYYY (e.g.: 24.05.2021)
OR YYYY-mm-dd (e.g.: 2021-05-24)
Debug
Diagnostic Mode
By default, Diagnostic Mode is disabled, so the whole content of Debug property group is disabled.
Turning it on reveals all of the debug settings. These settings are for debugging and developing purposes.
Working with PowerGantt Visual
Buckets and Fields
You can think of the data structure of the Gantt chart as a table, where each row represents a task, milestone or link and each field you assign to buckets represents one column thus one cell in each row.
It is important to note that many features work only, if you assign fields to the corresponding buckets. E.g.: you will not be able to save parent-child relationships, if you do not have a field in the Task Parent ID bucket.
Task ID
The ID of the tasks, links and milestones.
It is required to add it to the chart Fields.
The field type is integer.
Task Description
The description of the tasks and milestones.
It is required to add it to the chart Fields.
The field type is text.
Type
The type of the saved entities/ rows, e.g.: “task” or “milestone”.
It is required to add it to the chart Fields.
The field type is text.
Task Start Date
The start date of the tasks or milestones.
It is required to add it to the chart Fields.
The field type is date.
Task End Date
The end date of the tasks and milestones.
It is not required to add it to the chart Fields.
The field type is date.
Task Duration
The duration of the tasks in days.
It is not required to add it to the chart Fields.
The field type is integer.
Task % Complete
The progress of the tasks, expressed as a percentage, e.g.: 0.4 = 40%
It is not required to add it to the chart Fields.
The field type is float.
Constraint
The constraint type of tasks.
It is not required to add it to the chart Fields.
The field type is text.
Constraint Date
The constraint date of tasks.
It is not required to add it to the chart Fields.
The field type is date.
Task Parent ID
The ID of the parent of tasks, milestones and links.
It is not required to add it to the chart Fields.
The field type is integer.
Task Responsible
The responsible of the tasks, milestones or links.
It is not required to add it to the chart Fields.
The field type is text.
Task Comment
The comment of the tasks, milestones or links.
It is not required to add it to the chart Fields.
The field type is text.
Task Font Color
The font color of the tasks. Must be in one of the following formats:
- rebeccapurple
- #00ff00
- rgb(214, 122, 127)
It is not required to add it to the chart Fields.
The field type is text.
Task Background Color
The background color of the tasks. The format must be the same as in Task Font Color.
It is not required to add it to the chart Fields.
The field type is text.
Task Progress Color
The task progress color of the tasks. The format must be the same as in Task Font Color.
It is not required to add it to the chart Fields.
The field type is text.
Task Responsible Font Color
The responsible font color of the tasks. The format must be the same as in Task Font Color.
It is not required to add it to the chart Fields.
The field type is text.
Task Responsible Background Color
The responsible background color of the tasks. The format must be the same as in Task Font Color.
It is not required to add it to the chart Fields.
The field type is text.
Task Comment Font Color
The comment font color of the tasks. The format must be the same as in Task Font Color.
It is not required to add it to the chart Fields.
The field type is text.
Task Comment Background Color
The comment background color of the tasks. The format must be the same as in Task Font Color.
It is not required to add it to the chart Fields.
The field type is text.
Link Source
The ID of the tasks or milestones from which links start.
It is not required to add it to the chart Fields.
The field type is integer.
Link Target
The ID of the tasks or milestones to which the links point.
It is not required to add it to the chart Fields.
The field type is integer.
Link Type
The type of the links, represented by a number.
It is not required to add it to the chart Fields.
The field type is integer.
Meta Data
Extra information about the tasks, milestones or links. It can be used for debugging purposes.
It is not required to add it to the chart Fields.
The field type is text.
Properties of Tasks and Milestones
If you double click on a task/ milestone, a container/window appears in the middle of the visual, with property setting possibilities. Henceforth this container is called modal.
There is a difference in the number of properties between tasks and milestones, that you can edit.
Property |
Task |
Milestone |
|---|---|---|
Description |
Yes |
Yes |
Constraint |
Yes
|
Yes (except date) |
Type |
Yes |
Yes |
|
Time period (Start date & Duration) |
Yes
|
Yes (except duration) |
Progress |
Yes |
No |
Parent |
Yes |
Yes |
Responsible |
Yes |
Yes |
Comment |
Yes |
Yes |
Font Color |
Yes |
No |
Background Color |
Yes |
Yes |
Task Progress Color |
Yes |
No |
Responsible Font Color |
Yes |
Yes |
Responsible Background Color |
Yes |
Yes |
Comment Font Color |
Yes |
Yes |
Comment Background Color |
Yes |
Yes |
Descriptiond
You can give a meaningful name to the task/ milestone. The default content is ‘New task’.
Constraint
- As soon as possible - If this constraint is set to an independent task, the task starts at the same time that the project does. If this constraint is set to a dependent task, the task starts as soon as its predecessor tasks end. This is the default value.
- As late as possible - If this constraint is set to an independent task, the task ends at the same time that the project does. If this constraint is set to a dependent task, the end of the task coincides with the start of its immediate successor task.
The other types of constraints affect tasks regardless of their types (dependent or independent):
- Start no earlier than – the task should start on the specified date or after it.
- Start no later than – the task should start on the specified date or before it.
- Finish no earlier than – the task should end on the specified date or after it.
- Finish no later than – the task should end on the specified date or before it.
- Must start on – the task should start exactly on the specified date.
- Must finish on – the task should end exactly on the specified date.
Type
You can select, if the additional value is a task or a milestone.
Time Period
It has a start date and a duration part. The non-editable date at the end of the line is the finish date which has been calculated based on the start date and the duration.
% Complete
The progress of the tasks expressed as a percentage, e.g.: 0.55 means 55%.
Parent
You can select if the task/ milestone has a parent and you can choose from the previously saved, available list of (sub)tasks/ milestones. By default, it has no parent.
Responsible Person
You can name someone who is responsible for the given task/ milestone.
Comment
You can leave a comment belonging to the task/ milestone.
Font Color
You cannot write onto the milestone, so you cannot determine a font color for that. So, it belongs to the task. You can give a color in the following formats:
- rebeccapurple
- #00ff00
- rgb(214, 122, 127)
Background Color
The background color of the task/ milestone.
Task Progress Color
You can determine a color of the task progress.
Responsible Font Color
The font color of the responsible person for both task and milestone.
Responsible Background Color
The background color of the responsible person for both task and milestone.
Comment Font Color
The font color of the comment for both task and milestone.
Comment Background Color
The background color of the comment for both task and milestone.
At the bottom of the modal, you can decide if you would like to add, cancel your settings or delete the whole task/milestone.
Note! It is not enough to click on Add to modify your settings. You also need to click on Save Changes button to save back your modifications to your database for good.
Control Buttons
Save Changes
After you have made some changes to the chart, the Save Changes button becomes enabled. If you have the VPService visual set up correctly, you can save your changes by clicking on the Save Changes button.
Discard Changes
After you have made some changes to the chart, the Discard Changes button becomes enabled. If you click on it, all your changes after the last save will be discarded.
Undo
After you have made some changes to the chart, the Undo button becomes enabled. If you click on it, one step of your changes will be undone.
Redo
After you have made some changes to the chart and click Discard Changes or Undo, the Redo button become enabled. If you click on it, the last undone action will be redone.
Reload Data
If you click on this button, the chart reloads. Any unsaved changes will be lost.
Zoom In
If you click on this button the scale of your chart will be more detailed. There are four zoom levels: day, week, month and year. Month is the default.
Zoom Out
If you click on this button the scale of your chart will be less detailed. There are four zoom levels: day, week, month and year. Month is the default.
User Interface Helpers
Spinner
When you click on Save Changes, a small spinner is shown in the top right corner indicating that comm
unication with your server is in progress.
Resizing
You can resize the columns and the timeline in your grid by dragging their left or right side.
Note! These changes are only temporary and when you revisit your report or refresh the page the settings will be lost.
Tooltip
If you hover over a task/ milestone in the grid or in the timeline, a tooltip can be seen showing the name, start date and end date of the hovered element.
Open/close a task or milestone
If a task/ milestone has any children, a small + or – icon can be seen next to the name of the task in the grid. By clicking on it, you can show or hide the children of the task.
Required settings before saving
If you try to save your work without having a field in the Task ID bucket or the Web Service or Source Table settings are missing from the Data Entry settings, you will not be able to save and an error message can be seen.
Working with Tasks and Milestones
Generally, the Gantt Chart does not show the dependency of tasks to each other and neither which tasks are critical to finishing the project on time.
Adding Tasks/Milestones
- Click on “+” icon:
- A modal appears. You can set the properties here.
- Depending on you want a task or a milestone, change the Type property.
Note! Milestone does not have that many properties as task has.
- Click on Add
Adding Child Tasks/Milestones
-
Click on “+” icon of a task or milestone.
Note! The parent must be saved already. Otherwise, the “+” icon will be gray and you will not be able to click on it.
- A modal appears. You can set the properties here.
- Depending on you want a task or a milestone, change the Type property.
- Note! Milestone does not have that many properties as task has.
- Click on Add.
Editing Tasks/Milestones
Using the edit modal
- Double click on a task or milestone in the timeline.
- A modal appears.
- Edit the properties.
- Click on Add.
Dragging and Resizing
You can change the start and end date of tasks/ milestones, if you drag them on the timeline. You can also change the duration of tasks by resizing them, click on the right or left side of a task in the timeline and drag it to the desired value.
Deleting Tasks/Milestones
- Double click on a task/ milestone in the timeline.
- A modal appears.
- Click on Delete.
- A confirmation window appears.
- Click on OK.
Working with Links
Adding Links
You must have at least two tasks added and saved to your chart. Then you just simply need to click on the little circle icon at the start or end of the task and drag it to the start or end of another task. It is important to note that you cannot add a link to unsaved tasks/ milestones.
There are four types of links:
- Start to start (SS),
- Start to finish (SF),
- Finish to finish (FF),
- Finish to start (FS).
Editing Links
A link cannot be edited. You need to delete any unnecessary links and create new ones.
Deleting Links
- Double click on a link.
- A confirmation window appears.
- Click on OK.