Hi Claus.

Thanks for helping me out. I still don't get it, to be honest. This is my
code:

public class AffaldVarme extends RouteBuilder {
    
    int latestID=1;
    String resourceID="some_id";
    @Override
    public void configure() throws Exception {
        from("timer://foo?period=1m")
                .routeId("containervejning")
                .setHeader("low",constant(latestID-1))
                .setHeader("high",constant(latestID+3000))
                .to("sql:select * from some_table where Container_Vejning_ID
> :#low and Container_Vejning_ID < :#high order by Container_Vejning_ID
ASC?dataSourceRef=affaldVarme")
                
//.setBody(constant("select * from some_table where Container_Vejning_ID
>"+(latestID-1)+" and Container_Vejning_ID <"+(latestID+3000)+" order by
Container_Vejning_ID ASC"))
.to("jdbc:affaldVarme")

                .process(
                    new Processor() {
                        public void process(Exchange exchange) throws
Exception {
                            JSONArray ja=new JSONArray();
                            List<Map&lt;String, Object>> data =
exchange.getIn().getBody(List.class);
                            
                            for(Map<String, Object> row : data){
                                JSONObject jo=new JSONObject();
                                for(Map.Entry<String, Object> entry
:row.entrySet()){
                                    jo.put(entry.getKey(),
entry.getValue());
                                }
                                ja.put(jo);
                            }
                            
                            if(ja.length()>0){
                                JSONObject
j=(JSONObject)ja.get(ja.length()-1);
                               
latestID=(Integer)j.get("Container_Vejning_ID");
                            }
                            
                           
exchange.getIn().setBody("{\"resource_id\":\""+resourceID+"\",\"fields\":["
                                    +
"{\"id\":\"Container_Vejning_ID\",\"type\":\"int\"},"
                                    +
"{\"id\":\"Indlaes_Vejning_ID\",\"type\":\"int\"},"
                                    + "{\"id\":\"Dato\",\"type\":\"text\"},"
                                    + "{\"id\":\"Tid\",\"type\":\"text\"},"
                                    +
"{\"id\":\"Vejning\",\"type\":\"float\"},"
                                    +
"{\"id\":\"Opd_Init\",\"type\":\"text\"},"
                                    +
"{\"id\":\"Opd_Dato\",\"type\":\"text\"},"
                                    +
"{\"id\":\"GPSLongitude_2\",\"type\":\"float\"},"
                                    +
"{\"id\":\"GPSLatitude_2\",\"type\":\"float\"},"
                                    +
"{\"id\":\"Container_Vejning_Faktura_Opstil_id\",\"type\":\"int\"},"
                                    +
"{\"id\":\"FrivaegtKg\",\"type\":\"text\"}"
                                    + "] ,\"records\": " + ja.toString() +
"}");
                            
                        }
                    }).setHeader("CamelHttpMethod", constant("POST"))
         .setHeader("Authorization", constant("some_value"))
         .to("http4://some_url");
    }
}

As you can see, I have these two versions of calling the database:

.setHeader("low",constant(latestID-1))
.setHeader("high",constant(latestID+3000))
.to("sql:select * from some_table where Container_Vejning_ID > :#low and
Container_Vejning_ID < :#high order by Container_Vejning_ID
ASC?dataSourceRef=affaldVarme")
                

.setBody(constant("select * from some_table where Container_Vejning_ID
>"+(latestID-1)+" and Container_Vejning_ID <"+(latestID+3000)+" order by
Container_Vejning_ID ASC"))
.to("jdbc:affaldVarme")

Neither of these works (well... I can make the route active and run without
errors, but "latestID" will not increment past 3000), and to be hones, even
with the link you just posted, I can't make sense of it. As far as I can
see, I am using a different language, than constant, in my first example.
The thing is that both ways of doing the calls yields the same result.

Any suggestion?

Regards

Lasse Vestergaard



--
View this message in context: 
http://camel.465427.n5.nabble.com/Change-timer-runtime-tp5738484p5738610.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to