【アップデート情報】ver.2.20(2022年6月29日実施)
2022年05月24日
2022年06月29日実施のver.2.20アップデートに関する主な内容は以下になります。
新機能
【サイト】
サイトファイル
サイト管理画面において、サイトのページやブロック上で使用する画像、PDF、CSSなどのファイルをアップロード、一元管理できるようになります。
これにより、ページやブロック上にロゴなどの画像表示、サイト内のページにPDFファイルのリンク挿入、CSSやJSファイルをサイトへ適用などに活用できるようになります。
なお、サイトファイルにアップロードしているファイルは、ファイルストレージ容量の対象に含まれます。
※今後は、DBのレコードに紐づくファイルストレージ容量とサイトファイルに紐づくファイルストレージ容量の合計容量が、アカウントにおけるファイルストレージ容量となります。
詳細はサイトファイルを参照ください。
機能改善
【アプリ>DB】
DBフィールド構成画面改善
アプリ管理画面のDB作成/編集でフィールド設定をする際に、他DBのフィールド設定をコピー※できるようになります。
これにより、既存DBを複製したい場合やキャンペーンフォームの個人情報取得フィールド一式のみ転用するなど、
効率的にDB作成/編集ができるようになります。これに併せて、フィールド編集の操作感についても改善します。
※設定権限が付与されているアプリ内のDBフィールドのみコピー可能。
詳細はDB機能を参照ください。
DBトリガ(メールアクション)拡張
- 配信ログ追加
DBトリガのメールアクションにおいて、メールアクションの配信ログ情報を確認できるようになります。
- 参照フィールド対応
DBトリガのメールアクションにおいて、宛先や配信の抽出条件、差替えキーワードに参照フィールドが追加されるようになりました。
これにより、顧客情報や問い合わせ状況に応じて、参照フィールドでデータ連携している顧客情報内のメールアドレス宛に配信、
本文内に顧客情報を差替え表示することができるようになります。
レコード一括出力拡張
- 検索結果の出力対応
アプリ利用画面のレコード一括出力において、検索条件に一致したレコードのみ一括出力を追加します。
これまでは、DB内に登録されているレコードすべてを出力する仕様のみ提供しておりましたが、
今後は、DB内に登録されているレコードの内、必要なレコード情報のみを抽出して出力できるようになります。
- 任意フィールドの指定
アプリ利用画面のレコード一括出力において、指定したフィールドのみ一括出力ができるようになります。
これまでは、DB内に設定しているフィールドすべてを出力する仕様でしたが、今後は、指定したフィールドに絞って一括出力することができるようになります。
- 日時型フィールドのタイムゾーン指定
アプリ利用画面のレコード一括出力において、日時型フィールドなどの表示される時間を、希望するタイムゾーンで表示できるようになります。
【サイト>ブロック】
フォームブロックのメールアクション拡張(本番環境のメールアクション手動配信対応)
登録、更新、削除、パスワード再登録フォームブロックのメールアクションにおいて、サイト管理の本番環境上にあるメールアクションから
指定したメールアドレスに対して手動配信することができるようになります。
これにより、運用中のWeb申込フォームの申込完了メールやセミナー申込フォームの受講票通知メールの再送などにご利用いただけます。
詳細はフォームのメールアクションを参照ください。
レコードリストブロック拡張(テキストエリア表示文字数拡張)
レコードリストブロックで使用しているテキストエリアフィールド内の表示文字数を最大200文字から最大4,000文字まで表示できるようにいたします。
レコードリストブロック/レコードアイテムブロック拡張(日時型フィールドのタイムゾーン指定対応)
レコードリストブロック、レコードアイテムブロックで使用している日時型フィールドなどで表示される時間を、希望するタイムゾーンで表示できるようになります。
ブロック作成時のCSS横幅指定統一
これまでは、ブロックによって横幅指定の有り無しが存在したり、ブロックごとに固有のCSSの横幅が指定されているなど、ブロック全体の横幅が統一されていないため、
今後は、デザイン統一の観点で、新規ブロック作成時のデフォルトの横幅は100%指定で発行するよう改善いたします。
【PHP】
PHP拡張
- フォームブロック完了ステップ表示時のレコード情報取得対応
フォームブロックの完了ステップ表示時にDB内のレコードIDやレコード情報を取得することができるようになります。
これにより、SPIRAL ver.2と外部システムとの外部連携を設定する際、SPIRAL ver.2内のレコードIDやレコード情報を取得、
外部システムへ送信するプログラム処理が可能となります。
- フォームブロック表示時のステップ情報取得対応
ページ表示時に表示されるフォームブロックの初期ステップのステップ情報を取得できるようにいたします。
これまでは、ステップの画面を遷移する際にステップ情報を取得、各ステップ上でPHPが実行される仕様でしたが、
初期表示されるステップが締切やエラーステップの場合、ページのPHPにて、締切やエラーページが表示されたかどうか判別するPHPを設定しても
PHPが実行されることができませんでした。今後は、ページ表示時に表示されるフォームブロックのステップ情報を取得できるようにすることで、
フォームブロックの締切ステップやエラーステップ表示時に実行するPHPプログラムの処理が実行できるようになります。
【アカウント管理>上限管理】
アプリ上限追加
アカウント管理の上限管理からアカウント内で作成できるアプリ数の上限数を変更できるようになります。
※プラン提供内容を超える場合は、ユーザ/ライトユーザ、APIエージェント、サイトと同様に、追加利用料が発生します。
仕様変更
【メール配信】
メール配信失敗時のエラーコード変更
従来は、宛先のメールアドレスフィールドが存在しない、whereの抽出条件不備、スケジュールトリガの実行日時の抽出条件不備、
メール件名、本文の差替えキーワードの不備、クリックログインページが本番環境へリリースされていないなど、ユーザの操作画面における設定不備による配信失敗について、
S302などのサービス起因の配信失敗として扱われていたため、今後は、U107などのユーザ起因の配信失敗として扱う仕様に変更いたします。
※ユーザ起因の配信失敗が発生した場合、メールアクションのステータス「有効」から「停止中」に切り替わりますのでご注意ください。
【サイト>ブロック】
フィールドのname属性の機能拡張に伴うデフォルトソース変更
フォームブロックのフィールドのname属性において、サービス固有のname属性のみ提供していましたが、
今後は、フィールドごとにname属性をDBのフィールド識別名など任意の値を指定できるように機能拡張するため、各フィールドのデフォルトソースの仕様を変更いたします。
各フィールドのデフォルトソースの差分については以下を参照ください。
デフォルトソース変更差分詳細
※各フィールドタイプの前後のdivタグなど、一部ソースは省略して記載しています。
▼テキスト、テキストエリア、セレクト、マルチセレクト、整数、数値
【変更前】
<input type="XXXX" name="f0X">
【変更後】
<input type="XXXX" th:name="${fields['f0X'].name}">
▼メールアドレス
【変更前】
<input type="email" name="f0X"> <input type="email" name="f0X:reenter">
【変更後】
<input type="email" th:name="${fields['f0X'].name}"> <input type="email" th:name="${fields['f0X:reenter'].name}">
▼電話番号
【変更前】
<select name="f0X:countryCode"></select> <input type="tel" name="f0X">
【変更後】
<select th:name="${fields['f0X:countryCode'].name}"></select> <input type="tel" th:name="${fields['f0X'].name}">
▼日時
【変更前】
<input type="number" name="f0X:year"> <input type="number" name="f0X:month"> <input type="number" name="f0X:day"> <input type="number" name="f0X:hour"> <input type="number" name="f0X:minute"> <input type="number" name="f0X:second"> <select name="f0X:tz"></select>
【変更後】
<input type="number" th:name="${fields['f0X:year'].name}"> <input type="number" th:name="${fields['f0X:month'].name}"> <input type="number" th:name="${fields['f0X:day'].name}"> <input type="number" th:name="${fields['f0X:hour'].name}"> <input type="number" th:name="${fields['f0X:minute'].name}"> <input type="number" th:name="${fields['f0X:second'].name}"> <select th:name="${fields['f0X:tz'].name}"></select>
▼日付
【変更前】
<input type="number" name="f0X:year"> <input type="number" name="f0X:month"> <input type="number" name="f0X:day">
【変更後】
<input type="number" th:name="${fields['f0X:year'].name}"> <input type="number" th:name="${fields['f0X:month'].name}"> <input type="number" th:name="${fields['f0X:day'].name}">
▼月日
【変更前】
<input type="number" name="f0X:month"> <input type="number" name="f0X:day">
【変更後】
<input type="number" th:name="${fields['f0X:month'].name}"> <input type="number" th:name="${fields['f0X:day'].name}">
▼時刻
【変更前】
<input type="number" name="f0X:hour"> <input type="number" name="f0X:minute"> <input type="number" name="f0X:second">
【変更後】
<input type="number" th:name="${fields['f0X:hour'].name}"> <input type="number" th:name="${fields['f0X:minute'].name}"> <input type="number" th:name="${fields['f0X:second'].name}">
▼ファイル>更新フォーム
【変更前】
<input type="hidden" name="f0X">
【変更後】
<input type="hidden" th:name="${fields['f0X'].name}">
▼パスワード
【変更前】
<input type="password" name="f0X"> <input type="password" name="f0X:reenter">
【変更後】
<input type="password" th:name="${fields['f0X'].name}"> <input type="password" th:name="${fields['f0X:reenter'].name}">
※2.19以前に設定されたソースについては、引き続き利用可能です。
※2.19以前のフォームブロック(ソース設定)でフィールドのname属性を変更したい場合、入力ステップの該当フィールドのソースも修正する必要があります。
詳細はこちらをご参照ください。
フォームの日時系フィールドの入力コントロール拡張に伴うデフォルトソース変更
登録、更新フォームブロックにおいて、日時、日付、月日、時刻フィールドの入力コントロールを拡張いたします。
従来は、[年][月][日][時][分][秒]をすべて分割して入力する入力コントロールのみ提供していましたが、
JSなどでカレンダーから日付を選択する入力支援の実装が扱いにくい仕様となっていることから
JSなどのライブラリで扱いやすくするために、[年月日][月日][時分秒]など単一入力の入力コントロールも扱えるように拡張いたします。
【変更前】
対象フィールド | 入力コントロール |
---|---|
日時フィールド | [年][月][日][時][分][秒][TZ] |
日付フィールド | [年][月][日] |
月日フィールド | [月][日] |
時刻フィールド | [時][分][秒] |
【変更後】
対象フィールド | 入力コントロール |
---|---|
日時フィールド | [年][月][日][時][分][秒][TZ] |
[年月日][時分秒][TZ] | |
日付フィールド | [年][月][日] |
[年月日] | |
月日フィールド | [月][日] |
[月日] | |
時刻フィールド | [時][分][秒] |
[時分秒] |
また、入力ステップ上で扱える入力コントロールが増えるため、2.19以前のフォームブロック(ソース設定)の入力ステップに[年月日][月日][時分秒]など、
単一入力の入力コントロールを使用する場合、従来の確認ステップのデフォルトソースではフィールド値を表示することができないため、
今後は、どの入力コントロールを使用しても確認ステップ上でフィールド値を表示できるデフォルトソースへ仕様変更いたします。
デフォルトソース変更差分詳細
【変更前】
▼確認ステップ上のソースコード
<!-- [年月日]で2000/1/1と入力 --> <span th:text="${inputs['f01']}">Example</span> <!-- [年月日]で2000-01-01と入力 --> <span th:text="${inputs['f02']}">Example</span> <!-- [年][月][日]で年を2000, 月を1、日を1と入力 --> <span th:text="|${inputs['f03:year']}/${inputs['f03:month']}/${inputs['f03:day']}|">Example</span>
▼表示される値
2000/1/1 2000-01-01 2000/1/1
【変更後】
<!-- [年月日]で2000/1/1と入力 --> <span th:text="${values['f01']?.format('uuuu/M/d')}">Example</span> <!-- [年月日]で2000-01-01と入力 --> <span th:text="${values['f02']?.format('uuuu/M/d')}">Example</span> <!-- [年][月][日]で年を2000, 月を1、日を1と入力 --> <span th:text="${values['f03']?.format('uuuu/M/d')}">Example</span>
▼表示される値
2000/1/1 2000/1/1 2000/1/1
なお、確認ステップ上のフィールド値を表示するデフォルトソースを変更するため、仕様統一の観点で、
テキストやテキストエリアなどのその他フィールドのデフォルトソースも合わせて変更いたします。
デフォルトソース変更差分詳細
※各フィールドタイプの前後のdivタグなど、一部ソースは省略して記載しています。
※日時、日付、月日、時刻フィールドの場合、入力コントロールのフォーマットに紐づく内容のデフォルトソースが生成されます。
▼テキスト、メールアドレス、整数、数値
【変更前】
<span class="sp-form-embedded" th:text="${inputs['f0X']}">Example</span>
【変更後】
<span class="sp-form-embedded" th:text="${values['f0X']}">Example</span>
▼テキストエリア
【変更前】
<span class="sp-form-embedded" th:if="${inputs['f0X']} != null">
<th:block th:each="str, stat : ${inputs['f0X'].split('\r\n|\r|\n', -1)}">
<th:block th:text="${str}"></th:block>
<br th:unless="${stat.last}">
</th:block>
</span>
【変更後】
<span class="sp-form-embedded">
<th:block th:each="str, stat : ${values['f0X']?.lines}">
<th:block th:text="${str}"></th:block>
<br th:unless="${stat.last}">
</th:block>
</span>
▼日時
【変更前】
<span class="sp-form-embedded" th:text="${values['f0X'] == null} ? '' : |${inputs['f0X:year']}/${inputs['f0X:month']}/${inputs['f0X:day']} ${inputs['f0X:hour']}:${inputs['f0X:minute']}:${inputs['f0X:second']}|">2000/01/01 12:00:00</span>
【変更後】
単一入力の場合 <span class="sp-form-embedded" th:text="${values['f0X']?.local}">2000/01/01 12:00:00</span> 分割入力の場合 <span class="sp-form-embedded" th:text="${values['f0X']?.format('uuuu/MM/dd HH:mm:ss')}">2000/01/01 12:00:00</span>
▼日付
【変更前】
<span class="sp-form-embedded" th:text="${values['f0X'] == null} ? '' : |${inputs['f0X:year']}/${inputs['f0X:month']}/${inputs['f0X:day']}|">2000/01/01</span>
【変更後】
単一入力の場合 <span class="sp-form-embedded" th:text="${values['f0X']}">2000/01/01</span> 分割入力の場合 <span class="sp-form-embedded" th:text="${values['f0X']?.format('uuuu/MM/dd')}">2000/01/01</span>
▼月日
【変更前】
<span class="sp-form-embedded" th:text="${values['f0X'] == null} ? '' : |${inputs['f0X:month']}/${inputs['f0X:day']}|">01/01</span>
【変更後】
単一入力の場合 <span class="sp-form-embedded" th:text="${values['f0X']}">01/01</span> 分割入力の場合 <span class="sp-form-embedded" th:text="${values['f0X']?.format('MM/dd')}">01/01</span>
▼時刻
【変更前】
<span class="sp-form-embedded" th:text="${values['f0X'] == null} ? '' : |${inputs['f0X:hour']}:${inputs['f0X:minute']}:${inputs['f0X:second']}|">12:00:00</span>
【変更後】
単一入力の場合 <span class="sp-form-embedded" th:text="${values['f0X']}">12:00:00</span> 分割入力の場合 <span class="sp-form-embedded" th:text="${values['f0X']?.format('HH:mm:ss')}">12:00:00</span>
▼セレクト
【変更前】
<span class="sp-form-embedded" th:each="option : ${fields['f0X'].options}" th:if="${inputs['f0X'] == #strings.toString(option.id)}" th:text="${option.label}">Item</span>
【変更後】
<span class="sp-form-embedded" th:text="${values['f0X']?.label}">Item</span>
▼マルチセレクト
【変更前】
<span class="sp-form-embedded" th:each="option : ${fields['f0X'].options}" th:if="${inputs['f0X'] != null ? #lists.contains(inputs['f0X'], #strings.toString(option.id)) : false}" th:text="${option.label}">Item</span>
【変更後】
<span class="sp-form-embedded" th:each="inputValue : ${values['f0X']}" th:text="${inputValue.label}">Item</span>
▼電話番号
【変更前】
<span class="sp-form-embedded" th:text="${inputs['f0X']}">+81 03-1234-5678</span>
【変更後】
<span class="sp-form-embedded" th:text="${values['f0X']?.nationalNumber}">+81 03-1234-5678</span>
▼ファイル
【変更前】
<span class="sp-form-embedded" name="file-field-f0X" th:text="${inputs['f0X']}">Example</span>
【変更後】
<span class="sp-form-embedded" name="file-field-f0X" th:text="${values['f0X']}">Example</span>
▼パスワード
【変更前】
<span class="sp-form-embedded" th:text="${#strings.repeat('*', inputs['f0X']?.length() ?: 0)}">********</span>
【変更後】
<span class="sp-form-embedded" th:text="${values['f0X']?.mask()}">********</span>
※今後、フォームブロック内でフィールド追加する際は、変更後の内容でソース追加されます。
2.19以前のフォームブロック(ソース設定)で、単一入力の入力コントロールの日時系フィールドを追加する場合、確認ステップ上のソースを修正する必要があります。
詳細はこちらをご参照ください。
※2.19以前の従来のフォーマットで設定しているソースについては引き続き利用することは可能です。
また、フォームブロック(ビジュアル設定)については影響ありません。
【操作画面】
レコードファイルのファイルアップロードの並列処理制限
操作画面でユーザがファイルをアップロードする際の並列アップロード数について、
従来では並列数について制限が入っておりませんでしたが、サービスの安定提供を目的に、
今後はアカウント内で並列3ユーザのアップロードまでに制限するようにし、それ以上のリクエストがあった際、エラーを表示するようにいたします。
※ファイルダウンロードの並列処理制限については、今後のアップデートで順次対応予定です。
本件はアップデート対象から除外しました。(2022/06/29追記)
不具合修正
アプリ管理
・スケジュールトリガにおいて、実行タイミング(指定日)で指定する年月日のフォーマットは「yyyy/mm/dd」ですが、フォーマットエラーで表示される内容が、「yyyy-mm-dd」で表示されてしまう不具合を修正します。
・DBトリガの非同期アクション(メールアクション)において、ステータスが「停止中」となっているメールアクションを削除できない不具合を修正いたします。
・スケジュールトリガのメールアクションにおいて、宛先フィールドに参照先DBのメールアドレスを指定するメールアクションをユーザが設定する際、アプリ利用権限が無いとメールアクションの設定を保存できない不具合を修正いたします。
サイト管理
・フォームブロックにおいて、ページリンク追加のサイト内ページ選択からページを選択する際、ページ数が多いとスクロールできない不具合を修正いたします。
・認証エリアにおいて、本番環境で設定されている認証エリアの設定内容を確認しようとクリックすると、テスト環境で設定されている認証エリアの設定画面へ画面遷移してしまう不具合を修正いたします。
・ページにおいて、1ページ内に複数のフォームブロックを使用、フォーム内に入力必須フィールドが含まれている場合、ブラウザバックで確認ステップから入力ステップへ戻り、再度、入力ステップから確認ステップへ画面遷移するとエラーステップの画面が表示されてしまう不具合を修正いたします。
API
・DBの設定を変更するAPIにおいて、パスワードフィールドの最大文字数128文字を超える文字数で設定できてしまう不具合を修正いたします。
その他
・ユーザ招待メールや一斉配信/メールアクションのエラー通知メールなどで配信される件名において、一部のメール件名が【SPIRALver.2】という表記になっている不具合を修正いたします。今後は、【SPIRAL ver.2】で統一いたします。