We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

Jelly script to display the manager of the employee

vidhya_mouli
Tera Sage

I have a table u_employee with (employee name) name and (manager name) name. Both employee and manager are present in the same table. I want to display the Employee name : Manager name as a formatter in the top of the form.

 

I have the following (sys_ui_macro) script: employee_manager_breadcrumb

 

<jelly>
    <j:set var="employeeSysId" value="${sys_id}" />
    <g2:get name="employeeRecord" table="u_employee" var="employeeRecord" query="sys_id=${employeeSysId}" />

    <j:if test="${!empty(employeeRecord)}">
        <j:set var="employeeName" value="${employeeRecord.name}" />
        <!-- Fetch the manager record by querying the same table using the manager field -->
        <g2:get name="managerRecord" table="u_employee" var="managerRecord" query="sys_id=${employeeRecord.manager}" />

        <!-- Ensure the manager exists before displaying the breadcrumb -->
        <j:if test="${!empty(managerRecord)}">
            <j:set var="managerName" value="${managerRecord.name}" />
        </j:if>

        <!-- Breadcrumb display: Employee Name : Manager Name (if available) -->
        <div class="breadcrumb">
            <span><b>Employee:</b> ${employeeName}</span> :
            <span><b>Manager:</b> ${!empty(managerName) ? managerName : 'No Manager Assigned'}</span>
        </div>
    </j:if>
</jelly>

 

And this is my UI formatter:

vidhya_mouli_0-1726471138873.png

 

When I add this Manager Breadcrumbs to the form nothing is displayed. Any suggestions how to fix this?

1 ACCEPTED SOLUTION

vidhya_mouli
Tera Sage

This code worked as intented.

 

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">

  <!-- Get Employee Name -->
  <g2:evaluate var='jvar_employee'>
    var empName = current.getValue('name');
    empName;
  </g2:evaluate>

  <!-- Get Manager Name and sys_id from the same u_employee table -->
  <g2:evaluate var='jvar_manager_name'>
    var mgrGr = new GlideRecord('u_employee');
    var mgrSysId = current.getValue('manager');  // Get manager sys_id
    if (mgrGr.get(mgrSysId)) {
      mgrGr.getValue('name');  // Fetch the manager's name
    } else {
      'No Manager Assigned';
    }
  </g2:evaluate>

  <!-- Get Manager sys_id for the link -->
  <g2:evaluate var='jvar_manager_sysid'>
    current.getValue('manager');  // Fetch manager sys_id
  </g2:evaluate>

  <!-- Style for the breadcrumb -->
  <style>
    .breadcrumb {
      font-family: Arial, sans-serif;
      background-color: #f4f4f4;
      padding: 8px;
      border-radius: 5px;
      display: inline-block;
      box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);
    }
    .breadcrumb span {
      margin-right: 5px;
    }
    .breadcrumb a {
      color: #007bff;
      text-decoration: none;
    }
    .breadcrumb a:hover {
      text-decoration: underline;
    }
    .breadcrumb b {
      font-weight: 600;
    }
  </style>

  <div class="breadcrumb">
    <span><b> $[jvar_employee]</b></span>
    <span>></span>
    <span><b><a href="u_employee.do?sys_id=$[jvar_manager_sysid]">$[jvar_manager_name]</a></b></span>
  </div>

</j:jelly>

 

View solution in original post

2 REPLIES 2

Sid_Takali
Kilo Patron

Hi @vidhya_mouli try below code

<jelly>
    <j:set var="employeeSysId" value="${sys_id}" />
    <g2:get name="employeeRecord" table="u_employee" var="employeeRecord" query="sys_id=${employeeSysId}" />

    <j:if test="${!empty(employeeRecord)}">
        <j:set var="employeeName" value="${employeeRecord.name}" />
        
        <!-- Fetch the manager record by querying the same table using the manager field -->
        <j:set var="managerSysId" value="${employeeRecord.manager}" />
        <g2:get name="managerRecord" table="u_employee" var="managerRecord" query="sys_id=${managerSysId}" />

        <!-- Ensure the manager exists before displaying the breadcrumb -->
        <j:if test="${!empty(managerRecord)}">
            <j:set var="managerName" value="${managerRecord.name}" />
        </j:if>

        <!-- Breadcrumb display: Employee Name : Manager Name (if available) -->
        <div class="breadcrumb">
            <span><b>Employee:</b> ${employeeName}</span> :
            <span><b>Manager:</b> ${!empty(managerName) ? managerName : 'No Manager Assigned'}</span>
        </div>
    </j:if>
</jelly>

vidhya_mouli
Tera Sage

This code worked as intented.

 

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">

  <!-- Get Employee Name -->
  <g2:evaluate var='jvar_employee'>
    var empName = current.getValue('name');
    empName;
  </g2:evaluate>

  <!-- Get Manager Name and sys_id from the same u_employee table -->
  <g2:evaluate var='jvar_manager_name'>
    var mgrGr = new GlideRecord('u_employee');
    var mgrSysId = current.getValue('manager');  // Get manager sys_id
    if (mgrGr.get(mgrSysId)) {
      mgrGr.getValue('name');  // Fetch the manager's name
    } else {
      'No Manager Assigned';
    }
  </g2:evaluate>

  <!-- Get Manager sys_id for the link -->
  <g2:evaluate var='jvar_manager_sysid'>
    current.getValue('manager');  // Fetch manager sys_id
  </g2:evaluate>

  <!-- Style for the breadcrumb -->
  <style>
    .breadcrumb {
      font-family: Arial, sans-serif;
      background-color: #f4f4f4;
      padding: 8px;
      border-radius: 5px;
      display: inline-block;
      box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);
    }
    .breadcrumb span {
      margin-right: 5px;
    }
    .breadcrumb a {
      color: #007bff;
      text-decoration: none;
    }
    .breadcrumb a:hover {
      text-decoration: underline;
    }
    .breadcrumb b {
      font-weight: 600;
    }
  </style>

  <div class="breadcrumb">
    <span><b> $[jvar_employee]</b></span>
    <span>></span>
    <span><b><a href="u_employee.do?sys_id=$[jvar_manager_sysid]">$[jvar_manager_name]</a></b></span>
  </div>

</j:jelly>