AIF 中的服务一般会提供八种操作, 分别为create,delete,find,findKeys,getKeys,read,update, getChangeKey
我们今天来讨论如何使用AIF Service 中的find方法去读取 Dynamics AX中的数据
- 注册 SalesSalesOrderService 服务
- 创建一个NetTcp类型的端口,命名为TestAIFOperation,添加SalesSalesOrderService 服务的find方法
- 在VS2010种创建一个console类型的项目
- 取得端口中的服务地址(WSDL URI): http://RD7145D0511:8101/DynamicsAx/Services/TestAIFOperation
- 添加引用,右击Reference/Add Service Reference,将WSDL URI复制进去,点击Go按钮,再点击确定
- 执行一下代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using TestAIFFindMethod.ServiceReference1;
namespace TestAIFFindMethod { class Program { static void Main(string[] args) { string salesIdValue = "SO-101244"; SalesOrderServiceClient client = new SalesOrderServiceClient(); CallContext context = new CallContext(); context.Company = "CEU";
try { AxdSalesOrder salesOrder = client.find(context, createQueryCriteria(salesIdValue)); AxdEntity_SalesTable[] salesTable = salesOrder.SalesTable; foreach (AxdEntity_SalesTable saleTable in salesTable) { Console.WriteLine("Output salesTable name: {0}", saleTable.SalesName); Console.WriteLine("Output salesTable ID: {0}", saleTable.SalesId); Console.WriteLine("Output Customer account: {0}", saleTable.CustAccount); AxdEntity_SalesLine[] salesLine = saleTable.SalesLine; foreach (AxdEntity_SalesLine line in salesLine) { Console.WriteLine(); Console.WriteLine("Output SaleLine:"); Console.WriteLine("------------------------------------------------"); Console.WriteLine("Output ItemID: {0}", line.ItemId); Console.WriteLine("Output SalesQty: {0}", line.SalesQty); Console.WriteLine("Output SalesUnit: {0}", line.SalesUnit); } }
} catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { client.Close(); } Console.ReadKey(); }
private static QueryCriteria createQueryCriteria(string salesIdValue) { CriteriaElement[] criteriaElements = new CriteriaElement[1]; criteriaElements[0] = new CriteriaElement(); criteriaElements[0].DataSourceName = "SalesTable"; criteriaElements[0].Operator = Operator.Equal; criteriaElements[0].FieldName = "SalesId"; criteriaElements[0].Value1 = salesIdValue;
QueryCriteria queryCriteria = new QueryCriteria(); queryCriteria.CriteriaElement = criteriaElements; return queryCriteria; } } } |
- 运行,结果如下:
Output salesTable name: Football Stadium Output salesTable ID: SO-101244 Output Customer account: 2124
Output SaleLine: ------------------------------------------------ Output ItemID: 1003 Output SalesQty: 1.00 Output SalesUnit: ea
Output SaleLine: ------------------------------------------------ Output ItemID: 1151 Output SalesQty: 15.00 Output SalesUnit: ea
Output SaleLine: ------------------------------------------------ Output ItemID: 1161 Output SalesQty: 25.00 Output SalesUnit: ea
|