Получайте обновленные и новые записи из веб-службы Dynamics NAV

Я пытаюсь создать / обновить всех клиентов после значения поля DateTime.

В Dynamics CRM я бы периодически называл этот метод:

DateTime LastCheckedCRMAccount { get; set; }
private List<Account> GetCRMAccounts()
{
    CRMLinq.ClearChanges(); // otherwise old data may be retrieved
    IEnumerable<Account> accounts = from acc in CRMLinq.AccountSet
                                    where acc.ModifiedOn > LastCheckedCRMAccount
                                    select acc;
    List<Account> accountList = accounts.ToList();
    LastCheckedCRMAccount = DateTime.Now.ToUniversalTime();
    return accountList;
}

Вот что у меня есть для Dynamics NAV на данный момент:

DateTime LastCheckedNAVCustomer { get; set; }
private Customer[] GetNAVCustomers()
{
    Customer_Filter filter = new Customer_Filter();
    filter.Field = Customer_Fields.Last_Date_Modified;
    filter.Criteria = LastCheckedNAVCustomer.ToString("ddMMyyyy") + "..";
    Customer[] customers = nCustomer.ReadMultiple(new Customer_Filter[] { filter }, null, 0);
    LastCheckedNAVCustomer = DateTime.Now;
    return customers;
}

Похоже, что в таблице клиентов NAV нет поля «ModifiedOn»; есть поле с названием «Дата последнего изменения», но оно содержит только дату.

Я хотел бы постоянно обновлять учетные записи CRM для клиентов NAV.

Есть лучший способ сделать это?


person Bvrce    schedule 05.03.2014    source источник
comment
Я не знаю лучшего способа, так как ничего не знаю о Nav, но я хотел бы напомнить вам, чтобы убедиться, что LastCheckedCRMAccount - это UTC, поскольку это то, что сравнивается в вашем операторе AccountSet LINQ   -  person Daryl    schedule 05.03.2014


Ответы (1)


Если вы хотите пойти по этому пути, лучше добавить новое поле DateTime в таблицу Customer и заполнить его CURRENTDATETIME при вставке и изменении. Вам также, вероятно, потребуется управлять удалением и переименованием в таблице «Клиент».

Рассматривали ли вы использование стандартной интеграции CRM с NAV через Dynamics Connector?

http://msdn.microsoft.com/en-us/library/gg502460.aspx

В NAV есть реализованная функциональность, которая удовлетворяет ваши потребности. Вы можете взглянуть на объекты «Интеграция » + триггеры OnDatabase в Codeunit 1. Основная идея здесь заключается в том, что все изменения / вставки / удаления таблиц отражаются в таблице «Integration Record», которая может быть используется для получения списка записей о клиентах, которые необходимо обновить в CRM.

person sergeyol    schedule 06.03.2014