Quickbooks SDK 13.0 ToDoAddRq C#

本文关键字:ToDoAddRq SDK Quickbooks | 更新日期: 2023-09-27 18:00:37

嘿,伙计们,我是这个sdk的新手,我正在尝试添加TODO,一切都很好,直到我尝试指定时间或优先级或键入它给我带来的错误"QuickBooks在分析提供的XML文本流时发现错误"我正在使用SDK 13有人能帮我吗谢谢

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using QBFC13Lib;
using System.Globalization;
using System.Windows.Forms;
namespace testing
{
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }
    private void Form2_Load(object sender, EventArgs e)
    {
        bool sessionBegun = false;
        bool connectionOpen = false;
        QBSessionManager sessionManager = null;
        try
        {
            sessionManager = new QBSessionManager();
            //Create the message set request object to hold our request
            IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US", 8, 0);
            requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;
            //Connect to QuickBooks and begin a session
            sessionManager.OpenConnection("", "QuickBook Account Import");
            connectionOpen = true;
            sessionManager.BeginSession("C:''Users''Public''Documents''Intuit''QuickBooks''Company Files''***.qbw", ENOpenMode.omDontCare);
            sessionBegun = true;

                IToDoAdd ToDoAddRq = requestMsgSet.AppendToDoAddRq();
                ToDoAddRq.ReminderDate.SetValue(DateTime.ParseExact("29/4/2014", "d/M/yyyy", CultureInfo.InvariantCulture));
                //Set field value for Time
                ToDoAddRq.ReminderTime.SetValue(10, 10, 10, false);
                //Set field value for Notes
                ToDoAddRq.Notes.SetValue("abc");
                //Set field value for IsActive
                ToDoAddRq.IsActive.SetValue(true);
                //Set field value for Type
                ToDoAddRq.Type_2.SetValue(ENType.tCall);
                //Set field value for Priority
                ToDoAddRq.Priority.SetValue(ENPriority.pLow);

                //Send the request and get the response from QuickBooks
                sessionManager.DoRequests(requestMsgSet);

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error");
        }
        finally
        {
            //End the session and close the connection to QuickBooks
            if (sessionBegun)
            {
                sessionManager.EndSession();
            }
            if (connectionOpen)
            {
                sessionManager.CloseConnection();
            }
        }
    }
}
}

Quickbooks SDK 13.0 ToDoAddRq C#

QuickBooks qbXML API是版本的API。不同版本的QuickBooks将通过不同版本的qbXML规范支持不同的功能。

在开发时,您需要确保您使用的qbXMLneneneba API版本既支持您需要的功能,又支持您的QuickBooks版本。

您当前使用的是qbXML版本8.0:

 IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US", 8, 0);

通常,QuickBooks版本与qbXML版本支持的版本相差1。例如QuickBooks 14支持qbXML版本13。QuickBooks 13支持qbXML版本12。等等。这意味着现在你的目标是QuickBooks 2009。

您收到一条错误消息,因为如果您参考Intuit的文档,ToDoAddTypePriority标记仅在13.0及更高版本中受支持。您需要在请求中不包含这些值,或者使用更高版本的qbXML API。