通过C#调用AX Web服务

时间:2014-01-09 12:31:58

标签: web-services axapta dynamics-ax-2012 aif

我正在尝试连接到AX网络服务。在给定产品和客户的情况下,我将采取什么措施来获取合适的价格。

我意识到要使用的正确的Web服务是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 个答案:

答案 0 :(得分:2)

尝试填写CallContext中的属性(公司和语言)。

new CallContext { Company = "zzz", Language = "nl"  };

答案 1 :(得分:0)

我在这里找到答案:http://community.dynamics.com/ax/f/33/p/118741/246784.aspx

Price List文档的Ax类是AxPriceDiscTmpPrintout Class。此类包装TmpPriceDiscPrintout表,该表是TMP表。这就是为什么你没有得到任何回报。