Вызов веб-сервиса AX через C#

Я пытаюсь подключиться к веб-сервисам AX. Что я сделаю, чтобы получить правильную цену с учетом продукта и клиента.

Я понял, что правильный веб-сервис для использования - PriceListServiceClient, и я могу войти в него, используя аутентификацию Windows, но я не могу получить какие-либо данные из него.

Вот мой код:

PriceListServiceClient priceListServiceClient = new PriceListServiceClient();



priceListServiceClient.ClientCredentials.Windows.ClientCredential.UserName = "yyy";

priceListServiceClient.ClientCredentials.Windows.ClientCredential.Password = "zzz!";

priceListServiceClient.ClientCredentials.Windows.ClientCredential.Domain = "xxx";

CriteriaElement[] criteriaElement = new CriteriaElement[1];

criteriaElement[0] = new CriteriaElement();

criteriaElement[0].DataSourceName = "SalesPrice";

criteriaElement[0].FieldName = "ItemId";

criteriaElement[0].Operator = Operator.NotEqual;

criteriaElement[0].Value1 = "5637153175";

QueryCriteria queryCriteria = new QueryCriteria();

queryCriteria.CriteriaElement = criteriaElement;

CallContext callContext = new CallContext();



var found = priceListServiceClient.find(callContext, queryCriteria);

Console.WriteLine(found.Currency);

priceListServiceClient.Close();

Есть идеи о том, почему это происходит?

2 ответа

Решение

Я нашел ответ здесь: http://community.dynamics.com/ax/f/33/p/118741/246784.aspx

Класс Ax для документа прайс-листа - это класс AxPriceDiscTmpPrintout. Этот класс обертывает таблицу TmpPriceDiscPrintout, которая является таблицей TMP. Вот почему вы ничего не получаете взамен.

Попробуйте заполнить свойства в CallContext (компания и язык).

new CallContext { Company = "zzz", Language = "nl"  };
Другие вопросы по тегам