【问题标题】:Autotask Web Service API integration with C#Autotask Web 服务 API 与 C# 的集成
【发布时间】:2016-08-17 03:32:01
【问题描述】:


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

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

【问题讨论】:

    标签: c# xml visual-studio api


    【解决方案1】:

    这是我通过 ID 执行的操作。我将此代码添加到示例文件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);
    

    【讨论】:

    • 即使我使用的是 v 1.5,它也会给出错误“IntegrationCode 无效”。
    【解决方案2】:

    这个帖子有点晚了。还是这样。您可能希望使用 Autotask API 自己的 Visual Studio 解决方案,这些解决方案链接在他们的web services page 上。即VS解决方案是here。请在 Visual Studio 中打开解决方案(C# 之一)并在那里使用示例代码。它具有获取流行实体(如帐户、票证、联系人等)的代码。运行它所需的只是您的 Autotask API 用户名和密码,您需要在 C# 示例控制台应用程序的app.config 中更新它们。

    要获取所有票,查询id大于零的票。一般票id大于零。

    <queryxml>
    <entity>ticket</entity>
    <query>
    <field>id
    <expression op="greaterthan">0</expression>
    </field>
    </query>
    </queryxml>
    

    您可能还想通过传递一个帐户 ID 来缩小搜索范围,这将返回比上述搜索更少的票数。

    <queryxml>
    <entity>ticket</entity>
    <query>
    <field>AccountID
    <expression op="equals">123</expression>
    </field>
    </query>
    </queryxml>
    

    【讨论】:

    • Autotask 说每个请求有 500 个结果的限制。 “要针对给定的一组搜索条件查询超过 500 条最大值的其他记录,请重复查询并按 id 值过滤 > 检索到的上一个最大 id 值。”
    猜你喜欢
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 2015-10-21
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2020-06-12
    相关资源
    最近更新 更多