I have made a script that does an import of an CSV file.
It work perfect however when I import it into a temp table the last record in my temp table is an empty one. I've tripled checked the CSV and it doesn't contain any empty lines.
This is my code:
INPUT STREAM sEaImport FROM VALUE(cCsvEaFileLocation).
/* Skip first line to remove the headers */
IMPORT STREAM sEaImport DELIMITER ";" vcline.
REPEAT:
CREATE ttEa.
IMPORT STREAM sEaImport DELIMITER ";" ttEa.
END.
INPUT CLOSE.
FOR EACH ttEa:
DISPLAY ttEa.
END.
When I display the ttEa outside of the REPEAT block I get an empty record like this:
When I display ttEa inside the REPEAT block I don't get an empty record.
Can somebody please help me?
Using this still gives me the same result:
INPUT STREAM sEaImport FROM VALUE(cCsvEaFileLocation).
/* Skip first line to remove the headers */
IMPORT STREAM sEaImport UNFORMATTED vcline.
REPEAT on error undo,leave on endkey undo,leave:
CREATE ttEa .
IMPORT STREAM sEaImport DELIMITER ";" ttEa.
END.
INPUT STREAM sEaImport CLOSE.
Make sure your temp table does NOT have the NO-UNDO
statement on it. Then change the REPEAT
statement to REPEAT TRANSACTION
. The last iteration will try to create a ttEa record but fail. Since it's now in a transaction, the create will be undone (which is why you can't have NO-UNDO
on the temp table) and the blank record will be gone.