2017-08-07 8 views
0

午後。SuiteScript 2.0 UserEventスクリプトを呼び出して電話をかける

Map Reduceスクリプトを呼び出すか使用するためのユーザーイベントスクリプトを取得しようとしています。私はMap Reduceスクリプトのコンセプトにはまったく新しいものであり、多くの運を持たずにリソースを探しています。本質的に、私がしたいことは、同じアイテム名を持つ開いているトランザクションを見つけ、そのアイテムのクラスをユーザーが設定した新しいアイテムに設定するMap Reduceスクリプトを呼び出すことです。 Map Reduceスクリプトは、現在のレコードのItem NameとClassを必要とします。ここで

は私のユーザイベントである:

/** 
* @NApiVersion 2.0 
* @NScriptType UserEventScript 
*/ 

define(['N/record', 'N/log'], 
    function (record, log) { 
     function setFieldInRecord (scriptContext) { 
      log.debug({ 
       'title': 'TESTING', 
       'details': 'WE ARE IN THE FUNCTION!' 
      }); 
      if (scriptContext.type === scriptContext.UserEventType.EDIT) { 
       var old_Record = scriptContext.oldRecord; 
       var cur_Record = scriptContext.newRecord; 
       var oldClassId = old_Record.getValue({ fieldId: 'class'}); 
       var curClassId = cur_Record.getValue({ fieldId: 'class'}); 
       if (oldClassId != curClassId) { 
        // CALL MAP REDUCE HERE 
       } 
      } 
     } 
     return { 
      beforeSubmit: setFieldInRecord 
     }; 
    } 
); 

はスクリプトを別のファイルを削減したマップであるか、それがユーザイベントスクリプトに埋め込まれていますか?私はUser ReductionをUser Eventから呼び出す方法を知っていればMap Reduceを動作させることができると思います。私はこの質問の入力を感謝します。ありがとうございました!

答えて

0

ここでは、この状況をどのように処理しましたか。

上記のユーザーイベントのコードのdefineステートメントには、'N/task'を必ず追加しました。これが正常に地図がユーザイベントからスクリプトを下げ呼ば

var scriptTask = task.create({ 
    taskType: task.TaskType.MAP_REDUCE 
}); 
scriptTask.scriptId = 'customscript_id'; 
scriptTask.deploymentId = 'customdeploy_id'; 
var scriptTaskId = scriptTask.submit(); 

:その後、条件は/地図を呼び出すスクリプトを減少させるために満たされたユーザイベントに、私たちはこれをしませんでした。

私はこれが将来誰かを助けることを願っています。

ありがとうございます。