netsuite - Suitescript 2.0 Utilize different forms for different types of projects -




my company runs several different types of projects , view project record differently depending on type of project being run in selected project record.

i have field selects form use, titled "custom form" (this select field) , field our staff enter type of project "custentityjt_fie_pro_projecttype" (also select field).

i have created following before load user event script try achieve this:

/** * @napiversion 2.x * @nscripttype usereventscript * @nmodulescope sameaccount */ define(["n/record"], function(r)  { function beforeload(context)  {     var currentrecord = context.newrecord;     var projecttype = currentrecord.getvalue({         fieldid: "custentityjt_fie_pro_projecttype",     });      currentrecord.setvalue({         fieldid: 'customform',         value: projecttype         })  }  return {     beforeload: beforeload, }  }) 

when loading project record in edit mode, custom form selection not change, , when loading project record in view mode, following:

{"type":"error.suitescripterror","name":"unexpected_error","message":null,"stack":["anonymous(n/recordservice)","beforeload(/suitescripts/setform.js:13)"],"cause":{"type":"internal error","code":"unexpected_error","details":null,"userevent":"beforeload","stacktrace":["anonymous(n/recordservice)","beforeload(/suitescripts/setform.js:13)"],"notifyoff":false},"id":"","notifyoff":false} 

i'm new netsuite , programming in general please gentle :)

you need use client script in order change custom form. best bet in 2 places, pageinit() , fieldchanged(). potential issue trying set custom form value value retrieved in getvalue of field custentityjt_fie_pro_projecttype. value returned currentrecord.getvalue() example internal id of custom list value project type set there (go custom list , see internal id values listed). issue because when setting value of custom form field need reference internal id of custom form wish use. remarkable if internal id of project type referenced ever matched custom form internal id. recommendation create hash table in code store references (assuming list of project types didn't change). give try (just make sure update values in lookup variable made up.

/** *@napiversion 2.x *@nscripttype clientscript */ define([    'n/record' ],   function (     nsrecord ) {     //     // lookup table object property represents internal ids of      // custom list values, , value of each property represents      // internal id's of custom forms wish associate each list value.     //     var lookup = {         1: 122,         2: 123,         3: 125,         4: 136     };      function fieldchanged(context) {         var field = context.fieldid;         var rec = context.currentrecord;         var projid;          if (field === 'custentityjt_fie_pro_projecttype' && rec.getvalue('custentityjt_fie_pro_projecttype')) {             projid = rec.getvalue('custentityjt_fie_pro_projecttype');              if (lookup[projid]) {                 rec.setvalue({                     fieldid: 'customform',                     value: lookup[projid],                     ignorefieldchange: true,                     fireslavingsync: true                 });             }         }     }      function pageinit(context) {         var rec = context.currentrecord;         var mode = context.mode;         var projid;         var formid;          if (mode !== 'create') {             formid = rec.getvalue('customform');             projid = rec.getvalue('custentityjt_fie_pro_projecttype');              if (lookup[projid] && lookup[projid] !== formid) {                 rec.setvalue({                     fieldid: 'customform',                     value: lookup[projid],                     ignorefieldchange: true,                     fireslavingsync: true                 });             }         }     }      return {         fieldchanged: fieldchanged,         pageinit: pageinit     }; }); 




wiki

Comments

Popular posts from this blog

Asterisk AGI Python Script to Dialplan does not work -

python - Read npy file directly from S3 StreamingBody -

kotlin - Out-projected type in generic interface prohibits the use of metod with generic parameter -