2016-01-28 6 views
5

私はingram microの注文テストを作成しようとしており、結果は得られていません。 Ingramマイクロ統合の正しい注文テストを作成するには?

<OrderRequest> 
    <Version>2.0</Version> 
    <TransactionHeader> 
     <SenderID>123456789</SenderID> 
     <ReceiverID>987654321</ReceiverID> 
     <CountryCode>MD</CountryCode> 
     <LoginID>ingram_login</LoginID> 
     <Password>ingram_password</Password> 
     <TransactionID>54321</TransactionID> 
    </TransactionHeader> 
    <OrderHeaderInformation> 
     <BillToSuffix /> 
     <AddressingInformation> 
     <CustomerPO>TEST PO ONLY - DO NOT SHIP</CustomerPO> 
     <ShipToAttention>Mrs Jones</ShipToAttention> 
     <EndUserPO>EndUserPO_1</EndUserPO> 
     <ShipTo> 
      <Address> 
       <ShipToAddress1>Red House Company</ShipToAddress1> 
       <ShipToAddress2>1730 105TH ST</ShipToAddress2> 
       <ShipToAddress3/> 
       <ShipToCity>NEW RICHMOND</ShipToCity> 
       <ShipToProvince>WI</ShipToProvince> 
       <ShipToPostalCode>54017</ShipToPostalCode> 
      </Address> 
     </ShipTo> 
     </AddressingInformation> 
     <ProcessingOptions> 
     <CarrierCode>F2</CarrierCode> 
     <AutoRelease>H</AutoRelease> 
     <ThirdPartyFreightAccount/> 
     <KillOrderAfterLineError>N</KillOrderAfterLineError> 
     <ShipmentOptions> 
      <BackOrderFlag>Y</BackOrderFlag> 
      <SplitShipmentFlag>N</SplitShipmentFlag> 
      <SplitLine>N</SplitLine> 
       <ShipFromBranches>10</ShipFromBranches> 
      <DeliveryDate>20090901</DeliveryDate> 
     </ShipmentOptions> 
     </ProcessingOptions> 
     <DynamicMessage> 
     <MessageLines>Deliver to Mrs Jones</MessageLines> 
     </DynamicMessage> 
    </OrderHeaderInformation> 
    <OrderLineInformation> 
     <ProductLine> 
     <SKU>TSXML3</SKU> 
     <Quantity>1</Quantity> 
     <CustomerLineNumber/> 
     <ReservedInventory> 
      <ReserveCode>C</ReserveCode> 
      <ReserveSequence>01</ReserveSequence> 
     </ReservedInventory> 
     <CustomerPartNumber/> 
     <UPC/> 
     <ManufacturerPartNumber/> 
     <ShipFromBranchAtLine>10</ShipFromBranchAtLine> 
     </ProductLine> 
     <CommentLine> 
     <CommentText>TEST PO ONLY - DO NOT SHIP</CommentText> 
     </CommentLine> 
    </OrderLineInformation> 
    <ShowDetail>1</ShowDetail> 
</OrderRequest> 

Ingram Micro社の応答:

この

は、送信するXML要求である

<OrderResponse> 
    <Version>2.0</Version> 
    <TransactionHeader> 
     <SenderID>987654321</SenderID> 
     <ReceiverID>123456789</ReceiverID> 
     <ErrorStatus ErrorNumber="20196"> 
ERROR: One Productline can not have multiple parts in it when ShowDetail='2' 
</ErrorStatus> 
     <DocumentID>{5535EC2F-DB51-4D35-B492-6425A0B9F62D}</DocumentID> 
     <TransactionID>54321</TransactionID> 
     <TimeStamp>2016-01-27T11:45:19</TimeStamp> 
    </TransactionHeader> 
</OrderResponse> 

私がしようと応答ErrorStatusについて研究しているとProductlineと私は考え出したていません溶液。どうやら

<ManufacturerPartNumber> Manufacturer Part Number - Do not specify if <SKU> or <UPC> are included

<UPC> EAN/UPC Number - Do not specify if <ManufacturerPartNumber> or <SKU> are included

<SKU> Ingram Micro product code Number - Do not specify if <ManufacturerPartNumber> or <UPC> are included

:事前に おかげで

申し訳ありませんが、ingram-microタグ

答えて

2

はちょうど私が見つけることができるIM-XML documentationであり見ていない、あなたはあなたの例の<ProductLine>素子部にはいくつかの明白な問題を抱えています上記の要素の値の1つのみを指定し、例ではSKUUPCの値を指定します。

<ReservedInventory> Contains reserved Inventory information. - Unless required, do not specify.

これが必要な場合は、ドキュメントのすばやいスキムから私には分かりませんが、この要素の値を指定すると、例のどこにも明確な表示が表示されず、理由が示唆されますあなたの事例では必要です。ですから、これを「多分」問題と呼ぶことにしましょう。

<ShipFromBranchAtLine>

私は、ドキュメントでこの要素への参照を見つけることができなかったので、それはおそらく無効です。この要素に最も近いのは<ShipFromBranches>で、<ProductLine>要素には属しませんでした。

<CustomerPartNumber>

もう一度、ドキュメントに記載されていることはありません。

<RequestedPrice> Special Bid Price Parent : <SpecialBid>

あなたはそれが<SpecialBid>要素の内側にあるべきとき、ProductLineの直接の子として<RequestedPrice>を持っています。私たちは(と仮定すると、それらの部品を引き抜いた場合

<ProductLine> 
     <SKU>NV9159</SKU> 
     <Quantity>1</Quantity> 
     <CustomerLineNumber/> 
     <!-- ResvervedInventory : Unless required, do not specify 
     <ReservedInventory> 
      <ReserveCode>C</ReserveCode> 
      <ReserveSequence>01</ReserveSequence> 
     </ReservedInventory> 
     --> 
     <!-- CustomerPartNumber element not defined in spec. 
     <CustomerPartNumber/> 
     --> 
     <!-- UPC : Do not specify if SKU included 
     <UPC>SP-RACKTRAY</UPC> 
     --> 
     <!-- ManufacturerPartNumber : Do not specify if SKU included 
     <ManufacturerPartNumber/> 
     --> 
     <!-- ShipFromBranchAtLine element not defined in spec. 
     <ShipFromBranchAtLine>10</ShipFromBranchAtLine> 
     --> 
     <!-- RequestedPrice : parent = SpecialBid 
     <RequestedPrice>163.36</RequestedPrice> 
     --> 
    </ProductLine> 

だから考慮した上記のすべてで、私はそうのように(私たちのかもしれないために、あるいは潜在的に間違っている)間違ったように見えた部分をコメントアウト

:あなたが戻ってきているエラーへの直接参照して、

最後
<ProductLine> 
     <SKU>NV9159</SKU> 
     <Quantity>1</Quantity> 
     <CustomerLineNumber/> 
    </ProductLine> 

:それらのどれもがそこにありません)と要素を空にするためにそれらを設定する必要があり、それはのようになります

これは、<SKU><UPC>の両方の値を設定することに直接起因すると考えられます。これは、システムに「複数の部分」を含めることを混乱させる可能性があります。 2つの異なる実際の部品)を指定します。

しかし、それはそうではありませんでした場合でも、それはそのエラーの実際の文言与えられ、実行しようとするのが最も簡単なことのように思える、単にからShowDetail要素の値を変更しようとするかもしれません:

<ShowDetail>2</ShowDetail> 

<ShowDetail>1</ShowDetail> 

私が代わりにProductLine要素と他の問題を修正奨励するだろうが、一人でで行くための応答エラーで、あなたはそれが違いを作ったかどうかを確認するためにShowDetailを変更してみたのですか?

+0

私はShowDetailを1と0で入れてみましたが、レスポンスは 'エラー:ShowDetail = '2'なしで指定した部品番号で注文することはできません – miglio

+0

私はすでにドキュメントを読んでいました。それは非常に複雑です。私はingramサポートに連絡して、彼らは私にはまだ正しいxml構造体を与えていません。ご協力いただきありがとうございます。 – miglio

1

私はこのようproduct lineを設定してデータを送信しようとしていたしました:私は、これはあなたを助けることを願ってい

<?xml version="1.0" encoding="ISO-8859-1"?> 
<OrderResponse> 
    <Version>2.0</Version> 
    <TransactionHeader> 
     <SenderID>987654321</SenderID> 
     <ReceiverID>123456789</ReceiverID> 
     <ErrorStatus ErrorNumber="21340">Order Rejected</ErrorStatus> 
     <DocumentID>{584B79A8-E320-4183-A1BB-3DEE24CA673A}</DocumentID> 
     <TransactionID>54321</TransactionID> 
     <TimeStamp>2016-02-08T05:49:12</TimeStamp> 
    </TransactionHeader> 
    <OrderInfo> 
     <OrderNumbers> 
      <BranchOrderNumber></BranchOrderNumber> 
      <CustomerPO>TEST PO ONLY - DO NOT SHIP</CustomerPO> 
      <ShipToAttention>Mrs Jones</ShipToAttention> 
      <ThirdPartyFreightAccount></ThirdPartyFreightAccount> 
      <ShipToAddress1></ShipToAddress1> 
      <ShipToAddress2></ShipToAddress2> 
      <ShipToCity></ShipToCity> 
      <ShipToProvince></ShipToProvince> 
      <ShipToPostalCode></ShipToPostalCode> 
      <AddressErrorMessage AddressErrorType=" "></AddressErrorMessage> 
      <ContractNumber></ContractNumber> 
      <OrderSuffix Suffix=""> 
       <LineInformation> 
        <ProductLine> 
         <LineError></LineError> 
         <SKU>TSXML3</SKU> 
         <UnitPrice>0.00</UnitPrice> 
         <IngramLineNumber></IngramLineNumber> 
         <CustomerLineNumber>000</CustomerLineNumber> 
         <ShipFromBranch>10</ShipFromBranch> 
         <OrderQuantity>1</OrderQuantity> 
         <AllocatedQuantity>0</AllocatedQuantity> 
         <BackOrderedQuantity>0</BackOrderedQuantity> 
         <BackOrderETADate></BackOrderETADate> 
         <PriceDerivedFlag></PriceDerivedFlag> 
         <ForeignCurrency></ForeignCurrency> 
         <FreightRate>0.00</FreightRate> 
         <TransitDays>0</TransitDays> 
         <LineBillToSuffix>000</LineBillToSuffix> 
        </ProductLine> 
        <CommentLine> 
         <CommentText>TEST PO ONLY - DO NOT SHIP</CommentText> 
         <CommentLineNumber></CommentLineNumber> 
        </CommentLine> 
       </LineInformation> 
      </OrderSuffix> 
     </OrderNumbers> 
    </OrderInfo> 
</OrderResponse> 

<ProductLine> 
<SKU>TSXML3</SKU> 
<Quantity>1</Quantity> 
<CustomerLineNumber/> 
<ReservedInventory> 
    <ReserveCode>C</ReserveCode> 
    <ReserveSequence>01</ReserveSequence> 
</ReservedInventory> 
</ProductLine> 

私はこの応答を得ました。

関連する問題