2

getPostingTransactionSummary Web サービス アクションを使用する際に、TBA との統合レコードを使用してトランザクション サマリー レコードの複数ページをリクエストするときに、最近問題に遭遇しました。

最初のリクエストは一貫して成功することがわかりましたが、後続のページに対する次のリクエストは失敗し、次のエラーが発生します。

ページ > 1 の場合、検索パラメータは元の検索と正確に一致する必要があります

「getPostingTransactionSummary がエラーを返します: ページ > 1 の場合、検索パラメーターは元の検索と正確に一致する必要があります」というラベルの付いた SuiteAnswer 33416 の提案に従いました。次に、最初のページを最初にリクエストしていることを確認し、フィールドまたはフィルターのパラメーターが変更されていないことを確認し、すぐに 2 番目のページをリクエストしていることを確認しました。

最初のページの任意の Web サービス エンドポイントへのすべての呼び出しが常に成功するため、署名の生成に使用されるメカニズムは正しいように見えます。

以下は、再現に使用されるリクエストのシーケンスを表しています (実際のデータはモックされています)。

最初のページのリクエスト:

<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn2="urn:messages_2015_2.platform.webservices.netsuite.com" xmlns:urn="urn:core_2015_2.platform.webservices.netsuite.com">
    &lt;x:Header>
        <urn:tokenPassport>
            <urn1:account>1234567</urn1:account>
            <urn1:consumerKey>12345</urn1:consumerKey>
            <urn1:token>1234</urn1:token>
            <urn1:nonce>62005285</urn1:nonce>
            <urn1:timestamp>1478114023</urn1:timestamp>
            <urn1:signature algorithm="HMAC-SHA256">NIhrCvTi2SpGfhxbxO8N09WQ7mvXw7oJICiEewCtm1M=</urn1:signature>
        </urn:tokenPassport>
    &lt;/x:Header>
    &lt;x:Body>
        &lt;urn2:getPostingTransactionSummary>
            &lt;urn2:fields>
                &lt;urn:period>true</urn:period>
                &lt;urn:account>true</urn:account>
                &lt;urn:location>true</urn:location>
                &lt;urn:subsidiary>true</urn:subsidiary>
            &lt;/urn2:fields>
            &lt;urn2:filters>
                &lt;urn:period>
                    &lt;urn:recordRef internalId="1"/>
                    &lt;urn:recordRef internalId="2"/>
                    &lt;urn:recordRef internalId="3"/>
                &lt;/urn:period>
                &lt;urn:account>
                    &lt;urn:recordRef internalId="985" type="account"></urn:recordRef>
                &lt;/urn:account>
            &lt;/urn2:filters>
            &lt;urn2:pageIndex>1</urn2:pageIndex>
        &lt;/urn2:getPostingTransactionSummary>
    &lt;/x:Body>
</x:Envelope>

最初のページの応答:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
        <platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2015_2.platform.webservices.netsuite.com">
            <platformMsgs:nsId>WEBSERVICES_1234</platformMsgs:nsId>
        </platformMsgs:documentInfo>
    </soapenv:Header>
    <soapenv:Body>
        <getPostingTransactionSummaryResponse xmlns="urn:messages_2015_2.platform.webservices.netsuite.com">
            <platformCore:getPostingTransactionSummaryResult xmlns:platformCore="urn:core_2015_2.platform.webservices.netsuite.com">
                <platformCore:status isSuccess="true"/>
                <platformCore:totalRecords>2150</platformCore:totalRecords>
                <platformCore:pageSize>1000</platformCore:pageSize>
                <platformCore:totalPages>3</platformCore:totalPages>
                <platformCore:pageIndex>1</platformCore:pageIndex>
                <platformCore:postingTransactionSummaryList>
                    <platformCore:postingTransactionSummary>
                        <platformCore:period internalId="1"/>
                        <platformCore:account internalId="985"/>
                        <platformCore:subsidiary internalId="1"/>
                        <platformCore:amount>100</platformCore:amount>
                    </platformCore:postingTransactionSummary>
                    <platformCore:postingTransactionSummary>
                        <platformCore:period internalId="1"/>
                        <platformCore:account internalId="985"/>
                        <platformCore:location internalId="3"/>
                        <platformCore:subsidiary internalId="2"/>
                        <platformCore:amount>100</platformCore:amount>
                    </platformCore:postingTransactionSummary>
                    .... MORE RECORDS HERE
                </platformCore:postingTransactionSummaryList>
            </platformCore:getPostingTransactionSummaryResult>
        </getPostingTransactionSummaryResponse>
    </soapenv:Body>
</soapenv:Envelope>

2 ページ目のリクエスト:

明確にするために、最初と 2 番目の要求の間の唯一の変更点は、ナンス、タイムスタンプ、署名、および pageIndex です。

<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn2="urn:messages_2015_2.platform.webservices.netsuite.com" xmlns:urn="urn:core_2015_2.platform.webservices.netsuite.com">
    &lt;x:Header>
        <urn:tokenPassport>
            <urn1:account>1234567</urn1:account>
            <urn1:consumerKey>12345</urn1:consumerKey>
            <urn1:token>1234</urn1:token>
            <urn1:nonce>64687129</urn1:nonce>
            <urn1:timestamp>1478114087</urn1:timestamp>
            <urn1:signature algorithm="HMAC-SHA256">HWQ/O4MSz5L6/TRu0GhtxU37yXIHdhSqvznbG92Salg=</urn1:signature>
        </urn:tokenPassport>
    &lt;/x:Header>
    &lt;x:Body>
        &lt;urn2:getPostingTransactionSummary>
            &lt;urn2:fields>
                &lt;urn:period>true</urn:period>
                &lt;urn:account>true</urn:account>
                &lt;urn:location>true</urn:location>
                &lt;urn:subsidiary>true</urn:subsidiary>
            &lt;/urn2:fields>
            &lt;urn2:filters>
                &lt;urn:period>
                    &lt;urn:recordRef internalId="1"/>
                    &lt;urn:recordRef internalId="2"/>
                    &lt;urn:recordRef internalId="3"/>
                &lt;/urn:period>
                &lt;urn:account>
                    &lt;urn:recordRef internalId="985" type="account"></urn:recordRef>
                &lt;/urn:account>
            &lt;/urn2:filters>
            &lt;urn2:pageIndex>2</urn2:pageIndex>
        &lt;/urn2:getPostingTransactionSummary>
    &lt;/x:Body>
</x:Envelope>

2 ページ目の応答:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
        <platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2015_2.platform.webservices.netsuite.com">
            <platformMsgs:nsId>WEBSERVICES_1234</platformMsgs:nsId>
        </platformMsgs:documentInfo>
    </soapenv:Header>
    <soapenv:Body>
        <getPostingTransactionSummaryResponse xmlns="urn:messages_2015_2.platform.webservices.netsuite.com">
            <platformCore:getPostingTransactionSummaryResult xmlns:platformCore="urn:core_2015_2.platform.webservices.netsuite.com">
                <platformCore:status isSuccess="false">
                    <platformCore:statusDetail type="ERROR">
                        <platformCore:code>USER_ERROR</platformCore:code>
                        <platformCore:message>For pages &gt; 1, search parameters must match the original search exactly</platformCore:message>
                    </platformCore:statusDetail>
                </platformCore:status>
            </platformCore:getPostingTransactionSummaryResult>
        </getPostingTransactionSummaryResponse>
    </soapenv:Body>
</soapenv:Envelope>

このエラーは、最初のリクエストが netsuite 側で正しくキャッシュされていないことを示唆しています。また、2 番目のリクエストでトークン パスポートのフィールドのさまざまな順列を試しましたが、役に立ちませんでした。

任意の支援をいただければ幸いです。

4

1 に答える 1