From 01d43ac0537e15b2271299625259a856ceb85bab Mon Sep 17 00:00:00 2001 From: EdwinBetanc0urt Date: Sat, 23 Mar 2024 17:29:39 -0400 Subject: [PATCH 1/2] feat: Add process and process parameter attributes. --- .../eca56/util/support/documents/Process.java | 167 ++++++++++-------- 1 file changed, 90 insertions(+), 77 deletions(-) diff --git a/src/main/java/org/spin/eca56/util/support/documents/Process.java b/src/main/java/org/spin/eca56/util/support/documents/Process.java index 7f33705..3577408 100644 --- a/src/main/java/org/spin/eca56/util/support/documents/Process.java +++ b/src/main/java/org/spin/eca56/util/support/documents/Process.java @@ -23,11 +23,9 @@ import java.util.Map; import java.util.Optional; -import org.adempiere.core.domains.models.I_AD_Browse; -import org.adempiere.core.domains.models.I_AD_Form; +import org.adempiere.core.domains.models.I_AD_Element; import org.adempiere.core.domains.models.I_AD_Process; import org.adempiere.core.domains.models.I_AD_Process_Para; -import org.adempiere.core.domains.models.I_AD_Workflow; import org.adempiere.model.MBrowse; import org.compiere.model.MForm; import org.compiere.model.MProcess; @@ -36,6 +34,7 @@ import org.compiere.model.PO; import org.compiere.wf.MWorkflow; import org.spin.eca56.util.support.DictionaryDocument; +import org.spin.util.ASPUtil; import org.spin.util.AbstractExportFormat; import org.spin.util.ReportExportHandler; @@ -53,7 +52,18 @@ public class Process extends DictionaryDocument { public String getKey() { return KEY; } - + + private Map parseDictionaryEntity(PO entity) { + Map documentEntity = new HashMap<>(); + documentEntity.put("id", entity.get_ID()); + documentEntity.put("uuid", entity.get_UUID()); + documentEntity.put("name", entity.get_Translation(I_AD_Element.COLUMNNAME_Name, getLanguage())); + documentEntity.put("description", entity.get_Translation(I_AD_Element.COLUMNNAME_Description, getLanguage())); + documentEntity.put("help", entity.get_Translation(I_AD_Element.COLUMNNAME_Help, getLanguage())); + return documentEntity; + } + + @Override public DictionaryDocument withEntity(PO entity) { MProcess process = (MProcess) entity; @@ -64,15 +74,14 @@ public DictionaryDocument withEntity(PO entity) { documentDetail.put("name", process.get_Translation(I_AD_Process.COLUMNNAME_Name, getLanguage())); documentDetail.put("description", process.get_Translation(I_AD_Process.COLUMNNAME_Description, getLanguage())); documentDetail.put("help", process.get_Translation(I_AD_Process.COLUMNNAME_Help, getLanguage())); - documentDetail.put("is_report", process.isReport()); documentDetail.put("is_active", process.isActive()); documentDetail.put("show_help", process.getShowHelp()); - documentDetail.put("workflow_id", process.getAD_Workflow_ID()); - documentDetail.put("form_id", process.getAD_Form_ID()); - documentDetail.put("browser_id", process.getAD_Browse_ID()); - documentDetail.put("report_view_id", process.getAD_ReportView_ID()); - documentDetail.put("print_format_id", process.getAD_PrintFormat_ID()); + + // Report + documentDetail.put("is_report", process.isReport()); if(process.isReport()) { + documentDetail.put("report_view_id", process.getAD_ReportView_ID()); + documentDetail.put("print_format_id", process.getAD_PrintFormat_ID()); MReportView reportView = null; if(process.getAD_ReportView_ID() > 0) { reportView = MReportView.get(entity.getCtx(), process.getAD_ReportView_ID()); @@ -85,86 +94,90 @@ public DictionaryDocument withEntity(PO entity) { } documentDetail.put("report_export_types", reportExportReference); } - if(process.getAD_Form_ID() > 0) { - MForm form = new MForm(process.getCtx(), process.getAD_Form_ID(), null); - Map referenceDetail = new HashMap<>(); - referenceDetail.put("id", form.getAD_Form_ID()); - referenceDetail.put("uuid", form.getUUID()); - referenceDetail.put("name", form.get_Translation(I_AD_Form.COLUMNNAME_Name, getLanguage())); - referenceDetail.put("description", form.get_Translation(I_AD_Form.COLUMNNAME_Description, getLanguage())); - referenceDetail.put("help", form.get_Translation(I_AD_Form.COLUMNNAME_Help, getLanguage())); - documentDetail.put("form", referenceDetail); - } - if(process.getAD_Browse_ID() > 0) { - MBrowse smartBrowser = MBrowse.get(process.getCtx(), process.getAD_Browse_ID()); - Map referenceDetail = new HashMap<>(); - referenceDetail.put("id", smartBrowser.getAD_Browse_ID()); - referenceDetail.put("uuid", smartBrowser.getUUID()); - referenceDetail.put("name", smartBrowser.get_Translation(I_AD_Browse.COLUMNNAME_Name, getLanguage())); - referenceDetail.put("description", smartBrowser.get_Translation(I_AD_Browse.COLUMNNAME_Description, getLanguage())); - referenceDetail.put("help", smartBrowser.get_Translation(I_AD_Browse.COLUMNNAME_Help, getLanguage())); - documentDetail.put("browse", referenceDetail); - } - if(process.getAD_Workflow_ID() > 0) { + + // Linked + if (process.getAD_Browse_ID() > 0) { + MBrowse browse = ASPUtil.getInstance(process.getCtx()).getBrowse(process.getAD_Browse_ID()); + documentDetail.put("browser_id", browse.getAD_Browse_ID()); + documentDetail.put("browse", parseDictionaryEntity(browse)); + } else if (process.getAD_Form_ID() > 0) { + MForm form = new MForm(process.getCtx(), process.getAD_Workflow_ID(), null); + documentDetail.put("form_id", process.getAD_Form_ID()); + documentDetail.put("form", parseDictionaryEntity(form)); + } else if (process.getAD_Workflow_ID() > 0) { MWorkflow workflow = MWorkflow.get(process.getCtx(), process.getAD_Workflow_ID()); - Map referenceDetail = new HashMap<>(); - referenceDetail.put("id", workflow.getAD_Workflow_ID()); - referenceDetail.put("uuid", workflow.getUUID()); - referenceDetail.put("name", workflow.get_Translation(I_AD_Workflow.COLUMNNAME_Name, getLanguage())); - referenceDetail.put("description", workflow.get_Translation(I_AD_Workflow.COLUMNNAME_Description, getLanguage())); - referenceDetail.put("help", workflow.get_Translation(I_AD_Workflow.COLUMNNAME_Help, getLanguage())); - documentDetail.put("workflow", referenceDetail); + documentDetail.put("workflow_id", process.getAD_Workflow_ID()); + documentDetail.put("workflow", parseDictionaryEntity(workflow)); } + // Parameters List parameters = process.getParametersAsList(); + boolean hasParameters = parameters != null && !parameters.isEmpty(); + documentDetail.put("has_parameters", hasParameters); + List> parametersDetail = new ArrayList<>(); - if(parameters != null) { + if(hasParameters ) { parameters.forEach(parameter -> { - Map detail = new HashMap<>(); - detail.put("id", parameter.getAD_Process_Para_ID()); - detail.put("uuid", parameter.getUUID()); - detail.put("name", parameter.get_Translation(I_AD_Process_Para.COLUMNNAME_Name, getLanguage())); - detail.put("description", parameter.get_Translation(I_AD_Process_Para.COLUMNNAME_Description, getLanguage())); - detail.put("help", parameter.get_Translation(I_AD_Process_Para.COLUMNNAME_Help, getLanguage())); - detail.put("column_name", parameter.getColumnName()); - detail.put("element_id", parameter.getAD_Element_ID()); - detail.put("default_value", parameter.getDefaultValue()); - detail.put("default_value_to", parameter.getDefaultValue2()); - detail.put("is_range", parameter.isRange()); - detail.put("is_info_only", parameter.isInfoOnly()); - detail.put("is_mandatory", parameter.isMandatory()); - detail.put("display_logic", parameter.getDisplayLogic()); - detail.put("read_only_logic", parameter.getReadOnlyLogic()); - detail.put("sequence", parameter.getSeqNo()); - detail.put("value_format", parameter.getVFormat()); - detail.put("min_value", parameter.getValueMin()); - detail.put("max_value", parameter.getValueMax()); - detail.put("reference_value_id", parameter.getAD_Reference_Value_ID()); - detail.put("validation_id", parameter.getAD_Val_Rule_ID()); - detail.put("display_type", parameter.getAD_Reference_ID()); - String embeddedContextColumn = null; - ReferenceValues referenceValues = ReferenceUtil.getReferenceDefinition(parameter.getColumnName(), parameter.getAD_Reference_ID(), parameter.getAD_Reference_Value_ID(), parameter.getAD_Val_Rule_ID()); - if(referenceValues != null) { -// Map referenceDetail = new HashMap<>(); -// referenceDetail.put("id", referenceValues.getReferenceId()); -// referenceDetail.put("table_name", referenceValues.getTableName()); -// detail.put("display_type", referenceDetail); - embeddedContextColumn = referenceValues.getEmbeddedContextColumn(); - } - detail.put("context_column_names", ReferenceUtil.getContextColumnNames(Optional.ofNullable(parameter.getDefaultValue()).orElse("") - + Optional.ofNullable(parameter.getDefaultValue2()).orElse("") - + Optional.ofNullable(parameter.getDisplayLogic()).orElse("") - + Optional.ofNullable(parameter.getReadOnlyLogic()).orElse("") - + Optional.ofNullable(embeddedContextColumn).orElse(""))); - detail.put("dependent_fields", DependenceUtil.generateDependentProcessParameters(parameter)); + Map detail = parseProcessParameter(parameter); parametersDetail.add(detail); }); } documentDetail.put("parameters", parametersDetail); - documentDetail.put("has_parameters", parametersDetail.size() > 0); putDocument(documentDetail); return this; } + + Map parseProcessParameter(MProcessPara parameter) { + Map detail = new HashMap<>(); + + detail.put("id", parameter.getAD_Process_Para_ID()); + detail.put("uuid", parameter.getUUID()); + detail.put("column_name", parameter.getColumnName()); + detail.put("name", parameter.get_Translation(I_AD_Process_Para.COLUMNNAME_Name, getLanguage())); + detail.put("description", parameter.get_Translation(I_AD_Process_Para.COLUMNNAME_Description, getLanguage())); + detail.put("help", parameter.get_Translation(I_AD_Process_Para.COLUMNNAME_Help, getLanguage())); + detail.put("display_type", parameter.getAD_Reference_ID()); + + // Value Properties + detail.put("is_range", parameter.isRange()); + detail.put("default_value", parameter.getDefaultValue()); + detail.put("default_value_to", parameter.getDefaultValue2()); + detail.put("field_length", parameter.getFieldLength()); + detail.put("value_format", parameter.getVFormat()); + detail.put("min_value", parameter.getValueMin()); + detail.put("max_value", parameter.getValueMax()); + + // Display Properties + detail.put("display_logic", parameter.getDisplayLogic()); + detail.put("sequence", parameter.getSeqNo()); + + // Mandatory Properties + detail.put("is_mandatory", parameter.isMandatory()); + + // Editable Properties + detail.put("read_only_logic", parameter.getReadOnlyLogic()); + detail.put("is_info_only", parameter.isInfoOnly()); + + // External Info + detail.put("element_name", parameter.getAD_Element().getColumnName()); + String embeddedContextColumn = null; + ReferenceValues referenceValues = ReferenceUtil.getReferenceDefinition(parameter.getColumnName(), parameter.getAD_Reference_ID(), parameter.getAD_Reference_Value_ID(), parameter.getAD_Val_Rule_ID()); + if(referenceValues != null) { + // Map referenceDetail = new HashMap<>(); + // referenceDetail.put("id", referenceValues.getReferenceId()); + // referenceDetail.put("table_name", referenceValues.getTableName()); + embeddedContextColumn = referenceValues.getEmbeddedContextColumn(); + } + detail.put("context_column_names", ReferenceUtil.getContextColumnNames( + Optional.ofNullable(parameter.getDefaultValue()).orElse("") + + Optional.ofNullable(parameter.getDefaultValue2()).orElse("") + + Optional.ofNullable(parameter.getDisplayLogic()).orElse("") + + Optional.ofNullable(parameter.getReadOnlyLogic()).orElse("") + + Optional.ofNullable(embeddedContextColumn).orElse("")) + ); + detail.put("dependent_fields", DependenceUtil.generateDependentProcessParameters(parameter)); + return detail; + } private Process() { super(); From ee1fadd479b4553b61211b93dddd182f6f984783 Mon Sep 17 00:00:00 2001 From: EdwinBetanc0urt Date: Sat, 23 Mar 2024 17:50:34 -0400 Subject: [PATCH 2/2] remove element name. --- src/main/java/org/spin/eca56/util/support/documents/Process.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/spin/eca56/util/support/documents/Process.java b/src/main/java/org/spin/eca56/util/support/documents/Process.java index 3577408..3f0c9f1 100644 --- a/src/main/java/org/spin/eca56/util/support/documents/Process.java +++ b/src/main/java/org/spin/eca56/util/support/documents/Process.java @@ -159,7 +159,6 @@ Map parseProcessParameter(MProcessPara parameter) { detail.put("is_info_only", parameter.isInfoOnly()); // External Info - detail.put("element_name", parameter.getAD_Element().getColumnName()); String embeddedContextColumn = null; ReferenceValues referenceValues = ReferenceUtil.getReferenceDefinition(parameter.getColumnName(), parameter.getAD_Reference_ID(), parameter.getAD_Reference_Value_ID(), parameter.getAD_Val_Rule_ID()); if(referenceValues != null) {