承認プロセスのまとめ

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)
[まとめA～M](https://qiita.com/Keiji_otsubo/items/f3ddedee6793bf1576f8)


+ [承認プロセスが関係するトレイルヘッド](https://qiita.com/Keiji_otsubo/items/61e5b8ebfece4ed4e69e)

# 制限

+ [70文字に制限された電子メールによる承認プロセスのコメント: GmailなどのWebベースの電子メールクライアントで発生する](https://help.salesforce.com/s/articleView?id=000338337&type=1)
+ [ワークフローはトリガーしない](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000J6VQNSA3)
+ [承認プロセスで自分宛てに承認依頼が来ているレコードのみを抽出する方法](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JePih)
+ [、ユーザ設定の承認者の設定から承認申請メールを受信を受信しないに変更しました。すると、メールを参照する画面から承認/却下の表示も出なくなってしまい、承認ができなくなってしまいました。](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000PezSm)
+ [承認プロセスにおいて、承認プロセスが元の提出者に再割り当てされないようにするにはどうすればよいですか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007I5ckt)

:::note
し (承認と拒否のみを画面上に残す)、「再割り当て」ボタンを非表示にすることができます。ユーザーは UI 上でボタン セクションのドロップダウン矢印からアクセスできますが、少なくとも、以前のようにページに明確に表示されなくなります。
:::

+ [Disable notification approver](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007QcmMT)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/09389d4d-90d0-d642-b1fd-c556c61ef91a.png)

:::note
Looks like this is still an idea:

https://ideas.salesforce.com/s/idea/a0B8W00000GdijTUAR/ability-to-disable-approval-notifications
:::

+ [How is possible to change the name of the list view Items to approve?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007bLD0H)

:::note
Looks like this is still an idea:

https://ideas.salesforce.com/s/idea/a0B8W00000GdcFrUAJ/ability-to-customize-the-approval-history-related-list
:::

+ [システム管理者含む第三者が、他の人の未承認申請のレポートを作成することは可能?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007X9Hp7)

:::note
以下の投稿を参考にしてみてください

未承認一覧レポートを見る方法
https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54V00007PvUPtSAN
:::

+ [【承認プロセス】複数ステップで同一の承認者に承認を回す方法について](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007YvazX)

:::note
フローで動的に承認者を設定する方法が紹介されています。

マネージャーが登録されていないという部分は申請者の管理者を見て判断していけば、自動でセットできそうな気はしますが... やったことはないですね。
https://www.linkedin.com/pulse/use-power-salesforce-flow-dynamically-assign-approver-gaurav-jain

英語の質問＆回答ですが自分自身を割り当てる方法が紹介されています。

How to assign yourself as the approver?
https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000A91xfSAB
:::

+ [The Metadata API for Approvals doesn't support the EmailMessage object.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ai6he)

:::note
Unfortunately, we do not have any workaround and you would need to add this as post migration activity in production.

残念ながら、回避策はなく、実稼働環境で移行後のアクティビティとしてこれを追加する必要があります。
:::

+ [承認プロセスで代理申請は可能でしょうか？](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007epzKt)

:::note
以下のブログが参考になると思います。

+ Salesforce の承認プロセス機能において、承認者の代わりに申請を承認／却下できる人を設定できる機能
+ ユーザに対して一人だけ代理承認者を設定しておくことができる
+ また承認プロセスの各承認ステップごとに代理承認者による承認を許可するかどうかが設定できる

https://dackdive.hateblo.jp/entry/2018/03/17/100000

代理承認者
https://help.salesforce.com/s/articleView?id=sf.cpq_aa_delegate_approvers_task.htm&type=5

代理申請となると、オブジェクトレベルでのすべての編集(管理者権限)が必要になりそうですね。
:::

+ [承認申請ボタンの名前の変更について](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007cmL7A)

:::note
フローのコアクションも使えるかもしれません

フローコアアクション: 承認申請
https://help.salesforce.com/s/articleView?id=sf.flow_ref_elements_actions_approval.htm&type=5
:::

+ [承認プロセスのアラート通知を止める](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eqdRs)

:::note
どうも長い間アイデアには上がっているようですが実装されていませんね。

https://ideas.salesforce.com/s/idea/a0B8W00000GdijTUAR/ability-to-disable-approval-notifications
:::

+ [すぐに使える承認プロセスか、カスタムフローか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007er1kkSAA)

:::note
Salesforce の標準承認プロセスの経験は限られていますが、私たちの 1 つのユースケースでは、それが非常に基本的なものであることがわかり、残念でした。これは、アプリケーション タイプのレビュー プロセスであると考えられます。また、承認者が承認/拒否する対象を検討しているときに、その画面で情報を収集し、次の状態に移行するときにその情報を Salesforce にポストし直す必要があると考えられます。  

もしそうなら、既成のフローよりもカスタム フローの方が良いと思います。承認/拒否画面でレビュー担当者から情報を収集することは、基本機能の一部ではありません。少なくとも、私たちのプロジェクトではそうだったと記憶しています。
:::

+ [承認申請の「申請者が承認者を手動で選択する」が選択できない](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ifpgF)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/bd117791-91ac-37a2-9b17-168b00302308.png)

:::note
ステップ５のセキュリティ設定が原因の様です。
ご確認をお願いします。

https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000A86LaSAJ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/ffc712f5-8da0-21fa-6850-dd8a611bad79.png)
:::

+ [承認画面で任意の項目を編集したい](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000MaPNk)

:::note
Salesforceの標準承認画面では、項目を直接編集することはできません。ただし、承認者が承認を送信する前に「重要度」などの項目を編集できるカスタムLightningコンポーネントを作成することは可能です。  
:::

+ [【承認プロセス】承認画面にカスタムボタン（帳票出力）を追加する方法](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000PYIg8)

:::note
標準の承認画面ではアクションやボタンを配置できないため、承認申請のレコードページでの対応になるかと思います。 


カスタムリダイレクトのアクションを作る必要がありますが、レコードページにはフローが配置できますので、フローでURLを生成して別タブで開くような機能は作れます。 

また、カスタムコンポーネントの配置も可能ですので、LWC等でコンポーネントを作成して配置することもできるかと思います。
:::


# 開発など

+ [Salesforce の承認プロセスでコメント フィールドを必須にする方法](https://qiita.com/Keiji_otsubo/items/def088e0253987b0adc3)
+ [マルチステップの承認プロセスでは、すべての承認コメントを必須にします。](http://christopheralunlewis.blogspot.com/2012/10/making-all-approval-comments-mandatory.html)
+ [承認プロセス Apexで操作する時の覚え](https://qiita.com/Keiji_otsubo/items/e50107142a045478b930)
+ [Recalled approval process comments not visible in the email template](https://help.salesforce.com/s/articleView?id=000330684&type=1)
+ [電子メール承認応答 :](https://qiita.com/Keiji_otsubo/items/103f6f65bf15d0bdd02f)
+ [承認プロセスのレコードロックについて](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000OtNRVSA3)

:::note
今回の件ですが差し戻した時ににフローで同じ承認レコードを複製する方法は使えませんか？
:::

+ [承認申請されたレコードをレポートで取得する](https://help.salesforce.com/s/articleView?id=000387774&type=1)
+ [承認者のコメントをカスタムフィールドに追加する方法](https://qiita.com/Keiji_otsubo/items/a9129fda1dcd5a4482a6)
+ [画面フローで承認申請、レコードへ値を転記を行う場合のフロー](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007OVclQ)
+ [該当する承認プロセスは見つかりませんでした。](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000NfyL)

:::note
私が確認した組織では、「ロール＆内部下位ロール」が適応されていたが、

承認プロセスの申請者設定で「ロール&下位ロール」の設定が残っていたためエラーが起きたのではないかと考えております。
:::

+ [最終承認および拒否アクションを指定する方法](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000m0Vc)

:::note
Salesforce で特定の最終承認および拒否アクションを有効にするには、「設定」>「承認プロセス」に移動し、プロセスを選択して、「最終承認アクション」および「最終拒否アクション」の下にアクションを追加します(例: フィールドの更新、電子メールアラート、タスク)。完了したら、承認プロセスを有効化します。 
:::





# フローによる処理の代替

+ [[承認のために送信] ボタンは、承認プロセスをトリガーするクイック アクションです。この次に、選択リスト フィールドを更新するという別の機能を追加したいと思います。 Salesforce のベストプラクティスに従って、できればフロービルダーを使用することでこれは可能ですか?  ](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007akaHe)
+ [ProcessInstanceWorkitemを使う](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007cm0zD)

# 未解決

+ [承認プロセスのテスト中に下記のようなエラーが発生](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007UvbVl)

:::note alert
An error has occurred in the following section: [Exception, ]. Salesforce.com has been notified of this error.
:::

+ [【承認プロセス】役職に応じたステップのスキップ条件のベストプラクティス](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ajTXY)


# エラー

+ [Flow to automate the approval process doesn't work : in the Action on the flow, it asked the "Approval Process Name Or ID", there's no entry for me to pick even the approval proccess is activated?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007Dgpop)

:::note
Please check this article. 

https://unofficialsf.com/using-the-resolve-approval-process-action-to-work-around-the-else-approve-bug/
:::

+ [Error: This Unique Name already exists or has been previously used. Please choose a different name.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007Py3wl)

:::note
I had a very similar problem which I resolved by emptying my recycle bin. I'd deleted an early version of the flow so that I could start over but even when it is in the bin it prevents you using the same names again. 

https://developer.salesforce.com/forums/?id=906F0000000g2iJIAQ
:::

+ [承認プロセスのロック解除](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007WenHY)

:::note
インストールは必要ですが、フローを使って可能になるようです。

https://unofficialsf.com/approval-processes-unlock-records-in-lightning/
:::

+ [No applicable approval process was found](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007igGfQ)

:::note
Please check this article. 

https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000HDuxvSAD

There was an entry condition in my approval process, I removed that and it worked.


承認プロセスに入力条件があったので、それを削除したところ、うまくいきました。
:::

+ [Advanced Approvals : Receiving an error 'invalid id field: null'](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000J7CYJ)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/cfd446c7-c1d2-434e-e70b-04e9bda637bd.png)

:::note
エラーを解決するには、関連する承認ルールがリストされていない承認をすべて削除します。承認ルールは承認の必須フィールドです。

To resolve the error, delete any Approvals that do not have a related Approval Rule listed. An Approval Rule is a required field for Approvals.

https://help.salesforce.com/s/articleView?id=000780101&type=1
:::


# レポート

+ [【承認プロセス】承認履歴を一覧表示・レポート表示する方法](https://regardie.dev/post-6308)


# [承認プロセスの用語](https://help.salesforce.com/s/articleView?id=sf.approvals_terminology.htm&type=5)

|英語       |日本語              |　説明                                              |
|:----------|:------------------|:---------------------------------------------------|
|Approval Actions|承認時のアクション|必要なすべての承認者がステップを承認したとき、承認時のアクションが実行されます。|
|Approval Process|承認プロセス|Salesforce でレコードを承認する方法を自動化します。承認プロセスでは、承認申請者、プロセスの各ポイントでの実行内容など、承認の各ステップを指定します。|
|Approval Request|承認申請|メール、Salesforce アプリケーション通知、Lightning Experience 通知、または Chatter 投稿です。承認申請では、レコードが承認申請されたことが受信者に通知されます。|
|Approval Steps|承認ステップ|承認ステップで、特定の承認プロセスに一連の承認を定義します。各ステップで次のことを決定します。<br/>・各ステップの条件を満たすレコード<br/>・承認申請を誰に割り当てるか</br>各代理承認者による申請への返答を許可するかどうか<br/>・最初のステップでは、レコードがそのステップの条件を満たさない場合の動作を指定します。<br/>その後のステップでは、承認者が申請を却下した場合の動作を指定します。
|Assigned Approver|承認者|承認者は、承認申請への返答を担当するユーザです|
|Delegated Approver|代理承認者|代理承認者は、割り当てられた承認者によって、承認申請の承認代理として任命されたユーザです。|
|Email Approval Response|メール承認|メール承認により、ユーザはメール通知に返信して承認申請に返答できます。|
|Initial Submission Actions|申請時のアクション|申請時のアクションは、ユーザがレコードの承認を初めて申請したときに実行されます。デフォルトでは、レコードはロックされます。|最終承認時のアクション|最終承認時のアクションは、必要なすべての承認が得られたときに実行されます。|最終却下時のアクション|最終却下時のアクションは、承認者が要求を却下し、最終却下状態に移行したときに実行されます。|
|Final Approval Actions|最終承認時のアクション|最終承認時のアクションは、必要なすべての承認が得られたときに実行されます。|
|Final Rejection Actions|最終却下時のアクション|最終却下時のアクションは、承認者が要求を却下し、最終却下状態に移行したときに実行されます。|
|Outbound Message|送信メッセージ|送信メッセージでは、外部サービスなどの指定エンドポイントに情報を送信します。送信メッセージは、[設定] から設定できます。外部エンドポイントを設定し、SOAP API を使用してメッセージのリスナーを作成します。|
|Process Instance|プロセスインスタンス|プロセスインスタンスとは、承認プロセスの 1 つのインスタンスを表します。レコードが承認申請されるたびに、新しいプロセスインスタンスが作成されます。|
|Process Instance Node|プロセスインスタンスノード|プロセスインスタンスノードとは、承認ステップのインスタンスを表します。レコードが承認プロセスのステップに進むたびに、プロセスインスタンスノードが作成されます。レコードがステップの条件を満たしていない場合、または承認プロセスインスタンスがそのステップに進まずに完了した場合、プロセスインスタンスノードは作成されません。|
|Recall Actions|取り消し時のアクション|取り消し時のアクションは、承認申請が取り消されたときに実行されます。デフォルトでは、レコードはロック解除されます。|レコードのロック|レコードのロックでは、項目レベルのセキュリティや共有設定に関係なく、ユーザがレコードを編集できないようにします。デフォルトでは、未承認のレコードは、Salesforce によってロックされます。システム管理者のみが、ロックされたレコードを編集できます。|
|Record Locking|レコードのロック|レコードのロックでは、項目レベルのセキュリティや共有設定に関係なく、ユーザがレコードを編集できないようにします。デフォルトでは、未承認のレコードは、Salesforce によってロックされます。システム管理者のみが、ロックされたレコードを編集できます。|

# 承認プロセス ページで承認/却下ボタンを有効にする方法は?

Q.  組織の一部の承認プロセスの承認および却下ボタンに問題があります。承認のためにレコードを送信すると、承認/却下ボタンが表示されません。ページ レイアウトを変更して何かを有効にした後、この問題が発生したことを覚えています。確認済みで、承認者です。

A. 
承認リクエスト ページに移動し、ページを編集し、ハイライト パネルを削除し、保存して再度挿入し、保存して、ページを有効にします (既に有効になっている場合は、有効にする必要はありません)。毎回成功。
 
承認申請ページに入り、ページを編集し、ハイライト パネルを削除し、保存して再度挿入し、保存して、ページをアクティブ化します (既にアクティブになっている場合は、アクティブ化する必要はありません)。常に成功します。

[How to activate the approve/reject button in the approval process page?](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000J78dhSAB)

# 承認プロセスで、割り当てた人以外で承認できてしまう

+ [承認プロセスで、割り当てた人以外で承認できてしまう](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000O9o7PSAR)

:::note
次の権限のあるユーザは、指定承認者でなくても承認申請に返答できます。

+ 「すべてのデータの編集」
+ オブジェクトに対する「すべて変更」

承認設定に関する考慮事項
https://help.salesforce.com/s/articleView?id=sf.approvals_considerations_approver.htm&type=5
:::

# ユーザに権限がない？

+ [User is un abel to edit a Field](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000O9XzU) 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/0674be6e-99c2-e2f4-9c33-522715aca48c.png)

:::note
When a record is submitted for approval, it’s locked to prevent users from editing it during the approval process. Use the record editability properties to determine who can edit records that are locked in this approval process.

OPTION
Administrators OR... | Lets the assigned approver and admins edit the record.

Specify Who Can Edit Locked Records
https://help.salesforce.com/s/articleView?id=sf.approvals_create_recordeditability.htm&type=5
:::