use of org.compiere.model.MField in project adempiere by adempiere.
the class ASPGenerateFields method doIt.
// prepare
/**
* Process
* @return info
* @throws Exception
*/
protected String doIt() throws Exception {
log.info("ASP_Status=" + p_ASP_Status + ", ASP_Tab_ID=" + p_ASP_Tab_ID);
X_ASP_Tab asptab = new X_ASP_Tab(getCtx(), p_ASP_Tab_ID, get_TrxName());
p_ASP_Level_ID = asptab.getASP_Window().getASP_Level_ID();
// tabs
MTab tab = new MTab(getCtx(), asptab.getAD_Tab_ID(), get_TrxName());
// fields
for (MField field : tab.getFields(true, get_TrxName())) {
if (DB.getSQLValue(get_TrxName(), "SELECT COUNT(*) FROM ASP_Field WHERE ASP_Tab_ID = ? AND AD_Field_ID = ?", p_ASP_Tab_ID, field.getAD_Field_ID()) < 1) {
X_ASP_Field aspField = new X_ASP_Field(getCtx(), 0, get_TrxName());
aspField.setASP_Tab_ID(p_ASP_Tab_ID);
aspField.setAD_Field_ID(field.getAD_Field_ID());
aspField.setASP_Status(p_ASP_Status);
if (aspField.save())
noFields++;
}
// verify if a field is a button and assign permission to the corresponding process
MColumn column = MColumn.get(getCtx(), field.getAD_Column_ID());
if (column.getAD_Reference_ID() == DisplayType.Button) {
if (column.getAD_Process_ID() > 0) {
generateProcess(column.getAD_Process_ID());
}
}
}
if (noFields > 0)
addLog("Field " + noFields);
if (noProcesses > 0)
addLog("Process " + noProcesses);
if (noParameters > 0)
addLog("Process Parameter " + noParameters);
if (noWorkflows > 0)
addLog("Workflow " + noWorkflows);
return "@OK@";
}
Aggregations