請求書バッチ実行のオートメーションの非同期への変換
Billingオブジェクトの有効なフローとApexトリガーを識別し、請求書バッチの実行をスケジュールする前に非同期プロセスに変換します。同期オートメーションでは、実行が停止したり、請求書が [ドラフト処理中]、[転記処理中]、または [エラー] のままになることがあります。
必要なエディション
| 使用可能なインターフェース: Lightning Experience |
| 使用可能なエディション: Revenue Cloud Advanced ライセンスまたは Revenue Cloud Billing ライセンスがある Enterprise Edition、Unlimited Edition、および Developer Edition |
| 必要なユーザー権限 | |
|---|---|
| レコードトリガーフローを確認して変換する | 「フローの管理」 |
| Apex トリガーを表示する | 「設定・定義の参照」 |
| Apex トリガーを変換する | 「Apex 開発」 |
| 行き詰まった請求書を復旧する | 「請求管理者」権限セット または 「請求業務ユーザー」権限セット |
レコードトリガーフローまたは Apex トリガーは、請求書や請求書品目などのオブジェクトに関連付けられています。Flow Builder でそのオブジェクトのフローを定義して有効化します。「Apex の著者」権限を持つユーザーは、そのオブジェクトに対する Apex トリガーを定義して有効に設定します。これらの自動化はカスタムです。Billing では作成されません。「フローの有効化または無効化」および「Apex トリガーの定義」を参照してください。
請求書バッチの実行で請求書が生成されると、請求オブジェクトのレコードが作成または更新されます。これらのオブジェクトには、請求書、請求書品目、税金品目、デビットメモとクレジットメモ、請求スケジュール、請求期間品目が含まれます。Billing オブジェクトの有効なフローまたはトリガーは、請求書バッチの実行で保存されたすべてのレコードに対して実行されます。
同期自動化は、レコードの保存の一環として実行されます。請求書バッチの実行は、そのフローまたはトリガーが完了するまで請求書の保存を完了しません。オートメーションで請求書ごとに関連レコードを照会する場合、実行が処理制限に達したり、タイムアウトしたりする可能性があります。請求書は [ドラフト処理中]、[投稿処理中]、または [エラー] のままにできます。
非同期自動化は、請求書レコードが保存されるまで待機してから実行されます。一括処理の実行で請求書の生成を完了できます。請求書の保存中ではなく、フローまたはトリガーは引き続き実行されます。
- [設定] の [クイック検索] ボックスに「フロー」と入力し、[フロー] を選択します。
-
これらの Billing オブジェクトの有効なレコードトリガーフローを確認します。
- 請求書
- 請求書品目
- 請求書品目の税金
- デビットメモ
- デビットメモ品目
- デビットメモ品目税
- クレジットメモ
- クレジットメモ品目
- クレジットメモ品目税
- 請求スケジュール
- 請求期間項目
- [設定] から、[クイック検索] ボックスに「Apex トリガー」と入力し、[Apex トリガー] を選択します。
- 同じオブジェクトの有効なトリガーを確認します。
-
SOQL を使用してオートメーションをリストするには、開発者コンソールクエリエディターを開きます。
サンプルスクリプト:
フロークエリで、[Use Tooling API] を選択します。Apex トリガー クエリの場合は、[Use Tooling API] をオフにしておきます。
フロー:
SELECT Id, IsActive, Label, ProcessType, ManageableState, TriggerObjectOrEventId, TriggerObjectOrEventLabel, TriggerType FROM FlowDefinitionView WHERE TriggerObjectOrEventId IN ('Invoice','InvoiceLine','DebitMemo','DebitMemoLine','CreditMemo','CreditMemoLine','InvoiceLineTax','DebitMemoLineTax','CreditMemoLineTax','BillingSchedule','BillingPeriodItem') AND IsActive = TRUEApex トリガー:
SELECT Id, TableEnumOrId, Name, Status FROM ApexTrigger WHERE TableEnumOrId IN ('Invoice','InvoiceLine','DebitMemo','DebitMemoLine','CreditMemo','CreditMemoLine','InvoiceLineTax','DebitMemoLineTax','CreditMemoLineTax','BillingSchedule','BillingPeriodItem') AND Status = 'Active' - 保存後のレコードトリガーフローごとに、ロジックを [非同期で実行] パスに移動して、請求書の保存確定後に実行されるようにします。「トリガーフロー」を参照してください。
- Apexトリガーごとに、「Author Apex」権限を持つユーザーと協力して、ロジックをレコード保存外に移動します。保存の完了後に実行される変更イベントでキュー可能な Apex または Apex トリガーを使用します。「 Queueable Apex および Subscribe with Apex Triggers 」を参照してください。
オートメーションを変換したら、次の請求書バッチの実行をスケジュールします。「Generate Invoices Automatically Based on Billing Schedules」を参照してください。
以前の実行の請求書が [ドラフト処理中]、[転記処理中]、または [エラー] のままになっている場合は、請求書バッチの実行で [リカバリ] をクリックします。次に、請求書を再度生成します。
