Jelly script to display the manager of the employee

vidhya_mouli
Giga 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
Giga 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
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
Giga 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>