为什么我可以在ServiceNow中访问示例脚本化Web服务(订购黑莓)并返回静态变量,但它没有订购黑莓

Why can I reach the sample scripted web service(order a BlackBerry) in ServiceNow and return static variables, but it does not Order a BlackBerry?

本文关键字:静态 返回 变量 我可以 脚本 访问 Web ServiceNow 为什么 服务      更新时间:2023-09-26

我在通过WebService(SOAP或REST)将我们的第三方应用程序与服务目录集成时遇到困难。

我的主要目标:向 ServiceNow 发送 REST 或 SOAP 请求并订购服务目录项/运行关联的工作流以创建指定组的任务。

我尝试从 Web 服务运行 OrderGuide,但我一开始只是尝试在"脚本化 SOAP 服务"、"订购黑莓"下点击示例入站 Web 服务,但没有成功。

以下是"订购黑莓手机"的示例代码,仅修改了最后一行:

var cart = new Cart();
var item = cart.addItem('e2132865c0a8016500108d9cee411699');
cart.setVariable(item, 'original', request.phone_number);
// set the requested for
var gr = new GlideRecord("sys_user");
gr.addQuery("user_name", request.requested_for);
gr.query();
if (gr.next()) {
  var cartGR = cart.getCart();
  cartGR.requested_for = gr.sys_id;
  cartGR.update();
}
var rc = cart.placeOrder();
response.request_number = rc.number;
response.test = "You ran the Script!";

我能够使用具有所有安全角色的服务帐户(开发实例,别担心!)发送带有PHP的SOAP请求,并且只收到响应.test内容。request_number为空,并且没有在 ServiceNow 实例中插入任何项目。

问题(如果有人会好心地帮助我!回答任何问题都会有很大帮助。

  1. 缺少什么配置,允许我运行 Web 服务,但不能完成订单?

  2. 如果
  3. 不是,那么从 Web 服务订购目录项、创建任务或运行关联工作流的建议方法是什么?

  4. 是否有人对"订购黑莓"示例脚本(最好是PHP,但我可以与其他人合作)或从入站SOAP/REST请求运行订单指南的工作示例请求?

感谢您提供任何信息!

我认为建议的方法是使用服务目录API。您只需向以下 URL 发布 HTTP 帖子

https://instance_name.service-now.com/api/sn_sc/servicecatalog/items/sys_id_of_your_item/order_now

对于变量,您可以将它们作为 json 对象在请求正文中发送,例如:

{ 
   'your_var1': 'value1', 
   'your_var2': 'value2' 
}

我没有有效的PHP示例,只有cURL命令,但我认为您可以在PHP中使用它^^

curl "https://instance_name.service-now.com/api/sn_sc/servicecatalog/items/item_sys_id/order_now" '
--request POST '
--header "Accept:application/json"'
--header "Content-Type:application/json" '
--data "{ 'your_var1': 'value1', 'your_var2': 'value2' }" '
--user 'admin':'admin'