---
category: [Administration & Integrations, Platform and Product Extensions, Platform and Product Extensions/Integration, Administration & Integrations/Custom Integrations & Apps, Platform and Product Extensions/Workday Extend]
keyword: [Extend, Presentation Components, widgets, tags, UI components]
nav: wcp_docs
parent_url: /wcp_docs/
title: >- 
  Reference: PMD Data Types
layout: subsection
---

## <a id="section_simpleTypes"></a>Simple Types

-   <b>boolean</b>

    An unquoted `true` or `false`. A boolean attribute can also use a quoted boolean value.

    Example:

    ```
    "horizontal": true
    "horizontal": "true"
    ```

-   <b>integer</b>

    An unquoted `int` number.

    Example:

    ```
    "code": 404
    ```

-   <b>number</b>

    An unquoted `double` number.

    Example:

    ```
    "axisValue": 20.5
    ```

-   <b>string</b>

    A quoted string of Unicode characters

    Example:

    ```
    "authType": "sso"
    ```

-   <b>array</b>

    A square bracketed list of simple values or objects.

    Example:

    An array of simple values:

    ```
    "columnWidthRatios": [
      0.3, 
      0.7
    ] 
    ```

    An array of objects:

    ```
    "values": [ 
      { 
         "descriptor": "10 miles",
         "id": "10" 
      }, { 
         "descriptor": "50 miles", 
         "id": "50" 
      }, { 
         "descriptor": "100 miles", 
         "id": "100" 
      } 
    ]
    ```

-   <b>map</b>

    A curly bracketed object of key-value pairs.

    Example:

    ```
    {
      "key1": "value1",
      "key2": "value2"
    }
    ```



## <a id="section_objectBindingTypes"></a>Object Binding Types

-   <b>binding-String</b>

    A quoted simple string or an expression that binds a string from a data source or a function. An attribute value of this type doesn't change with user interactions on the page. The PMD resolves the binding value only when the page loads initially.

    Example:

    ```
    "value": "<% worker.descriptor %>"
    ```

-   <b>binding-Boolean</b>

    A quoted boolean or an expression that binds a boolean from a data source or a function. An attribute value of this type doesn't change with user interactions on the page. The PMD resolves the binding value only when the page loads initially.

    Example:

    ```
    "render": "true"
    "render": "<% true %>"
    "render": "<% empty(charity.image) %>"
    ```

-   <b>binding-BigDecimal</b>

    A quoted big decimal or an expression that binds a big decimal from a data source or a function. An attribute value of this type doesn't change with user interactions on the page. The PMD resolves the binding value only when the page loads initially.

    Example:

    ```
    "value": "<% order.amount %>"
    ```

-   <b>binding-Map</b>

    A quoted simple map or an expression that binds a map from a data source or a function. An attribute value of this type doesn't change with user interactions on the page. The PMD resolves the binding value only when the page loads initially.

    Example:

    ```
    "parameters": "<% json:create(json:attribute('page', page.id)) %>"
    ```

-   <b>binding-List</b>

    A quoted simple array or an expression that binds a list from a data source or a function. An attribute value of this type doesn't change with user interactions on the page. The PMD resolves the binding value only when the page loads initially.

    Example:

    ```
    "rows": "<% orderHistory.data %>"
    ```

-   <b>binding-DateTimeZone</b>

    A quoted time zone string or an expression that binds a time zone from a data source or a function. An attribute value of this type doesn't change with user interactions on the page. The PMD resolves the binding value only when the page loads initially.

    Example:

    ```
    "displayTimeZone": "<% userTimeZone %>"
    ```

-   <b>binding-EndPoint</b>

    An expression that binds an endpoint defined in the PMD.

    Example:

    ```
    "deferredEndPoint": "<% instanceSupplyEndpoint %>"
    ```

-   <b>dynamicBinding-String</b>

    A quoted simple string or an expression that dynamically binds a string from a data source, function, or another widget. You can dynamically bind values from another widget only on edit pages.

    Example:

    ```
    "label": "<% gridData.data[0].row[0].name %>"
    ```

-   <b>dynamicBinding-Boolean</b>

    A quoted boolean or an expression that dynamically binds a boolean from a data source, function, or another widget. You can dynamically bind values from another widget only on edit pages.

    Example:

    ```
    "visible": "<% !(empty(countrySelected.value)) %>"
    ```

-   <b>dynamicBinding-BigDecimal</b>

    A quoted big decimal or an expression that dynamically binds a big decimal from a data source, function, or another widget. You can dynamically bind values from another widget only on edit pages.

    Example:

    ```
    "value": "<% baseCurrency.value %>"
    ```

-   <b>dynamicBinding-Collection</b>

    A quoted object collection or an expression that dynamically binds a collection from a data source, function, or another widget. You can dynamically bind values from another widget only on edit pages.

    Example:

    ```
    "on": "<% instanceSupply.instances %>"
    ```

-   <b>dynamicBinding-List</b>

    A quoted array or an expression that dynamically binds a list from a data source, function, or another widget. You can dynamically bind values from another widget only on edit pages.

    Example:

    ```
    "on": "<% workers.data %>"
    ```

-   <b>dynamicBinding-Map</b>

    A quoted simple map or an expression that dynamically binds a map from a data source, function, or another widget. You can dynamically bind values from another widget only on edit pages.

    Example:

    ```
    "onObject": "<% aLoopedOnObject.objectToLoopOn %>"
    ```

-   <b>{tag}</b>

    A PMD tag. Some PMD tag attributes require nested tags.

    Example: The `columns` attribute of the `grid` tag is an array of `column` tags.

    ```
    "columns" : [ 
       {
         "type" : "column",
         "id" : "countryName",
         "columnId" : "countryName",
         "cellTemplate" : {
           "type" : "text",
           "value" : "<% country.name %>"
         },
         "label" : "Country Name"
       }, {
         "type" : "column",
         "id" : "countryCurrency",
         "columnId" : "countryCurrency",
         "cellTemplate" : {
           "type" : "text",
           "value" : "<% country.defaultCurrency %>"
         },
         "label" : "Currency"
       }
    ]
    ```



## <a id="section_scriptTypes"></a>Script Types

You can use PMD Scripting with attributes that use these data types:

-   <b>booleanScript</b>

    An unquoted `true` or `false`, or a script enclosed in `<% %>` that returns a boolean.

    Example:

    ```
    "excelExportEnabled": "<% userCanExportGrid %>"
    ```

-   <b>dateScript</b>

    A quoted date, or a script enclosed in `<% %>` that returns a date.

    Example:

    ```
    "calendarStartDate" : "<% date:now('America/Los_Angeles') %>"
    ```

-   <b>eventScript</b>

    A script enclosed in `<% %>` that executes when the event is triggered. An `eventScript` doesn't return a value.

    Example:

    ```
    "onChange": "<% someWidget.value = 'some value' %>"
    ```

-   <b>listScript</b>

    A quoted array or a script enclosed in `<% %>` that returns a list from a data source or a function. An attribute value of this type doesn't change with user interactions on the page. The PMD resolves the value only when the page loads initially.

    Example:

    ```
    "items": "<% projects.data %>"
    ```

-   <a id="dlentry_mapScript"></a><b>mapScript</b>

    A quoted script enclosed in `<% %>` that returns a Map. An attribute value of this type doesn't change with user interactions on the page. The PMD resolves the value only when the page loads initially.

    For JSON field names inside the map, use single quotes.

    Example:

    ```
    "metadata": "<%
       {
         'uploadedBy': {
           'id': worker.id
         },
         'uploadedDate': date:getTodaysDate(date:getDateTimeZone(userTimeZone))
       }
    %>"
    ```

-   <b>numberScript</b>

    An unquoted number, or a script enclosed in `<% %>` that returns a number.

    Example:

    ```
    "maxFileSize": "<% environment == 'PROD' ? 1024 : 512 %>"
    ```

-   <b>objectScript</b>

    A map (a curly bracketed object of key-value pairs) or a list (a straight-bracketed object array of items) that returns an object.

    Example:

    ```
    "onSend": "<%
      self.data.selectedEmployees = getSelectedEmployees();
      self.data;
    %>"
    ```

-   <b>stringScript</b>

    A quoted string of Unicode characters, or a script enclosed in `<% %>` that returns a string.

    Example:

    ```
    "label": "<% getNameLabel %>"
    ```



### Related Information

[Reference: PMD Tags](/wcp_docs/dyg1528862158582.html)

