Παράμετροι
Στο τμήμα αυτό υπάρχουν σταθερά σε όλα τα σενάρια τα εξής πεδία που πρέπει να συμπληρώσετε. Περιγραφή. Συμπληρώστε μια σύντομη αλλά περιεκτική περιγραφή για το σενάριο.
Τύπος Εισαγωγής Επιλέξτε από την λίστα έναν από τους Τύπους Εισαγωγής
Ενεργό (Ναι / Όχι )
Συμπεριφορά
- Εισαγωγή (Υποστηρίζεται σε όλα τα σενάρια)
- Εισαγωγή ή Ενημέρωση (Δεν υποστηρίζεται σε όλα τα σενάρια)
- Ενημέρωση (Δεν υποστηρίζεται σε όλα τα σενάρια)
Τρόπος Εκτέλεσης (Client , Server) Δηλώνει αν η εκτέλεση θα γίνεται στον Server ή στον Client. Δεν υποστηρίζεται η επιλογή Server με Τύπο εισαγωγής Excel, CSV. Δεν υποστηρίζεται η επιλογή Client με τύπο εισαγωγής Connectivity API.
Πεδίο κλειδί.
Ο ρόλος του είναι διπλός. Χρησιμοποιείται για την ομαδοποίηση εγγραφών αλλά και για την σύνδεση με αντίστοιχο πεδίο οντότητας της βάσης. Ορίστε ποιο πεδίο θα χρησιμοποιείται για ανεύρεση της εγγραφής είτε για περιπτώσεις ενημέρωσης ή για ταυτοποίηση μοναδικότητας σε εισαγωγή. Το πεδίο αυτό θα πρέπει υποχρεωτικά να έχει επιλεγεί και στο τμήμα των πεδίων αλλιώς κατά την καταχώρηση θα εμφανιστεί απαγορευτικό μήνυμα: «Το πεδίο κλειδί που ορίστηκε είναι μη αποδεκτό». Κατά την εισαγωγή επίσης Συναλλασσόμενων (Συναλλασσόμενοι, Πελάτες, Προμηθευτές κλπ.) πέραν του κλειδιού για τον Συναλλασσόμενο πρέπει υποχρεωτικά να ορίσετε και το κλειδί για το Υποκατάστημα. Σε αντίθετη περίπτωση δεν θα μπορέσει να εισάγει στοιχεία διευθύνσεων. Υπάρχει διαφοροποίηση σε σενάρια εισαγωγής παραστατικών. Λόγω του ότι η μοναδικότητα δεν καθορίζεται από ένα μόνο πεδίο αλλά από περισσότερα. π.χ. (Ημερομηνία, Συναλλασσόμενος, Παραστατικό, Υποκατάστημα), το πεδίο χρησιμοποιείται ως κλειδί ομαδοποίησης. Σε αυτή την περίπτωση ο έλεγχος μοναδικότητας θα καθοριστεί από την σχεδίαση της Σειράς του παραστατικού. Έλεγχο μοναδικότητας στην σειρά θα καθορίσετε με τους παρακάτω τρόπους:
1. Μαζικά από την αντίστοιχη εργασία στην «Σχεδίαση Σειρών Παραστατικών»

2. Μέσα από την σχεδίαση της κάθε σειράς

3. Με παρέμβαση στο Script χρησιμοποιώντας τις συναρτήσεις που δίνονται
Αυτό απαιτεί πολύ καλή γνώση συγγραφής κώδικα καθώς και της δομής της βάσης του PYLON και θα πρέπει να αποφεύγεται αν δεν διαθέτετε τις κατάλληλες γνώσεις (Εξειδικευμένο). Ο τρόπος εργασίας εξαρτάται από το αποτέλεσμα που θέλετε να πετύχετε.
3.1 Χρήση μοναδικού κλειδιού που θα αποθηκεύεται στα User Defined πεδία της οντότητας ή σε Custom Πεδίο. Μπορεί να υλοποιηθεί με χρήση της sc$ApplImportScript.FindRecord( tableName, isPerCompany, filterFields, filterValues, returnField ) με κατάλληλες παραμέτρους.
3.2 Χρήση μοναδικού κλειδιού που θα αποθηκεύεται σε πίνακα. Ο πίνακας αυτός είναι o HEINTEGRATIONENTITIES. Έχουν προβλεφθεί δύο συναρτήσεις:
sc$ApplImportScript.FindIntegrationRecord( tableName, integrationID ) ; H συνάρτηση αυτή παίρνει δυο παραμέτρους. Πίνακα και Μοναδικό Κλειδί και επιστρέφει το ID της εγγραφής ή NULL
sc$ApplImportScript.SaveIntegrationRecord( entityID, tableName, integrationID ) για την αποθήκευση. Οι παράμετροι που χρειάζονται είναι το ID της εγγραφής που έχει εισαχθεί, το όνομα του πίνακα και το μοναδικό κλειδί.
Να σημειωθεί ότι η λειτουργία αυτή μπορεί να χρησιμοποιηθεί και σε πληθώρα άλλων περιπτώσεων εισαγωγής δεδομένων ανάλογα με τις ανάγκες.
Το μειονέκτημα αυτής της μεθόδου είναι ότι σε περίπτωση που κάποια εγγραφή διαγραφεί από τον χρήστη δεν σβήνεται και η εγγραφή στον HEINTEGRATIONENTITIES και θα πρέπει να χρησιμοποιείται με προσοχή.
Πεδίο Οντότητας.
Αναφέρεται στο πεδίο της βάσης με το οποίο θα γίνει η σύγκριση. Μια συνήθης πρακτική είναι στις Master Οντότητες και εφόσον στο PYLON χρησιμοποιείται αυτόματη κωδικοποίηση να αποθηκεύεται ο παλιός κωδικός σε κάποιο από τα πεδία Χρήστη UserDefinedText01 ... UserDefinedText05. Οπότε σε αυτή την περίπτωση σαν πεδίο οντότητας θα επιλέξετε κάποιο από αυτά.
Πεδία Αναζήτησης
Ανάλογα με το είδος του σεναρίου μπορεί να σας ζητηθούν επιπλέον πεδία αναζήτησης οντότητας, κυρίως σε σενάρια εισαγωγής παραστατικών όπου χρειάζονται επιπλέον στοιχεία Συναλλασσόμενου ή Είδους. Οι επιλογές που δίνονται είναι Προτεινόμενο ή κάποιο από τα πεδία χρήστη. Αν επιλέξετε Προτεινόμενο τότε η αναζήτηση θα γίνει με προκαθορισμένα πεδία κλειδιά. Κάποιο από αυτά ή και όλα θα πρέπει να τα έχετε επιλέξει και στο τμήμα των πεδίων αλλιώς κατά την καταχώρηση θα εμφανιστεί μήνυμα σφάλματος.
Για Συναλλασσόμενους αυτά είναι κατά σειρά προτεραιότητας:
- Α.Φ.Μ
- Κωδικός
- Επωνυμία
Για Είδη, Υπηρεσίες, Χρεώσεις κ.λ.π.
- Κωδικός
- Περιγραφή
- Κωδικός Εργοστασίου
- Βοηθητικός Κωδικός
- Εναλλακτικός Κωδικός
Χρησιμοποιήστε το για παραστατικά αγορών όπου ο προμηθευτής σας δίνει κωδικό Barcode αντί για περιγραφή.
Πρόσθετες Επιλογές
Εμφανίζονται σε συγκεκριμένα σενάρια όπου θα σας ζητηθεί να συμπληρώσετε Ημερομηνίες Εισαγωγής, Κωδικούς κίνησης, νομίσματα κλπ.

Αυτό στην περίπτωση που θέλετε να έχετε προκαθορισμένες τιμές και συμπεριφορά στο σενάριο. Όλες αυτές τις παραμέτρους κατά περίπτωση μπορείτε να τις αντικαταστήσετε με πεδία μέσα στο σενάριο. Χρησιμοποιήστε τα πεδία Ομαδοποίησης ανάλογα με τις ανάγκες σας.
Ειδικά για παραστατικά αποθήκης
- Παραστατικά Απογραφής Χρήσης / Εισαγωγής / Εξαγωγής Αποθήκης Χρήση αποκλειστικά με προκαθορισμένες τιμές
- Παραστατικά Αποθήκης (Επιπλέον Δυνατότητες) Μπορεί να χρησιμοποιηθεί και για παραστατικά απογραφής
Μέγιστες Γραμμές
Μεγάλη προσοχή θα πρέπει να δοθεί σε αυτή την επιλογή. Με αυτήν ορίζετε πόσες είναι οι Maximum Γραμμές που θα καταχωρηθούν σε ένα παραστατικό. (Προτεινόμενο 200).
Θα πρέπει να είναι μικρότερη ή ίση με την αντίστοιχη επιλογή της παραμετροποίησης των παραστατικών.
Οργάνωση → Κινήσεις → Παραμετροποίηση Παραστατικού → Παραστατικά

SQL
Εφόσον ο Τύπος Εισαγωγής είναι Βάση Δεδομένων ή Connectivity API γράψτε το Query για την ανάκτηση των δεδομένων. Εναλλακτικά και με την προϋπόθεση ότι διαβάζετε από βάση PYLON μπορείτε να χρησιμοποιήσετε και τον ενσωματωμένο SQL Επεξεργαστή ως βοήθημα. Σχετικό Link Query Builder
Πεδία
Σε αυτό το τμήμα υπάρχουν τα ονόματα των πεδίων της ενότητας, οργανωμένα σε ομάδες. Επιλέξτε κάποιο πεδίο από την αριστερή στήλη και πατήστε
. Προστίθεται γραμμή στο grid δεξιά και συμπληρώνονται οι στήλες «Περιγραφή Πεδίου» και «Όνομα Πεδίου». Υπάρχει σιωπηλός μηχανισμός που δεν σας επιτρέπει να εισάγετε κάποιο πεδίο δεύτερη φορά. H σειρά με την οποία επιλέγονται τα πεδία δεν έχει καμία σημασία καθώς καθορίζεται από το Script.

Συμπληρώστε τις υπόλοιπες στήλες ανάλογα με τον Τύπο Εισαγωγής :
Όνομα πεδίου Query
Αναφέρεται στο πεδίο του QUERY που έχει την πληροφορία του πεδίου που επιλέξατε.
Όνομα κελιού Excel ή αριθμό κελιού
Για να συνδέσετε το πεδίο με την στήλη του Excel αρχείου
Ιδιότητες
- Γενικά

Χρησιμοποιήστε αυτή την επιλογή για να δώσετε προτεινόμενες τιμές σε πεδία (πεδία χωρίς τιμή).
Προσοχή: Μην το χρησιμοποιήσετε σε σενάρια εισαγωγής δεδομένων παραστατικών για το πεδίο Πρόσθετη Χρέωση (IsAdditionalCharge). Το συγκεκριμένο πεδίο θα πρέπει υποχρεωτικά να διαβάζει διακριτές τιμές.
- Αντιστοιχήσεις
Χρησιμοποιήστε την επιλογή για να αντιστοιχήσετε τιμές από την πηγή δεδομένων με αντίστοιχες του PYLON πχ Δ.Ο.Υ, Χώρες, Μονάδες Μέτρησης, Καθεστώτα ΦΠΑ , Τύπους Γραμμών, Επιβαρύνσεις, κλπ. ή με δοτές τιμές.


Σημαντική Παρατήρηση: Όταν σχεδιάζετε σενάριο εισαγωγής δεδομένων απογραφών Πελατών, Προμηθευτών, Χρεωστών, Πιστωτών κλπ. τότε για οικονομία σχεδιάζετε ένα σενάριο, όπου δημιουργούνται ξεχωριστά παραστατικά για την χρέωση απογραφής και την πίστωση απογραφής. Αυτό σημαίνει ότι στο φύλλο Excel υπάρχουν δύο (2) στήλες. Για την χρέωση και την πίστωση αντίστοιχα. Αν λοιπόν για κάποιο πελάτη το υπόλοιπο που μεταφέρετε είναι χρεωστικό τότε η στήλη της χρέωσης έχει ποσό πχ 200 ενώ η στήλη της πίστωσης θα πρέπει να είναι κενή και όχι 0. Στην περίπτωση που έχει τιμή πχ 0,00 τότε αντίστοιχα κατά την εισαγωγή για αυτόν τον πελάτη θα δημιουργηθούν εγγραφές και στο παραστατικό χρέωσης με αξία 200 και στο παραστατικό πίστωσης με ποσό 0. Το ίδιο φυσικά ισχύει και όταν η εισαγωγή γίνεται από βάση δεδομένων. Θα πρέπει οι στήλες αντί για 0 να έχουν NULL τιμή. Εναλλακτικά μπορείτε να το ξεπεράσετε αυτό χρησιμοποιώντας τις αντιστοιχήσεις όπου μόνο για την τιμή μηδέν θα αντιστοιχήσετε το κενό (ctrl_Delete).

Στο κάτω μέρος θα βρείτε Navigation Bar με πλήκτρα μετακίνησης και διαγραφής.

Ελεύθερα πεδία
Για ειδικές περιπτώσεις υπάρχουν και ειδικά ελευθέρα πεδία. Στα Σενάρια υπάρχουν διαθέσιμα:
Εννέα (9) αριθμητικά πεδία ακεραίων: Ελεύθερο Πεδίο Ακέραιου 01.. Ελεύθερο Πεδίο Ακέραιου 09.
Εννέα (9) αριθμητικά πεδία δεκαδικών: Ελεύθερο Πεδίο Αριθμού 01.. Ελεύθερο Πεδίο Αριθμού 09.
Εννέα (9) πεδία ημερομηνίας: Ελεύθερο Πεδίο Ημερομηνίας 01.. Ελεύθερο Πεδίο Ημερομηνίας 09.
Εννέα (9) πεδία Κειμένου: Ελεύθερο Πεδίο Κειμένου 01.. Ελεύθερο Πεδίο Κειμένου 09
Σκοπός τους είναι να καλύψουν ανάγκες που δεν έχουν προβλεφθεί στο Σενάριο.
- Ενημέρωση Custom πεδίων που έχουν δημιουργηθεί στην εφαρμογή μέσω Customization του PYLON.
- Νέα πεδία της εφαρμογής που δεν έχουν ακόμη ενταχθεί στο αντίστοιχο Σενάριο.
- Χρήση τους σε περιπτώσεις εισαγωγής δεδομένων από Excel όπου η πληροφορία έρχεται από διαφορετικές στήλες που πρέπει να συνενωθούν και να ενημερώσουν ένα πεδίο του PYLON.
- Χρήση τους σε περιπτώσεις εισαγωγής δεδομένων από Excel που η πληροφορία θα πρέπει να επεξεργαστεί και μετά να εισαχθεί σε κάποιο πεδίο του PYLON. (Case Scenarios)
Για να λειτουργήσουν θα πρέπει να συμπεριληφθούν στην στήλη των πεδίων και στην συνέχεια να προστεθεί κώδικας στο Script που υπάρχει διαθέσιμο σε κάθε Σενάριο. Η διαδικασία αυτή βέβαια απαιτεί καλή γνώση συγγραφής κώδικα, και εξοικείωση με τα Scripts των σεναρίων. Μην επιχειρήσετε να το κάνετε αν δεν έχετε τις απαραίτητες γνώσεις και πάντα σε συνεργασία με κάποιον εξειδικευμένο σύμβουλο της Epsilon Net.
Παράδειγμα:
if (dic.ContainsKey( "FreeTextField01" ) && dic[" FreeTextField01"] != null && dic[" FreeTextField01"].length > 0) {item.SetValue("<Custom Πεδίο", dic["FreeTextField01"]);}
Μπορείτε σε κάθε σενάριο να δείτε πως συντάσσονται τα User Defined πεδία και να προσθέσετε και τα αντίστοιχα Free.
Script

Μπορείτε να επεξεργαστείτε αυτό το τμήμα θέτοντας τιμή: Ναι στο Αντικατάσταση Script. Η αλλαγή αυτή θα ισχύει μόνο για το συγκεκριμένο σενάριο και όχι για όλα του ίδιου κυκλώματος. Πχ αν σχεδιάσετε 3 διαφορετικά σενάρια για εισαγωγή ειδών το Ναι και οι αλλαγές στο Script θα αφορούν αποκλειστικά αυτό και μόνο το Σενάριο.
Προσοχή!!
Αν η τιμή αλλαχθεί τότε η συντήρηση θα πρέπει να γίνεται από εσάς και οι όποιες αλλαγές γίνουν στο μέλλον στο Script από την Epsilon Net δεν θα αποτυπώνονται στο Script του σεναρίου. Θα πρέπει σε κάθε μεταβολή του σεναρίου και εφόσον προσθέσετε νέα πεδία να ελέγχετε και αν αυτά αποτυπώνονται και στο Script.
Επίσης. Αν σε σενάριο που έχετε επεξεργαστεί ήδη, αλλάξετε την τιμή αντικατάσταση Script σε Όχι και αποθηκεύσετε, τότε το Script θα επανέλθει στην Default μορφή, και όλες οι αλλαγές που έχουν γίνει σε αυτό, θα χαθούν.
Πλήκτρα συντόμευσης
Ενώ βρίσκεστε μέσα στον κειμενογράφο.
Με CTRL_F Ενεργοποιείται αναζήτηση.
Με CTRL_G Ενεργοποιείται επιλογή για μετάβαση σε συγκεκριμένη γραμμή του Script.
Script Μετά την Εισαγωγή
To τμήμα αυτό είναι πάντα κενό. Μπορείτε να το χρησιμοποιήσετε εφόσον είναι αναγκαίο να εκτελεστεί κώδικάς, αφού ολοκληρωθεί η εκτέλεση της εισαγωγής δεδομένων.
Προσοχή : Εκτελείται πάντα αφού τελειώσει η εισαγωγή και όχι για κάθε εγγραφή ξεχωριστά.
Έχουν υλοποιηθεί δύο χρήσιμες συναρτήσεις:
- sc$ApplImportScript.AfterImport_GetInsertedIDs();
- sc$ApplImportScript.AfterImport_GetUpdatedIDs();
οι οποίες επιστρέφουν λίστα με τα HEID των εγγραφών που έχουν εισαχθεί ή μεταβληθεί .
Για να μπορέσετε να το χρησιμοποιήσετε θα πρέπει να θέσετε τιμή Ναι στο πεδίο Εκτέλεση Script Μετά την Εισαγωγή.

Παράδειγμα :
var InsID = null;
var InsertedRecs = sc$ApplImportScript.AfterImport_GetInsertedIDs();
for ( var Ind = 0; Ind < InsertedRecs.Count ; Ind++ ) {
InsID = InsertedRecs[ Ind ];
Κώδικας …
}