我在ServiceNow中创建一个前端门户,需要使用g:evaluate来调用来自不同表的变量。
例如:
<g:evaluate var="jvar_user_name">
var gr = new GlideRecord('sys_user');
gr.get('sys_id', gs.getUserID());
gr.first_name;
</g:evaluate>
有没有办法在一个地方存储一堆这些,然后根据需要调用它们,就像JS的UI脚本和CSS的样式表?如果是这样,我将如何做到这一点?
谢谢!
答案 0 :(得分:1)
是的,您应该可以使用UI Macros来完成此操作。
您可以创建名为 set_user_name_var 的UI宏,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate var="jvar_user_name">
var gr = new GlideRecord('sys_user');
gr.get('sys_id', gs.getUserID());
gr.first_name;
</g:evaluate>
</j:jelly>
然后在任何可以编写果冻代码的地方调用UI宏,如下所示:
<g:set_user_name_var />
或者:
<g:macro_invoke macro="set_user_name_var" />
从那时起, jvar_user_name jelly变量将存在并且能够被访问。
例如:
<?xml version="1.0" encoding="utf-8"?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:set_user_name_var />
${jvar_user_name}
</j:jelly>