機械翻訳について

Webサービスの問題のトラブルシューティング

webサービスに関連するオーダー管理の実装で発生する問題を修正します。

一致する行がありません

一致する行がありません

webサービスを使用して販売オーダーをインポートするとします。 ペイロードには次のものが含まれます:

<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber>
<ns2:InventoryOrganizationIdentifier>300000001384059</ns2:InventoryOrganizationIdentifier>

次のエラーが発生します:

An order was not created because no matching row for attribute ProductNumber with the value BIGSTORE1111 was found for the source order with the following details: source order BIGSTORE0007, source order line 2, source order schedule 2. Check the attribute value, and resubmit the order.

通常、Oracleデータベースにはインポートに含まれている値と同じ値が含まれていないため、一致する行なしエラーが発生します。 この例では、在庫品目のインポートがOracleデータベースで定義されていないか、webサービス・ペイロードで指定されている在庫組織に関連付けられていません。

SQLを使用して、Oracleデータベースを問い合せます。

SELECT HOU.ORGANIZATION_ID,
  HOUTL.NAME,
  HOUCL.CLASSIFICATION_CODE
FROM HR_ALL_ORGANIZATION_UNITS_F HOU,
  HR_ORGANIZATION_UNITS_F_TL HOUTL,
  HR_ORG_UNIT_CLASSIFICATIONS_F HOUCL
WHERE 
  HOU.ORGANIZATION_ID=HOUTL.ORGANIZATION_ID AND
  HOU.ORGANIZATION_ID =HOUCL.ORGANIZATION_ID AND
  HOUCL.CLASSIFICATION_CODE = 'INV'
ORDER BY 
  HOUTL.NAME;

問合せによって次のものが返されます:

ORGANIZATION_ID

NAME

CLASSIFICATION_CODE

300000001286109

BIGSTORE品目組織

INV

300000001286592

BIGSTORE_CN_DC1

INV

300000001286615

BIGSTORE_SG_DC1

INV

300000001286262

BIGSTORE_US_MFG1

INV

300000001286412

BSマスター在庫組織

INV

300000001286439

BS小売在庫組織

INV

別の問合せを実行して、在庫組織に関連付けられた在庫品目を取得します。

SELECT 
  ItemPEO.INVENTORY_ITEM_ID,
  ItemPEO.ORGANIZATION_ID,
  HOUTL.NAME,
  ItemPEO.ITEM_NUMBER,
  ItemPEO.INVENTORY_ITEM_STATUS_CODE
FROM EGP_SYSTEM_ITEMS_B ItemPEO,
  HR_ORGANIZATION_UNITS_F_TL HOUTL
where
 HOUTL.ORGANIZATION_ID = ItemPEO.ORGANIZATION_ID and
 ItemPEO.ITEM_NUMBER = 'BIGSTORE1111';

問合せによって次のものが返されます:

INVENTORY_ITEM_ID

ORGANIZATION_ID

NAME

ITEM_NUMBER

INVENTORY_ITEM_STATUS_CODE

300000001292032

300000001286109

BIGSTORE品目組織

BIGSTORE1111

アクティブ

ペイロードはInventoryOrganizationIdentifier>300000001384059<を送信しましたが、OracleデータベースにはORGANIZATION_IDの300000001286109が含まれています。

送信する正しい値を次に示します。

<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber>
<ns2:InventoryOrganizationIdentifier>300000001286109</ns2:InventoryOrganizationIdentifier>

ソース・オーダーをインポートしようとしています。 インポート・ペイロードには次のものが含まれます:

<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber> <ns2:InventoryOrganizationIdentifier>300000001384059</ns2:InventoryOrganizationIdentifier>

ただし、インポート中に次のエラーが発生します:

An order was not created because no matching row for attribute ProductNumber with the value BIGSTORE1111 was found for the source order with the following details: source order BIGSTORE0007, source order line 2, source order schedule 2. Check the attribute value, and resubmit the order.

この問題は、インポート・ペイロードの在庫組織がOracleデータベースで定義されていないため発生します。

この問題を解決するには、まずOracleデータベースに現在含まれている在庫組織のリストを取得します。 このSQLを実行します。

SELECT HOU.ORGANIZATION_ID,
  HOUTL.NAME,
  HOUCL.CLASSIFICATION_CODE
FROM HR_ALL_ORGANIZATION_UNITS_F HOU,
  HR_ORGANIZATION_UNITS_F_TL HOUTL,
  HR_ORG_UNIT_CLASSIFICATIONS_F HOUCL
WHERE
  HOU.ORGANIZATION_ID=HOUTL.ORGANIZATION_ID AND
  HOU.ORGANIZATION_ID =HOUCL.ORGANIZATION_ID AND
  HOUCL.CLASSIFICATION_CODE = 'INV'
ORDER BY
  HOUTL.NAME;

問合せが次のものを返すとします:

ORGANIZATION_ID

NAME

CLASSIFICATION_CODE

300000001286109

BIGSTORE品目組織

INV

300000001286592

BIGSTORE_CN_DC1

INV

300000001286615

BIGSTORE_SG_DC1

INV

300000001286262

BIGSTORE_US_MFG1

INV

300000001286412

BSマスター在庫組織

INV

300000001286439

BS小売在庫組織

INV

次に、インポート・ペイロードで指定されたインベントリ組織であるBIGSTORE1111の詳細を取得します。

SELECT
  ItemPEO.INVENTORY_ITEM_ID,
  ItemPEO.ORGANIZATION_ID,
  HOUTL.NAME,
  ItemPEO.ITEM_NUMBER,
  ItemPEO.INVENTORY_ITEM_STATUS_CODE
FROM EGP_SYSTEM_ITEMS_B ItemPEO,
  HR_ORGANIZATION_UNITS_F_TL HOUTL
where
 HOUTL.ORGANIZATION_ID = ItemPEO.ORGANIZATION_ID and
 ItemPEO.ITEM_NUMBER = 'BIGSTORE1111';

問合せが次のものを返すとします:

INVENTORY_ITEM_ID

ORGANIZATION_ID

NAME

ITEM_NUMBER

INVENTORY_ITEM_STATUS_CODE

300000001292032

300000001286109

BIGSTORE品目組織

BIGSTORE1111

アクティブ

次に、インポート・ペイロードを修正します。 この現在の値を変更します:

<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber> <ns2:InventoryOrganizationIdentifier>300000001384059</ns2:InventoryOrganizationIdentifier>

問合せが列ORGANIZATION_IDで返した値:

<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber> <ns2:InventoryOrganizationIdentifier>300000001286109</ns2:InventoryOrganizationIdentifier>

属性値

エンタープライズ・ビジネス・メッセージProcessSalesOrderFulfillmentEBMを使用して販売オーダーを作成し、このエラーが発生するとします。

Error Message: {http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/transformSalesOrder/DooDecompTransformSalesOrderComposite}ProcessSalesOrderFulfillmentResponseEBM
Fault ID default/DooDecompTransformSalesOrderComposite!11.1.5.0.0*soa_7289e448-8b78-408f-af5c-116da7e1d9d2/DecompositionProcess/70017-BpThw8-BpSeq55.49-2
Fault Time Sep 16, 2013 11:24:34 AM
Non Recoverable Business Fault :1 env:Server Attribute ORG_ID has invalid value 300000000562209 for service ProcessOrderValidation.

このエラーは、ペイロードで属性ORG_IDの値300000000562209が指定されていますが、オーダー管理データベースにはこの値が含まれていないために発生します。 ペイロードでは、属性BusinessUnitReferenceおよび属性BusinessUnitIdentificationも正しく指定されていません。

この問題を解決するには、データベースを問い合せます。

SELECT
  FABUV.BU_ID,
  FABUV.BU_NAME,
  FABUV.DEFAULT_SET_ID,
  IOP.ORGANIZATION_ID,
  IOP.ORGANIZATION_CODE,
  HAOU.NAME
FROM
  INV_ORG_PARAMETERS IOP,
  HR_ALL_ORGANIZATION_UNITS HAOU,
  FUSION.FUN_ALL_BUSINESS_UNITS_V FABUV
WHERE
  HAOU.ORGANIZATION_ID = IOP.ORGANIZATION_ID AND
  IOP.BUSINESS_unit_id = FABUV.BU_ID
ORDER BY
  IOP.ORGANIZATION_CODE,
  FABUV.BU_ID;

問合せが次のものを返すとします:

BU_ID

BU_NAME

DEFAULT_SET_ID

ORGANIZATION_ID

ORGANIZATION_CODE

NAME

300000001110916

USA1ビジネス・ユニット

300000001111782

300000001201056

001

シアトル倉庫

300000001110916

USA1ビジネス・ユニット

300000001111782

300000003887955

999

外部品目組織

300000001130053

USA2ビジネス・ユニット

300000001111783

300000001201066

002

アトランタ倉庫

300000001130053

USA2ビジネス・ユニット

300000001111783

300000001130184

003

シカゴ物流センター

300000001341196

中国ビジネス・ユニット

300000001341955

300000004396135

050

上海物流センター

300000001341196

中国ビジネス・ユニット

300000001341955

300000004396139

051

深セン倉庫

シカゴ物流センター(USA2ビジネス・ユニット)の販売オーダーを作成し、このビジネス・ユニットの属性BU_IDに300000001130053が含まれているとします。 問題を解決するには、これらの属性を定義する必要があります。 このコードをペイロードに追加します。

<corecom:BusinessUnitReference>
             <corecom:BusinessUnitIdentification>
              <!-- BUSINESS UNIT  ID-->
                 <corecom:AlternateObjectKey>
                     <corecom:ID>300000001130053</corecom:ID>
                 </corecom:AlternateObjectKey>
             </corecom:BusinessUnitIdentification>
  </corecom:BusinessUnitReference>

パフォーマンスの問題

OrderFulfillmentResponseServiceを使用してIntegration Cloud Serviceとの統合を設定し、履行明細のステータスを更新できるようにします。 処理する販売オーダーが大量になるまで正常に機能します。 更新するオーダー明細が数千件ある場合は、更新が約10分から15分で完了すると予想されますが、実際には2時間以上かかります。

統合では、コネクタの起動モード属性を非同期サービスまたは同期に設定するかどうかに関係なく、リクエストをパラレルで処理します。 たとえば、1,000個のリクエストがある場合、統合によってすべて同時に処理されます。 キューに入れられることはありません。 また、serviceOrderFulfillmentResponseServiceはボリュームを制限しません。 たとえば、1分以内に送信できるwebサービス呼び出しの数に制限はありません。

この問題は、通常、ホストIntegration Cloud Serviceに使用するサーバーが大量のトランザクションを処理するように最適化されていないために発生します。 この問題を修正するには、Integration Cloud Serviceをホストするサーバーを管理するユーザーと作業し、サーバーによって同時に処理できるスレッド数の追加など、より多くのトランザクションを処理するようにサーバーを最適化できるかどうかを確認します。

その他の奇妙な事柄

ペイロードをwebサービスReceiveOrderRequestに送信して、販売オーダーの作成をリクエストします。

<ns1:OrchestrationOrderRequest xmlns:ns2="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/model/">
  <ns2:SourceTransactionIdentifier>PMC-070716-013</ns2:SourceTransactionIdentifier>
  <ns2:SourceTransactionNumber>PMC-070716-013</ns2:SourceTransactionNumber>
  <ns2:BuyingPartyName>JAH CUSTOMER SHARED</ns2:BuyingPartyName>
  <ns2:BuyingPartyContactName>Peter Pan</ns2:BuyingPartyContactName>
  <ns2:TransactionalCurrencyCode>USD</ns2:TransactionalCurrencyCode>
  <ns2:TransactionOn>2016-07-06T02:12:01</ns2:TransactionOn>
  <ns2:RequestingBusinessUnitIdentifier>US_W_888_BU</ns2:RequestingBusinessUnitIdentifier>
  <ns2:PartialShipAllowedFlag>false</ns2:PartialShipAllowedFlag>
  <ns2:OrchestrationOrderRequestLine>

リクエストは正常に実行されているようですが、オーダー管理作業領域に販売オーダーが表示されません。 Oracle Enterprise Managerでフロー・トレースを実行すると、次が表示されます:

<bpelFault><faultType>0</faultType><selectionFailure xmlns="http://docs.xyz.org/wsbpel/2.0/process/executable"></selectionFailure></bpelFault>

また、次も表示されます:

Exception is thrown because the from-spec at line 1,616 is evaluated to be empty

また、次も表示されます:

AssignEILAMServiceInput (faulted)

<details>
  <from-spec>
    <from>$inputVariable.payload/client:OrchestrationOrderRequest/ns4:SourceTransactionSystem</from>
  </from-spec>
  <variable>
    <message>inputVariable</message>
  </variable>
  <fault>
    <bpelFault>
      <faultType>0</faultType>
      <selectionFailure/>
    </bpelFault>
  </fault>
</details>

たとえば:

フロー・トレース・インタフェースの画面印刷

リクエスト・ペイロードでソース・システムが指定されていないため、問題が発生します。 修正するには、ペイロードに属性SourceTransactionSystemを追加します。

<ns2:SourceTransactionSystem>ORA_BM_CPQ</ns2:SourceTransactionSystem>

たとえば:



<ns1:OrchestrationOrderRequest xmlns:ns2="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/model/">
  <ns2:SourceTransactionIdentifier>PMC-070716-013</ns2:SourceTransactionIdentifier>
  <ns2:SourceTransactionNumber>PMC-070716-013</ns2:SourceTransactionNumber>

  <ns2:SourceTransactionSystem>ORA_BM_CPQ</ns2:SourceTransactionSystem>

  <ns2:BuyingPartyName>GED CUSTOMER SHARED</ns2:BuyingPartyName>
  <ns2:BuyingPartyContactName>Peter Pan</ns2:BuyingPartyContactName>
  <ns2:TransactionalCurrencyCode>USD</ns2:TransactionalCurrencyCode>
  <ns2:TransactionOn>2016-07-06T02:12:01</ns2:TransactionOn>
  <ns2:RequestingBusinessUnitIdentifier>US_WT_DG09_BU</ns2:RequestingBusinessUnitIdentifier>
  <ns2:PartialShipAllowedFlag>false</ns2:PartialShipAllowedFlag>
  <ns2:OrchestrationOrderRequestLine>

フロー・トレースを使用する例を表示します。 詳細は、「オーダー管理から履行システムへのリクエストのルーティング」を参照してください。

Oracle Enterprise Managerの詳細は、https://www.oracle.com/technetwork/oem/enterprise-manager/overview/index.htmlを参照してください。

ソース・オーダーをインポートするには、オーダー・インポートwebサービスおよびオーダーの受入サービスを使用します。 インポートの結果としてオーダー管理が適用される保留のヘッダー詳細およびオーダー明細詳細が必要です。 オーダー管理が保留を適用するかどうか、適用されていない場合は適用しない理由を知る必要があります。

オーダー・インポートからのレスポンスは、非同期操作ごとのコールバックで詳細を提供します。 レスポンスの要素を確認します。

ord:ReturnStatus?</ord:ReturnStatus>
<!--Optional:-->
ord:MessageName?</ord:MessageName>
<!--Optional:-->
ord:MessageText?</ord:MessageText>

これらの要素は、サービスによって販売オーダーが正常に処理されたか、正常に処理されなかった場合はエラーおよびエラー・テキストを示します。

RequestHold操作および一時停止タスクのリリース操作は非同期です。 コールバックからレスポンスを受信するには、コールバックを実装する必要があります。