2017-04-24 108 views
0

我使用MuleSoft NetSuite連接器遇到錯誤。我正在搜索沙盒環境中正確執行的自定義字段,但在NetSuite的生產實例中,我收到以下錯誤消息。NetSuite自定義字段搜索失敗

我可能會丟失什麼,這將導致此搜索在Sandbox中正常工作,但不在生產中?我檢查了角色,字段名稱等等。是否有某種類型的權限可以通過API使用自定義字段搜索?用戶是管理員。

錯誤

WARN 2017-04-24 15:08:21,209 [[sfdc-netsuite-integration].sfdcAccountToNSCustomerCreate.stage1.02] org.apache.cxf.phase.PhaseInterceptorChain: Interceptor for {urn:platform_2016_2.webservices.netsuite.com}NetSuitePortTypeService#{urn:platform_2016_2.webservices.netsuite.com}search has thrown exception, unwinding now 
    org.apache.cxf.interceptor.Fault: Response was of unexpected text/html ContentType. Incoming portion of HTML stream: <!DOCTYPE html> 
    <html> 

    <head> 
    <title>Error</title> 
    <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /> 
     <script type='text/javascript' src='/ui/jquery/jquery-1.11.3.min.js?NS_VER=2017.1.0&minver=63'></script> 
     <script type='text/javascript' src='/ui/jquery/jquery_isolation.js?NS_VER=2017.1.0&minver=63'></script> 
     <script type='text/javascript' src='/javascript/NLUtil.jsp?NS_VER=2017.1.0&minver=63&JSP_VER=1&JSP_VER=1&JSP_VER=1'></script> 
     <script type='text/javascript' src='/javascript/NLUtil.js?NS_VER=2017.1.0&minver=63'></script> 
     <script type='text/javascript' src='/javascript/NLUIWidgets.jsp?NS_VER=2017.1.0&minver=63&JSP_VER=1&JSP_VER=1&JSP_VER=1'></script> 
     <script type='text/javascript' src='/assets/legacy_widgets/1701411811.js?NS_VER=2017.1.0&minver=63'></script> 
     <script type='text/javascript' src='/assets/legacy_apputil/1733410633.js?NS_VER=2017.1.0&minver=63'></script> 
     <script type='text/javascript' src='/javascript/NLAppUtil.jsp?NS_VER=2017.1.0&minver=63&JSP_VER=1&JSP_VER=1&JSP_VER=1'></script> 
     <script type='text/javascript' src='/uirefresh/script/global.js__NS_VER=2017.1.0&minver=63.nlqs?NS_VER=2017.1.0&minver=63'></script> 
    <link rel='stylesheet' href='/core/styles/pagestyles.nl?ct=-2&bglt=F2F4F6&bgmd=EDF1F7&bgdk=737A82&bgon=5C7499&bgoff=AFB5BF&bgbar=5C7499&tasktitletext=E4EAF4&crumbtext=E4EAF4&headertext=E4EAF4&ontab=FFFFFF&offtab=000000&text=000000&link=000000&bgbody=FFFFFF&bghead=FFFFFF&portlet=C0CAD9&portletlabel=000000&bgbutton=FFE599&bgrequiredfld=FFFFE5&font=Verdana%2CHelvetica%2Csans-serif&size_site_content=9pt&size_site_title=9pt&size=1.0&nlinputstyles=T&accessibility=F&NS_VER=2017.1.0'><link rel='stylesheet' type='text/css' href='/uirefresh/css/button.css' /> 
    </head> 

    <body bgcolor='#FFFFFF' link='#000000' vlink='#000000' alink='#330099' text='#000000' topmargin='0' marginheight='1' onload='page_init()' class='error-page'> 
    <img src='/images/nav/stretch.gif' width='20'><a href='http://www.netsuite.com/portal/home.shtml'><img class='uir-logo' src='/images/logos/netsuite-reskin.png' height='30' border=0 style='margin-right:30px;'></a> 
    <table border=0 cellPadding=0 cellSpacing=0 width=100%> 

    <tr><td class='bglt'> 
    <table border='0' cellspacing='0' cellpadding='5' width='100%'> 
    <tr><td class='textboldnolink'>Error</td></tr> 
    <tr><td vAlign='top'> 
    <table border='0' cellspacing='0' cellpadding='0' width='100%'> 
    <tr><td class='text'>&nbsp;</td></tr> 

    <tr><td class=text><img src='/images/5square.gif' width=5 height=5>An unexpected error has occurred. Please go back and try again.</td></tr> 

    <tr><td class='text'>&nbsp;</td></tr> 
    <tr><td class='text'>&nbsp;</td></tr> 
    </table></td></tr></table></td></tr> 
    <tr><td class='text'>&nbsp;</td></tr> 
    </table> 

    <script language='JavaScript' type='text/javascript'> 
    function page_init() { 
    } 
    </script> 

    </body> 
    </html> 

建立搜索

public class SearchNSCustomerBySFDCAccountId extends AbstractMessageTransformer { 

    private final String FLOW_VAR_SFDCACCOUNT = "SFDCAccount"; 
    private final String SFDCACCOUNT_ID = "Id"; 
    private final String SFDC_ACCOUNT_ID_FIELD = "custentitysfdc_account_id"; 

    @Override 
    public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException { 
     //Retrieve FlowVar - SFDCAccount 
     HashMap<String, String> sfdcAcct = (HashMap<String, String>) message.getInvocationProperty(FLOW_VAR_SFDCACCOUNT); 
     if(sfdcAcct == null) return null; 

     String sfdcAcctId = sfdcAcct.get(SFDCACCOUNT_ID); 
     if(StringUtils.isBlank(sfdcAcctId)) return null; 

     //Building CustomField Search - SFDC Account Id 
     CustomerSearchBasic custBasicSearch = new CustomerSearchBasic(); 
     SearchCustomFieldList searchCustomFieldList = new SearchCustomFieldList(); 
     List<SearchCustomField> listOfCustomFields = new ArrayList<SearchCustomField>(); 

     SearchStringCustomField sfdcAcctIdCustomField = new SearchStringCustomField(); 
     sfdcAcctIdCustomField.setOperator(SearchStringFieldOperator.IS); 
     sfdcAcctIdCustomField.setScriptId(SFDC_ACCOUNT_ID_FIELD); 
     sfdcAcctIdCustomField.setSearchValue(sfdcAcctId); 

     listOfCustomFields.add(sfdcAcctIdCustomField); 
     searchCustomFieldList.setCustomField(listOfCustomFields); 
     custBasicSearch.setCustomFieldList(searchCustomFieldList); 

     return custBasicSearch; 
    } 
} 

回答

0

什麼是您使用的是配置在生產NetSuite的API端點網址是什麼?

如果是https://webservices.netsuite.com/services/NetSuitePort_2016_1,您可以試試https://webservices.na1.netsuite.com/services/NetSuitePort_2016_1

+0

我使用https://webservices.na1.netsuite.com/services/NetSuitePort_2016_2,我注意到還有一個新的2017.1版本。 –

+0

使用生產憑證來獲取dataCenterURL。確保您未在​​API中傳遞端點URL,請將其留空。 –

+0

我可以使用上述URL針對生產環境執行許多不同的操作。我不明白爲什麼它不讓我在自定義字段上執行此搜索。它可以是其他的嗎?我會嘗試。我相信它默認爲我上面列出的URL。 –