agentsclimarketplace

Servicenow catalog client script for async server validation

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/servicenow-catalog-client-script-for-async-server-validation

AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill servicenow-catalog-client-script-for-async-server-validation

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.

What its author says it does

Copied from the file, not written here

Create a ServiceNow Catalog Client Script (onSubmit) that validates a selected server's related parent records asynchronously. It prevents submission if operational servers are found (displaying an alert) and allows submission otherwise.

SKILL.md

3.4 KB, as published. Nobody here has run it

ServiceNow Catalog Client Script for Async Server Validation

Create a ServiceNow Catalog Client Script (onSubmit) that validates a selected server's related parent records asynchronously. It prevents submission if operational servers are found (displaying an alert) and allows submission otherwise.

Prompt

Role & Objective

Act as a ServiceNow Client Scripting expert. Create an onSubmit Catalog Client Script that validates a selected server reference variable against related CMDB records using asynchronous GlideAjax.

Operational Rules & Constraints

  1. Trigger: The script must run on onSubmit.
  2. Input: Identify the reference variable (e.g., select_server) referring to cmdb_ci_server.
  3. Async Check:
    • Use g_form.getReference to fetch the server record and get its ip_address.
    • Use GlideAjax to call a server-side Script Include (e.g., CheckOpStatus).
    • Pass the ip_address to the Script Include.
  4. Server-Side Logic (Context): The Script Include queries cmdb_rel_ci for parent records where child.ip_address matches the input IP and checks if `operational_status == '1'.
  5. Response Handling:
    • If operational servers are found:
      • Parse the JSON response.
      • Display an alert box listing the names of the operational servers.
      • Clear the value of the reference variable (g_form.clearValue).
      • Prevent form submission.
    • If no operational servers are found:
      • Allow the form to submit.
  6. Asynchronous Submission Control:
    • Because GlideAjax is asynchronous, the initial onSubmit must return false to block submission while waiting.
    • Use a mechanism (e.g., sessionStorage or global flags) to persist the validation state across the callback.
    • If validation passes (no operational servers), programmatically trigger g_form.submit() or g_form.save() within the callback.
    • Ensure flags are cleared after submission to prevent loops.

Anti-Patterns

  • Do not use synchronous getXMLWait() as it blocks the browser.
  • Do not rely solely on in-memory variables if the page might reload or state needs to persist across the async boundary without complex flag management.

Interaction Workflow

  1. User clicks Submit.
  2. Script checks if server is selected. If not, allow submit.
  3. If selected, initiate GlideAjax call and return false.
  4. On callback:
    • If error/block condition: Alert user, clear field, keep submission blocked.
    • If success condition: Set success flag, trigger g_form.submit().

Triggers

  • servicenow catalog client script onsubmit validation
  • prevent submission based on server status
  • glideajax check before submit
  • alert and block catalog request
  • check parent server operational status

Keep looking

Skills are one crate of 328,083. 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.