This portlet script is using creating a quick add phone call record by using a supportive client script. Using this client script we can directly refresh the portlet by calling the portlet module.
Portlet Script
/**
*@NApiVersion 2.1
*@NScriptType Portlet
*/
/*************************************************************************************************************************
* CLIENTNAME:ACLW
* ACLW-65
* Custom portlet for phone calls
* **********************************************************************************************************************
* Date 25/6/2020
*
* Author: Jobin & Jismi IT Services LLP
* Script Description : This Script is to create custom portlet for phone calls
* Date created : 25/6/202
*
* REVISION HISTORY
*
* Revision 1.0 ${25/6/202} Abin: created
*
**************************************************************************************************************************/
define(['N/search', 'N/ui/serverWidget', 'N/url'],
function (search, serverWidget, url) {
function render(params) {
try {
params.portlet.clientScriptModulePath = '/SuiteScripts/Jobin and Jismi IT services LLP/ACLW-65/JJ CS Phone Call ACLW-65.js'
var portlet = params.portlet;
portlet.title = 'Phone Calls';
//Creating fields
var subject = portlet.addField({
id: 'customid_subject',
type: serverWidget.FieldType.TEXT,
label: 'Subject'
});
subject.isMandatory = true;
portlet.addField({
id: 'customid_phone',
type: serverWidget.FieldType.PHONE,
label: 'Phone'
});
var emp = portlet.addField({
id: 'customid_organizer',
type: serverWidget.FieldType.SELECT,
label: 'Organizer',
source: 'employee'
});
emp.isMandatory = true;
var date = portlet.addField({
id: 'customid_date',
type: serverWidget.FieldType.DATE,
label: 'Date'
});
date.isMandatory = true;
var selectField = portlet.addField({
id: 'customid_status',
type: serverWidget.FieldType.SELECT,
label: 'Status',
});
selectField.isMandatory = true;
selectField.addSelectOption({
value: '1',
text: 'SCHEDULED'
});
selectField.addSelectOption({
value: '2',
text: 'COMPLETE'
});
portlet.addField({
id: 'customid_message',
type: serverWidget.FieldType.TEXTAREA,
label: 'Message'
});
portlet.setSubmitButton({
url: 'www',
label: 'Save',
target: '_top'
});
} catch (e) {
log.debug("CatchError", e)
}
}
return {
render: render
};
});
Client Script
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
/*************************************************************************************************************************
* CLIENTNAME:ACLW
* ACLW-65
* Custom portlet for phone calls
* **********************************************************************************************************************
* Date 25/6/2020
*
* Author: Jobin & Jismi IT Services LLP
* Script Description : This Script is to create new phone call record
* Date created : 25/6/202
*
* REVISION HISTORY
*
* Revision 1.0 ${25/6/202} Abin: created
*
**************************************************************************************************************************/
define(['N/portlet', 'N/currentRecord', 'N/record', function (portlet, currentRecord, record,) {
function saveRecord(scriptContext) {
var Rec = scriptContext.currentRecord;
//get values from the portlet
var subject = Rec.getValue({
fieldId: 'customid_subject'
})
var phn = Rec.getValue({
fieldId: 'customid_phone'
})
var organizer = Rec.getValue({
fieldId: 'customid_organizer'
})
var date = Rec.getValue({
fieldId: 'customid_date'
})
var status = Rec.getValue({
fieldId: 'customid_status'
})
var msg = Rec.getValue({
fieldId: 'customid_message'
})
//creating a new phonecall record
var ObjRec = record.create({
type: record.Type.PHONE_CALL,
isDynamic: true,
});
ObjRec.setValue({
fieldId: 'title',
value: subject
});
if(phn){
ObjRec.setValue({
fieldId: 'phone',
value: phn
});
}
ObjRec.setValue({
fieldId: 'assigned',
value: organizer
});
ObjRec.setText({
fieldId: 'startdate',
text: date
});
var status = status
if (status == 1) {
ObjRec.setValue({
fieldId: 'status',
value: "SCHEDULED"
});
}
else {
ObjRec.setValue({
fieldId: 'status',
value: "COMPLETE"
});
}
if(msg){
ObjRec.setValue({
fieldId: 'message',
value: msg
});
}
ObjRec.save();
//refreshing portlet after saving phonecall record
portlet.refresh();
}
return {
saveRecord: saveRecord
};
})