Skip to main content

Customizing the documentation template

This topic pertains to the Documentation template used by the Documentation Scheduler module.

NodeGraph uses a C# based template engine to generate documentation.

The template can be modified if, for example, the documentation contains too many pages. It is recommended to make a copy of the template file and modify the copy. Changes to the default template will affect documentation that is generated from the Dependency Explorer.

The template is stored by default in:

C:\Program Files\NodeGraph\template\doc_template.cs.docx

The template is a standard Microsoft Word document with variables or code enclosed in markup tags <% %> Use = enclosed in tags to insert information: <%=Model.Application.Name%>

Documentation template

The documentation template, with several fields for each application.

Control Statements

If and foreach are supported. Needs to end with }

Example:

<% if (Model.Tables.Count>0) {%>
at least one table present
<% } %>

Loop all table and output their names

<% foreach (var table in Model.Tables) {%>
Table: <%= table.name %>
<%} %>
Information noteThe closing bracket } should be on its own row. The loop may fail if the closing bracket is not on a separate paragraph. It helps to add extra [newline] before and after while developing the template.

Model object

Nodegraph provides a model object based on the selected application. Use .notation to reference properties and sub-properties.

  • Model.Date

  • Model.FileMeta.Extension

  • Model.Application.Name

Properties can be lists of objects, e.g.: Model.Tables is a list of Table objects.

Model

  • DateTime Date

  • FileMetadata FileMeta

  • string NodeGraphVersion

  • Application -- Qlik Application/ report information

  • List<FileReference> FileReference -- Files used by application (direct/indirect)

  • List<ConnectionInfo> ConnectionInfo -- Connections used by applications (direct/indirect)

  • List<Tables> Tables -- Qlik model tables

  • Content -- Application content (sheets, objects)

  • bool IncludeContent -- These are controlled by NodeGraph global settings

  • bool IncludeLineage

FileMetaData

  • long Size

  • string Extension

  • DateTime DateCreated

  • DateTime DateModified

  • DateTime DateAccessed

Application

  • int NodeID -- internal numeric NodeGraph id

  • string Name

  • string FullName

  • string Uid -- internal uid (full path identifier/Sense GUID)

Table

  • string Id

  • string Name

  • int? NodeId

  • long RowCount

  • List<FieldTO> Fields

  • stringDesc

  • string Comment

  • List<GenerationsInfo> Lineage

Field

  • string Id

  • int? NodeId

  • string Name

  • long UniqueVaules

  • string Desc

  • string Comment

Content

  • List<Sheet> Sheets

  • List<Measure> MasterMeasures

  • List<Dimensions> MasterDimensions

Sheet

  • string Id

  • string Title

  • bool IsHidden

  • List<Object> Objects

Object

  • string Id

  • string Title

  • string Type

  • List<Measure> Measure

  • List<Dimensions> Dimensions

Measure

  • string Lable

  • string Expression

Dimension

  • string Lable

  • string Def

ConnectionInfo

  • int RootNodeId

  • string RootName

  • string Name

  • string Statement

FileReference

  • int NodeId

  • string Name

  • string FullName

Lineage Information

GenerationInfo

  • int Generation

  • List<ResolvedItem> Items

RespolvedItem

  • string Name

  • string FullName

  • string Id

  • string Type

  • string Process

  • List<string> Fields

  • List<LoadStatementInfo> Statements

LoadStatementInfo

  • string Prefix

  • bool Mapping

  • string Process

  • List<Load> Load

  • List<Clause> Clauses

  • Dependency MainDependencies

  • List<Dependency> AdditionalDependencies

  • List<String> Fields

  • bool Distinct

Clause

  • string Type

  • string Statement

Dependency

  • string Name

  • string FullName

  • string Id

  • string Type

  • bool Final

  • string Statement

  • string SourceInfo

  • List<string> Fields

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!