1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Apex] 承認プロセスでロックされた見積と商談の同期

Posted at

見積のレコードロック(承認プロセス)の影響

  • 見積がレコードロックかかると、見積品目の作成編集削除ができなくなる。
  • 見積がレコードロックされていると商談との同期ができない。
  • 同期している見積レコードがロックされていると商談商品の作成編集削除ができなくなる。

Apexで見積と商談を同期させる

  • 基本的には、Apexで見積と商談を同期させたいときは、商談のSyncedQuoteIdに見積IDを設定するだけで良い。
  • 見積がレコードロックされている場合は、レコードロックを解除してから同期を行う必要がある。
    • レコードロックの解除は、ログインユーザがロックされているオブジェクトのすべて編集権限をもっているか、Apexの without sharing が必要。
    • Apexでレコードロックを解除する場合、Approvalクラスを使用する。レコードロック、ロック解除はDMLとして処理されるため、ガバナ制限に注意。
Quote approvedQuote = [SELECT OpportunityId FROM Quote WHERE Id = :objId];
Approval.unlock(approvedQuote);
update new Opportunity(Id = approvedQuote.OpportunityId, SyncedQuoteId = approvedQuote.Id);
Approval.lock(approvedQuote);

商談見積同期内容

  • 品目レコード項目変更
    • 商談→見積: 反映される
    • 見積→商談: 反映される
  • 品目レコード削除
    • 商談→見積: 反映される
    • 見積→商談: 反映される
  • 品目レコード作成
    • 商談→見積: 反映される
    • 見積→商談: 反映される(スケジュール(OpportunityLineItemSchedule)は作られない)

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?