スマレジAPI の仕様変更に伴うドライバーの対応のお知らせ



2021年8月11日に株式会社スマレジより、API の利用につき以下の案内がございました。これを受け、CData Driver および CData Sync (スマレジ連携製品)でのクエリ方法に注意が必要になります。この記事では新しいAPI 仕様でのドライバーの使用方法を説明します。


スマレジ社からの案内の抜粋

一部のスマレジAPI(在庫)参照APIにおいて、サーバー負荷軽減のために検索条件の必須化を行います。 該当のAPIをご利用のお客様におかれましては、2021年9月14日までに必須パラメータのうちいずれか1つを指定してリクエストするように修正をお願いいたします。 2021年9月15日以降に必須パラメータ未指定のリクエストはエラーとなりますのでご注意ください。 対象のAPI、テーブル、必須パラメータは以下の通りです。

発注情報取得(storage_info_ref)

・StorageInfoDelivery テーブル

  • 発注ID(storageInfoId) ※範囲指定で指定可能な範囲は最大10万件
  • 更新日時(modified) ※範囲指定で指定可能な範囲は最大31日

・StorageInfoProduct テーブル

  • 発注ID(storageInfoId) ※範囲指定で指定可能な範囲は最大10万件
  • 更新日時(modified) ※範囲指定で指定可能な範囲は最大31日

・StorageInfoDeliveryProduct テーブル

  • 発注ID(storageInfoId) ※範囲指定で指定可能な範囲は最大10万件
  • 更新日時(modified) ※範囲指定で指定可能な範囲は最大31日

棚卸情報取得(stocktaking_ref)

・StocktakingDetail テーブル

  • 棚卸ID(stocktakingInfoId) ※範囲指定で指定可能な範囲は最大10万件
  • 更新日時(modified) ※範囲指定で指定可能な範囲は最大31日

CData 製品での対処方法

スマレジ連携製品では、デフォルトでは対象データの全件取得が可能になっていますが、各種フィルター条件の付与をサポートしています。以下のテーブル・ビューを取得する場合は、フィルター条件を付与してください。

  • StorageInfoDeliveries
  • StorageInfoDeliveryProducts
  • StorageInfoProducts
  • StocktakingDetails
実行可能なクエリのサンプルは以下の通りです。日付項目の範囲指定に関しては期間が31日間、Idの範囲指定は10万件以内の取得となるよう調整してください。CData Sync で上記データを同期する場合、差分更新では自動的に以下のようなフィルター処理が内部的に実行されます。全件取得する場合は、分割してリクエストを実行する必要があります。

StorageInfoDeliveries

ID による範囲指定を行う場合の例

SELECT * FROM StorageInfoDeliveries WHERE StorageInfoId >= 1 and StorageInfoId <= 100000;

日付による範囲指定を行う場合の例

SELECT * FROM StorageInfoDeliveries WHERE Modified >= '2021/03/01 00:00:00' and Modified <= '2021/03/31 00:00:00';

StorageInfoProducts

ID による範囲指定を行う場合の例

SELECT * FROM StorageInfoProducts WHERE StorageInfoId >= 1 and StorageInfoId <= 100000;

日付による範囲指定を行う場合の例

SELECT * FROM StorageInfoProducts WHERE Modified >= '2021/03/01 00:00:00' and Modified <= '2021/03/31 00:00:00';

StorageInfoDeliveryProducts

ID による範囲指定を行う場合の例

SELECT * FROM StorageInfoDeliveryProducts WHERE StorageInfoId >= 1 and StorageInfoId <= 100000;

日付による範囲指定を行う場合の例

SELECT * FROM StorageInfoDeliveryProducts WHERE Modified >= '2021/03/01 00:00:00' and Modified <= '2021/03/31 00:00:00';

StocktakingDetails

ID による範囲指定を行う場合の例

SELECT * FROM StocktakingDetails WHERE StocktakingInfoId >= 1 and StocktakingInfoId <= 100000;

日付による範囲指定を行う場合の例

SELECT * FROM StocktakingDetails WHERE Modified >= '2021/03/01 00:00:00' and Modified <= '2021/03/31 00:00:00';

もしお困りのことがございましたら、弊社のサポートデスクまでご相談ください。