Hi,
How can I put two record view extensible framework functions on a screen? The two functions I'm trying to use are: afterloaddata and beforesaverecord. I'm doing it as follows:
'[extensibleFramework] [tabName=HDR][isTabView=true]': {
afterloaddata: function() {
console.log("After load function");
vFormPanel = this.getFormPanel();
var var11 = vFormPanel.getForm().findField("workordertype");
var vField = var11.getValue();
console.log("After load data function for PM");
console.log(vField);
var var1 = vFormPanel.getForm().findField("workorderstatus");
var var2 = var1.getValue();
console.log(var2);
if (vField == 'PM' || vField == 'REG' || vField == 'PDM' || vField == 'REG-PERM' || vField == 'SFPM' || vField == 'SC') {
console.log("In 1, in PMs");
if (var2 != 'C' || var2 != 'CLNA' || var2 != 'CANC') {
console.log("In 1, in status");
EAM.Builder.setFieldState({'udfchkbox02':'hidden'},vFormPanel.getForm().getFieldsAndButtons());
}
EAM.Builder.setFieldState({'udfchar23':'hidden'},vFormPanel.getForm().getFieldsAndButtons());
EAM.Builder.setFieldState({'udfchar01':'hidden'},vFormPanel.getForm().getFieldsAndButtons());
EAM.Builder.setFieldState({'udfchar10':'hidden'},vFormPanel.getForm().getFieldsAndButtons());
EAM.Builder.setFieldState({'udfchar22':'hidden'},vFormPanel.getForm().getFieldsAndButtons());
EAM.Builder.setFieldState({'udfchar21':'hidden'},vFormPanel.getForm().getFieldsAndButtons());
EAM.Builder.setFieldState({'udfdate01':'hidden'},vFormPanel.getForm().getFieldsAndButtons());
EAM.Builder.setFieldState({'udfnum03':'hidden'},vFormPanel.getForm().getFieldsAndButtons());
}
}
},
'[extensibleFramework] [tabName=HDR][isTabView=true]':{
beforesaverecord: function(){
console.log("Triggered");
vFormPanel = this.getFormPanel();
var var1 = vFormPanel.getForm().findField("workordertype");
var var2 = var1.getValue();
console.log("Type");
console.log(var2);
var var12 = vFormPanel.getForm().findField("workorderstatus");
var vField1 = var12.getValue();
console.log("Status");
console.log(vField1);
var var11 = vFormPanel.getForm().findField("organization");
var var22 = var11.getValue();
console.log("Organization");
console.log(var22);
response = EAM.Ajax.request({
url: 'GRIDDATA',
params: {
GRID_NAME: 'OUDAT2',
REQUEST_TYPE: 'LIST.HEAD_DATA.STORED',
LOV_ALIAS_NAME_1: 'odate',
LOV_ALIAS_VALUE_1: var22,
LOV_ALIAS_TYPE_1: 'text'
},
async: false,
method: 'POST'
});
var gridresult = response.responseData.pageData.grid.GRIDRESULT.GRID;
var local_timestamp_str = gridresult.DATA[0].local_timestamp;
//var griddata = gridresult.DATA;
var local_timestamp = new Date(local_timestamp_str);
console.log(local_timestamp);
var var13 = vFormPanel.getForm().findField("udfdate04");
var var24 = var13.getValue();
console.log("Min compliance date");
console.log(var24);
var var14 = vFormPanel.getForm().findField("udfdate02");
var var25 = var14.getValue();
console.log("Max compliance date");
console.log(var25);
var var15 = vFormPanel.getForm().findField("udfchkbox02");
var var26 = var15.getValue();
console.log("Checkbox value");
console.log(var26);
if (var2 == 'PM' || var2 == 'REG' || var2 == 'PDM' || var2 == 'REG-PERM' || var2 == 'SFPM' || var2 == 'SC') {
if (vField1 == 'C' || vField1 == 'CLNA' || vField1 == 'CANC') {
if (local_timestamp < var24 || local_timestamp > var25) {
console.log("inside out of compliance condition, check box not checked");
EAM.MsgBox.show({
msgs : [{
type : 'info',
msg : EAM.Lang.getCustomFrameworkMessage('You are trying to complete out of compliance PM. Please acknowledge by clicking OK.')
}],
buttons : EAM.MsgBox.OK,
});
}}
}
}}
But the afterloaddata function is not working and only the beforesaverecord function works. When I remove the beforesaverecord function, then the afterlloaddata function works perfectly. How can I make both the functions work?? Please help.