2017-03-08 68 views
1

在我們的ServiceNow安裝中,我們創建了一個簡單的帶有兩個文本輸入值的新請求表單。形式看起來是這樣的:通過API檢索請求信息表ServiceNow

+--------------------------------------------------------+ 
| Get new Computer-request        | 
+--------------------------------------------------------+ 
| model: <text input field>        | 
+--------------------------------------------------------+ 
| organization: <text input field>      | 
+--------------------------------------------------------+ 

當一個新的請求已經使用這種形式的創建,我們可以使用的ServiceNow表API獲取所有 相關信息,通過查詢下表:

  • sc_req_item
  • sc_item_option_mtm
  • sc_item_option
  • sc_cat_item

發出這些REST調用時,我們必須使用多個過濾器來從一個表導航到另一個表,並且只獲取最近的項目以及我們的服務目錄類別中的請求項目。

理想情況下,我們希望將整個請求(時間戳,用戶,輸入值)作爲JSON字符串保存在一個表中。這樣,我們只需要查詢這個單個表就可以檢索請求的所有相關信息。

ServiceNow是否支持從請求表單生成/保存單個JSON文件?

任何幫助,高度讚賞。

回答

3

如果您的目標是能夠向實例提出一個請求(跨表格提供所有請求的詳細信息),則最好定義一個自定義Scripted REST api

你會編寫一個腳本來定義所需的JSON響應,然後調用該API而不是標準表查詢API。

+0

感謝您的回覆。這聽起來像是一個可行的解決方案。但這是如何在後臺工作?腳本REST API本身是否對錶api執行多個調用,然後向消費者呈現信息?這也允許在CMDB中爲請求存儲單個JSON對象嗎? – user152468

+1

您對自定義腳本REST端點進行單一調用,並且完全基於如何編寫自定義腳本REST配置,它將返回單個有效內容。在您的腳本中,您可能會創建多個GlideRecord調用,並附加到'response'對象來構建您的JSON響應。以下是一個示例:https://docs.servicenow.com/bundle/istanbul-servicenow-platform/page/integrate/custom-web-services/reference/r_ScriptedRESTExampleStreamVsLO.html – Joey

+0

感謝@Joey,根據您的建議併發布了答案代碼。 – user152468