Navision Web サービスを使用して、日付でフィルタリングする方法を教えてください。
つまり、SalesHeader テーブル内に「ExportedDate」があります。ExportedDate が設定されていない、または特定の日付にエクスポートされたすべての SalesHeaders を検索したいと考えています。
日付フィールドにフィルターを設定すると、Web サービスはすべての行を返すか、まったく行を返さないようです。
Navision Web サービスを使用して、日付でフィルタリングする方法を教えてください。
つまり、SalesHeader テーブル内に「ExportedDate」があります。ExportedDate が設定されていない、または特定の日付にエクスポートされたすべての SalesHeaders を検索したいと考えています。
日付フィールドにフィルターを設定すると、Web サービスはすべての行を返すか、まったく行を返さないようです。
これは可能です。Nav クライアントで使用するのと同じフィルター式を使用する必要があります。
01012011.. would be all dates from 01.01.2011
..01012011 would be all dates to 01.01.2011
01012011..03012011 gets all dates between 01. and 03.
ページ 42 (販売注文) を NAV の Web サービスとして公開した後、Visual Studio プロジェクトで新しく作成した Web サービスへの Web 参照を追加しました。C# コードでは、サービスの新しいインスタンスを作成し、既定の資格情報を使用するように指示します。
SalesOrders_Service salesOrdersService = new SalesOrders_Service();
salesOrdersService.UseDefaultCredentials = true;
次に、フィルターをインスタンス化し、フィールドと基準を設定します。
SalesOrders_Filter filter = new SalesOrders_Filter();
filter.Field = SalesOrders_Fields.Document_Date;
filter.Criteria = "01-31-14|''"; // specific date (MM-dd-yy) or empty
フィルター インスタンスは、SalesOrders_Filters の新しい配列に追加されてから、後者が ReadMultiple に渡されます。
SalesOrders[] salesOrders = salesOrdersService.ReadMultiple(new SalesOrders_Filter[] { filter }, null, 0);
私のマシンでは、これにより、文書日が 2014 年 1 月 31 日の 2 つの注文と、文書日が空白の 1 つの注文が返されます。