К тексту на этой странице мог быть частично применён машинный перевод.

Запуск пустого рабочего процесса для Службы погоды США

Рабочий процесс срабатывает при установке флажка в таблице в Smartsheet. Он использует координаты из этой строки, чтобы получить последний прогноз погоды от Службы погоды США, а затем заполняет эту строку в Smartsheet этими данными.

Доступно для:

Планы:

  • Bridge by Smartsheet

Вы будете использовать Службу погоды США для получения прогнозов, поскольку вам не нужна учетная запись для доступа к их данным о погоде.

Чтобы получить прогноз, необходимо сделать два обращения API к Службе погоды США:

  • Один для определения точки захвата, в которой находится географическое местоположение.
  • Второй, чтобы получить прогноз для этой идентифицированной сетки. 

Вам не нужно знакомиться с вызовами API, чтобы следовать инструкциям в этом руководстве, которое предоставляет все необходимое для завершения рабочего процесса.

Вот шаги по созданию рабочего процесса:

  1. Создать рабочий процесс
  2. Создать таблицу
  3. Пройдите аутентификацию в Smartsheet и настройте триггер
  4. Настройка функции Get Row
  5. Настройка соединения
  6. Настройка первого вызова API
  7. Настройка второго вызова API
  8. Настройка строки обновления

Шаг 1. Создание рабочего процесса загрузки данных

  1. В Bridge выберите «Новый рабочий процесс » на панели «Рабочие процессы».
  2. Присвойте рабочему процессу имя и нажмите кнопку Создать. После этого вы перейдете к дизайнеру.

    Все рабочие процессы начинаются с триггера и состояния.

Brandfolder Image
New workflow for the API call to the US Weather Service

Шаг 2: Создание листа

Прежде чем настраивать триггер в Bridge, вам понадобится таблица Smartsheet, содержащая не менее пяти столбцов.

Настройте таблицу так, чтобы в ней были следующие имена и типы столбцов:

Имя столбцаТип столбца
ДатаДата
СегодняФлажок
ДолготаТекст
ШиротаТекст
Прогноз погодыТекст

Столбец «Прогноз погоды» может быть основным столбцом или обычным текстовым столбцом. 

  1. В первую ячейку столбца «Сегодня» вставьте следующую формулу:

    =ЕСЛИ (Date@row = СЕГОДНЯ (), true, false)

  2. Нажмите Enter. Этот флажок устанавливает, если набор данных в столбце «Дата » является сегодняшней датой, которую вы затем можете использовать для запуска рабочего процесса в Bridge.
  3. Для этого в представлении сетки щёлкните ячейку правой кнопкой мыши и выберите Преобразовать в столбец с формулой. Это гарантирует, что все новые строки, добавляемые в таблицу, будут использовать эту формулу в столбце «Сегодня».
  4. Сохраните таблицу.
  5. Прежде чем вернуться в конструктор в Bridge, скопируйте идентификатор листа. Идентификатор таблицы можно узнать, выбрав Файл > Свойства.

Шаг 3: Настройте триггер

В конструкторе выберите элемент Trigger в верхней части рабочего процесса. Откроется панель в правой части конструктора, где вы можете настроить тип триггера, который вы хотите использовать. Так как рабочий процесс должен запускаться событием в Smartsheet, используется тип триггера интеграции.

На панели выберите «Страница интеграций» в автоматически развернутом разделе «Интеграции».

Brandfolder Image
Set up the trigger for the API call

Откроется новая вкладка со страницей «Интеграции ». 

  1. Найдите Smartsheet и выберите логотип. 
  2. Нажмите Continue (Продолжить). 
  3. Выберите Аутентифицировать.
  4. Появится еще одно окно с вопросом, хотите ли вы разрешить Bridge доступ к своей учётной записи Smartsheet. Выберите Allow (Разрешить).

Если аутентификация прошла успешно, окно перейдет на вкладку Триггеры .

Brandfolder Image
Triggers tab

Разверните раздел Триггеры и выберите строку со значком плюса:

  1. В поле Идентификатор листа вставьте идентификатор листа, скопированный при создании листа. Если вы знаете, что имя листа уникально, введите его.
  2. Event Type (Тип события). Выберите When Column Values are Changed (При изменении значений столбцов).
  3. В поле, которое добавляется при выборе Типа события, введите название столбца Сегодня.
  4. В раскрывающемся списке Выбрать рабочий процесс выберите созданный ранее рабочий процесс и нажмите кнопку Сохранить.

    Вы можете сказать, что триггер был настроен успешно, потому что всплывающее окно перезагрузится и свернет раздел «Триггеры ».

  5. Закройте вкладку и вернитесь в Дизайнер.

Ошибки при сохранении триггера

Если при сохранении триггера появляется сообщение об ошибке, проверьте следующие элементы:

  • Убедитесь, что название столбца написано точно так же, как в таблице. 
  • Если вы ввели имя листа вместо идентификатора листа, убедитесь, что оно написано точно так же. 
  • Если вы не являетесь владельцем таблицы, проверьте разрешения таблицы, чтобы убедиться, что у вас по-прежнему есть доступ.
  • Если другие триггеры уже настроены, проблема может возникнуть при использовании другого триггера. Проверьте другие триггеры, чтобы убедиться, что разрешения на один из них не изменились или что таблица, на которую ссылается триггер, все еще существует.

Шаг 4: Настройте Get Row

Вы настроили триггер для запуска рабочего процесса при изменении столбца « Сегодня », это действие теперь будет отправлять некоторую основную информацию в Bridge. На первом этапе рабочего процесса необходимо получить некоторую исходную информацию:

  1. Установите ячейку даты в первой строке на текущую дату. При этом в столбце «Сегодня» автоматически устанавливается флажок в соответствии с введенной ранее формулой. 
  2. Сохраните лист и вернитесь в конструктор в Bridge.
  3. Откройте журнал запуска. Сначала он будет пустым, поэтому выберите «Обновить». Это обновит панель; один прогон должен появиться со статусом Завершено.
  4. Чтобы отобразить исходные данные, отправленные в Bridge из Smartsheet, выберите «Выполнять», разверните строку «Триггер», а затем строку «Событие». 
  5. Наведите указатель мыши на rowId в данных триггера и выберите значок «Еще», чтобы открыть раскрывающийся список. 
  6. В раскрывающемся меню выберите Копировать ссылку на данные. При этом ссылка на измененный идентификатор строки копируется в буфер обмена.

    Используя ссылку, а не источник JSON, рабочий процесс всегда получает измененную строку, а не всегда смотрит на одну и ту же строку. Это важно, так как изменение строк, вероятно, будет отличаться при каждом запуске рабочего процесса. 

Brandfolder Image
Set up Get Row

Обновление состояния и добавление модуля

  1. Выберите серое состояние и измените поле Имя на Получить строку.

    Рекомендуется называть состояния в соответствии с тем, что делают модули под ними, чтобы упростить чтение рабочих процессов.

  2. Найдите модуль Get Row в левом меню. Используйте поле поиска или найдите его, развернув узлы Интеграции > Smartsheet > Получить строку.
  3. Перетащите модуль в рабочий процесс в серое состояние. Панель для настройки модуля открывается автоматически. 
  4. В поле Row ID вставьте ссылку, скопированную из rowId в журнал выполнения. Вставленное значение должно выглядеть как {{runtime.event.rowId}}.
  5. Чтобы получить идентификатор листа, снова откройте журнал выполнения и разверните данные триггера, чтобы найти его. Скопируйте ссылку на идентификатор листа так же, как вы делали это для идентификатора строки ранее, щелкнув значок «Еще».
  6. Выберите модуль «Получить строку» еще раз и вставьте его в ссылку в поле «Лист». Вставленное значение должно выглядеть как {{runtime.sheetID}}.
  7. Выберите Удалить в верхней части страницы.

    Brandfolder Image
    Update the state and add a module

Шаг 5: Настройте соединение

Необходимо определить, было ли изменение флажка на листе вызвано тем, что флажок был отмечен или снят. Неотмеченный флажок должен быть проигнорирован; однако, если флажок становится отмеченным, это означает, что дата, установленная в столбце Дата , является сегодняшней датой, и вы хотите получить прогноз погоды.

Для этого вам нужно сослаться на ячейку с галочкой:

  1. Вернитесь на лист и измените дату в строке, которую вы добавили ранее, чтобы снять флажок. Сохраните таблицу.
  2. В Bridge снова откройте журнал выполнений и выберите «Все выполнения » в левом верхнем углу панели. Обновите список, чтобы увидеть новый завершенный прогон вверху. 
  3. Откройте новый запуск и разверните шаг Smartsheet: Получить строку , чтобы отобразить данные строки.
  4. В строке > ячейках > Сегодня вы можете видеть, что значение равно false. Это говорит о том, что флажок в столбце «Сегодня» был снят в строке, которая изменилась. 
  5. С помощью выпадающего списка скопируйте ссылку на данные этого значения.

Добавление Совпадение условного соединения

Следующим шагом является добавление соединения, чтобы проверить, совпадает ли значение с текстовыми значениями : true (отмечено) или false (не отмечено). 

  1. В поле поиска введите «Соответствовать » или разверните «Утилиты» > «Условные соединения» > «Соответствовать», чтобы найти соединение. 
  2. Перетащите соединение в модуль Get Row и назовите его Today's Date.

Этот переход состоит из трех компонентов: самого соединения и двух состояний-заполнителей. Дополнительные состояния для перетаскивания в рабочий процесс можно найти в верхней части меню слева в разделе Закрепленные элементы > Новое состояние.

Добавление состояний к соединению

  1. Перетащите новое состояние в заполнитель success и назовите его true
  2. Перетащите еще одно новое состояние в заполнитель сбоя и назовите его false.

Добавление ссылки на данные к соединению

  1. Выберите соединение Сегодняшняя дата , чтобы открыть панель настройки. 
  2. Вставьте скопированную ранее ссылку в поле «Первое значение».
    Вставляемое значение должно быть { {states. Получить Row.smartsheet.get_row.row.cells.Today.value}}
  3. В поле Второе значение введите слово true
  4. Сохраните то, что вы уже создали.

    Brandfolder Image
    Add data reference to the junction

Шаг 6: Настройте первый вызов API

Настройка профиля для вызовов API

Чтобы получить данные прогноза погоды, необходимо сначала создать профиль для вызовов API в Службу погоды США. Профили позволяют сохранять ключевую информацию о системных API, к которым вы хотите подключить свои рабочие процессы.

  1. В своей учетной записи Bridge перейдите на вкладку «Интеграции».
  2. Выберите утилиту Call API.
  3. Выберите Add to Profiles (Добавить в профили).

    Brandfolder Image
    Set up a profile for you API calls

     

  4. Введите имя профиля. Имя каждого профиля должно быть уникальным. Например: Погода в США.
  5. В поле Базовый URL-адрес введите https://api.weather.gov.
  6. Разверните раскрывающееся меню Заголовки:
    • В поле Ключ #1 введите User-Agent.
    • В поле Значение #1 введите название вашей компании и адрес электронной почты, разделенные запятой.

      Метеорологическая служба США требует этого, чтобы они могли связаться с вами, если заметят неожиданную активность или поведение в своих журналах.

  7. Сохраните профиль.
  8. Вернитесь к рабочему процессу.

 

Шаг 3. Настройка модуля Make API Call в рабочем процессе

Первый вызов API определяет точку сетки расположения, введенного в таблицу.

  1. Используйте поле поиска, чтобы найти модуль Make API Call или разверните Utilities > Utility Functions> Make API Call.
  2. Перетащите его в рабочий процесс под истинным состоянием.
  3. В модуле Make API Call выберите нужный профиль из раскрывающегося списка.
  4. В поле Конечная точка включите следующие точки: points/{{states. Получите Row.smartsheet.get_row.row.cells.Longitude.value}},{{states. Получить Row.smartsheet.get_row.row.cells.Latitude.value}}
  5. Установите в поле Method (Метод) значение POST.
  6. Сохраните рабочий процесс.

    Brandfolder Image
    Set up the first API call

Ссылки на данные для вызова сетки

Приведенный выше URL-адрес создан для вас, так как понимание того, как работают запросы API, не является обязательным для этого руководства. Этот URL-адрес ссылается на значения долготы и широты в строке, которая активировала рабочий процесс.

Если вы хотите получить их, необходимо снова запустить рабочий процесс. На этот раз вам нужно убедиться, что флажок установлен. Добавьте информацию в новую строку, а не в первую, и убедитесь, что дата установлена на сегодняшнюю дату, чтобы рабочий процесс шел вниз по левой ветви соединения.

Координаты

Метеорологическая служба США требует, чтобы в качестве координат указывалось не более четырех знаков после запятой.

Обязательный шаг

Лучше всего иметь координаты для их ввода в поля Долгота и Широта . Например, можно использовать номера 47.6174 и -122.2001, чтобы узнать погоду для офиса Smartsheet в Белвью.


Шаг 7: Настройте второй вызов API

Второй вызов API получает прогноз от Службы погоды США на основе ранее расположенных точек сетки. Добавьте новое состояние и еще один модуль Make API Call в рабочий процесс, чтобы настроить это. 

  1. Перетащите новое состояние из закрепленных элементов в верхней части левого меню и назовите его «Получить прогноз».
  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.gridY}}/forecast
  5. Установите в поле Method (Метод) значение POST.
  6. Сохраните рабочий процесс.

    Brandfolder Image
    Set up the second API call

Ссылки на данные для вызова прогноза

Если вы хотите, чтобы ссылки на данные использовались в конечной точке выше, запустите рабочий процесс снова. Убедитесь, что в измененной или добавленной строке указана сегодняшняя дата, чтобы флажок стал отмеченным.

Создав новую строку и сохранив таблицу, найдите последнее выполнение в журнале выполнения и разверните последний шаг: Вызов API: Вызов API. В разделе Свойства выходных > найдите поля gridId, gridX и gridY. Затем вы можете использовать эти ссылки в URL-адресе для вызова метеорологической службы.


Шаг 8: Настройте строку обновления

Теперь, когда вы можете получать данные о погоде с помощью рабочего процесса, последним шагом является обновление листа с прогнозом.

Добавление идентификаторов таблиц и строк

  1. Запустите рабочий процесс еще раз. Убедитесь, что в измененной или добавленной строке указана сегодняшняя дата, чтобы флажок стал отмеченным.
  2. Добавьте еще одно состояние под последним модулем вызова API и назовите его Update Row.
  3. Найдите модуль «Строка обновления» или разверните узлы Iэлементов > Smartsheet > Строка обновления.
  4. В окне Журнал выполнения разверните Триггер последнего запуска и найдите значения идентификаторов таблицы и строки . 
  5. Используйте ссылки на данные, чтобы задать поля «Идентификатор листа» и «Идентификатор строки» для модуля «Обновить строку».

Добавление ссылки на подробные данные прогноза

  1. Вернитесь в журнал выполнения и разверните последний шаг (последний из двух модулей вызова API). Данные Метеорологической службы США, в том числе прогнозы погоды на семь дней, предоставляют широкий спектр информации. 
  2. Найдите текущую погоду в разделе Выходные > свойства > периоды > 0.
  3. Для этого рабочего процесса необходимо использовать ссылку на detailedForecast. Скопируйте ссылку на данные. 
  4. Снова откройте модуль «Обновить строку» и разверните раздел «Ячейки ». 
  5. Вставьте ссылку в поле Значение # . Вставленное значение должно выглядеть так: {{states. Получить Forecast.call_api.make_api_call.response.properties.periods.0.detailedForecast}}
  6. Введите столбец «Прогноз погоды» в поле «Ключ #1».
  7. Сохраните рабочий процесс.

Если вы хотите, чтобы рабочий процесс не завершился сбоем, если Служба погоды США не может вернуть информацию, вы можете настроить ссылку на данные в поле Значение # следующим образом: {{states. Получите Forecast.call_api.make_api_call.response.properties.periods.0.detailedForecast||Невозможно получить данные о погоде}}
Это гарантирует, что модуль обновит строку с текстом после символа '||', если в подробном прогнозе нет данных.

Brandfolder Image
Add detailed forecast data reference

Завершенный рабочий процесс

Рабочий процесс запускается каждый раз, когда вы добавляете новую строку (вниз по левой или правой ветви перекрестка). Он также запускается в любое время сегодня, дата установлена в существующей строке. Столбец «Прогноз погоды» на листе автоматически заполняется, если рабочий процесс идет вниз по левой ветви перекрестка или если установлен флажок «Сегодня».