---
title: "Σενάρια μετασχηματισμών"
canonical: "https://wiki.soft1.eu/space/ATEL/182092334/%CE%A3%CE%B5%CE%BD%CE%AC%CF%81%CE%B9%CE%B1%20%CE%BC%CE%B5%CF%84%CE%B1%CF%83%CF%87%CE%B7%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8E%CE%BD"
format: markdown
---
Εισαγωγή Η ανάγκη λειτουργίας των εργασιών των μετασχηματισμών με προκαθορισμένη συμπεριφορά για κάθε χρήστη ή ομάδα χρηστών οδήγησε στη δημιουργία ενός αρχείου στο οποίο αποθηκεύονται οι παράμετροι των εργασιών των μετασχηματισμών. Η διαχείριση του αρχείου γίνεται από την παρακάτω επιλογή: *Οργάνωση λειτουργίας ->Βοηθητικές εργασίες ->Σχεδιασμός ->*  Σενάρια εργασίας  ( Εικόνα 1). Σε κάθε σενάριο ορίζετε την κατηγορία στην οποία θα χρησιμοποιηθεί το σενάριο (π.χ. Μαζικοί μετασχηματισμοί αγορών, Μετασχηματισμοί πωλήσεων), την ομάδα χρηστών, τον χρήστη και τον κώδικα (script) ο οποίος θα εκτελεστεί αφού επιλεγεί κάποιο σενάριο (Εικόνα 2).  Οι κατηγορίες σεναρίων που μπορεί να επιλέξει ο χρήστη είναι οι εξής: Μαζικοί μετασχηματισμοί πωλήσεων Μετασχηματισμοί πωλήσεων Μετασχηματισμοί παροχής υπηρεσιών Μαζικοί μετασχηματισμοί αγορών Μετασχηματισμοί αγορών Μετασχηματισμοί λήψης υπηρεσιών                         κάντε κλικ για μεγέθυνση Ο κώδικας των σεναρίων αποτελείται από δύο τμήματα: script φόρμας περιέχει τον κώδικα που αφορά τα πεδία της φόρμας και εκτελείται αφού επιλεγεί κάποιο σενάριο. script εκτέλεσης περιέχει τον κώδικα που θα εκτελεστεί πριν ξεκινήσει η εκτέλεση της εργασίας (με το πάτημα του πλήκτρου «Αποδοχή»).                         κάντε κλικ για μεγέθυνση Επιλέγοντας κάποιο από τα πλήκτρα «Script φόρμας» και «Script εκτέλεσης» εμφανίζεται στην οθόνη ένα παράθυρο που περιέχει τον αντίστοιχο κώδικα (Εικόνες 3 και 4). Το κλείσιμο του παραθύρου του κώδικα γίνεται με δεύτερο πάτημα των πλήκτρων «Script φόρμας» και «Script εκτέλεσης». Στο script εκτέλεσης ο χρήστης μπορεί να συμπεριλάβει κώδικα που θα περιλαμβάνει ελέγχους για τις τιμές των πεδίων της φόρμας με προειδοποιητικά μηνύματα όπως φαίνεται από το παράδειγμα της εικόνας 4.                         κάντε κλικ για μεγέθυνση Η εικόνα 5 παρουσιάζει ολοκληρωμένο τον κώδικα του script εκτέλεσης της Εικόνας 4. Ο ορισμός και η εφαρμογή των σεναρίων προς το παρόν περιορίζεται στις εργασίες των μετασχηματισμών. Αργότερα θα επεκταθεί σε όλες τις batch διαδικασίες. if (edDateFrom.Text != '') and (edDateTo.Text != '') then { if StrToDate(edDateFrom.Text) > StrToDate(edDateTo.Text) then  raiseexception('Η [Εως Ημερομηνία] πρέπει να έπεται της [Από Ημερομηνία]'); } if (edDSrIdTo.DBEdit.Text == '2') and ((edDSrIdFrom.DBEdit.Text == '4') or (edDSrIdFrom.DBEdit.Text == '10')) then raiseexception('Τα "Πιστωτικό τιμολόγιο" και "Ακυρωτικό τιμολόγιο" δεν μπορούν να μετασχηματιστούν σε "Τιμολόγιο-Δελτίο Αποστολής".'); if VarIsNull(edDSrIdFrom.DBEdit.Text) then  raiseexception('Η [Από σειρά] δεν μπορεί να είναι κενή.'); if edBraId.DBEdit.Text == '2' then raiseexception('Δεν επιτρέπεται το υποκατάστημα με κωδικό : 2'); Ο ορισμός και η εφαρμογή των σεναρίων προς το παρόν περιορίζεται στις εργασίες των μετασχηματισμών. Αργότερα θα επεκταθεί σε όλες τις batch διαδικασίες. Προκαθορισμένες Μεταβλητές Σεναρίων Σενάρια Μαζικών Μετασχηματισμών Script φόρμας -  Script εκτέλεσης CONFIRMLIMIT Η μεταβλητή CONFIRMLIMIT χρησιμοποιείται στην περίπτωση που ο χρήστης επιθυμεί να ζητείται επιβεβαίωση πριν από τη διαδικασία του μαζικού μετασχηματισμού. Η μεταβλητή αυτή δηλώνεται στο σενάριο εκτέλεσης και έχει την εξής σύνταξη: COMFIRMLIMIT = ελάχιστο πλήθος παραστατικών προς μετασχηματισμό για το οποίο θα ζητηθεί επιβεβαίωση. Παράδειγμα   Έστω ότι στο σενάριο εκτέλεσης υπάρχει η παρακάτω δήλωση: CONFIRMLIMIT=15;  Αν το πλήθος των παραστατικών που πρόκειται να μετασχηματιστούν είναι μεγαλύτερο ή ίσο του 15 θα εμφανιστεί το μήνυμα: "Πρόκειται να μετασχηματιστούν 15 παραστατικά από την σειρά Α στην σειρά Β με ημερομηνία 15-1-2002. Να συνεχιστεί η διαδικασία;" Ανάλογα με την απάντηση που θα δώσει ο χρήστης θα ξεκινήσει ή όχι η διαδικασία του μετασχηματισμού. Αν το πλήθος των παραστατικών που πρόκειται να μετασχηματιστούν είναι μικρότερο του 15, η διαδικασία του μετασχηματισμού εκτελείται κανονικά KEEPDATE Η μεταβλητή KEEPDATE (τιμές 0, 1) καθορίζει αν το καινούριο παραστατικό θα διατηρεί την ημερομηνία του αρχικού παραστατικού. Όταν ο χρήστης ορίσει KEEPDATE=0, τότε η ημερομηνία του καινούριου παραστατικού είναι αυτή που έχει οριστεί στο πεδίο «Ημερ. Καινούργιων παραστατικών». Σενάρια Απλών Μετασχηματισμών Script φόρμας NOAUTOQUERY Η μεταβλητή NOAUTOQUERY (τιμές 0,1 – Default τιμή=0) καθορίζει αν με κάθε αλλαγή ενός πεδίου της φόρμας θα εκτελείται το query που επιστρέφει τα διαθέσιμα παραστατικά. Όταν NOAUTOQUERY = 1, εμφανίζεται στη φόρμα του μετασχηματισμού το πλήκτρο «Εκτέλεση ερώτησης», το οποίο επιτρέπει στο χρήστη να εκτελέσει το query όποτε το επιθυμεί.  NOAUTOQUERY=1; Script εκτέλεσης SELECTEDIDS Στα σενάρια των απλών μετασχηματισμών ο χρήστης έχει τη δυνατότητα στο script εκτέλεσης να κάνει ελέγχους για τα παραστατικά που έχουν επιλεγεί προς μετασχηματισμό και συγκεκριμένα για τους κωδικούς σειράς αυτών των παραστατικών. Για το σκοπό αυτό έχει οριστεί η μεταβλητή SELECTEDIDS στην οποία αποθηκεύονται οι κωδικοί σειρών των επιλεγμένων παραστατικών. Αν, π.χ. ο χρήστης επιθυμεί να ελέγξει αν μια συγκεκριμένη σειρά βρίσκεται στις επιλεγμένες του χρήστη μπορεί να κάνει τον παρακάτω έλεγχο:  If Pos(',2,',','SELECTEDIDS',') > 0 then RaiseException('Δεν επιτρέπεται να επιλεγεί η σειρά με κωδικό=2 προς μετασχηματισμό.'); TAXFREEMODE Η μεταβλητή TAXFREEMODE έχει εφαρμογή στις αφορολόγητες αποθήκες. Όταν TAXFREEMODE=1 το είδος του αρχικού παραστατικού αντικαθίσταται με το είδος «Κωδικός αφορολόγητου» από τα στοιχεία του είδους. KEEPSTORE Η μεταβλητή KEEPSTORE ελέγχει την τιμή του πεδίου Α.Χ. στο παραστατικό που προκύπτει από το μετασχηματισμό. Όταν   KEEPSTORE =0 το νέο παραστατικό λαμβάνει Α.Χ. από τον προκαθορισμένο στη Σειρά αρίθμησης ( default   λειτουργία). Όταν   KEEPSTORE =1 το νέο παραστατικό διατηρεί τον Α.Χ. ο οποίος υπάρχει στο παραστατικό προέλευσης. Όταν   KEEPSTORE =2 το νέο παραστατικό διατηρεί τον Α.Χ. και τις Θέσεις αποθήκευσης ειδών στις γραμμές, τα οποία υπάρχουν στο παραστατικό προέλευσης. USEONLYESTQTYS Η συγκεκριμένη μεταβλητή σχετίζεται με τις ποσότητες των ειδών που εμφανίζονται στις γραμμές. Αν USEONLYESTQTYS = 1 τότε στην περίπτωση επιλογής μιας πλήρους μετασχηματισμένης παραγγελίας, στο καινούριο παραστατικό καταχωρούνται μηδενικές ποσότητες στα είδη, αντί για τις αρχικές ποσότητες της παραγγελίας. Κοινές Μεταβλητές (Απλοί & Μαζικοί Μετασχηματισμοί) Script φόρμας ADDWHERE Στα σενάρια που αναφέρονται σε μαζικούς μετασχηματισμούς υπάρχει η δυνατότητα να ορίσει ο χρήστης στο script φόρμας επιπλέον συνθήκες οι οποίες θα χρησιμοποιηθούν στο query του μετασχηματισμού. Αυτό γίνεται με τη χρήση μιας μεταβλητής με όνομα ADDWHERE στην οποία ο χρήστης θέτει ως τιμή τις συνθήκες που επιθυμεί όπως φαίνεται στο παράδειγμα που ακολουθεί:  ADDWHERE='(ISCANCELLED=0)'; ALTERVIEW Η μεταβλητή ALTERVIEW παρέχεται για την περίπτωση που ο χρήστης επιθυμεί να χρησιμοποιήσει στο query του μετασχηματισμού ένα view διαφορετικό από το προκαθορισμένο.  ALTERVIEW='TESTVIEW'   Script εκτέλεσης AGREEMENTDATE Η μεταβλητή AGREEMENTDATE επιτρέπει τον καθορισμό των ημερομηνιών του διακανονισμού.  Όταν AGREEMENTDATE=1 οι ημερομηνίες του διακανονισμού αντιγράφονται από το μετασχηματισμένο στο καινούριο παραστατικό. Όταν AGREEMENTDATE=0 οι ημερομηνίες διακανονισμού του καινούριου παραστατικού υπολογίζονται σύμφωνα με την ημερομηνία παραστατικού. COLOREXPAND Κατά τη διαδικασία μετασχηματισμού (μαζικού ή απλού) και εφόσον οι γραμμές των παραστατικών που πρόκειται να μετασχηματιστούν περιλαμβάνουν είδη με ανάλυση σε χρώμα-μέγεθος, ο χρήστης έχει τη δυνατότητα να αναπτύξει τις ποσότητες ανά χρώμα-μέγεθος είτε ως προς χρώμα είτε ως προς χρώμα-μέγεθος σε διαφορετική γραμμή. Η συμπεριφορά αυτή ορίζεται με τη μεταβλητή COLOREXPAND. Η μεταβλητή αυτή δέχεται διαφορετικές τιμές ανάλογα με τη συμπεριφορά που θα επιλεγεί. COLOREXPAND=0; Η ανάλυση ανά χρώμα μέγεθος αντιγράφεται ως έχει από τα επιλεγμένα παραστατικά. COLOREXPAND=1; Για κάθε χρώμα δημιουργείται μια καινούρια γραμμή στο νέο παραστατικό. COLOREXPAND=2; Για κάθε συνδυασμό χρώματος-μεγέθους δημιουργείται μια καινούρια γραμμή στο νέο παραστατικό. COPYALLJUST Η μεταβλητή COPYALLJUST επιτρέπει να αντιγράφονται κατά τον μετασχηματισμό όλες οι αιτιολογίες του παραστατικού (COPYALLJUST=1). COPYCUSTOMFIELDS Η μεταβλητή COPYCUSTOMFIELDS επιτρέπει να αντιγράφονται κατά τον μετασχηματισμό   όλα   τα custom πεδία που υπάρχουν στις γραμμές των παραστατικών (COPYCUSTOMFIELDS=1) COPYSPECCUSTOMFIELDS Η μεταβλητή COPYSPECCUSTOMFIELDS επιτρέπει να αντιγράφονται κατά τον μετασχηματισμό συγκεκριμένα custom πεδία των γραμμών των παραστατικών, όπως αυτά καθορίζονται στη λίστα της μεταβλητής (COPYSPECCUSTOMFIELDS('πεδίο1','πεδίο 2','πεδίο3')). DELETEORDERS Η μεταβλητή DELETEORDERS επιτρέπει τη διαγραφή των παραγγελιών ή των υπολοίπων τους αφού ολοκληρωθεί ο μετασχηματισμός τους. Μπορεί να λάβει τις παρακάτω τιμές με τις αντίστοιχες λειτουργίες:  Όταν DELETEORDERS=0 (Default τιμή) ή δεν υπάρχει η εντολή, δεν επιτρέπεται διαγραφή των παραγγελιών.  Όταν DELETEORDERS=1 και ο μετασχηματισμός των παραγγελιών είναι πλήρης, ακολουθεί η διαγραφή τους.  Όταν DELETEORDERS=2 και οι παραγγελίες ΔΕΝ έχουν μετασχηματισθεί πλήρως, ακολουθεί η διαγραφή των υπολοίπων των παραγγελιών.  Όταν DELETEORDERS=3 και ο μετασχηματισμός των παραγγελιών ΔΕΝ είναι πλήρης, ακολουθεί η διαγραφή τους. DONOTCOPYSERIALNUMBERS Η μεταβλητή DONOTCOPYSERIALNUMBERS δεν επιτρέπει να γίνεται η αντιγραφή των serial number του παλιού παραστατικού (DONOTCOPYSERIALNUMBERS=1). DONOTCOPYPARTITIONS Η μεταβλητή DONOTCOPYPARTITIONS δεν επιτρέπει να γίνεται η αντιγραφή των παρτίδων του παλιού παραστατικού (DONOTCOPYPARTITIONS=1). FROMDOCTYPEIDS Η μεταβλητή FROMDOCTYPEID περιέχει τα ids των τύπων συναλλαγής των σειρών των επιλεγμένων παραστατικών. FROMTNACODES Η μεταβλητή FROMTNACODE περιέχει τα ids των φύσεων συναλλαγής των σειρών των επιλεγμένων παραστατικών. KEEPNEWNULLVALUES Η μεταβλητή KEEPNEWNULLVALUES επιτρέπει να διατηρούν τη τιμή null τα πεδία που έχουν τιμή null και περιλαμβάνονται στην εντολή KEEPNEWVALUE (KEEPNEWNULLVALUES=1). KEEPNEWVALUE Λίστα με πεδία που θα κρατήσουν την τιμή του νέου παραστατικού εφόσον δεν είναι null (KEEPNEWVALUE('πίνακας1.πεδίο1','πίνακας2.πεδίο3')). KEEPNEWSHIPCAUSE Η μεταβλητή KEEPNEWSHIPCAUSE επιτρέπει τη διατήρηση του Σκοπού Διακίνησης του νέου παραστατικού (KEEPNEWSHIPCAUSE=1). NORECALCSURCHARGEVALUE Η μεταβλητή NORECALCSURCHARGEVALUE ΔΕΝ επιτρέπει τον επανυπολογισμό των επιβαρύνσεων με τύπο «Αξία επιβάρυνσης» (NORECALCSURCHARGEVALUE=1). Έτσι διατηρείται τυχόν άθροισμα των τιμών τους. Οι επιλογές «Αντιγραφή εξόδων» και «Διατήρηση ισοτιμιών» πρέπει να είναι ενεργοποιημένες. PRECISIONTRANSFORMATION Η μεταβλητή PRECISIONTRANSFORMATION επιτρέπει κατά τον μερικό ή ολικό μετασχηματισμό μη μετασχηματισμένων παραστατικών με εκπτώσεις συνόλων να γίνονται υπολογισμοί για την ακριβή μεταφορά των εκπτώσεων ή των υπολοίπων των εκπτώσεων και των πληρωτέων ποσών στο νέο παραστατικό (PRECISIONTRANSFORMATION=1). TODOCTYPEID Η μεταβλητή TODOCTYPEID περιέχει το id του τύπου συναλλαγής της «Σε σειρά». TOTNACODE Η μεταβλητή TOTNACODE περιέχει το id της φύσης συναλλαγής του τύπου συναλλαγής της «Σε σειράς». Αντιστοίχιση των σεναρίων με τις σειρές Αγορών / Πωλήσεων Για να γίνει εφικτή η χρήση των σεναρίων στις φόρμες των μετασχηματισμών, πρέπει να οριστούν για κάθε σενάριο οι σε σειρές για τις οποίες μπορεί να χρησιμοποιηθεί. Αυτή η εργασία γίνεται από το πλήκτρο «Αντιστοίχιση» της φόρμας διαχείρισης των σεναρίων. Το πλήκτρο «Αντιστοίχιση» είναι ορατό μόνο όταν η κατηγορία του σεναρίου είναι «Μαζικοί μετασχηματισμοί παραστατικών» ή «Μετασχηματισμοί παραστατικών». Με το πάτημα του πλήκτρου «Αντιστοίχιση» εμφανίζεται η φόρμα της εικόνας 6.                κάντε κλικ για μεγέθυνση Χρήση των σεναρίων Στις εργασίες «Μαζικοί μετασχηματισμοί» και «Μετασχηματισμός σε νέο παραστατικό» έχουν προστεθεί οι παρακάτω επιλογές μενού που εμφανίζονται με δεξί click στην οθόνη: Αποθήκευση ως default Δημιουργία σεναρίου Επιλογή σεναρίου για τη διαχείριση των σεναρίων. Η επιλογή «Αποθήκευση ως default» είναι ενεργοποιημένη μόνο για τους χρήστες που έχουν δικαίωμα δημιουργίας σεναρίων.                κάντε κλικ για μεγέθυνση Αποθήκευση ως default Για κάθε χρήστη υπάρχει η δυνατότητα να δημιουργήσει ένα ειδικό σενάριο για κάθε μετασχηματισμό το οποίο θα ενεργοποιείται αυτόματα όταν ο χρήστης επιλέξει τον συγκεκριμένο μετασχηματισμό. Αφού ο χρήστης συμπληρώσει τα πεδία που επιθυμεί στη φόρμα, με δεξί click επιλέγει «Αποθήκευση ως default» και δημιουργείται ένα σενάριο για τον συγκεκριμένο χρήστη και μετασχηματισμό. Το σενάριο αυτό έχει ως περιγραφή το λεκτικό «Default». Την επόμενη φορά που ο χρήστης χρησιμοποιήσει την ίδια φόρμα μετασχηματισμού θα ενεργοποιηθεί το default σενάριο. Η επιλογή «Αποθήκευση ως default» είναι απενεργοποιημένη για τον χρήστη που έχει default σενάριο σε μια ορισμένη φόρμα μετασχηματισμού. Δημιουργία σεναρίου   Η δημιουργία ενός σεναρίου μπορεί να γίνει απευθείας από τις φόρμες των μετασχηματισμών. Αφού συμπληρώσει ο χρήστης τα πεδία που επιθυμεί στη φόρμα, με δεξί click επιλέγει «Δημιουργία σεναρίου» και εμφανίζεται η οθόνη της εικόνας 2 έχοντας συμπληρωμένο το πεδίο «Script φόρμας» σύμφωνα με τις τιμές που έχει καθορίσει στη φόρμα των μετασχηματισμών. Συμπληρώνει τα υπόλοιπα πεδία με τις τιμές που επιθυμεί και αποθηκεύει το σενάριο. Αν έχει συμπληρωθεί το πεδίο «Σε σειρά», τότε δημιουργείται αυτόματα μια εγγραφή αντιστοίχισης για τη συγκεκριμένη σειρά. Η συγκεκριμένη επιλογή είναι διαθέσιμη μόνο όταν ο χρήστης έχει δικαίωμα για δημιουργία σεναρίου. Επιλογή σεναρίου   Επιλέγοντας από το μενού «Επιλογή σεναρίου» εμφανίζεται η φόρμα της εικόνας 8 από την οποία ο χρήστης μπορεί να επιλέξει ένα από τα διαθέσιμα σενάρια. Στη φόρμα εμφανίζονται μόνο τα σενάρια που αφορούν τη φόρμα για την οποία θέλει να επιλέξει σενάριο και αναφέρονται στο χρήστη log on ή/και στην ομάδα χρήστη. Σε περίπτωση που είναι συμπληρωμένο το πεδίο: «Σε σειρά» της φόρμας μετασχηματισμού, θα χρησιμοποιηθεί αυτό το πεδίο ως φίλτρο για τα προτεινόμενα σενάρια, δηλ. τα προτεινόμενα σενάρια θα έχουν αντιστοίχιση με τη συγκεκριμένη σειρά. Αφού επιλέξει ένα σενάριο είτε με διπλό click είτε με «Αποδοχή», τα πεδία της φόρμας του μετασχηματισμού συμπληρώνονται με τις τιμές που έχουν καθοριστεί στο script φόρμας του επιλεγμένου σεναρίου.                 κάντε κλικ για μεγέθυνση