2016-08-15 12 views
1

私は自分のRESTletからカスタムエラーを投げようとしています。私はそれをNetSuiteのエラーフォーマットに似せようとしています。私は、スクリプトは、私はちょうどこれを行うV1使用する場合、クライアントはHTTPコード400を見てみたい:NetSuiteのRESTletからカスタムエラーをスローする方法は?

throw nlapiCreateError('MY_ERROR_CODE', 'My message'); 

私は(これは私の目標である)、この場合、このような答えを得る:

{ 
    "error": 
    { 
     "code": "MY_ERROR_CODE", 
     "message": "My message" 
    } 
} 

しかし、ときに私はこれを行うv2の私は、スクリプトを使用します。

throw error.create({ 
     name: 'MY_ERROR_CODE', 
     message: 'My message'}); 

そして、私はこの取得:

{ 
    "error": 
    { 
     "code": "JS_EXCEPTION", 
     "message": "{"type":"error.SuiteScriptError","name":"MY_ERROR_CODE","message":"My message","stack":["createError(N/error)","prevalidations(SuiteScripts/RESTlet.js:152)","doPost(SuiteScripts/RESTlet.js:86)","createError(N/error)"],"cause":{"name":"MY_ERROR_CODE","message":"My message"},"id":""}" 
    } 
} 

v2を使用している場合、v1を使用しているときのように、回答を得る方法を教えてもらえますか?

答えて

0

あなたが運が良かったようです。ヘルプドキュメントでは、すでに試したこと以外のことは説明していないためです。

つまり、NetSuiteデバッガ(debugger.netsuite.com)に入って、スローされる前にエラーオブジェクトを調べることができます。たぶんあなたが設定できる文書化されていないプロパティがあります。おそらく試してみる価値があり、通常はNetSuiteの内部を探検する良い学習体験です。

v1のスローされたエラーに対しても同じことを行い、それらの違いを比較することができます。独自のJSエラーオブジェクトをゼロから構築することさえできるかもしれません!

0

エラーを投げた後に結果コードを調べると、実際には400であるはずです。エラーが発生しても、Netsuiteはエラーの詳細を含む応答本文を返します。あなたはどんなコードを取得していますか?

+0

私は400になります。いいです。しかし私はエラーオブジェクトをv2スクリプトのようにラップすることは望ましくありません。エラーオブジェクトを作成する形でエラーオブジェクトを取得したいが、NetSuiteはそれをラップする。 – Logrus

関連する問題