ダウンストリーム履行の問題のトラブルシューティング
ダウンストリーム履行で発生するオーダー管理実装の問題を修正します。
一般的なエラー
問題 |
解決 |
---|---|
エラー・メッセージが表示されます。
|
販売オーダーのリクエスト出荷日を設定して、品目のスケジュール、出荷および搬送に十分な時間があるようにします。 代替方法:
|
オーダー管理のオーダー明細の価格が、売掛/未収金の請求書の価格と異なります。 1ドルもしくはそれ以下でしばしば値引きされます。 |
オーダー管理から売掛管理に送信される前に、価格設定によって値が端数処理されるように端数処理ルールを作成します。 詳細は、「端数処理ルールの管理」を参照してください。 この目的のために端数処理ルールを作成し、販売オーダーをインポートする場合は、インポート・ペイロードで価格の確定属性をNに設定する必要があります。 Yの場合、価格は凍結され、価格設定では端数処理ルールは適用されません。 詳細は、「販売オーダーの価格を確定」を参照してください。 |
与信チェック保留をリリースしてオーダーを承認した後でも、履行明細の保留をリリースできません。 次のようなエラーが発生します:
|
この問題は、オーケストレーション・プロセスに予約タスクがあるが、実際にはそのタスクを使用していない場合に発生することがあります。 オーケストレーション・プロセス定義を調べて、使用していない予約タスクを削除します。 |
webサービスを使用して販売オーダーを作成し、価格を更新しましたが、次のいずれかのエラーのようなエラーが発生しました:
この問題は、レスポンス・ペイロードにSourceChargeComponentIdentifier属性およびHeaderCurrencyUnitPrice属性の値を含めない場合に発生することがあります。 |
これらの値を含める必要があります。 返品を作成する場合は、元の販売オーダーからこれらの値を含める必要があります。 詳細は、「独自のタスク・タイプの作成」を参照してください。 |
請求の問題があります
問題 |
解決 |
---|---|
AS54888デスクトップ・コンピュータなど、通常出荷する品目があります。 品目に対する請求は必要ですが、実際には出荷する必要はありません。 品目の属性を有効にします。
販売オーダーを作成し、AS54888品目を追加し、送信をクリックします。 AS54888は在庫保有可能でも出荷可能でもないが、明細は出荷待機中ステータスでスタックしているため、オーケストレーション・プロセスは出荷ステップをスキップします。 時々エラーが発生します。
このエラーは、オーケストレーション・プロセスの出荷ステップで発生します。 |
この問題は、オーダー管理の履行明細が製品情報管理作業領域のマスター組織から品目の属性値を取得するため発生します。 在庫管理作業領域の在庫組織から属性値は取得されません。 問題を修正するには、品目を出荷しないが請求を行うオーケストレーション・プロセスに割り当てる割当ルールを作成します。 たとえば:
|
インポートAutoInvoiceスケジュール済プロセスの実行時にエラーが発生します。
|
このエラーは、設定中にIDではなく値を設定すると発生します。 試す:
スケジュール済プロセスの詳細は、「受注から入金への設定のガイドライン」および「会社間売掛/未収金請求書インポート詳細の更新」を参照してください。 |
エラーが発生しました。
|
このエラーは、オーダー・ヘッダーまたはオーダー明細に支払条件を設定せず、顧客アカウント設定で支払条件が設定されていない場合に発生します。 アカウントの設定時に支払条件を設定します。 Order Managementでは、通常、販売オーダーの作成時に顧客アカウント設定から支払条件が設定されます。 支払条件の指定方法を学習します。 詳細は、「販売オーダーでの顧客詳細の表示の概要」を参照してください。 かわりに、オーダー改訂を作成するようにユーザーに指示してから、オーダー・ヘッダーまたはオーダー明細に支払条件を設定します。 |
販売オーダーの発行後の顧客データの非アクティブ化
販売オーダーの発行後に販売オーダーの顧客データを非アクティブ化し、オーダーで何らかの変更が必要な場合、Order Managementが非アクティブ化されている顧客データを参照するすべての明細を履行してクローズするのを待つ必要がある場合があります。
たとえば、次のことを想定します:
- 販売オーダーを作成する手順:
- 請求先顧客をコンピュータ供給およびレンタルに設定します。
- 2つのオーダー明細を追加します。
- オーダーを発行します。
- Order Managementでは、オーダー明細1が売掛管理に送信され、明細のステータスが請求待ちになります。
- オーダー明細2は手動出荷ステータスです。
- Oracle Customer Data ManagementでComputer Supply and Rentalsの請求先顧客を非アクティブ化します。
- 明細2の数量を変更する必要があるため、オーダー改訂を作成しますが、改訂の発行時にエラーが発生します。
THE VALUE XXX GIVEN FOR ATTRIBUTE BILL-TO CUSTOMER WHICH IS DEPENDENT ON ATTRIBUTE BILL-TO CONTACT WITH VALUE YYY IS INVALID
このエラーは、改訂の発行時にOrder ManagementがComputer Supply and Rentalsの請求先顧客を検証しようとしたが、Computer Supply and Rentalsがアクティブでなくなったことが判明したために発生します。 出荷先顧客を非アクティブ化すると、同様のエラーが発生する可能性があります。
この問題を回避するには、オーダーのこれらの明細がすべてクローズ済ステータスになるまで待ってから、改訂を作成します。
請求中に通貨を換算できない
エラーが発生しました。
The conversion type is invalid. If the currency of the transaction is the same as the ledger currency, enter User and set CONVERSION_RATE to 1.
この問題は、オーダー管理で換算レート・タイプのデフォルトとして使用できる値を設定していない場合に発生します。 オーダー管理では、外貨トランザクションを元帳通貨に換算するときに換算レート・タイプが使用されます。
-
「設定および保守」作業領域に移動し、「タスク」>「検索」をクリックしてから、管理者プロファイル値の管理タスクを検索して開きます。
-
「管理者プロファイル値の管理」ページで、AR_DEFAULT_EXCHANGE_RATE_TYPEのプロファイル・オプション・コード属性を検索します。
-
Profile Values(プロファイル値)領域で、値を追加します。 プロファイル・レベル属性をサイトに設定してください。
オーダー管理拡張を使用して変換を実行する場合は、プロファイル値を設定するかわりに、この拡張コードを使用します。
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
def orgId = header.getAttribute("BusinessUnitIdentifier");
def buPrimaryLedgerId=getBUPrimaryLedgerId(orgId);
def ledgerCurrCode=getLedgerCurrency(buPrimaryLedgerId);
def headerCurrCode=header.getAttribute("TransactionalCurrencyCode");
if(!headerCurrCode.equalsIgnoreCase(ledgerCurrCode) && header.getAttribute("CurrencyConversionTypeCode")==null){
String messageText = "Currency Conversion Type must be specified on the Order Header when the Sales Order Currency and the Currency associated to the Selling Business Unit is not the same";
List messages = new ArrayList();
messages.add(new Message(Message.MessageType.ERROR, messageText));
ValidationException ex = new ValidationException(messages);
throw ex;
}
Object getBUPrimaryLedgerId(Long orgId) {
def buPrimaryLedgerId;
def bussUnitPVO=context.getViewObject("oracle.apps.financials.commonModules.businessUnits.publicView.BusinessUnitPVO");
def buvc = bussUnitPVO.createViewCriteria();
def buvcRow = buvc.createViewCriteriaRow();
buvcRow.setAttribute("BusinessUnitId",orgId);
def buRowset = bussUnitPVO.findByViewCriteria(buvc, -1);
if(buRowset.hasNext()){
def buRow = buRowset.next();
buPrimaryLedgerId=buRow.getAttribute("PrimaryLedgerId");
}
return buPrimaryLedgerId;
}
Object getLedgerCurrency(String ledgerId) {
def ledgerCurrCode;
def ledgerPVO=context.getViewObject("oracle.apps.financials.generalLedger.ledgers.ledgerDefinitions.publicView.LedgerPVO");
def lvc = ledgerPVO.createViewCriteria();
def lvcRow = lvc.createViewCriteriaRow();
lvcRow.setAttribute("LedgerId",ledgerId);
def lRowset = ledgerPVO.findByViewCriteria(lvc, -1);
if(lRowset.hasNext()){
def ledgerRow = lRowset.next();
ledgerCurrCode=ledgerRow.getAttribute("CurrencyCode");
}
return ledgerCurrCode;
}
販売オーダーのステータスに問題があります
問題 |
解決 |
---|---|
販売オーダーを作成して送信します。 サプライ・チェーン・オーケストレーションにより供給オーダーが作成され、品目が在庫に予約されます。 今日は2021年1月1日であるとします。 Global Order Promisingでは、サプライ・チェーンを調べて、1月7日まで品目を履行できないと判断し、これらの詳細をオーダー管理に伝達します。 オーダー管理では、履行明細の予定出荷日属性が1月7日に設定され、オーダー明細のステータス属性が待機中に変更されます。 オーダー明細のステータスが待機中ではなく出荷待機中になると思っていました。 在庫管理作業領域に移動し、「出荷」>「出荷明細の管理」を選択しますが、販売オーダーの出荷明細が見つかりません。 次に、何が起きたかを示します。 履行明細の予定出荷日属性がバック・トゥ・バック・フローの現在の日付の5日以上後に発生した場合、オーケストレーション・プロセスによって、オーダー明細のステータス属性が待機中に設定されます。 |
供給オーダーの明細の供給タイプ属性が次の場合:
詳細は、供給プロセスの管理を参照してください。 |
報酬中に他のシステムにリクエストを送信するカスタム・オーケストレーション・プロセスがあります。たとえば、第三者ベンダーへの与信チェックのリクエストの送信、取引コンプライアンスへのスクリーニング・リクエストの送信などがあります。 実行時に販売オーダーを改訂するとオーケストレーション・プロセスが実行されますが、オーダーは待ち状態の変更ステータスでスタックします。 この問題は、オーダー管理がリクエストから応答を受信しないために発生することがあります。 |
|
倉庫は自分の品目の在庫を予約していません
販売オーダーを作成し、送信し、これらの値を持つ履行明細があるとします。
属性 |
値 |
---|---|
項目 |
AS54888 |
数量 |
100 |
オーダー管理作業領域で履行ビューに移動し、履行明細にエラーがあることを確認します。
A reservation was not created because the reservation quantity is greater than the available-to-reserve quantity.
いくつかの問題がこのエラーの原因になる可能性があります。 試行できる修正事項を次に示します。
倉庫の変更
オーダー管理作業領域に移動し、販売オーダーをオープンし、履行明細の倉庫属性を使用して倉庫を変更します。
有効在庫数量ルールの変更
オーダー明細をスケジュールするための無制限有効在庫数量ルールを設定するとします。 ただし、実行時に、ソーシング倉庫に手持数量はありません。
無制限有効在庫数量ルールを使用する場合、Order Promisingでは実際の供給はトラッキングされません。 供給は常に使用可能であると想定しています。 この問題を修正するには、無制限有効在庫数量ルールを削除できます。
ソース・ルールの変更
ソース・ルールを作成したが、数量:自または数量:より小さい属性を設定しなかったとします。 これらの値は、Order Promising作業領域またはオーダーのインポート中に設定できます。
この問題を解決する方法を次に示します。
-
「グローバル・オーダー納期回答」作業領域に移動します。
-
「グローバル・オーダー納期回答」ページで、「タスク」>「ソース・ルールの管理」をクリックします。
-
「ソース・ルールの管理」ページで、ソース・ルールを検索して開きます。
-
「ソース・ルールの編集」ページの有効開始日で、「表示」>「列」をクリックし、「数量:自」オプションおよび「次の数量未満」オプションにチェック・マークを追加します。
-
値を設定します。
属性
値
数量: 自
0
次の数量未満
9999999
これらの値はほとんどの実装で機能しますが、要件を満たすために異なる値を使用できます。 詳細は、「数量およびサプライヤに従ってソーシングするソース・ルールの作成」を参照してください。
ソース・ルールをインポートする場合は、作業領域を使用するかわりに、インポート・ペイロードで値を設定します。
属性
値
FROM_QTY
0
TO_QTY
9999999
-
スケジュール済プロセス作業領域に移動し、「Order Promisingサーバーのリフレッシュと起動」スケジュール済プロセスを実行します。
オーケストレーション・プロセスの変更
オーケストレーション・プロセスから予約ステップを削除し、エラー・メッセージを回避できます。 使用可能な手持数量がない場合でも、販売オーダーは出荷待ちステータスになります。 ステップを削除する場合は、各販売オーダーの在庫を手動で予約する必要があります。
自分の販売実績を更新できない
エラーが発生しました:
You do not have the required access to update line attribute "Sales Credit". Source Order Information: 36919901-3-1
拡張でSourceTransactionSalesCreditIdentifierを使用して、同じflineIdにあるすべての販売実績のflineIdを移入するとします。 同じ履行明細に複数の販売実績がある場合は、拡張によってSourceTransactionSalesCreditIdentifierに対して複数のレコードが作成され、拡張によって明細に適用するクレジットが認識されません。
この問題を回避するには、SalesCreditIdentifierを使用してSourceTransactionSalesCreditIdentifierの値を明示的に移入します:
sc.setAttribute("SourceTransactionSalesCreditIdentifier", sc.getAttribute("SalesCreditIdentifier"));
たとえば:
無効 | 有効 |
---|---|
def sc = salesCredits.createRow(); sc.setAttribute("SourceTransactionSalesCreditIdentifier", flineId); sc.setAttribute("SalespersonIdentifier", 5507); sc.setAttribute("Percent", new BigDecimal(50)); sc.setAttribute("SalesCreditTypeCode", 1); salesCredits.insertRow(sc); |
def sc = salesCredits.createRow(); sc.setAttribute("SalespersonIdentifier", 5507); sc.setAttribute("Percent", new BigDecimal(50)); sc.setAttribute("SalesCreditTypeCode", 1); salesCredits.insertRow(sc); sc.setAttribute("SourceTransactionSalesCreditIdentifier", sc.getAttribute("SalesCreditIdentifier")); |