2016-10-25 19 views
0

SS2.0と 'new' N/ui/messageモジュールを使用して、ユーザーがレコードを表示したときに警告またはエラーを表示したいと考えています。実際には、レコードビューで2.0クライアントスクリプトコードを実行する方法を理解したいと思います。SS2.0レコードにメッセージを表示

私は、コンソールからの作品、私は実行することができますたとえば、管理:編集モード(pageInitまたは場所)の微細

require(['N/currentRecord', 'N/ui/message'], 
    function(curr, mess) { 
     var rec = curr.get(); 
     var status = rec.getValue('status'); 
     if (status === 'Unapproved Payment') { 
      var myMsg = mess.create({ 
       title: "PAYMENT ERROR", 
       message: status, 
       type: mess.Type.ERROR 
      }).show({ 
       duration: 500000 
      }); 
     }}); 

ランをしかし、「表示」にロードして実行する方法を発見していません。これは2.0でも可能ですか?私はまだ1.0トリックを使用する必要がありますか?

+0

私は、ビューイベントにロードする前にSS2が必要だと思います。新しい呼び出し: 'form.clientScriptModulePath = './clientScriptPath.js'; 'NSの例では、パスをSuiteScripts/clientScriptPath.jsとして示していますが、私が提案したフォームがうまくいくことを願っています。それ以外の場合は、バンドルされているかパッケージ化されています(すべて自分のフォルダにあります)。 – bknights

+0

このコードをclientScriptModule/FileIdを使用して適切に実行することができませんでした。しかし、それはユーザーエラーでした。私は、上記の例を、beforeLoad UEのフォームに追加するインラインhtml要素の内側の

0

FWIW以下は、編集モードでは動作しますが、表示モードでは機能しません。 (2016年10月現在で動作するハックについては私の他の答えを見てください)SS1.0では何年も前から同様のコードが働いていたので、これは途中で修正されると思われます。ビジネスケースがある場合は、Netsuiteにサポートケースを提出してください。

ユーザイベントスクリプト:

define(['N/ui/message', 'N/currentRecord'], function(msg, currentRecord){ 
    window.console.log('processing script'); 
    function showMessage(rec) { 
     window.console.log('record status is '+ rec.getValue('status')); 
     //if('Pending Approval' == rec.getValue('status')){ 
      var myMsg = msg.create({ 
       title: "PAYMENT ERROR", 
       message: rec.getValue('status'), //'Please Approve', 
       type: msg.Type.ERROR 
      }).show({ 
       duration: 100000 
      }); 
     //} 
    } 

    setTimeout(function(){ 
     showMessage(currentRecord.get()); 
    }, 1500); 


}); 
0

A current record instance can be accessed via the following ways: 
- The context object that gets passed into the client script entry point. 

ビューモードでは、ユーザーイベントスクリプト(beforeLoad)のみを添付できます。

N/currentRecordモジュールはクライアント側のスクリプトでしか動作しないため、動作しませんでした。

代わりにN /レコードモジュールを使用してください。

+0

実際にN/currentRecordのコードはクライアント側でうまく動作します。作業例 – bknights

+0

はいを​​参照してください。基本的には、クライアント側では* N/currentRecord *、サーバー側では* N/record *を使用します。 – earj

関連する問題