Τρόπος υποβολής αρχείων IFDAT#
Οι μορφότυποι των εισερχόμενων αρχείων του IFDat είναι οι ακόλουθοι:
Αρχεία μορφής
.json. Το αρχείο θα πρέπει να δομείται σύμφωνα με τοIFDat JSON Schema.Αρχεία μορφής
.xlsxμε βάση τουπόδειγμα.
Διαδικασία Επεξεργασίας Εισερχόμενου Αρχείου#
Σε περίπτωση που υποβληθούν ταυτόχρονα πάνω από ένα αρχεία η σειρά επεξαργασίας τους είναι τυχαία.
Για κάθε εισερχόμενο αρχείο θα δημιουργείται ένα αρχείο επικύρωσης το οποίο θα λαμβάνει ο χρήστης που υπέβαλε το αρχείο.
Σε περίπτωση που η επέκταση του αρχείου δεν είναι μία από τις .xlsx, .json εμφανίζεται κρίσιμο λάθος (wrong_extension), το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Εάν το αρχείο είναι μορφής xlsx ακολουθούνται τα παρακάτω βήματα:
Εάν δεν υπάρχει το φύλλο HEADER εμφάνιζεται κρίσιμο λάθος (no_header), το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Εάν εμφανιστεί κάποιο άλλο λάθος στην επεξεργασία του φύλλου HEADER εμφάνιζεται κρίσιμο λάθος (corrupt_excel), το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Σε περίπτωση που στα CONTENTS εμφανίζεται ότι κάποιο φύλλο περιέχει στοιχεία αλλά στο αντίστοιχο φύλλο το κελί Α4 είναι κενό, τότε εμφάνιζεται κρίσιμο λάθος (no_content), το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Εάν το αρχείο είναι μορφής json ακολουθούνται τα παρακάτω βήματα:
Σε περίπτωση που δεν μπορεί να φορτωθεί ως json τότε εμφάνιζεται κρίσιμο λάθος (corrupt_json), το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Εάν δεν υπάρχει το κλειδί HEADER εμφάνιζεται κρίσιμο λάθος (no_header), το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Σε περίπτωση που το USERNAME στο HEADER του αρχείου είναι διαφορετικό σε σχέση με χρήστη που υπέβαλε το αρείο τότε εμφάνιζεται κρίσιμο λάθος (corrupt_json), το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Σε περίπτωση που το DOMAIN στο HEADER δεν είναι IFDat τότε εμφάνιζεται κρίσιμο λάθος (not_supported_domain), το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Σε περίπτωση που το αρχείο είναι xlsx μετατρέπεται σε μορφή json. Δηλαδή για κάθε καταχώρηση στο φύλλο CONTENTS διαβάζεται το αντίστοιχο φύλλο και μετατρέπεται σε json με βάση το IFDat json schema. Η ανάγνωση ενός πίνακα ολοκληρώνεται στη πρώτη σειρά που το κελί της στήλης Α είναι μη συμπληρωμένο. Σε περίπτωση λάθους κατά τη μετατροπή εμφάνιζεται κρίσιμο λάθος (conversion_error), το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Το json αρχείο ελέγχεται σύμφωνα με το IFDat JSON schema και σε περίπτωση λαθών, αυτά καταχωρούνται ως schema_errors, το αρχείο δεν φορτώνεται στη βάση και η διαδικασία επεξεργασίας σταματά.
Για κάθε παρατήρηση ενός πίνακα ελέγχεται αν ο χρήστης έχει το δικαίωμα να δημιουργήσει την παρατήρηση. Εάν όχι καταχωρούνται στα κρίσιμα λάθη οι παρατηρήσεις για τις οποίες ο χρήστης δεν έχει το δικαίωμα να τις δημιουργήσει το αρχείο δεν φορτώνεται και η διαδικασία επεξεργασίας σταματά.
Αν δεν έχουν υπάρξει λάθη μέχρι αυτό το σημείο τα περιεχόμενα του αρχείου εισέρχονται στη βάση δεδομένων και ο χρήστης λαμβάνει ΑΠΑ ότι το αρχείο επεξεργάστηκε επιτυχώς.
Διαδικασία ελέγχου στοιχείων της βάσης#
Σε δεύτερη φάση αφού εισαχθούν τα στοιχεία στη βάση θα γίνονται οι έλεγχοι επικύρωσης συνολικά των στοιχείων (νέων και υφιστάμενων). Οι έλεγχοι επικύρωσης των στοιχείων της βάσης περιγράφονται στην εδώ.