Χιλιάδες ελληνικές επιχειρήσεις δουλεύουν με παλιά, δοκιμασμένα προγράμματα τιμολόγησης. Λογισμικό που τρέχει αξιόπιστα εδώ και δεκαετίες, που ο χρήστης το ξέρει απέξω κι ανακατωτά, που καλύπτει ακριβώς τις ανάγκες του και ούτε ένα κλικ παραπάνω. Τον έχετε δει τον άνθρωπο που κόβει τιμολόγιο με κλειστά μάτια, έτσι δεν είναι; Το κάνει μια ζωή, δεν χρειάζεται να κοιτάξει την οθόνη. Και μια ωραία πρωία ήρθε το myDATA: κάθε παραστατικό πρέπει να διαβιβάζεται ηλεκτρονικά στην ΑΑΔΕ.
Για ένα σύγχρονο cloud πρόγραμμα, αυτό είναι αυτονόητο. Ένα κουμπί, και το παραστατικό έφυγε. Για ένα πρόγραμμα γραμμένο σε 16bit Clarion 5.5, που δεν έχει καμία δυνατότητα σύνδεσης στο διαδίκτυο, μοιάζει αδιέξοδο. Και η συνηθισμένη «λύση» που θα ακούσετε είναι πάντα η ίδια, η αντικατάσταση: πετάξτε το πρόγραμμα που δουλεύει, αγοράστε καινούργιο, εκπαιδεύστε ξανά τους χρήστες, μεταφέρετε τα δεδομένα και ελπίστε ότι όλα θα πάνε καλά. Ελπίστε, λέει. Ωραία μηχανική, δεν συμφωνείτε;
Υπάρχει και άλλος δρόμος. Ας τον δούμε.
Ας δούμε πρώτα τι είχαμε απέναντί μας
Το εμπορικό μου πρόγραμμα λειτουργεί από το 2003, σε δική μου χρήση και σε πελάτες. Είναι γραμμένο σε Clarion 5.5, τεχνολογία 16bit. Τι σημαίνει αυτό πρακτικά; Ότι δεν μπορεί να ανοίξει σύνδεση στο διαδίκτυο, πόσο μάλλον να πιάσει κουβέντα με ένα σύγχρονο REST API. Είναι σαν να ζητάτε μήνυμα από κάποιον που δεν έχει καν τηλέφωνο. Κι επειδή τα εμπόδια σπάνια έρχονται μονά, οι ελληνικοί χαρακτήρες σε τόσο παλιά περιβάλλοντα είναι κωδικοποιημένοι διαφορετικά απ’ ό,τι περιμένει το myDATA. Δηλαδή, ακόμη κι αν μιλούσε, θα μιλούσε σε άλλη διάλεκτο.
Και η πιο σημαντική απαίτηση, αυτή που δεν σήκωνε καμία διαπραγμάτευση: ο χρήστης δεν έπρεπε να αλλάξει τίποτα στον τρόπο που δουλεύει. Καμία δεύτερη εφαρμογή, κανένα παράθυρο, καμία χειροκίνητη ενέργεια. Κόβει το παραστατικό όπως πάντα και το πρόγραμμα αναλαμβάνει τα υπόλοιπα. Τελεία.
Η γέφυρα που έστησα ανάμεσά τους
Δεν προσπάθησα να μάθω στο παλιό πρόγραμμα καινούργια κόλπα, γιατί δεν πρόκειται να τα μάθει· του έδωσα διερμηνέα. Σχεδίασα μια γέφυρα σε Python που κάθεται ανάμεσα στο πρόγραμμα και την ΑΑΔΕ:
- Το πρόγραμμα εξάγει το παραστατικό σε αρχείο XML και καλεί τις ρουτίνες Python.
- Η Python εξομαλύνει τους χαρακτήρες στη μορφή που απαιτεί το myDATA.
- Διαβιβάζει το παραστατικό στο myDATA API της ΑΑΔΕ και παραλαμβάνει το ΜΑΡΚ και το URL.
- Δημιουργεί το QR code για την εκτύπωση.
- Επιστρέφει τα πάντα μέσω αρχείων στο πρόγραμμα, το οποίο τα αρχειοθετεί αυτόματα.
Όλα αυτά γίνονται σιωπηλά. Καμία μαύρη οθόνη που ανοιγοκλείνει, κανένα παράθυρο που ζητάει προσοχή, κανένα «παρακαλώ περιμένετε» που σας κάνει να αναρωτιέστε αν κόλλησε ή αν απλώς σκέφτεται. Ο χρήστης δεν βλέπει να εκτελείται κανένα άλλο πρόγραμμα: εκδίδει το παραστατικό και το πρόγραμμα τον ενημερώνει αν όλα πήγαν καλά ή αν υπήρξε πρόβλημα. Η Python είναι αόρατη. Και η καλύτερη τεχνολογία, τουλάχιστον στη δική μου αντίληψη, είναι ακριβώς αυτή που δεν την προσέχει κανείς.
Και τι έγινε τελικά
Η σύνδεση λειτουργεί παραγωγικά εδώ και περίπου 3 χρόνια και έχει διαβιβάσει χιλιάδες παραστατικά, για εμένα και για πελάτες μου. Παρακολουθεί κάθε αλλαγή της ΑΑΔΕ, γιατί αλλαγές έρχονται πάντα, είναι από τα λίγα σίγουρα πράγματα στη ζωή: πρόσφατα προστέθηκαν τα δελτία αποστολής, ενώ ετοιμάζεται και η σύνδεση με πάροχο ηλεκτρονικής τιμολόγησης.
Ένα πρόγραμμα του 2003 ανταποκρίνεται σήμερα σε υποχρεώσεις που δεν υπήρχαν καν όταν γράφτηκε, χωρίς να αλλάξει ο τρόπος δουλειάς κανενός χρήστη. Ομολογώ ότι κάθε φορά που το σκέφτομαι, χαμογελάω λιγάκι.
Γιατί έχει τελικά σημασία
Το λογισμικό που δουλεύει δεν είναι απαραίτητο να πεταχτεί επειδή άλλαξαν οι απαιτήσεις γύρω του. Με τη σωστή γέφυρα, ένα παλιό σύστημα μπορεί να συνδεθεί με σύγχρονες υπηρεσίες, να παραμείνει συμβατό με τη νομοθεσία και να συνεχίσει να προσφέρει αυτό που έκανε πάντα καλά. Το ζητούμενο δεν ήταν ποτέ να είναι το πρόγραμμα καινούργιο. Ήταν να κάνει τη δουλειά του.
Κι έτσι ο άνθρωπος που κόβει το τιμολόγιο μια ζωή, συνεχίζει να το κόβει ακριβώς όπως πάντα, με κλειστά μάτια. Απλώς τώρα, χωρίς να χρειάζεται να το ξέρει, μιλάει και με την ΑΑΔΕ.
Αν η επιχείρησή σας στηρίζεται σε παλαιότερο λογισμικό που πρέπει να μιλήσει με myDATA, τράπεζες, e-shops ή οποιαδήποτε σύγχρονη υπηρεσία, ας το συζητήσουμε. Δείτε περισσότερα για τις custom web εφαρμογές και διασυνδέσεις ή στείλτε μου μήνυμα από τη φόρμα επικοινωνίας.