Usually in Forms, where a restricted built-in is to be called, the code has to be moved to a KEY trigger, e.g. KEY-COMMIT in this case.
But really, I can't understand why you would use Forms at all to create a scheduled batch process with no user intervention. Why not just a shell script that runs the report and a SQL Plus script, or perhaps an After Report trigger in the report itself?