我想开发一个使用c#从Autotask(Web服务API)获取数据的应用程序
我只想计算Autotask的所有任务或票据
我在Visual Studio中有link of the sample自动任务,我不知道这个复杂的查询是如何工作的,我只想选择所有的任务或票,但不知道从哪里开始。
我做了很多研究,但没有什么能回答我的问题。 有谁知道这个?你能帮帮我吗? 谢谢
答案 0 :(得分:0)
这篇文章有点晚了。还在这里。您可能希望使用Autotask API自己的Visual Studio解决方案,这些解决方案在web services page上链接。即VS解决方案zip文件是here。请在Visual Studio中打开解决方案(C#one)并使用示例代码。它有代码来获取流行的实体,如帐户,门票,联系人等。您需要运行它所需的Autotask API用户名和密码,您需要在C#示例控制台应用程序的app.config
中更新。
要获取所有票证,请查询ID大于零的票证。一般票证ID大于零。
<queryxml>
<entity>ticket</entity>
<query>
<field>id
<expression op="greaterthan">0</expression>
</field>
</query>
</queryxml>
您可能还希望通过传递一个帐号来缩小搜索范围,该帐号将返回比上述搜索更少的票数。
<queryxml>
<entity>ticket</entity>
<query>
<field>AccountID
<expression op="equals">123</expression>
</field>
</query>
</queryxml>
答案 1 :(得分:0)
以下是我如何按ID进行操作。我将此代码添加到示例zip文件here中的SampleAutoTaskAPI.AutoTaskAPITests中。但是,它没有包含检索票证的方法,所以我添加了一个。这是:(按照ID获取一张票,但可以轻松修改)
/// <summary>
/// This method searches for a ticket given an ID.
/// </summary>
/// <param name="ticketId">Contains the ticket id to search for</param>
/// <returns>ID of the resource.</returns>
public Ticket FindTicket(string ticketId)
{
Ticket ticket = null;
// Query Resource to get the owner of the lead
StringBuilder strResource = new StringBuilder();
strResource.Append("<queryxml version=\"1.0\">");
strResource.Append("<entity>Ticket</entity>");
strResource.Append("<query>");
strResource.Append("<field>id<expression op=\"equals\">");
strResource.Append(ticketId);
strResource.Append("</expression></field>");
strResource.Append("</query></queryxml>");
ATWSResponse respResource = this.atwsServices.query(strResource.ToString());
if (respResource.ReturnCode > 0 && respResource.EntityResults.Length > 0)
{
ticket = (Ticket)respResource.EntityResults[0];
}
return ticket;
}
**In your program.cs:**
AutotaskApiTests test = new AutotaskApiTests(ConfigurationManager.AppSettings["APIUsername"], ConfigurationManager.AppSettings["APIPassword"]);
Ticket ticket = test.FindTicket("1234");
Debug.Write(ticket);