ネクストエンジンのAPIがどうもおかしいです。

9 個の投稿 / 0 new
最終投稿
#1 2020/1/20 (月) 11:40
今西 健太

ネクストエンジンのAPIがどうもおかしいです。

例)
伝票番号:250842

$query_array['receive_order_row_last_modified_newest_date-gte'] = ”2020-01-15 15:52:30”;
$query_array['receive_order_row_last_modified_newest_date-lte'] = ”2020-01-15 15:52:30”;
でリクエストを送ると 1188件がヒットし、伝票番号:250842も検索結果として取得でき
取得した receive_order_row_last_modified_newest_date の値も ”2020-01-15 15:52:30” となっている

$query_array['receive_order_id-eq'] = 250842
でリクエストを送ると この伝票のみが取得できるが
取得した receive_order_row_last_modified_newest_date の値も ”2015-04-27 17:42:51” となっている

なぜ 
$query_array['receive_order_row_last_modified_newest_date-gte'] = ”2020-01-15 15:52:30”;
$query_array['receive_order_row_last_modified_newest_date-lte'] = ”2020-01-15 15:52:30”;
でヒットするのか
2020-01-16 11:36:03 の場合10000件がヒットするが、上記のように、本来ヒットしてはいけないデータが多数存在しているかと思います
至急回答をお願いいたします。

2020/1/20 (月) 15:24

Re:ネクストエンジンのAPIがどうもおかしいです。

同じフィールドの絞り込み条件を複数記載されますと、新しい条件が古い条件を上書きします。
複数お使いになられたい場合は別々で抽出していただき、その後データの和(差)を求めていただくようお願いいたします。

2020/1/21 (火) 08:40 ( #2への返信)
今西 健太

いただいた回答について、再度確認があります。

下記、メールにて問い合わせをし、いただいた回答について、再度確認があります。
問い合わせさせていただいた内容と、いただいた回答では説明できていないと思います。
確認をお願いします。

-------------------------------
■問い合わせ内容
伝票番号:250842
$query_array['receive_order_row_last_modified_newest_date-gte'] = ”2020-01-15 15:52:30”;
$query_array['receive_order_row_last_modified_newest_date-lte'] = ”2020-01-15 15:52:30”;
でリクエストを送ると 1188件がヒットし、伝票番号:250842も検索結果として取得でき
取得した receive_order_row_last_modified_newest_date の値も ”2020-01-15 15:52:30” となっている

$query_array['receive_order_id-eq'] = 250842
でリクエストを送ると この伝票のみが取得できるが
取得した receive_order_row_last_modified_newest_date の値も ”2015-04-27 17:42:51” となっている

なぜ 
$query_array['receive_order_row_last_modified_newest_date-gte'] = ”2020-01-15 15:52:30”;
$query_array['receive_order_row_last_modified_newest_date-lte'] = ”2020-01-15 15:52:30”;
でヒットするのか
2020-01-16 11:36:03 の場合10000件がヒットするが、上記のように、本来ヒットしてはいけないデータが多数存在しているかと思います
至急回答をお願いいたします。

■いただいた回答
同じフィールドの絞り込み条件を複数記載されますと、新しい条件が古い条件を上書きします。
複数お使いになられたい場合は別々で抽出していただき、その後データの和(差)を求めていただくようお願いいたします。
-------------------------------

あらためて検証した結果を追記します。
*エンドポイントは/api_v1_receiveorder_row/searchです。

■1:回答について
1)
receive_order_row_last_modified_newest_date-gte = 2020-01-15 15:52:30
receive_order_row_last_modified_newest_date-lte = 2020-01-16 00:00:00
⇒受注伝票・受注明細の最終更新日が2020-01-15 15:52:30以上2020-01-16 00:00:00以下の注文明細

結果=1269件

2)
receive_order_row_last_modified_newest_date-gte = 2020-01-16 11:36:09
receive_order_row_last_modified_newest_date-lte = 2020-01-16 00:00:00
⇒受注伝票・受注明細の最終更新日が2020-01-16 11:36:09以上2020-01-16 00:00:00以下の注文明細

結果=0件

3)
receive_order_row_last_modified_newest_date-lte = 2020-01-16 00:00:00
⇒受注伝票・受注明細の最終更新日が2020-01-16 00:00:00以下の注文明細

結果=10000件

⇒いただいた回答の「新しい条件が古い条件を上書きします」であれば、上記3通りとも、最後の条件が同じですので、
同じ結果になるはずですが、やはり、そのようなことは無く、想定通りFrom~Toの条件となっていると思われます。

-------
①「新しい条件が古い条件を上書きする」ことはなく、From~Toの条件となるで良いか確認をお願いします。
-------

■2:問い合わせについて再掲
1)
receive_order_row_last_modified_newest_date-gte = 2020-01-15 15:52:30
receive_order_row_last_modified_newest_date-lte = 2020-01-15 15:52:30
⇒受注伝票・受注明細の最終更新日が2020-01-15 15:52:30以上2020-01-15 15:52:30以下の注文明細

結果=1188件
*伝票暗号:250842 も検索結果として取得できた
このとき、伝票番号:250842の「 receive_order_row_last_modified_newest_date 」の値は「 2020-01-15 15:52:30 」となっていた

2)
receive_order_id-eq = 250842
⇒伝票番号が250842の注文明細
で取得すると、件数は2件「 receive_order_row_last_modified_newest_date 」の値は「 2015-04-27 17:42:51 」となっていた

3)
伝票番号が250842の画面上の表示は、最終更新日時「 2015-04-27 17:42:51 」である

-------
①受注伝票・受注明細の最終更新日が2020-01-15 15:52:30以上2020-01-15 15:52:30以下の注文明細 という条件であれば、伝票番号:250842は検索対象とならないはず、なぜ、検索されてしまうのか

本来検索対象とならないはずのデータが検索対象となってしまっていると思われます。
秒間で1万件以上の更新はありえません。
-------

-------
②検索の条件が異なるだけで、同じ伝票番号のデータが異なるのはなぜか
-------

-------
③1月14までは正常だったのに、1/15以降上記のような状況となっている、当方のシステムでは、検索対象とする日付の指定を含む当該ソースに変更は無い、なぜ1/15以降で発生しているのか
-------

2020/1/21 (火) 11:42

Re:いただいた回答について、再度確認があります。

申し訳ございません。こちらの案内が至りませんでした。
Amazonのデータ保護ポリシー対応のため、1/10より直近のデータをマスク化させていただいております。
1/15よりAmazonに関連する全サーバーのデータをマスク化したために起きた現象と考えられます。
お手数ではございますが、購入者名がマスク化されているデータに関しましては、その点をご顧慮していただけますよう、よろしくお願いします。
なお、このマスク化はAmazonの要請によるものであり、今後も起こり続けます。

2020/1/21 (火) 15:38 ( #4への返信)
今西 健太

変更後の仕様を掲示して貰えますか?

変更後の仕様を掲示して貰えますか?

またこちらの投稿を公開に変更して貰えますか?

あと弊社から草薙と言う名前で別途質問をしておりますので、
そちらも返答お願いします。

2020/1/22 (水) 08:46
今西 健太

回答をいただいたのですが、再度

回答をいただいたのですが、再度、問い合わせをさせていただきます。
>1/15よりAmazonに関連する全サーバーのデータをマスク化したために起きた現象と考えられます。

①マスクをしただけで、なぜ本来検索結果とされるはずのないデータが検索結果として取得できるのですか?
②マスクを行うと、検索する条件によって、取得できるデータの値が異なるのはなぜですか
③現在発生している不具合、 1・検索にて正常にデータが抽出できない。 2・検索条件によって同じ伝票のデータが異なる これら以外にも影響はありますか

>マスク化はAmazonの要請によるものであり、今後も起こり続けます。

③そもそもマスク化とはなんですか? 具体的に行った変更点について説明をお願いします。
④マスク化を行うとデータはどうなるのですか?
⑤マスク化を行った後、データを正しく抽出する方法を提示してください。

その他
⑥マスク化を行うことはいつから予定されていたのですか?
⑦今回の仕様変更について事前に全く告知されていないのはなぜですか?

*何がどうなっているのか全く分からないので、何をどう対応してよいのかが全く分かりません。

2020/1/22 (水) 08:47
今西 健太

公開設定に変更してください。

後、こちらの件を公開設定に変更してください。

2020/1/27 (月) 12:11
今西 健太

こちらの質問の件について。

こちらの質問の返答は頂けますでしょうか?

回答完了としているのか、何かしら対応中なのか解らないと
当方側も次の対応がしかねます。

宜しくおねがいします。

2020/1/27 (月) 15:58

Re:こちらの質問の件について。

まず質問事項に回答いたします。

>①マスクをしただけで、なぜ本来検索結果とされるはずのないデータが検索結果として取得できるのですか?
マスク化にて伝票の更新日時フィールドが更新されたためです。
>②マスクを行うと、検索する条件によって、取得できるデータの値が異なるのはなぜですか
伝票の更新日時の値が変更されてしまうためです。
>③現在発生している不具合、 1・検索にて正常にデータが抽出できない。 2・検索条件によって同じ伝票のデータが異なる これら以外にも影響はありますか
今後も更新日時がマスク化のタイミングで更新されることがございます。
>④⑥⑦
ネクストエンジンログイン後のメイン機能にて、以前より告知をさせていただいております。
詳しい内容に関しましてはそちらをご参照くださいませ。

>⑤マスク化を行った後、データを正しく抽出する方法を提示してください。
こちらは大変恐縮ですが、更新日時での絞り込みの場合、予期せぬタイミング(マスク化)で伝票が更新される仕様となっております。
その点をご了承くださいませ。

次に
>同じフィールドの絞り込み条件を複数記載されますと、新しい条件が古い条件を上書きします。
こちらは同じフィールドにて同じ比較演算子を使ったこと際に発生する事象のため、こちらの案内ミスでございます。
今回のgte,lteによる絞り込みは質問者様のおっしゃる通りFrom~Toの条件となります。

また
>伝票番号:250842の「 receive_order_row_last_modified_newest_date 」の値は「 2020-01-15 15:52:30 」となっていた
>伝票番号が250842の注文明細
>で取得すると、件数は2件「 receive_order_row_last_modified_newest_date 」の値は「 2015-04-27 17:42:51 」となっていた
こちらについては、受注伝票と受注明細の最終更新日は常に同期されている保証がございません。同期が遅れることもございますので、
他の検索条件も加えていただけますと幸いです。

回答が遅れてしまいましたが、何卒よろしくお願いいたします。
またこちらの投稿を公開とさせていただきます。