コンテンツにスキップ

context.Redirect

概要

サーバスクリプトでブラウザにページ遷移を実行させます。

制限事項

  1. 「画面表示の前」の条件のみ使用できます。

構文

context.Redirect(url);

パラメータ

パラメータ 型 必須 概要
url string ○ URL

戻り値

戻り値はありません。

使用例

下記の例のサーバスクリプトが実行されるとブラウザが指定のページに遷移します。

JavaScript
context.Redirect('http://www.example.com/');

サンプルコード

Note

コード内の【 ... 】は適宜修正してください。

1. 作り直した旧テーブルを開いた人を、新しいテーブルへ移す

年度替わりなどで申請のテーブルを作り直したあと、旧テーブルを開いた人を、新しいテーブルの一覧へ移します。過去の申請を調べる担当のグループのメンバーは、旧テーブルをそのまま開けます。

実務での使いどころ

古いブックマークや、メール・Wikiに残ったリンクから旧テーブルを開き、そのまま入力してしまう事故を防げます。旧テーブルのアクセス権を外すと「権限がありません」が出るのみで、新しいテーブルへは案内されません。テーブルを開いたときに別のURLへ移す設定は、テーブルの管理にはありません。

事前準備

1:旧テーブルを開けるままにする人のグループを作成してください。

2:新しいテーブルの一覧を開き、アドレスバーのURLを控えます。

3:旧テーブルにスクリプトを登録します。

3-1:「テーブルの管理 > サーバスクリプト」タブで「新規作成」を選択する。
 3-2:タイトル: 任意の名前(例:redirectToNewTable)
 3-3:スクリプト: 下記サンプルコードを貼り付け、【 】を2のURLと1のグループのIDにする
 3-4:条件: 「画面表示の前」にチェック

JavaScript
// 移った先の、新しいテーブルの一覧のURL(新しいテーブルを開いて、アドレスバーから写す)
const NEW_TABLE_URL = '【新しいテーブルの一覧のURL】';
// 旧テーブルを開けるままにするグループのID(過去の申請を調べる担当など)
const KEEP_GROUP_ID = 【旧テーブルを開けるグループのID】;

// 旧テーブルの一覧・レコード・新規作成の画面を開いたとき、グループのメンバー以外は
// 新しいテーブルの一覧へ移す(テーブルの管理の画面では動かないため、設定は直せる)
if (!Array.from(context.Groups).includes(KEEP_GROUP_ID)) {
    context.Redirect(NEW_TABLE_URL);
}

注記

  • 一覧・レコードの編集・新規作成・カレンダーなどの画面を開いたときに移ります。テーブルの管理の画面では動かないため、移したあとでもスクリプトを直せます。
  • APIでの取得・更新は、このスクリプトの対象外です。
  • 旧テーブルのレコードの画面を開いた場合も、新しいテーブルの一覧へ移ります(対応するレコードへは移りません)。
2. 重複登録を統合した顧客を開いた人を、統合先の顧客へ移す

同じ顧客を2件登録してしまい1件にまとめたとき、残しておく旧レコードに統合先の顧客のIDを入れておきます。旧レコードを開いた人を、統合先の顧客のレコードへ移します。

実務での使いどころ

顧客台帳・取引先マスタで重複登録を見つけたとき、旧レコードを消すと、ほかのテーブルからのリンクやメールに残ったURLが開けなくなります。旧レコードを残したまま統合先へ移せば、リンクを張り替えるまでのあいだも、利用者は正しいレコードにたどり着けます。

事前準備

1:「顧客台帳」テーブル(記録テーブル)で、以下の項目を有効化してください。

項目コード 内容
分類B(ClassB) 統合先。統合先の顧客のIDを入れる

2:スクリプトを登録します。

2-1:「テーブルの管理 > サーバスクリプト」タブで「新規作成」を選択する。
 2-2:タイトル: 任意の名前(例:redirectMergedRecord)
 2-3:スクリプト: 下記サンプルコードを貼り付け
 2-4:条件: 「画面表示の前」にチェック

JavaScript

条件:画面表示の前

1
2
3
4
5
6
7
8
9
// 統合先の顧客のIDを入れる項目(選択肢一覧は設定しない)
const MERGED_TO_COLUMN = 'ClassB';

// 重複登録を統合して「統合先」を入れた顧客を開いたとき、統合先の顧客へ移す。
// URL の末尾に ?stay=1 を付けて開くと移さない(統合を取り消すときなど)
const mergedTo = Number(model[MERGED_TO_COLUMN]);
if (mergedTo && mergedTo !== model.ResultId && context.QueryStrings.Data('stay') !== '1') {
    context.Redirect(`${context.ApplicationPath}items/${mergedTo}?mergedFrom=${model.ResultId}`);
}

注記

  • 旧レコードの統合先を直すときや、統合を取り消すときは、URLの末尾に?stay=1を付けて旧レコードを開いてください。
  • 移った先のURLには?mergedFrom=旧レコードのIDが付きます。
  • 統合先にこのテーブルへのリンク(選択肢一覧に、このテーブルのサイトID)を設定すると、統合先の名前が表示されません。IDを入れる分類項目にしてください。

対応バージョン

対応バージョン 内容
1.3.13.0 以降 機能追加

関連情報