Creating IntegrationConfig & AggregationTask Using Code
private void createIntegrationConfigObject(String newAppName){ try{ String defaultIC_Name = "ServiceNow IntegrationConfig Dummy"; IntegrationConfig defaultIC = context.getObjectByName(IntegrationConfig.class, defaultIC_Name); if(defaultIC!= null){ Map attributesMap = new HashMap(); List managedResourcesList = new ArrayList(); ManagedResource managedResource = new ManagedResource(); IntegrationConfig newIC = null; newIC=(IntegrationConfig) defaultIC.derive(context); managedResource.setApplication(context.getObjectByName(Application.class, newAppName)); managedResourcesList.add(managedResource); newIC.setResources(managedResourcesList); attributesMap.put(newAppName,"IdentityIQ Access Request"); newIC.setAttribute("catalogItem",attributesMap); newIC.setName(newAppName+" ServiceNow IntegrationConfig"); context.saveObject(newIC); context.commitTransaction(); } } catch(Exception ex){ ex.printStackTrace(); } } private void createAggregationTask(String applicationNames) throws GeneralException { Configuration systemConfiguration = context.getConfiguration().getSystemConfig(); String taskScheduleHosts = null; if (null == systemConfiguration) { log.error("Unable to retrieve SystemConfiguration"); throw new GeneralException("Unable to retrieve SystemConfiguration"); } else { taskScheduleHosts = systemConfiguration.get("appFactoryTaskScheduleServerHosts"); } try{ TaskManager tm = new TaskManager(context); HashMap taskArgs = new HashMap(); TaskDefinition taskDefinition = new TaskDefinition(); taskDefinition.setName(applicationNames+ " Account Aggregation Task"); taskDefinition.setDescription("Account Aggregation task for " + applicationNames); taskDefinition.setType(TaskItemDefinition.Type.AccountAggregation); taskDefinition.setResultAction(TaskDefinition.ResultAction.Delete); taskDefinition.setFormPath("/monitor/tasks/accountAggregationTask.xhtml"); taskDefinition.setArgument("applications", applicationNames); taskDefinition.setArgument("checkDeleted", "true"); taskDefinition.setArgument("promoteManagedAttributes", "true"); if(taskScheduleHosts != null){ taskDefinition.setHost(taskScheduleHosts); } taskDefinition.setParent(context.getObject(TaskDefinition.class, "Account Aggregation")); context.saveObject(taskDefinition); context.commitTransaction(); }catch(Exception ex){ logger.error("Error : " +ex.getMessage()); } }
No comments:
Post a Comment