共通
はじめに
% 形式の文字列書式
ブロックのプロパティによっては、「%Y/%m/%d %H:%M:%S」のような % 形式の文字列書式が記述できます。この書式は、そのブロックが処理されるときに、所定の日時に変換されます。
変換される日時は、フローの実行が定期実行か手動実行で異なります。
- 定期実行されるフローの場合は、「フローの開始」ブロックの「開始時間」プロパティの値です。
- 手動実行されるフローの場合は、フローの手動実行を MAGELLAN BLOCKS が受け付けた日時です。
例えば、「Slack通知ブロック」の「通知メッセージ」プロパティに、以下のように記述されているとします。
処理日時: %Y/%m/%d %H:%M:%S
また、このブロックを含むフローが、毎時 0 分に定期実行されるように「開始時間」プロパティで「0 * * * *」と指定されているとします。
このとき、フローが 2016/4/13 11:01:23 に実行された場合、以下のように変換されます。定期実行の場合は、実際に実行された日時ではないことに注意してください。
処理日時: 2016/04/13 11:00:00
info_outline 11:01:23 に実行されたということは、11:00:00 に実行するようにスケジューリングされたものが実行されたため。
書式一覧
使用できる % 形式の文字列書式は次のとおりです。
書式 | 説明 |
---|---|
%% | % を表します。例えば、%%c は %c と表示され、日時に変換されません。 |
%a | 曜日の省略名を表します。例: Wed |
%A | 曜日の完全名を表します。例: Wednesday |
%b | 月の省略名を表します。例: Apr |
%B | 月の完全名を表します。例: April |
%c | 日付・時刻を表します。例: Wed Apr 13 11:03:47 |
%C | 世紀 (西暦年の上 2 桁) を表します。例: 20 |
%d | 月内通算日 (01-31) を表します。1 桁の場合は、十の位は 0 となります。例: 09 |
%D | %m/%d/%y と指定した場合と同じになります。例: 04/13/16 |
%e | 月内通算日 (1-31) を表します。例: 13 |
%F | %Y-%m-%d と指定した場合と同じになります。例: 2016-04-13 |
%g | ISO 8601 週単位の表記年の下 2 桁 (00-99) を表します。基本的には、%y と同様ですが、ISO 週数が前年や翌年になる場合にはその年が使用されます。例: 16 |
%G | %g と同様ですが、4 桁の西暦年を表します。また、%Y と同様ですが、ISO 週数が前年や翌年になる場合にはその年が使用されます。例: 2016 |
%h | %b と同様です。例: Apr |
%H | 24 時間表記の時 (00-23) を表します。1 桁の場合は、十の位は 0 となります。例: 09 |
%I | 12 時間表記の時 (00-12) を表します。1 桁の場合は、十の位は 0 となります。例: 09 |
%j | 年の初めからの通算の日数 (001-366) を表します。例: 104 |
%k | 24 時間表記での時 (0-23) を表します。例: 9 |
%l | 12 時間表記での時 (0-12) を表します。例: 9 |
%m | 月 (01-12) を表します。1 桁の場合は、十の位は 0 となります。例: 04 |
%M | 分 (00-59) を表します。1 桁の場合は、十の位は 0 となります。例: 03 |
%n | 改行を表します。 |
%p | 午前と午後を AM と PM で表します。なお、正午は PM、真夜中は AM となります。例: AM |
%r | 午前・午後形式での時刻を表します。例: 11:03:47 AM |
%R | 24 時間表記の時刻を表します。ただし、秒は表示しません。例: 11:03 |
%s | 紀元 (協定世界時 (UTC) 1970 年 1 月 1 日 午前 0 時 0 分 0 秒) からの秒数を表します。例: 1460513027 |
%S | 秒 (00-60) を表します。1 桁の場合は、十の位は 0 となります。例: 47 |
%t | タブ文字を表します。 |
%T | 24 時間表記の時刻を表します。例: 11:03:47 |
%u | 曜日を数字 (1-7) で表します。月 = 1, 火 = 2, 水 = 3, 木 = 4, 金 = 5, 土 = 6, 日 = 7 |
%U | 週番号 (00-53) を表します。その年の最初の日曜日を第 1 週の始まりとして計算します。例: 15 |
%V | ISO 8601 形式の週番号 (01-53) を表します。その年の 4 日以上ある最初の週を 1 として計算します。例: 15 |
%w | 曜日を数字 (0-6) で表します。日 = 0, 月 = 1, 火 = 2, 水 = 3, 木 = 4, 金 = 5, 土 = 6 |
%W | 週番号 (00-53) を表します。その年の最初の月曜日を第 1 週の始まりとして計算します。例: 15 |
%x | 日付を表します。例: 04/13/16 |
%X | 時刻を表します。例: 11:03:47 |
%y | 西暦の下 2 桁 (00-99) を表します。例: 16 |
%Y | 西暦年を表します。例: 2016 |
%z | +hhmm/-hhmm 形式のタイムゾーンを表します。例: +0900 |
%Z | タイムゾーン名または省略名を表します。例: JST |
使用可能なプロパティ
この % 形式の文字列書式が指定できるカ所は次のとおりです。
カテゴリ | ブロック | プロパティ |
---|---|---|
基本 | Slack通知 | チャンネル |
Slack表示名 | ||
アイコン | ||
通知メッセージ | ||
API | HTTP GET | クエリーパラメーターのバリュー |
HTTP POST | クエリーパラメーターのバリュー | |
HTTP PUT | クエリーパラメーターのバリュー | |
HTTP DELETE | クエリーパラメーターのバリュー | |
BigQuery | GCSから単一テーブルへロード | 投入先のデータセット |
投入先のテーブル | ||
変数からテーブルへロード | 投入先のデータセット | |
投入先のテーブル | ||
GCSから複数テーブルへロード | 投入データのファイル群GCS URL | |
投入先のデータセット | ||
投入先のテーブル | ||
ファイルの存在チェックURL | ||
単一テーブルからGCSへエクスポート | 出力先ファイルのGCS URL | |
出力元のデータセット | ||
出力元のテーブル | ||
複数テーブルからGCSへエクスポート |
出力ファイル群のGCS URL | |
出力先ファイルの拡張子 | ||
出力元のデータセット | ||
出力元のテーブル | ||
クエリーの実行 | クエリー | |
結果格納先のデータセット | ||
結果格納先のテーブル | ||
クエリーの並列実行 |
クエリー | |
結果格納先のデータセット | ||
結果格納先のテーブル | ||
カラム値毎のテーブル分割 | 分割元のデータセット | |
分割元のテーブル | ||
分割したテーブルのデータセット | ||
分割したテーブルのテーブル名 | ||
ビューの作成 | 結果格納先のデータセット | |
結果格納先のテーブル | ||
ストリームインサート | 投入先のデータセット | |
投入先のテーブル | ||
テーブル削除 | 削除対象のテーブルを保持するデータセット | |
削除対象のテーブル | ||
機械学習 | 画像解析 | 画像のGCS上のURL |
音声認識 | 音声データのGCS上のURL | |
GCP | GCE の VM インスタンスを起動 | ゾーン |
VM インスタンス | ||
GCE の VM インスタンスを停止 | ゾーン | |
VM インスタンス |
フロー実行内変数
フローには、「変数」機能があります。変数とは、フローの実行中に文字列や整数などのデータを格納・参照できる記憶領域のことで、固有の名称で識別できます。
この変数には、「フロー間共通変数」と「フロー実行内変数」の 2 種類があります。ここでは、フロー実行内変数について解説します。
フロー実行内変数には、以下の特徴があります。
- 複数持つことができ、それぞれに名前を付けて区別します。名称のルールは以下のとおりです。
- 名称に使える文字は、英大文字・英小文字・数字・_(アンダースコアー)です。
- 数字のみの変数名は使用できません。
- _ で始まる名称は、BLOCKS が定義するフロー実行内変数として使います。現在、以下のフロー実行内変数が定義されています(今後も追加予定)。
フロー実行内変数 説明 _flow_aliases フローの ID が格納されています。
_flow_id フローごとに自動採番された番号が格納されています。
_flow_name [フローの開始]ブロックのブロック名が格納されています。
_board_url フローデザイナーの URL が格納されています。
[例]https://*****.magellanic-clouds.net/ のような URL です。
_board_id フローデザイナー URL のサブドメインが格納されています。
[例]https://*****.magellanic-clouds.net/ の ***** 部分です。
_execute_user_id フローを実行したユーザーの ID が格納されています。
_execute_user_name フローを実行したユーザーの名前が格納されています。
info_outline _ 始まりの名称でフロー実行内変数を命名すると、今後追加される BLOCKS 定義のフロー実行内変数と重複する可能性があります。名称が重複した場合、予期しない動作となる可能性があるため、_ 始まりの名称で命名しないことをおすすめします。
また、FOO_BAR のようなすべて大文字の名称は、フロー間共通変数での命名を推奨しているため、すべて大文字の名称で命名しないこともおすすめします。
- フローの実行中にのみ有効です。
- ブロックの入力や出力に使えます。

変数展開
ブロックのプロパティの一部では、「変数展開」機能が使えます。
「変数展開」とは、ブロックのプロパティの値の全部または一部を変数の内容で置き換えることです。
変数展開の書き方は、以下のとおりです。
${変数}
${
と }
の間に変数を記述すると、ブロックが処理されるときに、その変数が参照する内容に置き換わります。
たとえば、「クエリーの実行」ブロックの「結果格納先のテーブル」プロパティに、${table_name}
と設定します。

この「クエリーの実行」ブロックを実行したときに、変数 table_name
の内容が samples だった場合、「結果格納先のテーブル」プロパティの値は、samples となります。

この変数展開が使えるプロパティは、「% 形式の文字列書式」が使えるプロパティと同じです。
配列やオブジェクトデータの一部取得
変数に格納されたデータが配列やオブジェクトの場合は、そのデータの一部を取得できます。
配列とは、複数の値を連続して並べて、それをひとまとまりのデータとして表現したものです(下図参照)。変数に配列が格納されている場合は、インデックスを指定した値の取得ができます。インデックスは、値が先頭から何番目にあるのかという位置を示します(先頭の値は 0 番目)。

オブジェクトとは、キーと値のペアを基本とし、このペアの集合をひとまとまりのデータとして表現したものです(下図参照)。変数にオブジェクトが格納されている場合は、キーを指定した値の取得ができます。

info_outline BLOCKS では、「オブジェクト生成」ブロックを使ってオブジェクトが作成できます。また、BLOCKS のブロックでよく取り扱う JSON のオブジェクト値もこれと同義です。
書式
- <配列の場合>
- 変数.インデックス
- <オブジェクトの場合>
- 変数.キー
info_outline 変数が _ の場合は、変数を省略した .インデックス
および .キー
という書き方もできます。
変数 y に下図の配列が格納されている場合は、y.1
は ”API” を取得します。

変数 x に下図のオブジェクトが格納されている場合は、x.name
(キー "name" の " は外す)は ”John Smith” を取得します。

オブジェクトの中にオブジェクトがあるとか、オブジェクトの中に配列があるようにオブジェクトと配列が入れ子になっている場合は、変数.キー.キー
や 変数.キー.インデックス
などのように .
(ピリオド)をつないで、入れ子になった中の値も取得できます。
変数 x に上図のオブジェクトが格納されている場合は、x.languages.0
は、”English” を取得します。
info_outline この記法は、${x.name}
や ${y.1}
などのように、変数展開でも使用できます。