To myData για Web Developers

1. Παραστατικά σε μορφή XML για το MyDATA

Τα δεδομένα που μεταφέρονται στο MyData έχουν τη μορφή XML. Για παράδειγμα, ένα τιμολόγιο παροχής υπηρεσιών με φόρους δηλωμένους σε επίπεδο παραστατικού, αποθηκευμένο σε μορφή XML για την αποστολή του στο MyData, έχει την παρακάτω δομή:

timologio

Η κάθε μία ενότητα αναλύεται σε επιμέρους πεδία.

Για παράδειγμα, η ενότητα του εκδότη του παραστατικού, αναλύεται σε πεδία, όπως στην παρακάτω εικόνα:

timologio

Δείτε αναλυτικά ολόκληρο το αρχείο XML, όπως έχει αναρτηθεί στο website της ΑΑΔΕ:

Τιμολόγιο Παροχής Υπηρεσιών με φόρους δηλωμένους σε επίπεδο παραστατικού.

Μπορείτε να δείτε τα αντίστοιχα αρχεία XML από περισσότερα παραστατικά, στο website της ΑΑΔΕ.

2. Δημιουργία αρχείων XML με PHP

Για την δημιουργία αρχείων XML, θα χρειαστούμε κώδικα PHP. (Πηγή)

Στο παρακάτω παράδειγμα βλέπουμε πώς μπορούμε να δημιουργήσουμε ένα αρχείο XML με τα στοιχεία βιβλίων που έχουμε καταχωρήσει σε έναν πίνακα MySQL.

Έχοντας αποθηκεύσει τα δεδομένα στον πίνακα books, χρειαζόμαστε κώδικα για να συνδεθούμε με τη βάση μας και να αποθηκεύσουμε τα δεδομένα μας σε ένα array:

xml1

Η συνάρτηση createXMLfile που καλείται στην γραμμή 28, είναι αυτή που θα πάρει το array και θα αποθηκεύσει τα δεδομένα σε ένα αρχείο XML.

xml2

Αφού καθορίσουμε το όνομα του αρχείου XML, τη δημιουργία του νέου αρχείου και του αντικειμένου books στο οποίο θα καταχωρηθούν τα δεδομένα, αρχίζουμε τη διάσχιση του array και καταχωρούμε σε μεταβλητές τα στοιχεία ενός βιβλίου. 

Στη συνέχεια δημιουργείται ένα element book και καταχωρούνται εκεί οι μεταβλητές μας, ως elements, με τη μέθοδο appendChild. Το book καταχωρείται στο root. Επαναλαμβάνουμε για όλα τα βιβλία. Τέλος καταχωρούμε το root στο document και αποθηκεύουμε το αρχείο:

xml3  

Το αρχείο XML που παράγεται έχει τη μορφή:

xml file

Αντίστοιχα μπορούμε να χρησιμοποιήσουμε τον παραπάνω κώδικα, φυσικά με μετατροπές, για το myDATA.

3. Προδιαγραφές για τη σωστή δημιουργία των δεδομένων XML

Περισσότερες πληροφορίες σχετικά με την κωδικοποίηση των δεδομένων των παραστατικών:

Τεχνική περιγραφή διεπαφών REST API για διαβίβαση & λήψη δεδομένων για χρήστες ERP

4. Το δοκιμαστικό περιβάλλον του myDATA

To MyDATA δέχεται τα αρχεία XML μέσω ενός HTTP request.

Μπορούμε να κάνουμε τις δοκιμές μας χρησιμοποιώντας ένα δοκιμαστικό περιβάλλον για Developers MyDATA. Θα πρέπει πρώτα να δημιουργήσουμε έναν δικό μας λογαριασμό, ώστε να έχουμε δικό μας aade-user-id και Ocp-Apim-Subscription-Key.

mydata

Πατώντας στο κουμπάκι Try it, μπορούμε να κάνουμε μία δοκιμή αποστολής δεδομένων XML.

Συμπληρώνουμε τα στοιχεία μας και μπορούμε για τη δοκιμή να αντιγράψουμε τα στοιχεία από το αρχείο xml που μας δίνει σαν παράδειγμα η ΑΑΔΕ:

ααδε

Ενώ εμείς συμπληρώνουμε τα στοιχεία, δημιουργείται το HTTP request και πατώντας Send αποστέλλεται:

php

Παίρνουμε αμέσως την απάντηση με τα πιθανά σφάλματα:

php

5. Δοκιμές πραγματικών αρχείων και δεδομένων XML

Αναπτύσσοντας την εφαρμογή μας, μπορούμε να κάνουμε δοκιμές των δεδομένων XML που παράγουμε, συνδεόμενοι με το δοκιμαστικό περιβάλλον και όχι με το πραγματικό περιβάλλον myDATA.

Για να συνδεθούμε με το myDATA REST API, μπορούμε να χρησιμοποιήσουμε το HTML_REQUEST2 του extension PEAR της PHP, όπως προτείνεται και από το myDATA. Εάν δεν υπάρχει ήδη εγκατεστημένο, μπορούμε να ζητήσουμε από τον hosting provider, να εγκαταστήσει το PEAR για μας. 

Δοκιμάστε την εκτέλεση του αρχείου openeducation-mydata για την αποστολή παραστατικών στο δοκιμαστικό περιβάλλον του myDATA. Τα xml data που αποστέλλονται είναι τα demo του myDATA και όπως θα δείτε παράγουν το ίδιο responce.

O κώδικας του παραπάνω αρχείου PHP για τη σύνδεση με το myDATA και την αποστολή των δεδομένων XML, φαίνεται στις παρακάτω εικόνες:

ρ1

ρ2

ρ3

ρ4

ρ5