我正在寻找一个项目编号 - PRJ0012345。但是如何找到与该项目相关的任务/用户。
我曾尝试过以下服务
https://xyz.service-now.com/pm_project.do?WSDL
对于数据检索,我使用了以下SOAP URL https://xyz.service-now.com/pm_project.do?displayvalue=true&SOAP
代码:
private static string url = "https://xyz.service-now.com/pm_project.do?displayvalue=true&SOAP";
private static ServiceNowPMProjectService.getRecordsResponseGetRecordsResult[] recordResults;
var proxy = new ServiceNow_pm_project
{
Url = url,
Credentials = new NetworkCredential(userName, password)
};
var objRecord = new ServiceNowPMProjectService.getRecords
{
number = "PRJ0012156"
};
recordResults = proxy.getRecords(objRecord);
从recordResults
开始,我无法弄清楚如何找到与此项目相关联的related tasks / userstories
。
注意:如果还使用了任何其他 服务网址 ,请在此处提及。我将尝试找出相关的用户/任务。
以上服务网址使用pm_project
表。同样,如果也使用该URL中的其他表名,请提及。感谢。
答案 0 :(得分:1)
在ServiceNow中使用ServiceNow的SOAP Web服务检索与项目相关的项目任务,您需要针对项目任务表发出请求(getRecords),查询其父项是您感兴趣的项目的项目任务(在您的项目中)案例PRJ0012345)。
这是因为在ServiceNow中,项目记录(pm_project)不引用项目任务(pm_project_task),因此项目不知道与之关联的项目任务,而是每个项目任务都引用了项目与项目任务记录中的“父母”字段相关。
例如PRJ0012345,其中PRJTASK0010002是一个孩子,与PRJ0012345的父母字段有关。
PRJ0012345
PRJTASK0010002 (parent=PRJ0012345)
PRJTASK0010003 (parent=PRJ0012345)
PRJTASK0010004 (parent=PRJ0012345)
PRJTASK0010005 (parent=PRJ0012345)
这是一个示例soap请求消息正文,它向pm_project_task SOAP Web服务发出请求并传递查询,以便结果集只包含父项为PRJ0010001的pm项目任务。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pm="http://www.service-now.com/pm_project_task">
<soapenv:Header/>
<soapenv:Body>
<pm:getRecords>
<__encoded_query>parentSTARTSWITHPRJ0010001</__encoded_query>
</pm:getRecords>
</soapenv:Body>
</soapenv:Envelope>
如果我知道sys_id(unique identifier of the parent project),我可以改变我的soap请求消息体,以便像这样使用sys_id:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pm="http://www.service-now.com/pm_project_task">
<soapenv:Header/>
<soapenv:Body>
<pm:getRecords>
<__encoded_query>parent=91668b5e0ff842003a2d47bce1050e61</__encoded_query>
</pm:getRecords>
</soapenv:Body>
</soapenv:Envelope>
根据您的示例,我建议您尝试修改代码以使用'__encoded_query',如下所示:
var objRecord = new ServiceNowPMProjectService.getRecords
{
__encoded_query = "parentSTARTSWITHPRJ0012345"
};
希望有所帮助!