[rules-users] Using global variable in DRL file

zeeshan zeeshan.spring at gmail.com
Thu Jul 26 05:37:34 EDT 2012


Hi Mike !

Earlier I tried it inserting as a Fact in using Statefull Session in my
RuleMain.java but was facing Java Heap Space error.......so I tried
Declaring as a Global in RuleMain.java like this----


HashMap<String, Object> globals = new HashMap<String, Object>();

StatefulSession statefulSession=new
RuleRunner().getStatefulSession(RULES_FILES8,null,null, globals, null);
...
....


//local block for Agent
		{
			System.out.println("agent block>>>>>>>>>>>>>>>>");
			String csvPath="C:/Users/new_user/Desktop/CIMS/ABAgent.csv";
			  try{
		        File f = new File(csvPath); 
		        InputStream is = new FileInputStream( f ); 
		        Reader rdr = new InputStreamReader( is ); 
		        LineNumberReader lnrdr = new LineNumberReader( rdr ); 

		        String line; 
		        while( (line = lnrdr.readLine()) != null ){ 
		            if( line.charAt(0) == '"' ) continue; 
		            String[] tokens = line.split( ";" ); 
		            if( tokens.length != 3 ) continue; 
		            
		            int agentId = Integer.parseInt( tokens[0] ); 
		            int agentNo  = Integer.parseInt( tokens[1] ); 
		            String agentStatus = tokens[2]; 
		           /* System.out.println("1>>"+agentId);
		            System.out.println("2>>"+agentNo);
		            System.out.println("3>>"+agentStatus);*/
		            
		            CSVBeanAgent csvAg = new CSVBeanAgent(); 
		            csvAg.setAgentId(agentId);
		            csvAg.setAgentNo(agentNo);
		            csvAg.setAgentStatus(agentStatus);
		           
		         //statefulSession.insert(csvAg);
		            
		            *globals.put(csvAg.getAgentId()+"", csvAg);*
		            
		        } 
		       
			  }catch (Exception e) {
					System.out.println(e);
				} 
	}




System.out.println("fire all rule>>>>>>>>");
		
		
		statefulSession.fireAllRules();
		//statefulSession2.fireAllRules();
		
		
	
		log.debug("============ End Firing Rules =========");

		// Close the session
		 statefulSession.dispose();
}
}



--
View this message in context: http://drools.46999.n3.nabble.com/Using-global-variable-in-DRL-file-tp4018911p4018915.html
Sent from the Drools: User forum mailing list archive at Nabble.com.


More information about the rules-users mailing list