Skip Headers

Agile Product Lifecycle Management SDK Developer Guide - Using Extensions Release 9.3.3 E39308-01 |
| Contents

Previous | Next |

# 4 Developing Dashboard Management Extensions

This chapter provides background and procedural information about Dashboard Management Extensions, Developing Custom Chart Dashboard Management Extensions, and Developing Custom Table Dashboard Management Extensions

## 4.1 About Dashboard Management Extensions

Similar to Process Extensions, Dashboard Management Extensions (DX) extend the functionality of the Agile PLM system. The Extensions support the following formats to access and display PLM data on the Agile PLM Dashboard:

- ChartDataModel for charts

- Collections for tables

When data is defined using these formats, Agile servers can interpret and process this data, and Agile Java Client users with administrator privileges can define Dashboard Tabs and display them in one of the following views or layouts:

- Chart

- Table

- Custom (URL)

The SDK provides the API's that enable connecting the Agile PLM server to internal Agile databases to get the required content, format it as required by the DXs, and display the data in the Agile PLM Dashboard. Similarly, you can use other Java API's such as JDBC to connect to external databases for content.

Briefly, DXs provide the data, Dashboard Tabs and the formats to display the data (tables, charts, and URLs) are configured in Agile Java Client. Finally, Agile PLM users with proper privileges can view the Dashboard Tab and displays in Agile Web Client.

This chapter provides both background information and procedures to develop these methods.

### 4.1.1 Roles and Privileges in Dashboard Management Extensions

You must set the Dashboard Tab View privilege in Admin>User Settings>Privileges so that PLM users can view the Tabs and the related data in Web Client. In addition, Dashboard Tabs are controlled by privileges, and Agile PLM users must have the necessary roles and privileges to view the data on the Tab. Procedures to configure the views and assign privileges are fully documented in Agile PLM Administrator Guide.

## 4.2 Developing Custom Chart Dashboard Management Extensions

The ICustomChart interface enables creating the necessary DXs that will display the required data in chart formats. This interface exposes the method which returns an instance of the public ChartDataModel getChart(IAgileSession session, Map params)

Note: Implementations of this interface must have no-arg constructors and they must be reentrant.

### 4.2.1 Understanding ChartDataModel and ChartDataSet

The ChartDataModel class organizes the input data in a chart format. It is a concrete class that is exposed to the DXs and It contains one or more ChartDataSet(s) that you need to construct the chart.

A ChartDataSet is another concrete class that is exposed to the DXs. It contains the data required to plot a chart. For example, X-axis and Y-axis values and labels. The ChartDataModel is a placeholder for all the data sets.

Note: The ChartDataModel and ChartDataSet classes are exposed in com.agile.px package.

### 4.2.2 Defining a Custom Chart DX Data Source

As indicated above, chart DXs display the data in chart formats. The code in the Example:Defining a DX to display data in a chart format, uses ICustomChart and the exposed classes (ChartDataModel and ChartDataSet) to display the differences between morning and evening temperatures for every day of the week, using predefined input data in a chart format.

Example 4-1 Defining a DX to display data in a chart format

    package dashboard.chart;
    public ChartDataModel getChart(IAgileSession session,Map params) throws Exception{
    import java.util.Map;
    import com.agile.api.IAgileSession;
    import com.agile.px.ICustomChart;
    import com.agile.px.ChartDataModel;
    import com.agile.px.ChartDataSet;

    /**
     * A Sample Dashboard DX for Charts with predefined data. * This Example displays a comparison chart between * Morning and Evening Temperatures for each day of the * week with predefined data.

    */
    public class TemperatureComparisionChart implements ICustomChart(

    /**
     * Returns custom ChartDataModel. ChartDataModel * is a placeholder to hold all the * ChartDataSet(s) and any other relevant information related to the charts. * @param session current user session. * @param params * @return com.agile.px.ChartDataModel

    */
    public ChartDataModel getChart(IAgileSession session,Map params) throws   Exception{

    // Create a ChartDataModel
     ChartDataModel chartDataModel = new ChartDataModel("Temperatures");

    // Create a ChartDataSet for Morning and Evening Temperatures ChartDataSet chartdataSet[] = new ChartDataSet[2];

    // Create a ChartDataSet for Morning Temperatures chartdataSet[0] = new ChartDataSet("Morning Temperatures",7);

    // Fill in the Morning Temperatures double[] morTempValues = {10, 8, 12, 19, 10, 14, 13}; chartdataSet[0].setValues(morTempValues); // or setYValues that can be used instead

    // Set the Labels String[] labels = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};  chartdataSet[0].setLabels(labels);

    // Create a ChartDataSet for Evening Temperatures chartdataSet[1] = new ChartDataSet("Evening Temperatures",7);

    // Fill in the Evening Temperatures double[] eveTempValues = {16, 12, 20, 15, 18, 24, 26}; chartdataSet[1].setValues(eveTempValues); chartdataSet[1].setLabels(labels);

    // Set the ChartDataSets in the Chart Model chartDataModel.setDataSets(chartdataSet);

    return chartDataModel;
    }
    }

### 4.2.3 Packaging and Deploying a Custom Chart DX Source

After developing the necessary classes for a new Chart, package and deploy them using the following procedure.

To package and deploy a Chart DX source:

1. Use your Java development environment or the Java Archive tool (or JAR tool), to create one or more JAR files for the custom action. Make sure the JAR file(s) includes a META-INF/services directory that contains the file com.agile.px.ICustomChart. This is a text file that lists the fully qualified Java class names, one class per line, for the custom action.

   You can include multiple charts in one package. For example, com.agile.px.ICustomChart could look like this:

       dashboard.chart.TemperatureComparisionChartdashboard.chart.AgileObjectsCountChartdashboard.chart.ActualVsBudgetedLaborCostChart

   Note: Paths within a JAR file are case-sensitive. Therefore, make sure the META-INF folder contained within the JAR file name are either all uppercase or all lowercase characters. Otherwise, the custom action will fail to deploy.

2. Place the JAR file(s) in the agile_home/integration/sdk/extensions folder on the same computer where the Agile Application Server is installed.

Note: If you have several application servers in a clustered environment, you must deploy the Dashboard Extension files on each server in the cluster.

### 4.2.4 Configuring Chart DXs in Java Client

In Agile Java Client, you can define Chart data sources in the Admin module. To configure the Agile PLM system settings, you must have an administrator account. This is briefly documented in the sequel below. For more information, refer to the Agile PLM Administrator Guide.

The data that you provide for a DX, regardless of the layout, is viewed in a Dashboard Management Tab. Because you cannot define a new Table in the Out of Box Tabs such as Executive or Financial, you must define a new Tab and then a Table within the Tab to configure a DX.

To add an optional Dashboard Management tab:

1. In Java Client, select Admin > Systems Settings > Dashboard Management and click the New Dashboard Tab icon in Dashboard Management.

2. In the Create Dashboard Tab dialog, complete the name (For example, call it Dashboard Extensions) and description fields, set the Visible field to Yes, and then click OK. Dashboard Extensions appears as an entry in the Dashboard Management.

3. Click the Order Tabs for Dashboard icon to reorder the tabs as required in Java Client.

#### 4.2.4.1 Displaying Optional Tabs in Agile Web Client

You can display the new optional Tab in Agile Web Client and users satisfying the privileges requirement can view the tabs and the corresponding data. You can find the necessary procedures in Agile PLM Administrator Guide.

To configure a Chart type table in the optional tab:

1. Define a new tab, for example, Dashboard Extensions as shown above.

2. In the new tab (Dashboard Extensions), click The Dashboard Management - Dashboard Extensions page appears.

3. In this page, click the New Dashboard Table icon to open the Create Dashboard Table dialog and define the new table.

4. Select Chart from the View List Type drop-down list. The following fields appear.

   Dashboard Table | Description/Purpose | Possible Settings
   --- | --- | ---
   Name | Type the name of the table | String
   API Name | The Name typed above, converted to CamelCase naming convention by Agile PLM | String
   Description | Type the description of the table | String (optional)
   View List Type | Lists the types of table. Select Chart (when you select Chart, additional options are displayed). | Chart, Table, Custom, Advance Search
   Dashboard Extension | Lists all process extensions created for chart type list. Select the chart process extension you want. | Empty cell
   Visible | To enable viewing in Web Client | Yes/No
   Chart Type | Select the type of chart you want displayed | Area, Bar, Line, Pie, Polar, Scatter, Stacked Area, Stacked Bar, Table
   X axis | Type the X axis label | (optional)
   Y axis | Type the Y axis label | (optional)
   Show Legend | To display the chart legend on screen | Yes/ No
   Legend Position | Select the position where the Legend should be displayed | Bottom, default, left, right, top
   3D Style | To view the graph in 3D | Yes/ No
   Header | Enter a header note if required | (optional)
   Footer | Enter a footer note if required | (optional)

5. Complete the fields and then click OK. The name of the new Chart appears in the Dashboard Management - Dashboard Extensions view.

## 4.3 Developing Custom Table Dashboard Management Extensions

The ICustomTable interface is defined to create DXs to display the required data in tabular formats. This interface exposes the getTable(IAgileSession session, Map params) method which returns an instance of the Collection class.

    public Collection getTable(IAgileSession session, Map params);
    import java.util.*;

Note: Implementations of this interface must have a no-arg constructor and they must be reentrant.

### 4.3.1 Understanding Collections and CustomTableConstants

The Tabular Data in a DX is a "collection" of Java HashMaps. Each Map key represents an attribute in the Table View and the Map represents a row in the table.

The property "Attribute" of a column in View defines the mapping between the data model and the Table View. The value of this property corresponds to the key of a HashMap entry.

- HashMap keys - For HashMap entries, an attribute is defined in the Table view. For example, a HashMap entry with "name" as its key value, the property "Attribute" of this attribute will have the value "name." The get('name') method will provide the display data for this attribute.

- Link, Image, Money, Text, Date and Numeric Data - These data types are supported in Tabular DX formats and return objects with the following properties.

  - Text - Date, and Numeric Data types do not require any additional properties.

  - Link - A valid URL (as String) serves as the target and label for the display. The properties expected for a link data type are the same for the internal and external links. The DX users resolve the URL for internal links and add them to the URL property. The DX users can specify the target property as "RightPane" for internal links. By default, the links will be targeted to a new window.

  - Image - Images are expected to return an image URL (as String) and label to be displayed as a tool tip on the Image.

  - Money - Currency code (String) and Value (Number) needs to be provided for Money Data types

Note: Keys that support the Link, Money and Image data properties are provided as constants in the class CustomTableConstants. A constant SERVER_URL is provided in this class. You can use it get the Server URL in the DX's from the params.

### 4.3.2 Defining a Custom Table DX Data Source

The sample Dashboard DX in the following example creates a collection of rows with predefined data for display in the Dashboard. Each row is a Java Map object with key-value pairs that correspond to each column in the table. This value appears in each cell of the column in the table. The key is the mapping Attribute name in the View. When creating new Attributes (columns) in the View, it is necessary to supply this key in the Attribute field. Attribute Names and the corresponding Data type for this DX are as follows:

Attribute | Corresponding Data Type
myString | Text
myExternalLink | Link
myDate | Date
myMoney | Money
myNumber | Numeric
myImage | Image

Example 4-2 Defining a Dashboard extension to display data in tabular format

    package dashboard.table;
    import com.agile.api.IAgileSession;
    import com.agile.px.ICustomTable;
    import com.agile.px.CustomTableConstants;

    /** This Sample Dashboard DX creates a collection
    * of rows with predefined data
    * in the format to be displayed in the Dashboard.
    * Each row is a Java Map object which has
    * key-value pairs corresponding to each column in the Table.
    * The value is displayed in each Cell of the
    * column in the table. The key is the
    * mapping Attribute name in the View.
    * While creating new Attributes (Columns) in the View,
    * you must supply this key in the Attribute field.
    * The corresponding Attribute Names and
    * Data type for this DX are listed below.
    *  <table border="1">
    *  <tr><td><b>Attribute</b> </td><td><b>Data   Tye<b></td></tr>
    *  <tr><td>myString         </td><td>Text      </td></tr>
    *  <tr><td>myExternalLink   </td><td>Link      </td></tr>
    *  <tr><td>myDate           </td><td>Date      </td></tr>
    *  <tr><td>myMoney          </td><td>Money     </td></tr>
    *  <tr><td>myNumber         </td><td>Numeric   </td></tr>
    *  <tr><td>myImage          </td><td>Image     </td></tr>
    *  </table>
    *
    */

    public class DashboardSampleTable  implements ICustomTable {
     /**
    * Returns custom table data in form of collection of rows.
    * Row is assumed to be a java Map object.
    * @param session the user session
    * @param params
    * @return : java.util.Collection
     */
    public Collection getTable (IAgileSession session,Map params) throws Exception{
    String serverUrl =
     (String)params.get(CustomTableConstants.SERVER_URL);

    String baseUrl =
      serverUrl.substring(0,serverUrl.lastIndexOf('/'));  ArrayList result = new ArrayList();

    // 1st Row Entry
    HashMap row1 = new HashMap();

    // For Text type
    row1.put("myString","Manoj Yeturu");

    // For Numeric type
     row1.put("myNumber",new Double(10000));

    // For Date Type
    row1.put("myDate",new Date());

    // For Image Type. The url for image and label (for tooltip) properties are set
    HashMap hm1Image = new HashMap();hm1Image.put(CustomTableConstants.URL,baseUrl+"/images/action_noshad.gif");

    // Tool Tip
    hm1Image.put(CustomTableConstants.LABEL,"Action_Noshad");row1.put("myImage",hm1Image);

    // For Money Type. The Currency and value properties are set
    HashMap hm1Money = new HashMap();hm1Money.put(CustomTableConstants.MONEY_CURRENCY_CODE,"USD");hm1Money.put(CustomTableConstants.MONEY_VALUE,new Integer(3000));row1.put("myMoney",hm1Money);

    // For External Link, url, label (display string) and target (Rightpane,_new etc) are set
    HashMap externalLink1 = new HashMap();externalLink1.put(CustomTableConstants.URL,"http://www.agile.com");externalLink1.put(CustomTableConstants.LABEL,"Agile");externalLink1.put(CustomTableConstants.TARGET,"_new");row1.put("myExternalLink",externalLink1);result.add(row1);

    // 2nd Row Entry
    HashMap row2 = new HashMap()

    // For Text type
    row2.put("myString","Venkat Tipparam");

    // For Numeric type
    row2.put("myNumber",new Double(50000));

    // For Date Type
    row2.put("myDate",(new Date()));

    // For Image Type
    HashMap hm2Image = new HashMap();hm2Image.put(CustomTableConstants.URL,baseUrl + "/images/addressdown.gif");

    // Tool Tip
    hm2Image.put(CustomTableConstants.LABEL,"Addressdown");row2.put("myImage",hm2Image);

    // For Money Type
    HashMap hm2Money = new HashMap();hm2Money.put(CustomTableConstants.MONEY_CURRENCY_CODE,"INR");hm2Money.put(CustomTableConstants.MONEY_VALUE,new Integer(4000));row2.put("myMoney",hm2Money);

    // For External Link
    HashMap externalLink2 = new HashMap();externalLink2.put(CustomTableConstants.URL,"http://www.agile.com/services/support.asp");externalLink2.put(CustomTableConstants.LABEL,"Supprt");externalLink2.put(CustomTableConstants.TARGET,"_new");row2.put("myExternalLink",externalLink2);result.add(row2);return result;}}

#### 4.3.2.1 Configuring the Link Data Type for Objects Created in Custom Table DXs

The Link data type is defined as follows in "Understanding Collections and CustomTableConstants."

- A valid URL string that serves as the target and label for the display

And

- DX users can specify the target property as "RightPane" for internal links which are targeted to a new window by default

When Web Client users retrieve an Agile Object in a Dashboard table by invoking Advanced Search, they automatically get the Number with a Link and Quick View as shown in the following illustration.

The SDK supports configuring the URL in the Link data type to display and open the selected object in the RightPane for Agile Objects that are generated through user-defined Dashboard table DXs with ICustomeTable. To perform these configurations, you must first invoke the Advanced Search function to retrieve the Object.

#### 4.3.2.2 Invoking Advanced Search in a Custom Table DX Data Source

The following code snippet returns the specified Agile Object and enables the Quick View pop-up for that Object.

Example 4-3 Invoking Advanced Search in a Custom Table DX Data Source

    public class DashboardTableContainsQuickView implements ICustomTable{
    public Collection getTable(IAgileSession session, Map params){try

    {
    IQuery query = null;query = (IQuery)session.createObject(-5, ProgramConstants.CLASS_ACTIVITIES_CLASS);query.setCaseSensitive(false);query.setCriteria("[General Info.Name] contains 'Dashboard'");Iterator iter = query.execute().iterator();ArrayList result = new ArrayList();while (iter.hasNext()){
    IRow row = (IRow)iter.next();HashMap rowMap = new HashMap();IProgram program = (IProgram)row.getReferent();program.getId();String number = program.getName();rowMap.put("number", number);String name = (String)program.getCell(ProgramConstants.ATT_GENERAL_INFO_NAME).getValue();HashMap internalLinkMap = new HashMap();internalLinkMap.put("label", name); internalLinkMap.put("target", "RightPane");rowMap.put("name", internalLinkMap);result.add(rowMap);}return result;}

    catch (Exception e){   e.printStackTrace();}return null;

    }
    }

#### 4.3.2.3 Enabling Quick View in a Custom Table DX Data Source

The following example enables Quick View for the Object returned by the search function. Code in the shaded area enables Quick View. To display Quick View, you must specify the correct Object Class ID(getClassId()) and Object ID (getObjectId) attributes. In this example, ActivityHandler is hard coded, because this is the object type that the user wants to open. For other types of object, for example, Part, you can use itemhandler. The output of this DX is displayed in Sample output generated by the DX.

Example 4-4 Enabling Quick View in a Custom Table DX Data Source

    public class DashboardTableContainsQuickView implements ICustomTable{

    public Collection getTable(IAgileSession session, Map params){try{IQuery query = null;query = (IQuery)session.createObject(-5, ProgramConstants.CLASS_ACTIVITIES_CLASS);query.setCaseSensitive(false);query.setCriteria("[General Info.Name] contains 'Dashboard'");Iterator iter = query.execute().iterator();ArrayList result = new ArrayList();while (iter.hasNext()){IRow row = (IRow)iter.next();HashMap rowMap = new HashMap();IProgram program = (IProgram)row.getReferent();program.getId();String number = program.getName();rowMap.put("number", number);String name = (String)program.getCell(ProgramConstants.ATT_GENERAL_INFO_NAME).getValue();HashMap internalLinkMap = new HashMap();internalLinkMap.put("label", name);internalLinkMap.put("target", "RightPane");rowMap.put("name", internalLinkMap);result.add(rowMap);}return result;}catch (Exception e){e.printStackTrace();}return null;}}

#### 4.3.2.4 Displaying Quick View with Mouseover

To display Quick View when moving the mouse over the Object ID, set the URL parameter as shown in the following code snippet. Make sure you are using correct values for classid and objectid parameters.

Example 4-5 URL parameters to display Quick View

    HashMap internalLinkMap = new HashMap();internalLinkMap.put("url", "javascript:displayDesignObject('AttachmentHandler', '2000008297','21335435', '0', 'RightPane', '0', '', '4');" onmouseover="showQuickViewLink(event, this)" onmouseout="cancelQuickViewTimer(this);" infourl="showObjectInfo('2000008297', '21335435', '1', '6173', 'R0', 'true', 'DASHBOARD_DXTABLE_2488764_GRID', '4');"");internalLinkMap.put("label", name);internalLinkMap.put("target", "RightPane");rowMap.put("name", internalLinkMap);

Note: In this example, 2000008297 is the object's classId, 21335435 is the object's ID, and so on. These values were defined in the code snippet in "Enabling Quick View in a Custom Table DX Data Source."

#### 4.3.2.5 Opening the Selected Object in the Right Pane

By default, when you use the Link option to open the selected object, the object is displayed in a new Window. The following syntax opens the referenced object in the right pane of the same window for an object retrieved using Advanced Search shown above.

Note: You must specify the correct Class ID and object ID attributes. In this case,18022 and 4555 respectively. Also, this link does not enable Quick View. It is a quick way to put a link in your code. The Quick View option creates a link that enables the Quick View popup.

Example 4-6 Opening the selected object in the right pane

    String name = (String)program.getCell(ProgramConstants.ATT_GENERAL_INFO_NAME)get.Value();HashMap internalLinkMap = newHashMap();internalLinkMap.put("url","/web/PCMServlet?module=ActivityHandler&opcode=displayObject&classid=18022&objid=4555");internalLinkMap.put("label",name);internalLinkMap.put("target","RightPane");rowMap.put("name",internalLinkMap);

### 4.3.3 Packaging and Deploying a Custom Table DX Source

After developing the required classes for a new Table, package and deploy them as shown below.

#### 4.3.3.1 To package and deploy a Table DX source:

1. Use your Java development environment, or the Java Archive tool (or JAR tool), to create one or more JAR files for the custom action. Make sure the JAR file(s) includes a META-INF/services directory that contains a file named com.agile.px.ICustomTable. This is a text file that lists the fully qualified Java class names, one class per line, for the custom action.

   You can include multiple charts in one package. For example, the com.agile.px.ICustomTable file could look like this:

       HashMap internalLinkMap = new HashMap();internalLinkMap.put("url", "javascript:displayDesignObject('AttachmentHandler', '2000008297','21335435', '0', 'RightPane', '0', '', '4');" onmouseover="showQuickViewLink(event, this)" onmouseout="cancelQuickViewTimer(this);" infourl="showObjectInfo('2000008297', '21335435', '1', '6173', 'R0', 'true', 'DASHBOARD_DXTABLE_2488764_GRID', '4');"");internalLinkMap.put("label", name);internalLinkMap.put("target", "RightPane");rowMap.put("name", internalLinkMap);

   Note: Paths within a JAR file are case-sensitive. Therefore, make sure the META-INF folder contained within the JAR file has a name with all uppercase or all lowercase characters. Otherwise, the custom action is not deployed.

2. Place the JAR file(s) in the <agile_home>/integration/sdk/extensions folder on the same computer where the Agile Application Server is installed.

Note: If you have several application servers in a clustered environment, you must deploy the Dashboard Extension files on each server in the cluster.

### 4.3.4 Configuring Table DXs in Java Client

Similar to Chart type DXs, you can use an existing Dashboard Management tab, or create your own optional tab to add your Table DXs.

#### 4.3.4.1 To Add a Table to a Tab:

1. Define a new tab. For example, Dashboard Extensions as shown above.

2. In the new tab (Dashboard Extensions), click . The Dashboard Management - Dashboard Extensions page appears.

3. In this page, click the New Dashboard Table icon to open the Create Dashboard Table dialog and define the new table.

4. Select Table from the View List Type drop-down list. The Create Dashboard Table dialog displaying the necessary fields appears.

5. Complete these fields and then click OK. The new table is created.

Dashboard Table | Description/Purpose | Possible Settings
Name | Type a name for the table | String
API Name | The Name field typed above, converted to CamelCase naming convention by AgilePLM | String
Description | Type a description of the table | String
View List Type | Lists the types of table. Select Table | Chart, Table, Custom, Advance Search
Dashboard Extension | Lists all the process extensions created for the type of Table in view | These are the attributes that were defined in the "Packaging and Deploying a Custom Chart DX Source."
Variable | To enable in Web client | Yes/No

#### 4.3.4.2 To Add Data to Tables:

1. Double-click the new table that you created in "To Add a Table to a Tab:."

2. Click Attributes and then the Add an Attribute icon to create a new attribute.

   Note: Agile currently supports Text, Numeric, Image, Date, Money, and Link type data as table attributes. They are listed and defined in Packaging and Deploying a Custom Table DX Source

3. In the General Information tab, map the Attribute field to the attribute name in the DX.

   Note: You are now defining the attributes (columns) that will show up in the table on the Dashboard Tab. The property "Attribute" defines the mapping between the data model and the view. For example, if the attribute name in the DX is myString and the selected attribute type is Text, map the attribute field whose attribute name is myString.

4. For more information, refer to the Agile PLM Administrator Guide.

### 4.3.5 Defining Custom (URL) Extensions

A Dashboard PX of the type URL is configured to initiate from Dashboard Management. When defining Custom extensions, simply select Custom as the table type. See "To Add a URL to a Tab" below. No other mapping is required for Dashboard PX's of type URL.

Note: URL Process Extensions are defined in the Process Extensions Library to initiate from Dashboard Management.

To Add a URL to a Tab:

1. Define a new tab, for example, Dashboard Extensions as shown above.

2. In the new tab (Dashboard Extensions), click . The Dashboard Management - Dashboard Extensions page appears.

3. In this page, click the New Dashboard Tableicon to open the Create Dashboard Table dialog and define the new table.

4. Select Custom from View List Type drop-down list. The Create Dashboard Table dialog displaying fields listed in the following appears.

5. Complete the Create Dashboard Table dialog fields and then click OK.

Dashboard Table | Description | Possible Settings
--- | --- | ---
Name | Type a name for the URL | String
Description | Type a description | String
View List Type | Lists types of table. Select Custom | Chart, Table, Custom, Advance Search
Dashboard Extension | Lists all process extensions created for Custom type list. | Employee Portal, Yahoo, Google, Process Extension_URLs
Visible | To enable in Web Client | Yes/No