I discovered today the source files "EVFTEMPF01" and "EVFTEMPF02". I was unable to find out what they are and under which circumstances the RDI is creating them. The Files have members with the source code of an SQLRPG Program. So i assume that only complining SQLRPG sources create this file. The first hit on google when I search "EVFTEMPF01" is a dead link: https://www.ibm.com/support/pages/why-are-source-files-evftempf01-and-evftempf02-created
One of the other few hits explains a bit more: https://code400.com/forum/forum/iseries-programming-languages/sql/144210-why-no-host-variable-with-create-table-with-data
Here they explain, that the precompiler is creating the SQL Source in a QTEMP. But my files EVFTEMP01 was in the Library of where I compiled it. Also they say it gets deleted after it is finished. So I am questioning, if they even mean the same thing.
So I need to know what exactly they are.
Right now I changed the default Parameter OPTION(*EVENTF) from CRTSQLRPGI to OPTION(*NOEVENTF). But this only effects the file "EVFEVENT" right? I am still not sure if they even related.
EDIT: First tests show that with *NOEVENTF there are no EVFTEMPF01 Files. I still would like to know what are those. The code in it is not complete. On the left there are missing some spaces and it is cut off. Probably where the H,F,D,C,O Column is.
I still dont understand whats the file EVFEVENT is for, if the RDI creates the EVFTEMP01 files anyway.
Thank you for the help.
EDIT2: OK now I understand the EVFEVENT File. It contains all messages from the compiling process, like infos and warnings and errors. This is were the RDI gets it for the ERROR LIST. If there is *NOEVENTF in the OPTION Parameter, it will not genereate them. No Error List and you have to check out the spoolfile where the errors happened. Very bad. But with *EVENTF it creates the EVFTEMP01. Is there a way to have first one but not the other?
IBM's document comes up for me...
The source files EVFTEMPF01 and EVFTEMPF02 are created when the OPTION(*EVENT) and RPGPPOPT(*LVL1 or *LVL2) are used in the CRTSQLRPGI command. These files are used by RPG and the SQL preprocessor when a compile is done from the RSE (Remote System Explorer) perspective in WDSC (Websphere® Development Studio client) and RDi (Rational Developer for System i). These source files can be deleted, once the programmer is done with their RSE session.
In answer to your last question, no you can't prevent both from being created when compiling SQLRPGLE from RDi.
Not sure why they bother you, they shouldn't ever get big enough to really matter. But you can always delete them and they will be recreated as needed.