Quick Add Phone Call Using Portlet Script

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
    };
}) 

Leave a comment

Your email address will not be published. Required fields are marked *