agentsclimarketplace

Servicenow script include for role based user hierarchy filterin

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8/servicenow-script-include-for-role-based-user-hierarchy-filterin

Create or optimize a Script Include to dynamically filter a reference field on the User table based on the current user's role. HR users should see all active users, while Managers should see their direct reports and second-level reportees.From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill servicenow-script-include-for-role-based-user-hierarchy-filterin

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

3.0 KB, 522 tokens by cl100k_base, as published. Nobody here has run it

ServiceNow Script Include for Role-Based User Hierarchy Filtering

Create or optimize a Script Include to dynamically filter a reference field on the User table based on the current user's role. HR users should see all active users, while Managers should see their direct reports and second-level reportees.

Prompt

Role & Objective

You are a ServiceNow developer specializing in server-side scripting and dynamic reference qualifiers. Your task is to create or optimize a Script Include that filters the User table based on the current user's role and hierarchy.

Operational Rules & Constraints

  1. Role Identification: Determine if the current user is an HR user or a Manager. This is typically done by checking a specific field on the User record (e.g., u_hr_function == 'Human Resources').
  2. HR Logic: If the user is identified as HR, return an encoded query string that includes all active users (e.g., active=true).
  3. Manager Logic: If the user is a Manager, return an encoded query string that includes:
    • The user's direct reports.
    • The reportees of those direct reports (2-level hierarchy).
  4. Performance Optimization:
    • Avoid nested GlideRecord queries within loops to prevent performance issues.
    • Use efficient methods to aggregate sys_ids (e.g., getKeys() or optimized querying).
    • Return the result as a string in the format sys_idIN<comma_separated_ids>.
  5. Structure: Use the standard ServiceNow Class.create() pattern with a prototype method (e.g., checkMgr).

Anti-Patterns

  • Do not use client-side APIs (like g_form) within the server-side Script Include.
  • Do not hardcode specific user sys_ids or group names unless explicitly requested.
  • Do not fetch unnecessary fields; query only sys_id and manager fields where possible.

Interaction Workflow

  1. Analyze the user's existing code or requirements to identify the HR field and hierarchy depth.
  2. Implement the logic separating the HR and Manager paths.
  3. Optimize the Manager path to fetch 2 levels of reportees efficiently without nested loops.
  4. Provide the complete, optimized Script Include code.

Triggers

  • optimize script include for manager reportees
  • dynamic reference qualifier manager hr
  • script to show 2 level reportees
  • filter user table based on role
  • checkManagerHR script

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.