Veteran Tommy Haas rolled back the years to sweep past Ivan Dodig and set up an all-German BMW Open final against defending champion Philipp Kohlschreiber.