コンテンツにスキップ

ビルトイン関数

アクションには最初から用意されている関数があります。これをビルトイン関数と呼びます。 ビルトイン関数はオブジェクト$fnのメソッドに該当し$fn.XXXの形式で呼び出すことができます。

Tips

$fn.addUsers(param)

アプリケーションの認可グループにユーザを追加します。[非同期]

Tips

引数

名前説明
paramobjectグループ名と追加するユーザ情報

param詳細

プロパティ説明
groupNamestringグループ名
emailsarray of stringグループに加えるユーザのメールアドレス配列

戻り値

なし

サンプル

try {
/* CSV の内容
* ---------------------------
* "email"
* "user01@test.co.jp"
* "user02@test.co.jp"
* ---------------------------
*/
const file = await $fn.getFile('/addUsers.csv');
const buffer = file.data;
const addUsers = $fn.csvToObject(buffer);
const emails = addUsers.map(function (item) {
return item['email'];
});
// 認可グループ「Group01」にユーザ追加
await $fn.addUsers({
groupName: "Group01",
emails: emails
});
}catch(err) {
console.log("Error", err);
}

$fn.createFolder(path)

指定パスにフォルダを作成します。[非同期]

Tips

引数

名前説明
pathstring作成するフォルダのパス

Tips

戻り値

なし

サンプル

try {
await $fn.createFolder('/folder1');
} catch (err) {
console.log("Error", err);
}

$fn.createGroup(param)

アプリケーションの認可グループを追加します。[非同期]

Tips

引数

名前説明
paramobject登録するグループ情報

param詳細

プロパティ説明
groupNamestringグループ名
descriptionstring詳細

戻り値

説明
Promise<Group>登録したグループ情報
オブジェクトプロパティ説明
GroupgroupNamestringグループ名
descriptionstring説明
membersobject arrayグループに所属するアクティブユーザ配列

Tips

サンプル

const groupName = $ui.groupName.value;
const description = $ui.description.value;
try {
await $fn.createGroup({
groupName: groupName,
description: description
});
} catch (err) {
console.log("Error", err);
}

$fn.createUser(param)

アプリケーションの認証ユーザを追加します。[非同期]

Tips

引数

名前説明
paramobject登録するユーザ情報

param詳細

プロパティ説明
emailstringEメール(サインインIDに使用する文字列)
namestring名前
passwordstring一時パスワード
sendMailbooleantrue:発行メール送信する
false:発行メール送信しない
デフォルトはfalse
custom_01stringカスタム属性1
custom_02stringカスタム属性2
custom_03stringカスタム属性3
custom_04stringカスタム属性4
custom_05stringカスタム属性5
custom_06stringカスタム属性6
custom_07stringカスタム属性7
custom_08stringカスタム属性8
custom_09stringカスタム属性9
custom_10stringカスタム属性10

Tips

戻り値

説明
Promise<User>登録したユーザ情報
オブジェクトプロパティ説明
UseruserIdstringユーザID (GUID)
emailstringEメール
namestring名前
custom_01stringカスタム属性1
custom_02stringカスタム属性2
custom_03stringカスタム属性3
custom_04stringカスタム属性4
custom_05stringカスタム属性5
custom_06stringカスタム属性6
custom_07stringカスタム属性7
custom_08stringカスタム属性8
custom_09stringカスタム属性9
custom_10stringカスタム属性10
enabledboolean有効/無効
createdstring作成日時
updatedstring更新日時
statusstringユーザのステータス

Tips

サンプル

try {
/* CSV の内容
* ------------------------------------------------------
* "email","name","password","sendMail"
* "user01@test.co.jp","User01","Password@01",true
* "user02@test.co.jp","User02","Password@02",false
* ------------------------------------------------------
*/
const file = await $fn.getFile('/userInfo.csv');
const buffer = file.data;
const userInfos = $fn.csvToObject(buffer);
for (let userInfo of userInfos) {
console.log(JSON.stringify(userInfo));
let data = {};
data = {
email: userInfo['email'],
name: userInfo['name'],
password: userInfo['password'],
sendMail: JSON.parse(userInfo['sendMail'])
};
// ユーザ追加
let result=await $fn.createUser(data);
if(result.errorType){
throw new Error (result.errorMessage);
}
}
} catch(err) {
console.log("Error", err.message);
}

$fn.csvToObject(csv)

指定したCSVファイルデータをオブジェクト形式に変換します。

引数

名前説明
csvBufferCSVファイルのBufferオブジェクト

CSVファイルの仕様

ヘッダ行必須
オブジェクトのプロパティ名になります。
半角英数字のみ可能です。 (数字開始は不可)
例)“email”, “name”
区切り文字,(カンマ)
フィールド値にダブルクォーテーション、カンマ、改行を含む場合は、必ず囲ってください。
改行コードCRLF または LF
文字コードUTF-8
BOMBOMなし または BOM付

戻り値

説明
array of objectCSVファイルデータをオブジェクト形式に変換して返却します

Tips

サンプル

try {
/* CSVの内容
* -------------------------------------------------------------------
* Id,Title,Description,Progress,Category,CreatedBy,CreatedAt
* 00001,タイトル1,"説明1, サンプル1",100,CATEGORY1,User1,2023-08-01
* 00002,タイトル2,"説明2, サンプル2",80,CATEGORY2,User2,2023-08-10
* 00003,タイトル3,"説明3, サンプル3",20,CATEGORY3,User3,2023-08-12
* -------------------------------------------------------------------
*/
const file = await $fn.getFile("/path/to/projects.csv");
const buffer = file.data;
// CSVファイルをパースし、オブジェクトへ変換
const projects = $fn.csvToObject(buffer);
// 1件ずつデータを登録
for (const project of projects) {
const { Id, Title, Description, Category, Progress, CreatedBy, CreatedAt } = project;
if (!Id) {
throw new Error("IDが入力されていません。");
}
const progress = Number(Progress);
if (isNaN(progress)) {
throw new Error("進捗率は数値で入力して下さい。");
}
/* SQL 関数の内容
* ------------------------------------------------------------------------------------
* insert into Project VALUES (${param.id},${param.title},${param.description},
* ${param.progress},${param.category},${param.createdBy},${param.createdAt});
* ------------------------------------------------------------------------------------
*/
// SQL関数でテーブルにデータを登録
await insertToProjectTable({
id: Id,
title: Title,
description: Description,
progress,
category: Category,
createdBy: CreatedBy,
createdAt: CreatedAt
});
}
} catch (e) {
console.error(e);
}

$fn.deleteFile(path)

指定パスにあるファイルを削除します。[非同期]

Tips

引数

名前説明
pathstring削除するファイルのパス

Tips

戻り値

なし

サンプル

try {
await $fn.deleteFile('/note.txt');
} catch (err) {
console.log("Error", err);
}

$fn.deleteFolder(path)

指定パスにあるフォルダを削除します。[非同期]

Tips

引数

名前説明
pathstring削除するフォルダのパス

Tips

戻り値

なし

サンプル

try {
await $fn.deleteFolder('/folder1');
} catch (err) {
console.log("Error", err);
}

$fn.deleteUser(email)

アプリケーションの認証ユーザを削除します。[非同期]

Tips

引数

名前説明
emailstring削除するユーザのEメール

戻り値

なし

Tips

サンプル

try {
/* CSV の内容
* ---------------------------
* "email"
* "user01@test.co.jp"
* "user02@test.co.jp"
* ---------------------------
*/
const file = await $fn.getFile('/userInfo.csv');
const buffer = file.data;
const userInfos = $fn.csvToObject(buffer);
const emails = userInfos.map(function (item) {
return item['email'];
});
// ユーザ削除
for (let email of emails) {
console.log(email);
await $fn.deleteUser(email);
}
} catch(err) {
console.log("Error", err);
}

$fn.download(file, filename)

指定したファイルをローカルにダウンロードします。ダウンロードするファイル名を指定することができます。 [非同期]

Tips

引数

名前説明
fileBufferダウンロードするファイルのBufferオブジェクト
filenamestringダウンロードするファイル名

戻り値

なし

サンプル

try {
const file = await $fn.getFile('/note.json');
const buffer = file.data;
// File Download
await $fn.download(buffer, 'download.json');
} catch (err) {
console.log("Error", err);
}

$fn.getCurrentPosition()

スマートフォン端末の現在位置を取得します。

Tips

引数

なし

戻り値

説明
GeolocationCoordinatesデバイスの位置情報

サンプル

const position = $fn.getCurrentPosition();
const latitude = position.latitude;
const longitude = position.longitude;

$fn.getCurrentUser()

サインインしているユーザを取得します。[非同期]

Tips

引数

なし

戻り値

説明
Userサインイン中のユーザを返却します
オブジェクトプロパティ説明
UseruserIdstringユーザID (GUID)
emailstringEメール
namestring名前
custom_01stringカスタム属性1
custom_02stringカスタム属性2
custom_03stringカスタム属性3
custom_04stringカスタム属性4
custom_05stringカスタム属性5
custom_06stringカスタム属性6
custom_07stringカスタム属性7
custom_08stringカスタム属性8
custom_09stringカスタム属性9
custom_10stringカスタム属性10
enabledboolean有効/無効
createdstring作成日時
updatedstring更新日時
statusstringユーザのステータス

サンプル

try {
const user = await $fn.getCurrentUser();
console.log(user);
} catch (err) {
console.log("Error", err);
}

$fn.getFile(path)

指定パスのファイルを取得します。[非同期]

Tips

引数

名前説明
pathstring取得するファイルのパス

Tips

戻り値

説明
Promise<{data: Buffer}>Amazon S3から取得するバイナリデータ(data:Buffer型)をプロパティに持つオブジェクト

Tips

サンプル

try {
const file = await $fn.getFile('/note.json');
const buffer = file.data;
// JSON object
const obj = JSON.parse(buffer.toString());
} catch (err) {
console.log("Error", err);
}

$fn.getFileNames(path)

指定ディレクトリパスにあるファイル名のリストを取得します。[非同期]

Tips

引数

名前説明
pathstring取得するディレクトリのパス

戻り値

説明
array of stringターゲットディレクトリ内のファイル名のリスト

サンプル

try {
const files = await $fn.getFileNames('/folder1');
} catch (err) {
console.log("Error", err);
}

$fn.getGroups(option)

ユーザマネージャに存在するすべてのグループを取得します。[非同期]

Tips

引数

名前説明
optionobjectグループに所属するユーザを含めるか指定

option詳細

名前説明
containUsersbooleantrue: グループに所属するユーザを含める
false: グループに所属するユーザを含めない
デフォルトはtrue

戻り値

説明
Promise<Group[]>グループリスト
オブジェクトプロパティ説明
GroupgroupNamestringグループ名
descriptionstring説明
membersobject arrayグループに所属するアクティブユーザ配列

サンプル

try {
// グループに所属するユーザを含めないグループ情報を取得
const groups = await $fn.getGroups({containUsers:false});
console.log(groups);
} catch (err) {
console.log("Error", err);
}

$fn.getLanguage()

現在表示している言語を取得します。

引数

なし

戻り値

説明
string[default | en | ja] のいずれかの値を返します

サンプル

const lang = $fn.getLanguage();

$fn.getPresignedUrl(path,options)

WebPerformerNXの実行環境にあるファイルマネージャに対してアクセスするための署名付きURLの発行します。[非同期]

Tips

引数

名前説明
pathstring
  • 署名付きURLを発行するファイルマネージャのファイルパス
  • 下記のクエリパラメータに対応
  • クエリパラメータ説明
    response-content-typeレスポンスヘッダのContent-typeを上書き
    指定なしの場合 binary/octet-stream が設定されます
    response-cache-controlレスポンスヘッダのCache-controlを上書き
    optionsobject署名付きURLの有効時間

    options詳細

    プロパティ説明
    expiresInnumber署名付きURLの有効時間(秒)
    デフォルトは900

    Tips

    戻り値

    説明
    string署名付きURL

    サンプル

    // ファイルパスにクエリパラメータ(キャッシュ:保存しない、MIMEタイプ:application/pdf)指定
    const path = $ui.filePath.value + "\?response-cache-control=no-store&response-content-type=application/pdf";
    // 有効時間10分の署名付きURLを発行
    $ui.url.value = await $fn.getPresignedUrl(path, {expiresIn:600});

    Tips

    Tips

    $fn.getUploadFiles()

    プッシュボタンやアイコンボタンでアップロードしたファイルを取得します。[非同期]

    Tips

    引数

    なし

    戻り値

    説明
    Promise <FileInfo[]>アップロードしたファイル情報
    オブジェクトプロパティ説明
    FileInfodataBufferファイルデータ
    filenamestringファイル名
    filesizenumberファイルサイズ

    サンプル

    try {
    // 戻り値はオブジェクトの配列
    const files = await $fn.getUploadFiles();
    await Promise.all(files.map(async (file) => {
    const path = `/uploads/${file.filename}`;
    // 指定パスへファイルを保存
    await $fn.putFile(path, {
    data: file.data,
    });
    }));
    } catch (err) {
    console.error("Error ", err);
    }

    $fn.getUsers(groupName?,option)

    ユーザマネージャに存在するユーザを取得します。[非同期]

    Tips

    引数

    名前説明
    groupName?stringユーザ抽出条件のグループ名
    optionobject無効ユーザを含めるか指定

    option詳細

    名前説明
    disabledbooleantrue: 無効ユーザを含める
    false: 無効ユーザを含めない
    デフォルトはfalse

    Tips

    戻り値

    説明
    Promise<User[]>条件に一致するユーザリスト
    オブジェクトプロパティ説明
    UseruserIdstringユーザID (GUID)
    emailstringEメール
    namestringユーザ名
    custom_01stringカスタム属性1
    custom_02stringカスタム属性2
    custom_03stringカスタム属性3
    custom_04stringカスタム属性4
    custom_05stringカスタム属性5
    custom_06stringカスタム属性6
    custom_07stringカスタム属性7
    custom_08stringカスタム属性8
    custom_09stringカスタム属性9
    custom_10stringカスタム属性10
    enabledboolean有効/無効
    createdstring作成日時
    updatedstring更新日時
    statusstringユーザのステータス

    サンプル

    try {
    const users = await $fn.getUsers('group1',{disabled:true});
    } catch (err) {
    console.log("Error", err)
    }

    $fn.link(url)

    URL先を新規タブに表示する関数です。

    Tips

    引数

    名前説明
    urlstringWeb サイトの URL

    戻り値

    なし

    サンプル

    $fn.link(‘https://google.com/’);

    $fn.listUsersByEmail(email,option)

    Emailによる前方一致検索をし、ユーザマネージャに存在するユーザを取得します。[非同期]

    Tips

    引数

    名前説明
    emailstring検索文字列
    optionobject無効ユーザを含めるか指定

    option詳細

    名前説明
    disabledbooleantrue: 無効ユーザを含める
    false: 無効ユーザを含めない
    デフォルトはfalse

    Tips

    戻り値

    説明
    Promise<User[]>条件に一致するユーザリスト
    オブジェクトプロパティ説明
    UseruserIdstringユーザID (GUID)
    emailstringEメール
    namestringユーザ名
    custom_01stringカスタム属性1
    custom_02stringカスタム属性2
    custom_03stringカスタム属性3
    custom_04stringカスタム属性4
    custom_05stringカスタム属性5
    custom_06stringカスタム属性6
    custom_07stringカスタム属性7
    custom_08stringカスタム属性8
    custom_09stringカスタム属性9
    custom_10stringカスタム属性10
    enabledboolean有効/無効
    createdstring作成日時
    updatedstring更新日時
    statusstringユーザのステータス

    サンプル

    try {
    const email = $ui.searchKey.value;
    // テーブルカラム「userId」「email」「name」があるテーブルに検索結果を表示
    $ui.userList.value = await $fn.listUsersByEmail(email,{disabled:true});
    } catch(err) {
    console.log("Error", err);
    }

    $fn.listUsersByName(name,option)

    ユーザ名による前方一致検索をし、ユーザマネージャに存在するユーザを取得します。[非同期]

    Tips

    引数

    名前説明
    nameString検索文字列
    optionobject無効ユーザを含めるか指定

    option詳細

    名前説明
    disabledbooleantrue: 無効ユーザを含める
    false: 無効ユーザを含めない
    デフォルトはfalse

    Tips

    戻り値

    説明
    Promise<User[]>条件に一致するユーザリスト
    オブジェクプロパティ説明
    UseruserIdstringユーザID (GUID)
    emailstringEメール
    namestringユーザ名
    custom_01stringカスタム属性1
    custom_02stringカスタム属性2
    custom_03stringカスタム属性3
    custom_04stringカスタム属性4
    custom_05stringカスタム属性5
    custom_06stringカスタム属性6
    custom_07stringカスタム属性7
    custom_08stringカスタム属性8
    custom_09stringカスタム属性9
    custom_10stringカスタム属性10
    enabledboolean有効/無効
    createdstring作成日時
    updatedstring更新日時
    statusstringユーザのステータス

    サンプル

    try {
    const name = $ui.searchKey.value;
    // テーブルカラム「userId」「email」「name」があるテーブルに検索結果を表示
    $ui.userList.value = await $fn.listUsersByName(name,{disabled:true});
    } catch(err) {
    console.log("Error", err);
    }

    $fn.message(parameters)

    スナックバーコンポーネントにより、スクリーンにメッセージを表示します。

    引数

    名前説明
    parametersobjectメッセージ内容を示すオブジェクト

    parameters詳細

    プロパティ説明
    messagestring表示するメッセージ文字列
    closebooleanメッセージをクローズするボタン
    - 表示する (デフォルト)
    - 表示しない
    autoHideDurationnumber自動クローズまでの時間 (ミリ秒)
    severitystringアラート表示の指定
    - none (デフォルト)
    - error
    - warning
    - info
    - success
    positionstring表示位置の指定
    - bottom-left
    - bottom-center (デフォルト)
    - bottom-right
    - top-left
    - top-center
    - top-right
    transitionDurationnumberスナックバーの表示とフェードアウトの時間 (ミリ秒)

    Tips

    戻り値

    なし

    サンプル

    $fn.message(
    {
    message: "Hello world.",
    close: false,
    autoHideDuration: 1000,
    severity: "info",
    transitionDuration: 300,
    }
    );

    $fn.nextUI(uiCode)

    スクリーンを別のUIに遷移させる関数です。

    引数

    名前説明
    uiCodestring遷移先 UI の ID

    Tips

    戻り値

    なし

    サンプル

    $fn.nextUI(‘UI01’);

    $fn.putFile(path, parameters)

    指定パスへファイルを保存します。[非同期]

    Tips

    引数

    名前説明
    pathstring保存するファイルのパス
    parametersobjectdata: Buffer | Unit8Array | string をプロパティに持つオブジェクト

    Tips

    戻り値

    なし

    サンプル

    try {
    const obj = await $fn.getFile("/note.dat");
    await $fn.putFile('filePath', obj);
    } catch (err) {
    console.log("Error", err);
    }

    $fn.removeUsers(param)

    アプリケーションの認可グループから登録しているユーザを除外します。[非同期]

    Tips

    引数

    名前説明
    paramobjectグループ名と除外するユーザ情報

    param詳細

    プロパティ説明
    groupNamestringグループ名
    emailsarray of stringグループから除外するユーザのメールアドレス配列

    戻り値

    なし

    サンプル

    try {
    /* CSV の内容
    * ---------------------------
    * "email"
    * "user01@test.co.jp"
    * "user02@test.co.jp"
    * ---------------------------
    */
    const file = await $fn.getFile('/removeUsers.csv');
    const buffer = file.data;
    const addUsers = $fn.csvToObject(buffer);
    const emails = addUsers.map(function (item) {
    return item['email'];
    });
    // 認可グループ「Group01」からユーザ除外
    await $fn.removeUsers({
    groupName: "Group01",
    emails: emails
    });
    } catch(err) {
    console.log("Error", err);
    }

    $fn.resetPassword(param)

    アプリケーションの認証ユーザのパスワードをリセットします。[非同期]

    Tips

    引数

    名前説明
    paramobjectパスワードリセットするユーザの情報

    param詳細

    プロパティ説明
    emailstringEメール
    passwordstring一時パスワード

    戻り値

    説明
    Promise<User>パスワードリセットしたユーザ情報
    オブジェクトプロパティ説明
    UseruserIdstringユーザID (GUID)
    emailstringEメール
    namestring名前
    custom_01stringカスタム属性1
    custom_02stringカスタム属性2
    custom_03stringカスタム属性3
    custom_04stringカスタム属性4
    custom_05stringカスタム属性5
    custom_06stringカスタム属性6
    custom_07stringカスタム属性7
    custom_08stringカスタム属性8
    custom_09stringカスタム属性9
    custom_10stringカスタム属性10
    enabledboolean有効/無効
    createdstring作成日時
    updatedstring更新日時
    statusstringユーザのステータス

    サンプル

    try {
    /* CSV の内容
    * ------------------------------------
    * "email","password"
    * "user01@test.co.jp","Password@01"
    * "user02@test.co.jp","Password@02"
    * ------------------------------------
    */
    const file = await $fn.getFile('/resetPassword.csv');
    const buffer = file.data;
    const resetPWInfos = $fn.csvToObject(buffer);
    // リセットパスワード
    for (let resetPWInfo of resetPWInfos) {
    await $fn.resetPassword(resetPWInfo);
    }
    } catch(err) {
    console.log("Error", err);
    }

    $fn.sendMail(param)

    メールを送信します。[非同期]

    Tips

    引数

    名前説明
    paramobjectメール送信内容を示すパラメータオブジェクト

    param 詳細

    プロパティ説明
    tostring arrayTO アドレス (複数)
    ccstring arrayCC アドレス (複数)
    bccstring arrayBCC アドレス (複数)
    fromAddressstringFromアドレス
    fromNamestringFrom 表示名
    subjectstringサブジェクト
    textstring本文
    encodingbooleantrue: fromNameをBase64エンコーディングする
    false: fromNameをBase64エンコーディングしない
    デフォルトはfalse

    Tips

    実行環境fromAddressfromName送信元の表示形式
    フリー実行環境-(設定不可)-(設定不可)no-reply@webperformer.jp
    プレミアム実行環境指定あり指定なし設定したメールアドレス
    プレミアム実行環境指定なし指定あり設定した表示名 no-reply@webperformer.jp
    プレミアム実行環境指定あり指定あり設定した表示名 <設定したメールアドレス>

    戻り値

    なし

    Tips

    サンプル

    try {
    let toArray=["user01@test.co.jp"];
    let textValue = $ui.text.value;
    let subjectValue = $ui.subject.value;
    const params = {
    to: toArray,
    text: textValue,
    subject: subjectValue
    };
    await $fn.sendMail(params);
    } catch(err) {
    console.log("Error", err);
    }

    $fn.setLanguage(language)

    表示言語を変更します。

    引数

    名前説明
    languagestring[default | en | ja] のいずれかの値を設定

    戻り値

    なし

    サンプル

    $fn.setLanguage(‘en’);

    $fn.signOut()

    サインアウトします。

    Tips

    引数

    なし

    戻り値

    なし

    サンプル

    $fn.signOut();

    $fn.updateUser(param)

    アプリケーションの認証ユーザを更新します。[非同期]

    Tips

    引数

    名前説明
    paramobject更新するユーザ情報

    param詳細

    プロパティ説明
    originalEmailstringEメール(更新前)
    emailstringEメール(更新後)
    namestring名前
    enabledbooleantrue:有効
    false:無効
    デフォルトはtrue
    custom_01stringカスタム属性1
    custom_02stringカスタム属性2
    custom_03stringカスタム属性3
    custom_04stringカスタム属性4
    custom_05stringカスタム属性5
    custom_06stringカスタム属性6
    custom_07stringカスタム属性7
    custom_08stringカスタム属性8
    custom_09stringカスタム属性9
    custom_10stringカスタム属性10

    Tips

    戻り値

    説明
    Promise<User>更新したユーザ情報
    オブジェクトプロパティ説明
    UseruserIdstringユーザID (GUID)
    emailstringEメール
    namestring名前
    custom_01stringカスタム属性1
    custom_02stringカスタム属性2
    custom_03stringカスタム属性3
    custom_04stringカスタム属性4
    custom_05stringカスタム属性5
    custom_06stringカスタム属性6
    custom_07stringカスタム属性7
    custom_08stringカスタム属性8
    custom_09stringカスタム属性9
    custom_10stringカスタム属性10
    enabledboolean有効/無効
    createdstring作成日時
    updatedstring更新日時
    statusstringユーザのステータス

    サンプル

    try {
    /* CSV の内容
    * ---------------------------------------------------------
    * "originalEmail","email","name","enabled"
    * "user01@test.co.jp","user01@test.co.jp","User01",ture
    * "user02@test.co.jp","user02@test.co.jp","User02",false
    * ---------------------------------------------------------
    */
    const file = await $fn.getFile('/updateUserInfo.csv');
    const buffer = file.data;
    const userInfos = $fn.csvToObject(buffer);
    for (let userInfo of userInfos) {
    let data = {};
    data = {
    originalEmail: userInfo['originalEmail'],
    email: userInfo['email'],
    name: userInfo['name'],
    enabled: JSON.parse(userInfo['enabled'])
    };
    // ユーザ更新
    const result = await $fn.updateUser(data);
    }
    } catch(err) {
    console.log("Error", err);
    }