No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
Partner Order Submit API
Partner Order Submit API を使用すると、注文をすぐに送信したり、非同期で送信したりできます。
構文
1channel_orders.ServiceOrderProcessor.sendOrder()
2channel_orders.ServiceOrderProcessor.sendOrderAsync()使用方法
複数の注文を作成または更新し、同じトランザクションで送信する場合、sendOrderAsync を使用します。詳細は、このセクションの例を参照してください。
ルールとガイドライン
これは Apex 実装であるため、Apex のすべての使用ルールおよび制限が適用されます。現在、コールごとに 1 つの注文のみをサポートしています。
Partner Submit API は、有効な [Service Order ID (サービス注文 ID)] を使用して注文を作成した後に、注文を送信するために使用されます。Channel Order App、データ読み込み、または自動処理を使用して、サービス注文およびサービス注文の詳細レコードを作成できます。
各注文には、次の項目を含める必要があります。
| 項目表示ラベル | 項目名 | 説明 |
|---|---|---|
| Created with New COA (新しい COA で作成されている) | Created_with_new_COA__c | Channel Order App の最新バージョンを使用していることを示します。 |
| Contract (契約) | Partner_Contract_Rules__c | この項目は、契約条件レコードへのルックアップです。 |
| Customer Company Name (顧客の会社名) | Customer__c | この項目は、住所や組織の詳細が含まれる顧客レコードへのルックアップです。 |
| Date Partner Received Customer Order (パートナーが顧客の注文を受信した日付) | Date_Partner_Received_Customer_Order__c | 注文を受信した日付。 |
| Date Customer Accepted SFDC Service Agreement (顧客が SFDC サービス契約に同意した日付) | Date_Customer_Accepted_SFDC_Svc_Agrmnt__c | 顧客が salesforce.com サービス契約に同意した日付。OEM 契約の場合にのみ必要になります。 |
| I Certify a Corresponding Order is Rec'd (対応する注文を受信したことを証明します) | I_certify__c | 注文を受信したことの確認。 |
| Order Type (注文種別) | Order_Type__c | 使用可能な値:
|
| Service Order ID (サービス注文 ID) | Name | サービス注文の ID。(標準項目。CHANNEL_ORDERS__ のプレフィックスは付かない) |
| Service Order Status (サービス注文の状況) | Service_Order_Status__c | サービス注文の現在の状況。
|
| Service Start Date (サービス開始日) | Service_Start_Date__c | サービスの開始日。 |
| 項目表示ラベル | 項目名 | 説明 |
|---|---|---|
| Billing Frequency (請求サイクル) | pc_Billing_Frequency__c | 上書き権限が付与されていない限り、salesforce.com との契約と一致する必要があります。 |
| Cancellation Terms (days) (解約期間 (日)) | pc_Cancellation_Terms__c | 上書き権限が付与されていない限り、salesforce.com との契約と一致する必要があります。 |
| Contract Auto Renew (契約の自動更新) | pc_Contract_Auto_Renew__c | 上書き権限が付与されていない限り、salesforce.com との契約と一致する必要があります。 |
| Contract Length (契約期間) | pc_Contract_Length__c | 上書き権限が付与されていない限り、salesforce.com との契約と一致する必要があります。 |
| Customer Price (顧客価格) | Customer_Price_Per_Month__c | 毎月の単位あたりの価格。PNR 商品の場合にのみ必要になります。 |
| Partner Contract Term (パートナー契約条件) | pc_Partner_Contract_Term__c | この項目は、契約条件レコードへのルックアップです。 |
| Product (商品) | Product_Name__c | この項目は、商品カタログレコードへのルックアップです。 |
| Renewal Terms (months) (更新期間 (月)) | pc_Renewal_Terms__c | 上書き権限が付与されていない限り、salesforce.com との契約と一致する必要があります。 |
| Service Orders (サービス注文) | Partner_Order__c | この項目は、サービス注文へのルックアップです。 |
| SFDC Invoice Description (SFDC 請求書の説明) | Product_Line_Description__c | 省略可能。この項目には、請求書の追加情報 (識別情報など) が含まれます。 |
| Total Quantity (合計数量) | Quantity__c | サービス注文の商品カタログの合計数量。 |
メソッド
ServiceOrderProcessor オブジェクトでは、次のメソッドがサポートされています。
| 名前 | 引数 | 説明 |
|---|---|---|
| sendOrder | ID | 1 つの ID を使用してすぐに注文を送信します。 |
| sendOrder | ID のセット | ID のセットを使用してすぐに注文を送信します。 |
| sendOrderAsync | ID | 1 つの ID を使用して非同期に注文を送信します (@future)。 |
| sendOrderAsync | ID のセット | ID のセットを使用して非同期に注文を送信します (@future)。 |
例: Partner Order Submit API の一括処理
上記のとおり、一度に処理できるコールは 1 つのみです。次の例では、一括処理ジョブを使用してこの制限を回避しています。
次の例では、状態が [Draft (ドラフト)] の注文が 100 件ある場合、100 回の実行が含まれる 1 つの一括処理ジョブが最後の行で作成されます (1 回の実行で処理できるレコードは 1 つのみであるためです) 。
1//Batch Apex class
2global class COABatchClass implements Database.batchable<sObject>, Database.AllowsCallouts, Database.Stateful{
3 final String DRAFT_STATUS = 'Draft';
4 global final String query =
5 'select Id, CHANNEL_ORDERS__Service_Order_Status__c ' +
6 ' from CHANNEL_ORDERS__Service_Order__c where CHANNEL_ORDERS__Service_Order_Status__c =: DRAFT_STATUS';
7
8 global Database.QueryLocator start(Database.BatchableContext BC){
9 return Database.getQueryLocator(query);
10 }
11
12 global void execute(Database.BatchableContext info, List<CHANNEL_ORDERS__Service_Order__c> scope){
13 for(CHANNEL_ORDERS__Service_Order__c s : scope){
14 CHANNEL_ORDERS.ServiceOrderProcessor.sendOrder(s.Id);
15 }
16 }
17 global void finish(Database.BatchableContext BC){}
18}
19
20//Batch call
21Id batchInstanceId = Database.executeBatch(new COABatchClass(), 1);