# Run a reconciliation on a specific service # import apiscript.util import jarray import time from java.util import ArrayList from java.util import Collections from com.ibm.itim.apps.recon import ReconManager,ReconUnitData (platform_ctx, subject) = apiscript.util.get_default_platform_ctx_and_subject() recon_mgr = ReconManager(platform_ctx, subject) # delay between runRecon and removeReconUnitData in seconds (just in case) time_to_wait=2 # set reconciliation information batch_ID=127 recon_unit_data = ReconUnitData() recon_unit_data.setLockService(java.lang.Boolean(java.lang.Boolean.FALSE)) recon_unit_data.setMaxDuration(java.lang.Integer(360).longValue()) recon_unit_data.setMonth(0) recon_unit_data.setDayOfWeek(5) recon_unit_data.setMinute(30) recon_unit_data.setReconQueryFilter("(ERUID=*)") recon_unit_data.setID(batch_ID) # Main OU for service main_ou="MY-ORGANIZATION" my_org_collection = apiscript.util.orgchart.get_containers_by_attr("ou", main_ou) my_ou = my_org_collection.toArray()[0] if len(sys.argv) != 2: print "Usage: recon_now ServiceName " sys.exit(-1) my_service = sys.argv[0] # Create a serviceMgr and retrieve Services servicemgr=apiscript.util.service.get_default_service_mgr() services = servicemgr.getServices(my_ou,service_Profile,my_service) for my_service in services: service_do = my_service.getData() print "--- Service name is: %s" % service_do.name recon_unit_data.setName(service_do.name) recon_collection = ArrayList() recon_collection.add(recon_unit_data) print "--- Set temporary reconciliation Unit Data on service %s" % service_do.name recon_mgr.setReconUnits(my_service, recon_collection) # List recon schedules print "--- Retrieve Recon Schedules" recon_collection=recon_mgr.getReconUnits(my_service) for myrecon in recon_collection: print "---" recon_id = myrecon.getID() if recon_id == batch_ID: print "--- Run reconciliation" request = recon_mgr.runRecon(my_service, myrecon) print "--- Reconciliation request ID is %s" % request.ID time.sleep(time_to_wait) print "--- Delete temporary reconciliation schedule" recon_mgr.removeReconUnitData(my_service, myrecon) print "--- End of program"