Вызов веб-сервиса 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" };