Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
linenumberstrue
Object binderData = getProperty("postProcessor");
PluginManager pluginManager = (PluginManager) AppUtil.getApplicationContext().getBean("pluginManager");
if (binderData != null && binderData instanceof Map) {
	Map bdMap = (Map) binderData;
	if (bdMap != null && bdMap.containsKey("className") && !bdMap.get("className").toString().isEmpty()) {
		String className = tempbdMap.get("className").toString();
		Plugin p = pluginManager.getPlugin(className);
                        
    	Map propertiesMap = (Map) bdMap.get("properties");
		ApplicationPlugin appPlugin = (ApplicationPlugin) p;
                        
		if (appPlugin instanceof PropertyEditable) {
				((PropertyEditable) appPlugin).setProperties(bdMap.get("className").toString()propertiesMap);
		}
		appPlugin.execute(propertiesMap);
	}
}

If we need to grab the plugin's default properties or to inject appDef, request object, etc then these excerpts from the method "executePostFormSubmissionProccessor" is becomes necessary.

Code Block
linenumberstrue
Map propertiesMap = null;
                        
                        //get form json again to retrieve plugin properties
                        FormDefinitionDao formDefinitionDao = (FormDefinitionDao) FormUtil.getApplicationContext().getBean("formDefinitionDao");
                        FormDefinition formDefinition = formDefinitionDao.loadById(form.getPropertyString(FormUtil.PROPERTY_ID), appDef);
                        if (formDefinition != null) {
                            	String json = formDefinition.getJson();
                            	JSONObject obj = new JSONObject(json);
                            	JSONObject objProperty = obj.getJSONObject(FormUtil.PROPERTY_PROPERTIES);
                            	if (objProperty.has(FormUtil.PROPERTY_POST_PROCESSOR)) {
                                		JSONObject objProcessor = objProperty.getJSONObject(FormUtil.PROPERTY_POST_PROCESSOR);
                                		json = objProcessor.getString(FormUtil.PROPERTY_PROPERTIES);
                                		propertiesMap = AppPluginUtil.getDefaultProperties(p, json, appDef, ass);
                            }
                        }
                        
                        	}
}
if (propertiesMap == null) {
                            	propertiesMap = AppPluginUtil.getDefaultProperties(p, (Map) temp.get(FormUtil.PROPERTY_PROPERTIES), appDef, ass);
                        }
                        if (ass != null) {
                            	propertiesMap.put("workflowAssignment", ass);
                        }
                        propertiesMap.put("recordId", formData.getPrimaryKeyValue());
                        propertiesMap.put("pluginManager", pluginManager);
                        propertiesMap.put("appDef", appDef);
                        // add HttpServletRequest into the property map
                        try {
                            	HttpServletRequest request = WorkflowUtil.getHttpServletRequest();
                            	if (request != null) {
                                		propertiesMap.put("request", request);
                            }
                        	}
} catch (Exception e) {
                            	// ignore if class is not found
                        }