Rate at transactionとそのsource、effective timestampは一度だけ保存し、Current rateとメタデータは定期更新します。市場変動で履歴を上書きしません。
Transactionsテーブルを作る
TransactionsにFrom(1行テキスト)、To(1行テキスト)、Amount(数値)、Rate at transaction(数値)、Transaction converted(数値)、Transaction source、Transaction market session、Transaction effective at、Archived(チェックボックス)、Current rate(数値)、Current converted(数値)、Source、Market session、Effective at、Checked at、Sync status、Sync errorを作ります。日時フィールドを日時型、その他のメタデータと状態を1行テキストにし、Needs FX refreshビューでArchived未チェック、Checked at古い順(空欄先)にします。
2つのレート群は別の意味です。Transaction *は会計・監査スナップショット、現在フィールドは推定用の新しい観測値です。後者で前者を直しません。
元の取引レートを保存する
When record matches conditionsでFrom、To、Amountが入力済み、Rate at transactionが空のときに実行します。Run a scriptでmodeをsnapshotにし、トリガーレコードのrecordIdとexchangerateApiKey secretを渡します。secretはinput.secretから読み、アクセス権のない編集者には値を見せません。空の元レートだけを書き、再試行では保持します。
exchangerateApiKeyを作り、フィールド、URL、共有説明、コードに値を書きません。現在値を定期更新する
2つ目をAt scheduled timeで作り、mode=refresh、recordId空でビューの先頭25件を処理します。スクリプトは25 fetch以下、50件以下のバッチです。25ペアを毎日更新すると30日で最大750 APIリクエストです。
RefreshはCurrent rate群だけを更新し、Transaction群を変更しません。失敗時はErrorにして最後の成功値を保持します。
失敗を表示する
401はsecret、429はスケジュールや上限、symbol欠損はペアを確認します。以前のChecked atを保持し、失敗をゼロにしません。
Airtableの制限を確認する
Run a scriptの説明はsecretを、自動化制限はFree不可と失敗も計上されることを説明します。日次更新は日次基準値を日中値にはしません。
