Add a Dynamic Link to a List in a Suitelet

We added the link using a View Dashboard icon. This icon shows when you hover over a record in any entity list (for example, Customers, Prospects, Leads, which you can view in  List > Relationship). When you click the icon, it will direct you to a Dashboard page for that particular record.

The following steps show how to add the View Dashboard icon which will link an entity record with the corresponding Dashboard to a list in a Suitelet:

Add a View Dashboard Icon

  1. Create a Transaction Body Field:
    1. Go to Customization > Lists, Records, & Fields > Transaction Body Fields > New.
    2. In Basic Information fill in the following fields:
      • In Label, enter: Dashboard.
      • In Image ID , enter: _dashboard_image.
      • In Type, select: Free-Form Text.
      • in Store Value: don’t check the box.
    3. In Validation & Defaulting tab fill in the following fields:
      • In Default Value, enter: ‘<img src=”/images/nav/ns_x.gif” height=”13″ width=”16″ border=”0″ title=”View Dashboard” class=”i_dashboard_gray”>’.
      • In Formula: check the box.
    4. Click Save.
  2. Deploy Suitelet script:
    1. Create a JavaScript file named “SuiteletDashboard.js” with the following code:

/**

  • @NApiVersion 2.x
  • @NScriptType Suitelet
  • @NModuleScope SameAccount
    */
    define([“N/ui/serverWidget”,”N/search”],

function(serverWidget,search) {
function demoList(context) {
var list = serverWidget.createList({
title: ‘Simple List’
});
list.style = context.request.parameters.style;
var column = list.addColumn({
id: ‘custbody_dashboard_image’,
label: ‘Dashboard’,
type: serverWidget.FieldType.TEXT,
align: serverWidget.LayoutJustification.LEFT
});
column.setURL({
url:”https://system.netsuite.com/app/center/card.nl?sc=-69″ //URL of a Dashboard
});
column.addParamToURL({
param: ‘entityid’,
value: ‘entity’,
dynamic: true // the dynamic parameter that allows to link the URL of a Dashboard with the corresponding entity
});
list.addColumn({
id: ‘trandate’,
label: ‘date’,
type: serverWidget.FieldType.DATE,
align: serverWidget.LayoutJustification.LEFT
});
list.addColumn({
id: ‘name_display’,
label: ‘Customer’,
type: serverWidget.FieldType.TEXT,
align: serverWidget.LayoutJustification.LEFT
});
list.addColumn({
id: ‘salesrep_display’,
label: ‘Sales Rep’,
type: serverWidget.FieldType.TEXT,
align: serverWidget.LayoutJustification.LEFT
});
list.addColumn({
id: ‘amount’,
label: ‘Amount’,
type: serverWidget.FieldType.CURRENCY,
align: serverWidget.LayoutJustification.RIGHT
});

    var searchEstimate = search.create({
        type: search.Type.ESTIMATE,
        filters: [{
            name: 'mainline',
            operator: 'is',
            values: ['T']
        }],
        columns: [{
            name: 'trandate'
        }, {
            name: 'entity'
        }, {
            name: 'name'
        }, {
            name: 'salesrep'
        }, {
            name: 'amount'
        }, {
            name: 'custbody_dashboard_image'    // Dashboard link
        }],
    });
    var searchEstimateResults = searchEstimate.run();
    var results = searchEstimateResults.getRange({
        start: 0,
        end: 1000
    });
    list.addRows({
        rows: results
    });

    context.response.writePage({
        pageObject: list
    });
}

return {
    onRequest: demoList
};

});

  1. Go to Customization > Scripting > Scripts > New.
  2. Click +.
  3. Upload JavaScript file from Step 1.
  4. Click the Create Script Record button.
  5. In Basic Information, in the Name field, enter: View Dashboard Suitelet.
  6. In Deployments tab, enter:
    • Title: View Dashboard Suitelet
    • Status: Released
  7. Click Save.

Leave a comment

Your email address will not be published. Required fields are marked *