Autotask Web Service API与C#的集成

时间:2016-08-17 03:32:02

标签: c# xml visual-studio api


我想开发一个使用c#从Autotask(Web服务API)获取数据的应用程序 我只想计算Autotask的所有任务或票据 我在Visual Studio中有link of the sample自动任务,我不知道这个复杂的查询是如何工作的,我只想选择所有的任务或票,但不知道从哪里开始。

我做了很多研究,但没有什么能回答我的问题。 有谁知道这个?你能帮帮我吗? 谢谢

2 个答案:

答案 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);