こんにちは。CData Software Japan の色川です。
先日リリースされたArc 2024(24.1)ではフローページとデザイナーが大きく刷新されましたが、それ以外にも数多くの機能追加や機能改善が実施されています。
この記事では、それらの中から「REST コネクタの最終実行日時を確認できる _connector.LastRunTimestamp 機能」を使って「最後に実行された日時以降のアイテムをリクエストする」方法についてご紹介します。
CData Arc のREST コネクタ
CData Arc のREST コネクタは、Arc のCore Connectors の1つとして提供される高機能な汎用REST クライアント機能を持つコネクタです。RESTful なAPI への静的なリクエスト実行はもちろん、コネクタへのインプットファイルのデータを利用した動的なリクエスト実行もサポートしています。
CData では業界最多級のSaaS、NoSQL やアプリケーションデータにSQL で接続できるドライバーを提供していますが、世界では数万社を超えるSaaS 企業がサービスを提供しており、汎用の高機能REST Client であるREST コネクタが活躍する機会も多いです。
今回のリリースでは、このREST コネクタに「最終実行日時を確認できる _connector.LastRunTimestamp 機能」が追加されたことで「REST コネクタでので最後に実行された日時以降のアイテムをリクエストする」シナリオが、とてもシンプルに実現できるようになりました。
なお、シングルアクション的なAPI リクエストを実行したいケースではなく、ページング対応なども含めてAPI に対して(あたかも)データベースのテーブル的にアクセスしたいケースでは、CData のREST Driver を利用するアプローチの方がフィットするかも知れません。CData のREST Driver はArc のCData コネクタから利用することができます。
v24.1 で追加された _connector.LastRunTimestamp
Arc のDatabase Connectors やSalesforce、kintone などのApplication Connectors には、差分でのデータ取得をサポートとする機構の1つとして、最後のクエリ実行日時を自動的に保存し、次にデータソースをクエリするときに、対象列がその日時以降にあるデータを絞り込むフィルタを構成する機能が備わっています。
今回、REST コネクタに追加された「最終実行日時を確認できる _connector.LastRunTimestamp 機能」は、この「最後のクエリ実行日時を自動的に保存する」と類似の概念・機構と考えていただくとイメージ頂きやすいかも知れません。
なお、従来でも「実行日時を取得して何れかのデータストアに保存しておく」「保存しておいた前回の実行日時を読み出して利用する」ようなArcScript を(ある程度がんばって)記述すれば、このようなシナリオの実現を検討できましたが、今回のリリースで「コネクタでの最終実行日時」がコネクタアイテム(_connector)のプロパティとして実装・提供されたことで「最後に実行された日時以降のアイテムをリクエストする」シナリオが、とてもシンプルに実現できるようになっています。
ex. 最後に実行された日時以降のアイテムをリクエストする
REST コネクタの最終実行日時は、Arc の内部に自動的に記録・保管され、コネクタアイテム(_connector)のプロパティとしてアクセスできますので利用に際し、特に複雑な設定等は必要としません。
以下では、API エンドポイントに対して「from_datetime というURL パラメータで前回実行日時を(yyyyMMdd-HHmmss 形式で)指定したいケース」を例にして設定例をご紹介します。エンドポイントにはリクエスト内容の確認等に便利なPostman Echo を利用しました。
URL 内のArcScript を許可
まず、REST コネクタの「高度な設定」で「URL 内のArcScript を許可」しておきます。
URL 内で _connector.LastRunTimestamp プロパティを指定
あとは、REST コネクタのURL を構成していきます。メソッドを「GET」で構成し「URL」には「postman-echo.com/get」を指定したら、「from_datetime パラメータ」に「_connector.LastRunTimestamp をtodate() でフォーマットした値」が指定されるように構成します。
http://postman-echo.com/get?from_datetime=[_connector.LastRunTimestamp | todate('yyyyMMdd-HHmmss')]
実行結果の確認
REST コネクタの「受信」実行で試してみます。コネクタログや(Postman Echo からのレスポンス内容が載るアウトプットファイルの内容から、前回コネクタ実行時の日時が from_datetime パラメータとして渡されていることが確認できました。
留意事項
REST コネクタのコネクタアイテム(_connector)であるLastRunTimestamp は、コネクタが実行される都度、自動的に記録・更新されていきますが、(検証なども含めて)コネクタを初めて実行する際は値が取得されません。そのような場合を考慮する必要があるシーンでは、def() フォーマッタなどを利用して値が取得されない場合の初期値を指定すると良いでしょう。
以下の例は_connector.LastRunTimestamp が取得できない場合(未定義の場合)、19700101-000000(UNIX エポック)を初期値として利用する例です。
http://postman-echo.com/get?from_time=[_connector.LastRunTimestamp | def('1970-01-01') | todate('yyyyMMdd-HHmmss')]
まとめ
この記事ではArc 2024(24.1)で追加された「REST コネクタの最終実行日時を確認できる _connector.LastRunTimestamp 機能」を使って「最後に実行された日時以降のアイテムをリクエストする」方法をご紹介しました。
あるAPI エンドポイントに対して「最後に実行された日時以降のアイテムをリクエスト」したいシーンは多いと思います。そのようなシナリオに対して、新しいArc 2024(24.1)ならとてもシンプルに実現を検討することができます。
今回のアップデートにより、Arc でのワークスペースやフロー、コネクタの作成や維持・運用など毎日頻繁に実行されるタスクを、より効率的かつスムーズに実現頂けるようになっています。
CData Arc 2024 では、他にも多くの機能強化・機能改善が施されています。詳しく知りたい方はリリースノートを併せてごらんください。
より使いやすくなったCData Arc をぜひ試してみてください。
今回リリースされた新たなバージョンに限らず、今ご利用されているバージョンについても、設定や利用方法などご不明な点があれば、お気軽にテクニカルサポートまでお問い合わせください。
CData Software Japan - Support Form
この記事では CData Arc™ 2024 - 24.1.8910.0 を利用しています。
関連コンテンツ