We operate a UFL interface that evaluates CSV files with additional analysis data and reads data for existing PI tags, storing the values (including timestamps) in the PI server archives. Our UFL interface is not permitted to create PI tags.
I have created an example file containing 4 lines with tag names and their corresponding values. For two lines of the example file, the tags exist on the PI Data Server. For the other two lines, there is no corresponding tag on the PI Data Server. After the UFL interface has processed the example file, it receives the file name extension "_OK". Even when opening the CSV file, you cannot directly see what caused problems, because the successfully read lines are still present in the example file.
I would like the UFL interface to behave as follows:
If the UFL interface is not allowed to create PI tags and at least 1 tag name exists in the source file that is not present on the PI Data Server, the source file should receive the file name extension "BAD" after processing. The source file should also receive the file name extension "BAD" after processing in case of other errors (e.g., PI server unreachable).
If a line in the source file matches the filter defined in the INI file and the line could be read without errors, the corresponding line must be deleted from the source file.
In the ICU, it should be possible for the UFL interface to decide whether copies of the unprocessed source files should be stored in a freely selectable directory or not. If the UFL interface can delete data from the source file (see point 2), the original source files should still be found somewhere in case of backfilling.