QuickBooks SDK - Как получить пользовательские поля и должность?

Мне интересно с использованием QuickBooks SDK. У меня есть список сотрудников, которые я получил из QuickBooks, как мне получить настраиваемые поля, которые я установил в QuickBooks для сотрудника?

Также со встроенными полями для сотрудников есть "Должность", в SDK есть Job Title, но всегда ли он пуст?

В любом случае, чтобы получить пользовательские поля и должность?

Спасибо

Вот мой код, который я использую для получения объекта сотрудника внутри QuickBooks, однако мне нужно получить настраиваемое поле и Job Title (но Job Title всегда нулевой, даже если он установлен внутри QuickBooks).

using QBFC12Lib;


        QBSessionManager sessionManager = null;

        try
        {
            // create the session manager
            sessionManager = new QBSessionManager();
            sessionManager.OpenConnection("", "Test Employee");
            sessionManager.BeginSession(@"C:\PathTo\CompanyFile.qbw", ENOpenMode.omDontCare);

            //Create the message set request object to hold our request
            IMsgSetRequest request = sessionManager.CreateMsgSetRequest("US", 8, 0);
            request.Attributes.OnError = ENRqOnError.roeContinue;

            // create the employee query
            IEmployeeQuery employeeQuery = request.AppendEmployeeQueryRq();

            // send the request and get the response from QuickBooks
            IMsgSetResponse responseMsgSet = sessionManager.DoRequests(request);
            IResponse response = responseMsgSet.ResponseList.GetAt(0);
            IEmployeeRetList employeeRetList = (IEmployeeRetList)response.Detail;

            if (employeeRetList != null)
            {
                for (int i = 0; i < employeeRetList.Count; i++)
                {
                    // create employee item
                    IEmployeeRet employee = employeeRetList.GetAt(i);

                    // only get active employees
                    if (employee.IsActive.GetValue())
                    {
                        string firstName = employee.FirstName.GetValue();
                        string jobTitle = employee.JobTitle.GetValue();
                    }
                }
            }
        }
        catch
        { }

1 ответ

Хорошо, после многих проб и ошибок я решил половину этого вопроса, часть получения пользовательских полей! Вы должны установить запрос, чтобы получить их, а затем вы можете получить доступ к настраиваемым полям, но лучший способ, который я нашел, если у вас есть несколько настраиваемых полей, вам придется циклически просматривать их, чтобы найти нужное поле. Вот код ниже.

        employeeQuery.IncludeRetElementList.Add("DataExtRet");
        employeeQuery.OwnerIDList.Add("0");

        for (int x = 0; x < employee.DataExtRetList.Count; x++)
        {
            // get the dataExt object, now you have access to the custom field
            IDataExtRet dataExt = employee.DataExtRetList.GetAt(x);
            string customFieldName = dataExt.DataExtName.GetValue();
            string value = dataExt.DataExtValue.GetValue();
        }
Другие вопросы по тегам