Web services 将NetSuite TransactionSearch转换为只返回internalId列的高级搜索
我有一个普通的事务搜索,SOAP看起来像这样:Web services 将NetSuite TransactionSearch转换为只返回internalId列的高级搜索,web-services,soap,netsuite,advanced-search,Web Services,Soap,Netsuite,Advanced Search,我有一个普通的事务搜索,SOAP看起来像这样: <?xml version="1.0" encoding="UTF-8"?> <search xsi:type="sales:TransactionSearch" xmlns="urn:messages_2013_1.platform.webservices.netsuite.com" xmlns:sales="urn:sales_2013_1.transactions.webservices.
<?xml version="1.0" encoding="UTF-8"?>
<search xsi:type="sales:TransactionSearch"
xmlns="urn:messages_2013_1.platform.webservices.netsuite.com"
xmlns:sales="urn:sales_2013_1.transactions.webservices.netsuite.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:common="urn:common_2013_1.platform.webservices.netsuite.com"
xmlns:core="urn:core_2013_1.platform.webservices.netsuite.com">
<sales:basic xsi:type="common:TransactionSearchBasic" xmlns:common="urn:common_2013_1.platform.webservices.netsuite.com">
<common:type operator="anyOf" xsi:type="core:SearchEnumMultiSelectField">
<core:searchValue xsi:type="xsd:string">_invoice</core:searchValue>
</common:type>
<common:customFieldList xsi:type="core:SearchCustomFieldList">
<core:customField operator="anyOf" xsi:type="core:SearchMultiSelectCustomField" internalId="custbodyintegrationstatus">
<core:searchValue xsi:type="core:ListOrRecordRef" internalId="1" name="customlistintegrationstatuses"></core:searchValue>
</core:customField>
</common:customFieldList>
</sales:basic>
</search>
<search xmlns="urn:messages_2013_1.platform.webservices.netsuite.com">
<searchRecord xsi:type="q1:TransactionSearchAdvanced" xmlns:q1="urn:sales_2013_1.transactions.webservices.netsuite.com">
<q1:criteria>
<q1:basic>
<type operator="anyOf" xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<searchValue xmlns="urn:core_2013_1.platform.webservices.netsuite.com">_salesOrder</searchValue>
</type>
<customFieldList xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<customField operator="anyOf" internalId="custbodyintegrationstatus" xsi:type="SearchMultiSelectCustomField" xmlns="urn:core_2013_1.platform.webservices.netsuite.com">
<searchValue internalId="1">
<name>customlistintegrationstatuses</name>
</searchValue>
</customField>
</customFieldList>
</q1:basic>
</q1:criteria>
<q1:columns>
<q1:basic>
<internalId xmlns="urn:common_2013_1.platform.webservices.netsuite.com"/>
</q1:basic>
</q1:columns>
</searchRecord>
</search>
<search xmlns="urn:messages_2013_1.platform.webservices.netsuite.com">
<searchRecord xsi:type="q1:TransactionSearchAdvanced" xmlns:q1="urn:sales_2013_1.transactions.webservices.netsuite.com">
<q1:criteria>
<q1:basic>
<mainLine xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<searchValue xmlns="urn:core_2013_1.platform.webservices.netsuite.com">true</searchValue>
</mainLine>
<type operator="anyOf" xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<searchValue xmlns="urn:core_2013_1.platform.webservices.netsuite.com">_salesOrder</searchValue>
</type>
<customFieldList xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<customField operator="anyOf" internalId="custbodyintegrationstatus" xsi:type="SearchMultiSelectCustomField" xmlns="urn:core_2013_1.platform.webservices.netsuite.com">
<searchValue internalId="2">
<name>customlistintegrationstatuses</name>
</searchValue>
</customField>
</customFieldList>
</q1:basic>
</q1:criteria>
<q1:columns>
<q1:basic>
<internalId xmlns="urn:common_2013_1.platform.webservices.netsuite.com"/>
</q1:basic>
</q1:columns>
</searchRecord>
</search>
WebServices使用日志中的SOAP请求如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<search xsi:type="sales:TransactionSearch"
xmlns="urn:messages_2013_1.platform.webservices.netsuite.com"
xmlns:sales="urn:sales_2013_1.transactions.webservices.netsuite.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:common="urn:common_2013_1.platform.webservices.netsuite.com"
xmlns:core="urn:core_2013_1.platform.webservices.netsuite.com">
<sales:basic xsi:type="common:TransactionSearchBasic" xmlns:common="urn:common_2013_1.platform.webservices.netsuite.com">
<common:type operator="anyOf" xsi:type="core:SearchEnumMultiSelectField">
<core:searchValue xsi:type="xsd:string">_invoice</core:searchValue>
</common:type>
<common:customFieldList xsi:type="core:SearchCustomFieldList">
<core:customField operator="anyOf" xsi:type="core:SearchMultiSelectCustomField" internalId="custbodyintegrationstatus">
<core:searchValue xsi:type="core:ListOrRecordRef" internalId="1" name="customlistintegrationstatuses"></core:searchValue>
</core:customField>
</common:customFieldList>
</sales:basic>
</search>
<search xmlns="urn:messages_2013_1.platform.webservices.netsuite.com">
<searchRecord xsi:type="q1:TransactionSearchAdvanced" xmlns:q1="urn:sales_2013_1.transactions.webservices.netsuite.com">
<q1:criteria>
<q1:basic>
<type operator="anyOf" xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<searchValue xmlns="urn:core_2013_1.platform.webservices.netsuite.com">_salesOrder</searchValue>
</type>
<customFieldList xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<customField operator="anyOf" internalId="custbodyintegrationstatus" xsi:type="SearchMultiSelectCustomField" xmlns="urn:core_2013_1.platform.webservices.netsuite.com">
<searchValue internalId="1">
<name>customlistintegrationstatuses</name>
</searchValue>
</customField>
</customFieldList>
</q1:basic>
</q1:criteria>
<q1:columns>
<q1:basic>
<internalId xmlns="urn:common_2013_1.platform.webservices.netsuite.com"/>
</q1:basic>
</q1:columns>
</searchRecord>
</search>
<search xmlns="urn:messages_2013_1.platform.webservices.netsuite.com">
<searchRecord xsi:type="q1:TransactionSearchAdvanced" xmlns:q1="urn:sales_2013_1.transactions.webservices.netsuite.com">
<q1:criteria>
<q1:basic>
<mainLine xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<searchValue xmlns="urn:core_2013_1.platform.webservices.netsuite.com">true</searchValue>
</mainLine>
<type operator="anyOf" xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<searchValue xmlns="urn:core_2013_1.platform.webservices.netsuite.com">_salesOrder</searchValue>
</type>
<customFieldList xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<customField operator="anyOf" internalId="custbodyintegrationstatus" xsi:type="SearchMultiSelectCustomField" xmlns="urn:core_2013_1.platform.webservices.netsuite.com">
<searchValue internalId="2">
<name>customlistintegrationstatuses</name>
</searchValue>
</customField>
</customFieldList>
</q1:basic>
</q1:criteria>
<q1:columns>
<q1:basic>
<internalId xmlns="urn:common_2013_1.platform.webservices.netsuite.com"/>
</q1:basic>
</q1:columns>
</searchRecord>
</search>
_销售订单
CustomListIntegrationStatus
以下是回应:
<searchResponse xmlns="urn:messages_2013_1.platform.webservices.netsuite.com">
<platformCore:searchResult xmlns:platformCore="urn:core_2013_1.platform.webservices.netsuite.com">
<platformCore:status isSuccess="true"/>
<platformCore:totalRecords>108956</platformCore:totalRecords>
<platformCore:pageSize>5</platformCore:pageSize>
<platformCore:totalPages>21792</platformCore:totalPages>
<platformCore:pageIndex>1</platformCore:pageIndex>
<platformCore:searchId>WEBSERVICES_TSTDRV961603_060120141461034810519911044_b227f55</platformCore:searchId>
<platformCore:searchRowList>
<platformCore:searchRow xsi:type="tranSales:TransactionSearchRow" xmlns:tranSales="urn:sales_2013_1.transactions.webservices.netsuite.com">
<tranSales:basic xmlns:platformCommon="urn:common_2013_1.platform.webservices.netsuite.com">
<platformCommon:internalId>
<platformCore:searchValue internalId="134200"/>
</platformCommon:internalId>
</tranSales:basic>
</platformCore:searchRow>
<platformCore:searchRow xsi:type="tranSales:TransactionSearchRow" xmlns:tranSales="urn:sales_2013_1.transactions.webservices.netsuite.com">
<tranSales:basic xmlns:platformCommon="urn:common_2013_1.platform.webservices.netsuite.com">
<platformCommon:internalId>
<platformCore:searchValue internalId="134200"/>
</platformCommon:internalId>
</tranSales:basic>
</platformCore:searchRow>
<platformCore:searchRow xsi:type="tranSales:TransactionSearchRow" xmlns:tranSales="urn:sales_2013_1.transactions.webservices.netsuite.com">
<tranSales:basic xmlns:platformCommon="urn:common_2013_1.platform.webservices.netsuite.com">
<platformCommon:internalId>
<platformCore:searchValue internalId="134200"/>
</platformCommon:internalId>
</tranSales:basic>
</platformCore:searchRow>
<platformCore:searchRow xsi:type="tranSales:TransactionSearchRow" xmlns:tranSales="urn:sales_2013_1.transactions.webservices.netsuite.com">
<tranSales:basic xmlns:platformCommon="urn:common_2013_1.platform.webservices.netsuite.com">
<platformCommon:internalId>
<platformCore:searchValue internalId="134200"/>
</platformCommon:internalId>
</tranSales:basic>
</platformCore:searchRow>
<platformCore:searchRow xsi:type="tranSales:TransactionSearchRow" xmlns:tranSales="urn:sales_2013_1.transactions.webservices.netsuite.com">
<tranSales:basic xmlns:platformCommon="urn:common_2013_1.platform.webservices.netsuite.com">
<platformCommon:internalId>
<platformCore:searchValue internalId="134255"/>
</platformCommon:internalId>
</tranSales:basic>
</platformCore:searchRow>
</platformCore:searchRowList>
</platformCore:searchResult>
</searchResponse>
108956
5.
21792
1.
Web服务\u TSTDRV961603\u 06012014141034810519911044\u b227f55
很明显,我做错了什么,即使搜索行中的InternalID未排队也表明了这一点。所以,请告诉我怎么了。SOAP或任何C#/Java/etc代码示例都将非常有用。尝试添加搜索筛选器mainline=T以删除重复项。另外,您是否有internalid=1的记录?Pipechang是对的。正确的SOAP请求如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<search xsi:type="sales:TransactionSearch"
xmlns="urn:messages_2013_1.platform.webservices.netsuite.com"
xmlns:sales="urn:sales_2013_1.transactions.webservices.netsuite.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:common="urn:common_2013_1.platform.webservices.netsuite.com"
xmlns:core="urn:core_2013_1.platform.webservices.netsuite.com">
<sales:basic xsi:type="common:TransactionSearchBasic" xmlns:common="urn:common_2013_1.platform.webservices.netsuite.com">
<common:type operator="anyOf" xsi:type="core:SearchEnumMultiSelectField">
<core:searchValue xsi:type="xsd:string">_invoice</core:searchValue>
</common:type>
<common:customFieldList xsi:type="core:SearchCustomFieldList">
<core:customField operator="anyOf" xsi:type="core:SearchMultiSelectCustomField" internalId="custbodyintegrationstatus">
<core:searchValue xsi:type="core:ListOrRecordRef" internalId="1" name="customlistintegrationstatuses"></core:searchValue>
</core:customField>
</common:customFieldList>
</sales:basic>
</search>
<search xmlns="urn:messages_2013_1.platform.webservices.netsuite.com">
<searchRecord xsi:type="q1:TransactionSearchAdvanced" xmlns:q1="urn:sales_2013_1.transactions.webservices.netsuite.com">
<q1:criteria>
<q1:basic>
<type operator="anyOf" xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<searchValue xmlns="urn:core_2013_1.platform.webservices.netsuite.com">_salesOrder</searchValue>
</type>
<customFieldList xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<customField operator="anyOf" internalId="custbodyintegrationstatus" xsi:type="SearchMultiSelectCustomField" xmlns="urn:core_2013_1.platform.webservices.netsuite.com">
<searchValue internalId="1">
<name>customlistintegrationstatuses</name>
</searchValue>
</customField>
</customFieldList>
</q1:basic>
</q1:criteria>
<q1:columns>
<q1:basic>
<internalId xmlns="urn:common_2013_1.platform.webservices.netsuite.com"/>
</q1:basic>
</q1:columns>
</searchRecord>
</search>
<search xmlns="urn:messages_2013_1.platform.webservices.netsuite.com">
<searchRecord xsi:type="q1:TransactionSearchAdvanced" xmlns:q1="urn:sales_2013_1.transactions.webservices.netsuite.com">
<q1:criteria>
<q1:basic>
<mainLine xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<searchValue xmlns="urn:core_2013_1.platform.webservices.netsuite.com">true</searchValue>
</mainLine>
<type operator="anyOf" xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<searchValue xmlns="urn:core_2013_1.platform.webservices.netsuite.com">_salesOrder</searchValue>
</type>
<customFieldList xmlns="urn:common_2013_1.platform.webservices.netsuite.com">
<customField operator="anyOf" internalId="custbodyintegrationstatus" xsi:type="SearchMultiSelectCustomField" xmlns="urn:core_2013_1.platform.webservices.netsuite.com">
<searchValue internalId="2">
<name>customlistintegrationstatuses</name>
</searchValue>
</customField>
</customFieldList>
</q1:basic>
</q1:criteria>
<q1:columns>
<q1:basic>
<internalId xmlns="urn:common_2013_1.platform.webservices.netsuite.com"/>
</q1:basic>
</q1:columns>
</searchRecord>
</search>
真的
_销售订单
CustomListIntegrationStatus
你能给我举个例子吗?我对SuiteTalk不是很熟悉。事实上,我不明白复制品是如何响应的?每个记录都有它自己的唯一参数internalId。它们实际上不是重复的,您可以看到事务在默认情况下返回所有行项目(每个事务上的项目)。因此,如果您搜索时不查看顶层(mainline=F),Netsuite将与您在那里看到的一样,内部id会多次返回。这是因为交易中的每个项目都有不同的价格/数量。同样的情况也会发生,例如,您搜索客户的地址。在本例中,您的搜索仅返回2条记录-134200和134255,但看起来重复。pipechang,非常感谢,您添加mainline=true参数的想法是正确的。我已经修复了我的SOAP请求,它现在可以正常工作。嗨@Sergey Shafiev,你是如何为那些没有信用额度的客户创建发票的,我面临着这个问题,如果你能与我分享一些细节,我将不胜感激嗨Sergey Shafiev,你是如何为那些没有信用额度的客户创建发票的,我面临这个问题,如果您能和我分享一些细节,我将不胜感激