JVRTOpen(0B31・0B14)の取得結果と、取消・除外を含む出走状態の確認方法について

@JRA-VAN_staff 様

お世話になっております。
先日は、0B15のRA・SEの取得範囲と、更新時の整合性について詳しくご回答いただき、ありがとうございました。

現在、以下の環境でJV-Linkを利用し、個人研究として、取得した時点の出馬表・オッズを保存して後から確認できる環境を作成しています。

  • OS:Windows 64bit
  • JV-Link:5.0.0 64bit版
  • 呼び出し環境:Python/pywin32
  • 参照仕様:JV-Linkインターフェース仕様書・JV-Data仕様書ともに4.9.0.1

主に、発走前のRA・SE(データ区分2)とO1の中間オッズを利用し、その取得時点での出走予定馬を確認する方法について伺いたいと考えています。

前回のご回答から、0B15を全件読み込んでも、更新の境目ではRAとSEの状態にずれが生じる場合があること、また馬番確定後の取消・除外ではSEが残ることを理解しました。

JV-Linkインターフェース仕様書とJV-Data仕様書を確認しましたが、次の点について判断がつかなかったため、追加で質問させてください。

1.0B31で返されるO1の件数と、利用するレコードの判断方法

レース単位で JVRTOpen("0B31", key) を正常に実行し、JVGets の戻り値が0になるまで読み込んだ場合、当該レースのO1は原則1件でしょうか。

複数件返される場合は、どのレコードをその取得時点の状態として利用すればよいでしょうか。データ区分や発表月日時分などの確認項目、同じデータ区分のレコードが複数ある場合の扱いをご教示いただけますと幸いです。

2.O1の頭数と、単勝の各馬番欄の対応

O1の「登録頭数」「出走頭数」と、単勝の各馬番欄を照合する際の考え方を確認したいです。

出走取消・競走除外・発走除外、発売前後の取消、無投票、上限オッズ、未登録欄について、それぞれ頭数にどう含めるべきでしょうか。特に、無投票の欄を取消・除外と区別して、出走予定馬として数えてよいかを確認したいです。

発売状況やデータ区分によって扱いが変わる場合は、その条件も教えていただけますでしょうか。

3.0B15と0B31による出走予定馬の判定

0B15を全件取得してRA・SEの整合性を確認したうえで、0B31のO1と照合すれば、馬番確定後の取消・除外を含め、取得時点の出走予定馬を判定できるでしょうか。それとも、0B14のAVなども併用する必要がありますか。

0B15と0B31は別々に取得するため、同一瞬間の状態とは考えていません。取得の間に変更が発生した場合も含め、推奨される確認項目や再取得の手順があればご教示ください。

4.0B14の再取得時に、以前のAVが含まれなくなった場合の扱い

0B14を開催日単位で正常に取得し、JVGets=0 まで読み込んだ場合、その応答には、その時点で提供されている変更情報一式が含まれると理解してよいでしょうか。

以前の取得では存在したAVが、後の正常な全件取得では含まれなくなった場合、以前の変更情報を現在の状態には適用しない、という扱いでよいでしょうか。

取消・除外の撤回や、情報の提供期間などによって判断が異なる場合は、その条件も確認したいです。途中で取得に失敗した応答は、正常な全件取得とは扱わない前提です。

5.RAとSEの作成年月日による整合性確認

前回、データ区分・作成年月日・頭数を確認する方法をご案内いただきましたが、RAとSEの作成年月日は、整合した状態であっても異なる場合があるでしょうか。

例えば、RAとすべてのSEがデータ区分2で、登録頭数と重複を除いたSE件数が一致していても、RAとSEの作成年月日が異なる場合、再取得が必要な不整合と判断すべきでしょうか。

作成年月日の一致が必要な条件、異なっていても利用可能な条件があればご教示いただけますと幸いです。

今回は、内部の配信時刻や処理方式ではなく、公開インターフェースを利用する際に、取得結果をどのように確認・反映すればよいかを伺いたいと考えています。

項目が多く恐縮ですが、関連する仕様書の記載や既存トピックをご案内いただく形でも大変助かります。

お忙しいところ恐れ入りますが、よろしくお願いいたします。