我是ServiceNow的新手,但我知道SQL,我无法在他们的官方网站和谷歌上找到ServiceNow的简单查询示例.有没有办法JOIN或只是检查表1中的X字段是否等于表2中的Y字段?
示例:我有2个表,公司和用户,我需要" SELECT"所有在伦敦工作的用户.在用户表中我有一个字段' company_name',在公司表中我有字段company_name和city.
在SQL中,我可以通过简单的查询来解决它:
SELECT u.* from users u, companies c
WHERE u.company_name = c.company_name and c.city = 'London'
Run Code Online (Sandbox Code Playgroud)
或者加入:
SELECT u.* from users u
LEFT JOIN companies c on u.company_name = c.company_name
WHERE c.city = 'London'
Run Code Online (Sandbox Code Playgroud)
如何在ServiceNow中执行此操作?谢谢
我现在正在使用json web服务来查询事件记录.我正在使用java和apache Httpscomponents来进行调用.事件表中有很多记录,但我想过滤那些我需要处理的记录.在维基的帮助下,我能够获取新添加的记录.我想获取特定用户调用/创建的记录.
我调用下面表单的URL,myUserName是我需要处理的票据的调用者.
https://<instance>.service-now.com/incident.do?JSON&sysparm_action=getRecords&sysparm_query=incident_state=1%5Ecaller=myUserName
Run Code Online (Sandbox Code Playgroud)
问题是我仍然得到所有新的事件,这意味着它sysparm_query=incident_state=1正在工作,但后来失败或被忽略.
请告诉我,如果我的方法是错误的,并指出我的方向,或者如果它的错误可能是URL中的更正?
我发现更新集中没有捕获对计划脚本执行的任何更新.获取更改的标准是什么?我们是否可以手动配置要在更新集中捕获和不捕获的项目列表.
我正在用 Python 开发一个报告工具,它可以从 ServiceNow 的 JSON Web 服务中获取数据。我们的 ServiceNow 实例使用普通的用户 id / pw 身份验证加上 SHA-1 认证。我的问题是我无法使用脚本访问 JSON Web 服务结果页面(https://servicenowserver.com/table.do?JSONv2&sysparm_query=active=true ^number=12345678)以从那里获取数据。我可以使用我的脚本登录主页(https://servicenowserver.com),它进行身份验证并给出 HTTP 200,但是当我调用 JSON Webservice 页面时给出 HTTP 401(未经授权)。
当我通过浏览器登录 ServiceNow 并启动会话后,我可以在新选项卡上调用 JSON 服务,它会显示结果,但这不适用于我的 Python 脚本。我尝试将urllib3和requests库与会话参数一起使用以保持会话打开,但它都不起作用。我认为我的脚本只是在调用主页后立即关闭会话。我也尝试过传递饼干,但没有成功。
长话短说:它可以在我的浏览器中运行,但如果我使用 Python 脚本则不行。
您知道我应该如何进行身份验证才能获取 JSON 结果吗?或者至少如果有人可以指导我如何获得更详细的调试?
您可以在下面找到我尝试过的解决方案之一:
import requests
s = requests.session()
s.auth = ('user', 'password')
s.verify = 'sn.cer'
r = s.get('https://servicenowserver.com', verify=True)
print (r) # This gives HTTP 200
r2 = s.get ('https://servicenowserver.com/table.do?JSONv2&sysparm_query=active=true^number=12345678', verify=True, cookies=s.cookies)
print (r2) # …Run Code Online (Sandbox Code Playgroud) 这是一个 REST API,我正在尝试将数据下载为 CSV 文件。
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var data = '\n'; // workaround to separate <xml> start tag on first line
data += 'Firstname,Lastname,Username' + '\n';
data += 'Nikhil,vartak,niksofteng' + '\n';
data += 'Unknown,person,anonymous' + '\n';
response.setHeader("Content-Disposition", "attachment;filename=Xyz.csv");
response.setContentType("text/csv");
response.setBody({'data':data});
})(request, response);
Run Code Online (Sandbox Code Playgroud)
根据文档 setBody需要一个 JS 对象,因此如果我只是传递data变量,我会收到错误,指出数据无法解析为ScriptableObject.
因此,使用当前代码我得到以下响应:
{
"result": {
"data": "\nFirstname,Lastname,Username\nNikhil,vartak,niksofteng\nUnknown,person,anonymous\n"
}
}
Run Code Online (Sandbox Code Playgroud)
生成的 CSV 如下所示:
知道如何去掉第一行和第五行的 XML 标记吗?
我试图从.Net调用Service Now的web服务,我可以使它在插入记录时工作正常,但我无法使用任何GET工作.这是我的工作INSERT代码:
public void insertTable(string tableName, string schema, string columnInfo, string shortDesrcipt, string longDescript)
{
using (ServiceNow_u_database_table tableReference = new ServiceNow_u_database_table())
{
insertResponse response = new insertResponse();
System.Net.ICredentials cred = new System.Net.NetworkCredential(Properties.Settings.Default.UserName, Properties.Settings.Default.Password);
tableReference.Credentials = cred;
insert tableInsert = this.getTableData(tableName, schema, columnInfo, shortDesrcipt, longDescript);
try
{
response = tableReference.insert(tableInsert);
}
catch (Exception error)
{
Console.WriteLine(error.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这很好.以下代码不适用于GET:
using (ServiceNow_u_database_table tableReference = new ServiceNow_u_database_table())
{
ServiceNowExport.com.servicenow.libertydev.u_database_table.getRecords recordGet = new getRecords();
System.Net.ICredentials cred = …Run Code Online (Sandbox Code Playgroud) 我在 Day & Zimmerman 担任桌面支持专家。随着桌面支持,我在空闲时间编码。
我想成为经过认证的 Service-Now 管理员。
什么是开始学习 Service-Now 的好材料?
我了解公司为什么使用 Service-Now,它是如何使用的,但我想了解如何配置它、为服务目录请求配置工作流、创建组以过滤不同 IT 团队之间的工单,以及创建 UI 策略和脚本。
我有很强的 JavaScript 知识。
谢谢
sysparm_query 对于仅在指定列中包含数据的行
例如:我想要活动的事件数据并定义了业务应用程序
sysparm_query=active=true^??????
ng-if如果条件满足,我试图用来显示某些行,但似乎不能让它100%正确地工作.
<div style="margin-bottom: 1em;">
<h4><!-- content omitted for brevity--></h4>
<p>
<strong>Covered:</strong>
<a ng-href class="pointer" data-ng-repeat="life in data.list2 track by $index" ng-if="life.beneficiary.length > 0" ng-click="c.editBeneficiary(life)">
<!-- content omitted for brevity-->
</a>
<a ng-href class="pointer" ng-if="life.beneficiary.length = 0" ng-click="c.addBeneficiary()">Add Beneficiary <i class="fa fa-plus-circle" style="color: green;"/></a></p>
</div>
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,如果受益人的数量大于0(ng-if="life.beneficiary.length > 0"),我想列出名称并允许用户在必要时编辑它们.这部分工作正常.但是,如果受益人数等于0,那么我希望有一个"添加受益人"的链接,并允许用户这样做.
我把这些ng-if陈述放在<a>标签中,我不确定是对的.当我与没有受益人的用户登录时,"添加受益人"链接不会显示.
是否有任何通用 URL 可以通过号码 (INC/REQ/CHG) 导航到 serviceNow 门户?
我有一个通用 URL (INC/REQ/CHG),可以通过 sys_id 导航到 ServiceNow 门户:
https://XXXXdev.service-now.com/nav_to.do?uri=task.do?sys_id=XXXXXXXXXXXXXXXXXXXXX
我已尝试以下事件 URL,但它正在创建新记录
XXXXdev.service-now.com/nav_to.do?uri=incident.do?sysparm_order=INC0XXX
或者
XXXXdev.service-now.com/nav_to.do?uri=incident.do?number=INC00XXXX
如果 INC、REQ 或 CHG 有不同的 URL 没问题,我希望 URL 通过给出数字而不是 sys_id 来查看记录。
servicenow ×10
web-services ×2
.net ×1
angularjs ×1
c# ×1
database ×1
html ×1
java ×1
javascript ×1
json ×1
python ×1
saas ×1