Closed kenichi-fk closed 1 month ago
計算式(拡張)に以下の式を入力して同期すると、期待する文字列(アカウント名の一部をマスクしたもの)が目的の列(種別は説明)に設定されます。
$REPLACE(アカウント名,4,$LEN(アカウント名)-4,'***') // (1)
ところが、レコードの新規作成を行うと、新規作成画面になった途端「アプリケーションで問題が発生しました。」と表示され、新規作成ができません。 (なお、計算式の設定で「エラーを表示する」のチェックを外すと、新規作成時には目的の列に「Invalid Parameter」の文字列が設定されます) SysLogsテーブルを確認すると、Method列に「new:OnException」、ErrMessage列に「Exception: Formula error Invalid Parameter」とありました。
計算式でエラーになっていると思い、$IFERROR関数、$ISERRORや関数を使用したところ、新規作成時のエラーは解消しました。しかし、期待する計算結果が得られません。
$IFERROR($REPLACE(アカウント名,4,$LEN(アカウント名)-4,'***') ,'') // (2) $IF($ISERROR($REPLACE(アカウント名,4,$LEN(アカウント名)-4,'***')),'',$REPLACE(アカウント名,4,$LEN(アカウント名)-4,'***')) // (3)
まとめ
(2),(3)の計算式の結果を見る限り、(1)の計算式はエラーと判断されている様子です。 しかし、(1)の計算式は期待する計算結果が得られます。それなのに(1)はなぜ新規作成時にエラーとなるのでしょうか?
自己解決しました。
勘違いしておりました。
(1) では、計算式の同期により期待する計算結果が格納されるが新規作成時にエラー
-> 新規作成時は、アカウント名の初期値が空欄なので、$LEN(アカウント名)-4 = -4 となり、$REPLACE関数の引数エラーとなる。
以上。
計算式(拡張)に以下の式を入力して同期すると、期待する文字列(アカウント名の一部をマスクしたもの)が目的の列(種別は説明)に設定されます。
ところが、レコードの新規作成を行うと、新規作成画面になった途端「アプリケーションで問題が発生しました。」と表示され、新規作成ができません。 (なお、計算式の設定で「エラーを表示する」のチェックを外すと、新規作成時には目的の列に「Invalid Parameter」の文字列が設定されます) SysLogsテーブルを確認すると、Method列に「new:OnException」、ErrMessage列に「Exception: Formula error Invalid Parameter」とありました。
計算式でエラーになっていると思い、$IFERROR関数、$ISERRORや関数を使用したところ、新規作成時のエラーは解消しました。しかし、期待する計算結果が得られません。
まとめ
(2),(3)の計算式の結果を見る限り、(1)の計算式はエラーと判断されている様子です。 しかし、(1)の計算式は期待する計算結果が得られます。それなのに(1)はなぜ新規作成時にエラーとなるのでしょうか?