AIF 中的服务一般会提供八种操作, 分别为create,delete,find,findKeys,getKeys,read,update, getChangeKey
我们今天来讨论如何使用AIF Service 中的findKeys方法去读取 Dynamics AX中的数据
- 注册 SalesSalesOrderService 服务
- 创建一个NetTcp类型的端口,命名为TestAIFOperation,添加SalesSalesOrderService 服务的findKeys方法
- 在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 TestAIFFindKeyMethod.ServiceReference1;
namespace TestAIFFindKeyMethod { class Program { static void Main(string[] args) { string salesIdValue1 = "SO-101244"; string salesIdValue2 = "SO-101250"; SalesOrderServiceClient client = new SalesOrderServiceClient(); CallContext context = new CallContext(); context.Company = "CEU";
try { EntityKey[] entityKey = client.findKeys(context, createQueryCriteria(salesIdValue1,salesIdValue2)); foreach (EntityKey key in entityKey) { Console.WriteLine(); Console.WriteLine("Output result:"); KeyField[] fields = key.KeyData; foreach (KeyField field in fields) { Console.WriteLine("Field: {0}", field.Field); Console.WriteLine("Value: {0}", field.Value); } }
} catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { client.Close(); } Console.ReadKey(); }
private static QueryCriteria createQueryCriteria(string salesIdValue1, string salesIdValue2) { CriteriaElement[] criteriaElements = new CriteriaElement[1]; criteriaElements[0] = new CriteriaElement(); criteriaElements[0].DataSourceName = "SalesTable"; criteriaElements[0].Operator = Operator.Range; criteriaElements[0].FieldName = "SalesId"; criteriaElements[0].Value1 = salesIdValue1; criteriaElements[0].Value2 = salesIdValue2;
QueryCriteria queryCriteria = new QueryCriteria(); queryCriteria.CriteriaElement = criteriaElements; return queryCriteria; }
} } |
- 运行,结果如下:
Output result: Field: SalesId Value: SO-101244
Output result: Field: SalesId Value: SO-101245
Output result: Field: SalesId Value: SO-101246
Output result: Field: SalesId Value: SO-101247
Output result: Field: SalesId Value: SO-101248
Output result: Field: SalesId Value: SO-101249
Output result: Field: SalesId Value: SO-101250 |