Build Custom gantt chart report in ServiceNow Madrid

georgechen
Kilo Guru

Hi gurus, 

In Madrid plug-in 'Change Management - Change Schedule' offers fantastic features on the Change Schedule report - screenshot illustrated as below, which has seemed fulfilling the core functions for my organisation like Zoom-in, condition builder (the funnel), frozen heading and many more.  I've been exploring this plug-in and wondering for some minor desired features like PDF/Export export, default to current date, and be able to collapse at different levels, is it possible

  • Is it possible to customise this report a lit more (given the fact the OOTB application Change Management – Change Schedule) 
  • How easy it is to do so?  If not, I was thinking of a plan B to involve Service Portal Widget development, but before this theory went too far, any advice would be highly appreciated.

 

Here is the list of the desired functions related to this report.

No#

Requirement

Analysis

1

Condition builder-> make it relevant, e.g Search by Technology Solution

OOTB

2

Default to current date

To be analysed

3

Be able to source data from non ‘task’ records

To be analysed

4

Keyword search just like Global search at top right corner

To be analysed

5

Dates to ‘zoom in’ & ‘zoom out’ to at least 1 year

OOTB

6

This heading should be frozen

OOTB

7

Be able to collapse at different levels

To be analysed [Chg Soc Definition Child] table might be relevant?

8

Either collapse by default or hold previous view

To be analysed

9

Read only view no editing or dragging allowed

OOTB

10

PDF / Export is a ‘Could Have’

To be analysed

11

Further information – Tasks should allow double clicking to get to more info possibly hover text derived from task

To be analysed

 

My analysis on the OOTB components,

OOTB Package – Change Management – Change Schedule

Application=Change Management – Change Schedule

Display name

Class

Notes

Chg Soc Style Rule

Table

Cosmetic related table

Chg Soc Definition Style Rule

Table

Cosmetic related table

Chg Soc Style Rule Core

Table

Cosmetic related table

Chg Soc Definition

Table

Change Schedule Definitions

Chg Soc Definition Core

Table    

Change Schedule Definition Core

Chg Soc Definition Child

Table

Related Definition

sn_chg_soc.change_soc_scroll_load_limit

System Property

Define the number of change_request records to display as the Change Schedule is scrolled.

Default value is 20 records; the value must be a positive integer.

sn_chg_soc.schedule_window_days

System Property

Define the number of days to be factored before and after the respective start/end of a change_request record when displaying blackout and maintenance window spans on the Change Schedule page.

 

The greater the value, the more time taken in order to calculate the spans to be displayed on the Change Schedule page.

 

Default value is 30 days; the value must be a positive integer.

sn_chg_soc.change_soc_total_limit

System Property

Define the total number of change_request records that can be displayed on a Change Schedule.

 

Default value is 1000 records; the value must be a positive integer.

sn_chg_soc.landing_page.pinned_notification

System Property

Show an information message when a change schedule is pinned

SoCLandingModelBuilder

Script Include

Customization point for the SoCLandingModelBuilderSNC class

SoCDefinition

Script Include

Customisation point for SoCDefinitionSNC

SoCDefinitionStyleRule

Script Include

Customization point for SoCDefinitionStyleRuleSNC

SoCLandingModelBuilderSNC

Script Include

SNC functions for building Change Schedule models.

SoCChangeRequest

Script Include

Customisation point for SoCChangeRequestSNC

SoCDefinitionChildStyleRule

Script Include

Customizaton point for the SoCDefinitionChildStyleRuleSNC class

SoCRefFieldsList

Script Include

Field choice list processor.  Return the fields on the current table which reference the parent table

SoCDefinitionSNC

Script Include

SNC Class encapsulating SoC Definition code

SoCModelBuilderSNC

Script Include

SNC functions for building Change Schedule models.
Initialize()
definitionsWithProfile()// Returns top level definitions with profiles
buildModel(socDefId, changeCount, condition)
_buildRelatedModel(model, changeReqs)
buildDefinitionModel(socDefGr) // Builds the definition model, styles etc.
_buildChildDefinition(definition, docDefGr)
_addDefinitionStyleRules(socDef)
_addDefaultStyleRules(socDef)
getCSS()
_findMaintenanceSchedules()
_findBlackoutSchedules()
_getStyleReference(defId, recordGr) // Returns a style reference to be applied to the provided record for the given definition

SoCDefinitionChildSNC

Script Include

SNC Class encapsulating SoC Definition Child functionality
getAllRecords(changeReqs)
getRecords(changeSysId)
canDelete()
canRead()
canWrite()
getStyleRules()

SoCChangeRequestSNC

Script Include

SNC Class encapsulating SoC Change Request code
getScheduleSpans(socDefGr, conflictConfig, usedSchedules)
_findConfigItemSchedules(conf)
_calculateRelatedSpans(configItemSchedules, startDate, endDate, usedSchedules)
_factorSchedules(schedules, scheduleSpans, usedSchedules, startDate, endDate)

SoCRefTablesList

Script Include

Field Choice List Processor.  Return the tables referencing the provided table name.
process()

SoC

Script Include

Change Schedules base class
metadataJS()
_metadataJS(_gr)
_ignoreElement(el, elName, requiredFields)
_correctFieldValue(fieldType, fieldValue)

SoCStyleRuleSNC

Script Include

Class encapsulating SoC Style Rule functionality
getStyleName() // Returns the name of the style which will be generated by this style rule
refreshStyle() // Refresh the CSS for the style rule
_isValidStyleRule(chgSocDef, sysId, tableName)
_getNewData(chgSocDef, records)
serviceUpdateStyleRule(chgSocDef, style, records)
serviceDeleteStyleRule(chgSocDef, style, records)

SoCDefinitionChild

Script Include

Customization point for SoCDefinitionChild class

SoCStyleRule

Script Include

Customization point for SoCStyleRule class

SoCDefinitionChildStyleRuleSNC

Script Include

SNC Class encapsulating SoC Definition style rule functionality
canDelete() //Delegate security to the parent definition
canRead()
canWrite()

SoCModelBuilder

Script Include

Customization point for the SoCModelBuilderSNC class

Show Schedule

UI Action

Client=false

action.setRedirectURL("sn_chg_soc_change_soc.do?sysparm_id=" + current.sys_id);

this UI action redirects to the Change Schedule report based on a current Change Schedule Definition record

snSocFilter

Macro

OOTB macro

landing_wizard_translation

Macro

Translations used by the change_soc landing UI Page.

landing_wizard_template_init_page

Macro

 

landing_wizard_template_condition_page

Macro

OOTB macro

sharing_invitation_search

Macro

 

Landing_wizard

Macro

OOTB macro

Context_menu_buttons

Macro

OOTB macro

Filter_widget

Macro

OOTB macro

snSocConditionBuilder

Macro

OOTB macro

remove_schedule_def

Macro

OOTB macro

change_soc_compatibility

Macro

OOTB macro

aside_style_item

Macro

OOTB macro

record_not_found

Macro

OOTB macro

landing_card

Macro

OOTB macro

aside_share

Macro

OOTB macro

 

 

 

OOTB Change Schedule Gantt chart report on Madrid (Change Schedules under Change) - assumed Change Management - Change Schedule plugin (com.snc.change_management.soc) activated 

find_real_file.png

 

References: 

Change management in Madrid, https://docs.servicenow.com/bundle/madrid-it-service-management/page/product/change-management/conce...

Activate Change Management plug-in, https://docs.servicenow.com/bundle/madrid-it-service-management/page/product/change-management/task/...

Official Change Schedules Doc, https://docs.servicenow.com/bundle/madrid-it-service-management/page/product/change-management/conce...

 

Your advice would be much appreciated. 

1 REPLY 1

erikbartholdy
Giga Guru

a lot of customers want to be able to do some more configuration on this 

it is especially anoying you cannot ad fields other than "number", "Configuration Item" and "Duration" 

hopefully this would be possible in next versions. 

there is the "time line page", but thats not to god either 

https://community.servicenow.com/community?id=community_question&sys_id=7ce5c12edbba9f808e7c2926ca96...

br Erik