【问题标题】:NetSuite Custom Field Search FailureNetSuite 自定义字段搜索失败
【发布时间】:2017-04-24 19:16:52
【问题描述】:

我在使用 MuleSoft NetSuite 连接器时遇到了错误。我正在搜索在沙盒环境中正确执行的自定义字段,但在 NetSuite 的生产实例中我收到以下错误。

我可能遗漏了什么会导致此搜索在沙盒中正常工作但在生产中无法正常工作?我已经检查了角色、字段名称等。是否有某种类型的权限可以通过 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;
    }
}

【问题讨论】:

    标签: mule netsuite mule-component


    【解决方案1】:

    您在生产环境中用于配置 NetSuite API 的端点 URL 是什么?

    如果是https://webservices.netsuite.com/services/NetSuitePort_2016_1,可以https://webservices.na1.netsuite.com/services/NetSuitePort_2016_1试试吗?

    【讨论】:

    • 我正在使用webservices.na1.netsuite.com/services/NetSuitePort_2016_2,我注意到还有一个新的 2017.1 版本。
    • 使用生产凭证获取 dataCenterURL。确保您没有在 API 中传递端点 URL,请将其留空。
    • 我可以使用上面的 URL 对生产环境执行许多不同的操作。我不明白为什么它不允许我在自定义字段上执行此搜索。还能是别的吗?我会试试的。我相信它默认为我上面列出的 URL。
    • 几周前我也遇到过同样的情况。同一流程中的相同操作曾经适用于一个自定义记录,但对于另一个自定义记录却失败了。获得该特定帐户 ID 的 datacenterURL 后,所有界面都开始按预期工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    相关资源
    最近更新 更多