Salesforceの標準機能承認プロセスについて
Salesforceの標準機能に承認プロセスというものがあります。社内承認フローを見直しのためにSalesforceを導入を開始したという利用者も話も聞くほどのメジャーな機能だと思います。この承認プロセスの承認コメントには最大文字数の制限があります。
今回の問題
標準の承認申請のコメント入力欄で最大文字数を超えるとエラーが発生します。
この時の問題として、以下2つが挙げられます。
①開発者ではないユーザにとって、戸惑うエラーの表示内容。
(正直このエラー文だと開発者でも戸惑いますね。)
②エラーになると入力したコメントが消失してしまう。
解決策
おそらく標準の承認申請ボタンを使用すると解決策がないと思われます。承認申請の文字数チェックの機能を付けることが出来なくて、入力内容を返してあげることができないです。
現状は、AuraかVFで画面を開発し、申請前にコメントの文字数チェックを実施するしか方法がなさそうです。
せめてエラー文の表示だけでも、非開発者にも分かる(例えば、「コメントが最大文字数を超過しているため申請できません。」)様なものに変わってほしいです。
この仕様の詳細
公式のヘルプには以下のように記載されています。
承認申請を受信したら、承認、却下、または再割り当てをして返答します。使用する Salesforce の環境に応じて、いくつかのオプションがあります。承認申請のコメントは 4,000 文字に制限されています。中国語、日本語、または韓国語の場合は 1,333 文字に制限されます。
日本語、韓国語、中国の1333文字の制限がどのようなものなのか、検証してみました。
②日本語(全角)1330文字+半角3文字
エラーにならず、承認申請できます。
①、②の結果から、バイト数で計算されていることが分かります。
③日本語1333文字+半角1文字
エラーにならず、承認申請できます。
ちなみに、日本語1333文字+半角2文字はエラーとなります。
④日本語1333文字+改行
もちろん改行もカウントされるためエラーとなります。
⑤バイト数が大きい文字1000文字
日本語には3バイト以上の文字があります。その場合は1000文字でもエラーになります。
(もっと少ない文字数でもエラーになります。)
まとめ
利用者によっては、かなり重要な社内承認フローでも使用している場合もあるみたいで、その場合コメントも長文になるそうです。
エラーになる様な長文が消失して、再入力しなければならないというのは辛いと思うので、要件次第ではカスタムで承認申請コンポーネントを開発したほうがいいかもしれません。