このページの一部は機械翻訳されている場合があります。

米国気象サービスの空ワークフローを開始

Smartsheet のシートでチェックボックスがオンになっていると、ワークフローがトリガーされます。その行の座標を使用して、米国気象サービスから最新の天気予報を取得し、Smartsheet の同じ行にそのデータを入力します。

ご利用可能なユーザー

プラン:

  • Bridge by Smartsheet

気象データにアクセスするためのアカウントは必要ないため、米国気象局を使用して予報を取得できます。

予報を取得するには、米国気象局に 2 回の API 呼び出しを行う必要があります。

  • 1 つは地理的位置のグリップポイントを見つけるためのものです。
  • 2 つ目は、特定されたグリッド ビューの予報を取得するための呼び出しです。 

このガイドには、ワークフローを完了するために必要なものがすべて記載されているので、API 呼び出しに慣れていなくてもかまいません。

以下に、ワークフローを構築するためのステップを示します。

  1. ワークフローの作成
  2. シートを作成する
  3. Smartsheet で認証してトリガーを設定する
  4. 「行を取得」をセットアップ
  5. ジャンクションをセットアップ
  6. 最初の API 呼び出しを設定する
  7. 2 回目の API 呼び出しを設定する
  8. 更新行のセットアップ

ステップ 1: ワークフローを作成

  1. Bridge で、ワークフローダッシュボードから「新規ワークフロー」を選択します。
  2. ワークフローに名前を付け、[新規作成] を選択します。 

    すべてのワークフローは、トリガーと状態で開始します。


ステップ 2: シートを作成

Bridge でトリガーを設定する前に、少なくとも以下の列名とタイプを含む Smartsheet シートが必要です。

列名列タイプ
Date (日付)日付
Today (今日)チェックボックス
Longitude (経度)テキスト
Latitude (緯度)テキスト
Weather Forecast (天気予報)テキスト

天気予報列は、プライマリ列でも通常のテキスト列でもかまいません。 

  1.  「今日」列の最初のセルに、次の式を貼り付けます。=IF (Date @row = TODAY (), true, false)
  2. [Enter] を選択します。これにより、日付列のデータセットが今日の日付であるかどうかのチェックボックスがチェックされ、Bridge でワークフローをトリガーできます。
  3. 数式を含むセルを右クリックして、[列数式に変換] を選択します。これにより、シートに追加されるすべての新しい行に、「今日」列の数式が確実に使用されます。
  4. シートを保存します。
  5. Bridge のデザイナーに戻る前に、シート ID をコピーしてください。シート ID は [ファイル] > [プロパティ] で確認できます。

ステップ 3:トリガーを設定する

デザイナーで、ワークフローの上部にあるトリガーを選択します。これにより、デザイナーの右側にパネルが開き、使用するトリガータイプを設定できます。 

ワークフローは Smartsheet のイベントによってトリガーされる必要があるため、使用されるトリガーのタイプは統合トリガーです。パネルで、「インテグレーション」セクションの「インテグレーションページ」を選択します。

Brandfolder Image
Set up the trigger for the API call

これにより、インテグレーションページの新しいタブが開きます。 

  1. スマートシートを探してロゴを選択します。 
  2. [Continue (続行)] を選択します。 
  3. [認証] を選択します。
  4. ポップアップウィンドウで、[許可] を選択します。

認証が成功すると、ウィンドウが [トリガー] タブに変わります。

Brandfolder Image
Triggers tab

トリガー」セクションを展開し、プラスアイコンのある行を選択します

  1. [シート ID] フィールドに、シートを作成したときにコピーしたシート ID を貼り付けます。シート名が重複していないことがわかっている場合は、その名前を入力します。
  2. イベントタイプ」ドロップダウンリストで「列の値が変更されたとき」を選択します。
  3. イベントタイプを選択すると追加されるフィールドに、「今日」という列名を入力します。
  4. ドロップダウンの 「ワークフローを選択」 リストで、前に作成したワークフローを選択し、「保存」を選択します。

    ポップアップがリロードされてトリガーセクションが折りたたまれるので、トリガーが正常に設定されたことがわかります

  5. タブを閉じ、デザイナーに戻ります。

トリガーの保存時にエラーが発生する

トリガーを保存する際にエラー メッセージを受け取った場合は、次の項目を確認します。

  • 列名は、シートに入力したとおりに正確に入力してください。 
  • シート ID の代わりにシート名を入力した場合は、スペルが同じであることを確認してください。 
  • シート所有者でない場合は、シートの権限を確認してアクセス権があることを確認してください。
  • 他のトリガーがすでに設定されている場合は、別のトリガーが問題を引き起こす可能性があります。他のトリガーを確認して、いずれかのトリガーで権限が変更されていないか、トリガーで参照されているシートがまだ存在していることを確認します。

ステップ 4: [Get Row (行を取得)] を設定

Today 列を変更したときにワークフローを実行するようにトリガーを設定しました。これで、いくつかの基本情報が Bridge に送信されるようになりました。ワークフローの最初のステップでは、次の初期情報の一部を取得する必要があります。 

  1. 最初の行の日付セルを今日の日付に設定します。これにより、先ほど入力した数式により、「今日」列のチェックボックスが自動的にオンになります。 
  2. シートを保存し、Bridge のデザイナーに戻ります。
  3. 実行ログを開きます。[更新] を選択すると、 1 つの実行が [完了] ステータスで表示されます。
  4. Smartsheet から Bridge に送信された初期データを表示するには、実行時を選択し、「トリガー」行を展開し、次に「イベント」行を展開します。 
  5. トリガーデータの RowID にカーソルを合わせ、「その他」アイコンを選択すると、ドロップダウンリストが表示されます。 
  6. ドロップダウンメニューで、「データ参照をコピー」を選択します。これにより、クリップボードに変更された行 ID への参照がコピーされます。

    JSON ソースではなく参照を使用すると、ワークフローは常に同じ行を確認するのではなく、常に変更された行を取得します。行の変更はワークフローの実行ごとに異なるため、これは重要です。 

Brandfolder Image
Set up Get Row

状態を更新し、モジュールを追加

  1. グレーステートを選択し、名前フィールドを Get Row に変更します。

    ワークフローを読みやすくするために、その下にあるモジュールが何をするのかに応じてステートに名前を付けることをお勧めします。

  2. 左側のメニューで Get Row モジュールを探します。検索フィールドを使用するか、[インテグレーション] > [Smartsheet] > [行を取得] を展開して検索します。
  3. モジュールを灰色の状態のワークフローにドラッグします。モジュールを設定するパネルが自動的に開きます。 
  4. 行 ID」フィールドに、RowID からコピーした参照を実行ログに貼り付けます。貼り付けた値は {{runtime.Event.ROWID}} と表示されるはずです。
  5. シート ID を取得するには、実行ログをもう一度開き、トリガーデータを展開して見つけてください。先ほど行 ID で行ったように、[その他] アイコンを選択してシート ID への参照をコピーします。
  6. Get Row モジュールを再度選択して、「シート」フィールドのリファレンスに貼り付けます。貼り付けた値は {{runtime.SheetId}} と表示されるはずです。
  7. ページ上部の [保存] を選択します。

    Brandfolder Image
    Update the state and add a module

ステップ 5: ジャンク ションを設定

シート内のチェックボックスへの変更が、ボックスがオンになったためかオフになったためかを判断する必要があります。チェックされていないボックスは無視してください。ただし、チェックボックスがオンになった場合は、日付列に設定されている日付が今日の日付であり、天気予報を収集する必要があることを意味します。

そのためには、チェックボックスでセルを参照する必要があります。

  1. シートに戻り、前に追加した行の日付を変更してボックスのチェックを外します。その後シートを保存します。
  2. Bridge で、実行ログをもう一度開き、パネルの左上にある [すべての実行] を選択します。リストを更新すると、新しく完了した実行が一番上に表示されます。 
  3. この新しいランを開き、「Smartsheet: Get Row」というステップを展開すると、行データが表示されます。
  4. [行] > [セル] > [今日] で、値が false であることがわかります。これにより、変更された行の [今日] 列のチェックボックスがオフになっていることがわかります。 
  5. ドロップダウンを使用して、この値のデータ参照をコピーします。

一致条件付きジャンクションを追加

次のステップは、値がテキスト値 true (オン) または false (オフ) と一致するかどうかを確認するジャンクションを追加することです。 

  1. 検索フィールドに「マッチ」と入力するか、「ユーティリティ」>「コンディショナルジャンクション」>「マッチ」を展開してジャンクションを検索します。 
  2. ジャンクションを Get Row モジュールの下にドラッグし、Today's Date という名前を付けます。

このジャンクションは、ジャンク ション自体と、2 つのプレースホルダーの状態という 3 つのコンポーネントで構成されています。左側のメニューの上部にある Pinned Items > New State には、ワークフローにドラッグできるステートが他にもあります。

ジャンクションに状態を追加

  1. 成功プレースホルダーに新しいステートをドラッグして true という名前を付けます。 
  2. 別の新しい状態を障害プレースホルダーにドラッグしfalse という名前を付けます。

ジャンクションにデータ参照を追加

  1. ジャンクションの「今日の日付」を選択してセットアップパネルを開きます。 
  2. 先ほどコピーした参照を [最初の値] フィールドに貼り付けます。
    貼り付けた値は {{states.get row.smartsheet.get_row.row.cells.today.Value}} でなければなりません
  3. 第 2 値」フィールドにtrue」と入力します。 
  4. これまでに作成したものを保存します。

    Brandfolder Image
    Add data reference to the junction

ステップ 6: 最初の API 呼び出しを設定

API 呼び出しのプロファイルを設定する

天気予報データを取得するには、まず米国気象局への API 呼び出し用のプロファイルを作成する必要があります。プロファイルは、ワークフローを接続するシステム API の重要な情報を保存する方法です。

  1. Bridge アカウントで、[インテグレーション] タブに移動します。
  2. Call API ユーティリティを選択します。
  3. [続行] > [プロファイルに追加] を選択します。

    Brandfolder Image
    Set up a profile for you API calls

     

  4. プロファイルに名前を付けます。それぞれのプロファイル名は一意でなければなりません。たとえば、「US Weather (米国の天気)」などです。
  5. ベース URL」フィールドに「https://api.weather.gov」と入力します。
  6. ヘッダードロップダウンを展開:
    • キー #1 フィールドに「ユーザーエージェント」と入力します。
    • Value #1 フィールドに、会社名とメールアドレスをカンマで区切って入力します。

      米国気象局は、ログに予期しないアクティビティや行動が見つかった場合に連絡できるように、これを義務付けています。

  7. プロファイルを保存します。
  8. ワークフローに戻ります。

 

ワークフローで [Make API Call (API 呼び出しを作成)] モジュールを設定する

最初の API 呼び出しによって、シートに入力された場所のグリッド ビュー ポイントが識別されます。

  1. 検索フィールドを使用して Make API Call モジュールを検索するか、[ユーティリティ] > [ユーティリティ関数] > [Make API Call] を展開します
  2. それを実際の状態でワークフローにドラッグします
  3. [Make API Call (API 呼び出しを作成)] モジュールで、ドロップダウンから先程作成したプロファイルを選択します。
  4. エンドポイントフィールドには、次のポイントを含めてください:points/ {states.get row.smartsheet.get_row.row.cells.longitude.value}}, {{states.get row.smartsheet.get_row.Row.cells.latitude.Value}}
  5. メソッドを GET に設定します。
  6. ワークフローを保存します。

    Brandfolder Image
    Set up the first API call

グリッド ビュー呼び出し用のデータ参照先

このガイドでは、API リクエストの仕組みを理解することは任意であるため、上記の URL はユーザー向けに作成されています。この URL は、ワークフローをトリガーした列の経度と経度の値を参照しています。

これらを取得するには、ワークフローを再度トリガーする必要があります。今回は、チェックボックスがチェックされていることを確認する必要があります。最初の行ではなく新しい行に情報を追加し、必ず日付を今日の日付に設定して、ワークフローがジャンクションの左ブランチに進むようにしてください。

座標

米国の気象サービスでは、座標の小数点に最大 4 桁が必要です。

必要なステップ

[経度] フィールドと [緯度] フィールドに入力する座標があると便利です。たとえば、47.6174 と -122.2001 を使用すると、Smartsheet のベルビュー オフィスの天気を取得できます。


ステップ 7: 2 番目の API 呼び出しを設定する

2 番目の API 呼び出しでは、以前に配置されたグリッド ビュー ポイントに基づいて、米国の気象サービスから予報を取得します。これを設定するには、新しい状態と別の Make API Call モジュールをワークフローに追加します。 

  1. 左側のメニューの上部にあるピン留めされたアイテムから新しいステートをドラッグアンドドロップし、「Get Forecast」という名前を付けます。
  2. 別の Make API Call モジュールを新しいステートにドラッグします。
  3. Make API Call モジュールで、ドロップダウンから先程作成したプロファイルを選択します。
  4. エンドポイントフィールドには、以下を含めてください:gridpoints/ {{states.true.call_api.make_api_call.response.properties.gridid}}/{{states.true.call_api.make_api_call.response.properties.gridx}}, {{states.true.call_api.make_api_call.response.properties.gridx}}, {{states.true.call_api_call.response.properties.gridx} 日}} /予測
  5. メソッドを GET に設定します。
  6. ワークフローを保存します。

    Brandfolder Image
    Set up the second API call

予報呼び出し用のデータ参照先

上記のエンドポイントでデータ参照を使用したい場合は、ワークフローを再度トリガーしてください。変更または追加された行の日付が今日の日付になっていることを確認して、チェックボックスがオンになっていることを確認します。

新しい行を作成してシートを保存したら、実行ログで最後の実行を見つけて、前のステップ「Call API: Make API Call」を展開します。出力」>「プロパティ」で、「グリッドID」、「グリッドX」、「グリッドY」の各フィールドを探します。その後、これらの参照を URL で使用して気象サービスを呼び出すことができます。


ステップ 8: 更新行を設定する

ワークフローで気象データを取得できるようになりました。最後のステップでは、予報を使用してシートを更新します。

シートと行の ID を追加する

  1. ワークフローを再度トリガーします。変更または追加された行の日付が今日の日付になっていることを確認して、チェックボックスがオンになっていることを確認します。
  2. 最後の API コールモジュールの下に別のステートを追加し、それに Update Row という名前を付けます。
  3. 「行の更新」モジュールを検索するか、「インテグレーション」>「Smartsheet」>「行の更新」を展開します。
  4. 実行ログから、最後の実行のトリガーを展開し、シート ID と行 ID の値を探します。 
  5. データ参照を使用して、行更新モジュールのシート ID フィールドと行 ID フィールドを設定します。

詳細な予報データ参照先を追加する

  1. 実行ログに戻り、最後のステップ (2 つの Make API Call モジュールの最後のステップ) を展開します。7日間の天気予報を含む米国気象局のデータは、さまざまな情報を提供します。そして日付は 
  2. [出力] > [プロパティ] > [期間] > [0] で現在の天気を検索します。
  3. このワークフローでは、詳細な予測リファレンスを使用する必要があります。データ参照先をコピーします。 
  4. 行更新モジュールをもう一度開き、セルセクションを展開します 
  5. 参照を Value # フィールドに貼り付けます。貼り付けた値は次のようになるはずです:{{states.get Forecast.call_api.make_api_call.response.properties.periods.0.DetailedForecast}}
  6. Key #1 フィールドに「天気予報」列を入力します。
  7. ワークフローを保存します。

米国気象局が情報を返せなくてもワークフローが失敗しないようにするには、値#フィールドのデータ参照を {{states.get forecast.call_api.make_api_call.response.properties.periods.0.DetailedForecast||気象データを取得できません}} これにより、モジュールは記号 '||' の後のテキストで行を更新します詳細な予測にはデータがありません

Brandfolder Image
Add detailed forecast data reference

完了したワークフロー

ワークフローは、新しい行を追加するたびに実行されます (ジャンクションの左または右のブランチを下る場合)。また、既存の行に設定されている日付であれば、いつでも実行できます。ワークフローがジャンクションの左ブランチに進むか、「今日」ボックスにチェックが入っていると、シートの「天気予報」列が自動的に入力されます。