Επεξεργασία ημερολογίων ωρών εργασίας με χρήση API
Οι οργανισμοί συχνά πρέπει να δημιουργούν, να επεξεργάζονται ή να διαγράφουν ώρες εργασίας στα ημερολόγια των πόρων τους. Τα ημερολόγια εμφανίζουν ώρες εργασίας, άδεια και διαλείμματα που καθορίζουν τη διαθεσιμότητα ενός πόρου κατά τον προγραμματισμό της εργασίας. Οι πόροι αυτοί πρέπει να προγραμματιστούν σε συγκεκριμένες ζώνες ώρας, μπορεί να παρατηρούν ή να μην παρατηρούν το κλείσιμο των επιχειρήσεων και μπορούν να έχουν μεταβλητή χωρητικότητα. Για πληροφορίες σχετικά με τον ορισμό ωρών εργασίας στην εφαρμογή Field Service, μεταβείτε στην επιλογή Προσθήκη ωρών εργασίας σε έναν πόρο με δυνατότητα κράτησης.
Εκτός από τη χρήση της εφαρμογής Field Service, μπορείτε να χρησιμοποιήσετε τα ακόλουθα API για να τροποποιήσετε τους κανόνες ημερολογίου για επιλεγμένους τύπους καρτών:
- Το API "Αποθήκευση ημερολογίου" (
msdyn_SaveCalendar
) δημιουργεί ή ενημερώνει εγγραφές ημερολογίου σε μια επιλεγμένη οντότητα, με βάση τις εισόδους που έχουν περάσει ως αίτηση. - Το API διαγραφής ημερολογίου (
msdyn_DeleteCalendar
) διαγράφει όλους τους εσωτερικούς κανόνες ημερολογίου ενός ημερολογίου σε μια επιλεγμένη οντότητα, με βάση τις εισόδους που μεταβιβάστηκαν ως αίτηση. - Το Save/Delete Calendar API V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, pass flag UseV2) επιτρέπει την ταυτόχρονη περιοδικότητα πολλών ωρών εργασίας, αλλάζοντας τη λογική των επικαλυπτόμενων κανόνων. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Τι συμβαίνει εάν υπάρχουν επικαλυπτόμενες κανόνες;
Αυτό το άρθρο περιέχει λεπτομέρειες σχετικά με την είσοδο (αίτηση) και την έξοδο (απόκριση) κάθε API και τη χρήση τους, με παραδείγματα.
Προϋποθέσεις
- Η έκδοση της πλατφόρμας 9.2.21055 ή παραπάνω με Universal Resource Scheduling έκδοσης 3.12.45.7.
- Χρήση ενός από τους ακόλουθους τύπους καρτελών:
- Πόρος με δυνατότητα κράτησης (bookableresource)
- Απαίτηση πόρου (msdyn_resourcerequirement)
- Πρότυπο ωρών εργασίας (msdyn_workhourtemplate)
- Έργο (msdyn_project)
Τύποι συμβάντων ημερολογίου
Όταν δημιουργείτε ένα ημερολόγιο, καθορίζετε πόσες φορές ένας τύπος ώρας εργασίας εμφανίζεται—μία, όλη την ημέρα, κάθε εβδομάδα ή κάθε μέρα ή μπορείτε να δημιουργήσετε μια προσαρμοσμένη περιοδικότητα. Για περισσότερες πληροφορίες σχετικά με αυτά τα συμβάντα ημερολογίου, μεταβείτε στα παραδείγματα αργότερα σε αυτό το άρθρο.
Εμφάνιση
Όταν ένας τύπος ώρας εργασίας εμφανίζεται μόνο μία φορά στο ημερολόγιο της οντότητας, ονομάζεται εμφάνιση.
Για παράδειγμα, εξετάστε το ενδεχόμενο ένας πόρος που λειτουργεί από τις 5:00 π.μ. έως τις 10:00 π.μ. στις 26 Μαΐου 2021. Αυτά τα API υποστηρίζουν μόνο αυτόν τον τύπο εμφάνισης, ο οποίος ξεκινά και τελειώνει εντός της ίδιας ημέρας. Για ένα άλλο παράδειγμα, εξετάστε έναν πόρο που λειτουργεί από τις 26 Μαΐου 2021 στις 8:00 μ.μ. 10:00 π.μ. στις 27 Μαΐου 2021. Δεν μπορείτε να δημιουργήσετε αυτήν την εμφάνιση χρησιμοποιώντας μόνο μία κλήση του API msdyn_SaveCalendar
. Πρέπει να κάνετε δύο κλήσεις.
Ολοήμερη εμφάνιση
Όταν ένας τύπος ώρας εργασίας εμφανίζεται για μία ή περισσότερες ολόκληρες ημέρες, ξεκινώντας από τα μεσάνυχτα (12:00 π.μ.) της ημερομηνίας έναρξης, είναι μια ολοήμερη εμφάνιση. Η μέγιστη διάρκεια για ολοήμερη εμφάνιση είναι πέντε έτη.
Για παράδειγμα, ένας πόρος λειτουργεί όλη την ημέρα από τις 26 Μαΐου 2021 έως το τέλος της ημέρας στις 30 Μαΐου 2021. Αυτό είναι ένα ολοήμερο περιστατικό που διαρκεί πέντε ημέρες.
Εβδομαδιαία περιοδικότητα
Όταν ένας τύπος ώρας εργασίας εμφανίζεται ταυτόχρονα σε επιλεγμένες ημέρες κάθε εβδομάδας, ονομάζεται εβδομαδιαία περιοδικότητα.
Για παράδειγμα, ένας πόρος λειτουργεί από τις 5:00 π.μ. έως τις 10:00 π.μ. κάθε Δευτέρα, Τρίτη και Τετάρτη.
Καθημερινή περιοδικότητα
Όταν ένας τύπος ώρας εργασίας εμφανίζεται ταυτόχρονα κάθε ημέρα, ονομάζεται ημερήσια περιοδικότητα.
Για παράδειγμα, ένας πόρος λειτουργεί από τις 5:00 π.μ. έως τις 10:00 π.μ. κάθε ημέρα της εβδομάδας.
Προσαρμοσμένη περιοδικότητα
Όταν ένας τύπος ώρας εργασίας εμφανίζεται σε συγκεκριμένες ώρες σε ορισμένες ημέρες της εβδομάδας, αλλά οι ώρες είναι διαφορετικές σε διαφορετικές ημέρες, μπορείτε να δημιουργήσετε μια προσαρμοσμένη περιοδικότητα.
Για παράδειγμα, ένας πόρος λειτουργεί από τις 5:00 π.μ. έως τις 10:00 π.μ. κάθε Δευτέρα και από τις 12:00 μ.μ. έως τις 3:00 μ.μ. κάθε Τετάρτη.
Τύποι ώρας εργασίας
Αυτά τα API υποστηρίζουν τη δημιουργία, την ενημέρωση και τη διαγραφή λειτουργιών για τους ακόλουθους τύπους ωρών εργασίας:
Ώρες εργασίας
Οι ώρες εργασίας είναι ώρες κατά τις οποίες μια οντότητα είναι διαθέσιμη για εκτέλεση εργασίας.
Χρησιμοποιώντας αυτά τα API, μπορείτε να κάνετε τα εξής:
- Δημιουργήστε, επεξεργαστείτε ή διαγράψτε μια εμφάνιση εργάσιμης ώρας.
- Δημιουργήστε, επεξεργαστείτε ή διαγράψτε μια ημερήσια περιοδικότητα.
- Δημιουργήστε, επεξεργαστείτε ή διαγράψτε μια εβδομαδιαία περιοδικότητα.
- Δημιουργήστε, επεξεργαστείτε ή διαγράψτε μια προσαρμοσμένη περιοδικότητα.
- Δημιουργήστε, επεξεργαστείτε ή διαγράψτε ολοήμερες εργάσιμες ώρες.
- Δημιουργήστε ή επεξεργαστείτε χωρητικότητα σε ώρες εργασίας.
- Επεξεργαστείτε μία μόνο εμφάνιση εργάσιμης ώρας σε μια περιοδικότητα.
- Επεξεργαστείτε Αυτήν και ακόλουθες εμφανίσεις σε μια περιοδικότητα.
- Αλλάξτε μια εμφάνιση εργάσιμης ώρας σε περιοδικότητα.
- Αλλάξτε τη ζώνη ώρας του κανόνα ημερολογίου.
Χρησιμοποιώντας αυτό το API, δεν μπορείτε να κάνετε τα εξής:
- Διαγράψτε μία μόνο εμφάνιση εργάσιμης ώρας από μια περιοδικότητα.
- Δημιουργήστε μια εμφάνιση που εκτείνεται σε 24 ώρες, αλλά δεν ξεκινά και τελειώνει τα μεσάνυχτα (12:00 π.μ.).
- Δημιουργήστε, επεξεργαστείτε ή διαγράψτε μια ολοήμερη περιοδικότητα.
Μη εργάσιμη ώρα
Αυτές είναι στιγμές κατά τις οποίες η οντότητα δεν είναι διαθέσιμη για εργασία για απροσδιόριστο λόγο.
Χρησιμοποιώντας αυτά τα API, μπορείτε να κάνετε τα εξής:
- Δημιουργήστε ή επεξεργαστείτε ολοήμερες μη εργάσιμες ώρες.
- Δημιουργήστε ή επεξεργαστείτε μια εμφάνιση μη εργάσιμης ώρας.
- Αλλάξτε τη ζώνη ώρας του κανόνα ημερολογίου.
Χρησιμοποιώντας αυτά τα API, δεν μπορείτε να κάνετε τα εξής:
- Να δημιουργήσετε ή να επεξεργαστείτε περιοδικότητα μη εργάσιμης ώρας.
Αλλαγή
Αυτές είναι οι ώρες σε μια εργάσιμη ημέρα κατά τη διάρκεια της οποίας μια οντότητα κάνει ένα διάλειμμα και δεν είναι διαθέσιμη για εργασία. Τα διαλείμματα δεν μπορούν να υπάρχουν χωρίς ώρες εργασίας. πρέπει να συμβαίνουν μεταξύ δύο ωρών εργασίας σε μια ημέρα. Τα διαλείμματα δεν μπορούν να επικαλύπτονται με τις ώρες εργασίας.
Χρησιμοποιώντας αυτά τα API, μπορείτε να κάνετε τα εξής:
- Δημιουργήστε ή επεξεργαστείτε διαλείμματα κατά τη διάρκεια μη εργάσιμων ωρών.
Χρησιμοποιώντας αυτά τα API, δεν μπορείτε να κάνετε τα εξής:
- Διαγράψτε μόνο διαλείμματα από μια εμφάνιση ή επανάληψη των ωρών εργασίας.
Άδεια
Αυτές είναι στιγμές κατά τις οποίες μια οντότητα δεν είναι διαθέσιμη για εργασία λόγω διακοπών. Ο λόγος για την άδεια μπορεί να καθοριστεί.
Χρησιμοποιώντας αυτά τα API, μπορείτε να κάνετε τα εξής:
- Δημιουργήστε ή επεξεργαστείτε τον χρόνο διακοπών με μια ετικέτα.
- Αλλάξτε τη ζώνη ώρας του κανόνα ημερολογίου.
Χρησιμοποιώντας αυτά τα API, δεν μπορείτε να κάνετε τα εξής:
- Δημιουργήστε ή επεξεργαστείτε περιοδικότητα χρόνου διακοπών.
Κλείσιμο επιχείρησης
Μπορείτε να δημιουργήσετε οντότητες κλεισίματος επιχειρήσεων που καθορίζουν τις ώρες κλεισίματος της επιχείρησης. Χρησιμοποιώντας το API msdyn_SaveCalendar
, μπορείτε να ορίσετε κάθε οντότητα να παρατηρεί ή να αγνοεί τους χρόνους κλεισίματος των επιχειρήσεων του οργανισμού χρησιμοποιώντας το προαιρετικό κλειδί ObserveClosure. Όταν ρυθμιστούν να παρατηρούν αυτά τα κλεισίματα, οι οντότητες δεν είναι διαθέσιμες για εργασία.
Αποθήκευση API ημερολογίου
Δεδομένα εισόδου
Η αίτηση περιέχει μόνο ένα χαρακτηριστικό-CalendarEventInfo, το οποίο είναι ένας τύπος Συμβολοσειράς. Περιέχει πολλά άλλα χαρακτηριστικά που είναι όλα ενσωματωμένα σε αυτήν τη συμβολοσειρά.
Σημείωμα
Στον παρακάτω πίνακα, ο Τύπος αντιπροσωπεύει τη μορφή που αναμένεται να υποβάλει μια επιτυχημένη αίτηση. Ωστόσο, ολόκληρη η αίτηση αναλύεται ως μία συμβολοσειρά.
CalendarEventInfo
Ονομασία | Τύπος | Απαιτούμενο | Περιγραφή |
---|---|---|---|
EntityLogicalName | String | Ναι | Αυτό το κλειδί περιγράφει την οντότητα από την οποία καλείται το API. Το ημερολόγιο αυτής της οντότητας πρόκειται να δημιουργηθεί ή να επεξεργαστεί. |
CalendarId | GUID | Ναι | Αυτό το κλειδί περιέχει το αναγνωριστικό ημερολογίου που σχετίζεται με την οντότητα που περιγράφεται παραπάνω. Όταν δημιουργείται οποιαδήποτε από αυτές τις οντότητες, δημιουργείται επίσης αυτόματα μια καρτέλα ημερολογίου. Αυτά τα API επεξεργάζονται αυτήν την καρτέλα ημερολογίου προσθέτοντας κανόνες ή κάνοντας επξεργασία σε υπάρχοντες κανόνες. |
RulesAndRecurrences | RulesAndRecurrences | Ναι | Αυτό το κλειδί είναι ένας πίνακας και κάθε στοιχείο περιέχει πολλά χαρακτηριστικά όπως αναφέρονται στον πίνακα στην ακόλουθη ενότητα. Το μέγεθος του πίνακα πρέπει να είναι τουλάχιστον ένα. |
IsVaried | Δυαδική τιμή | No | Αυτό το κλειδί θα πρέπει να οριστεί σε true για προσαρμοσμένα σενάρια περιοδικότητας. |
IsEdit | Δυαδική τιμή | No | Αυτό το κλειδί θα πρέπει να οριστεί σε true για επεξεργασία υπαρχουσών κανόνων. |
TimeZoneCode | Integer | No | Αυτό το κλειδί λαμβάνει μια ακέραια τιμή που αντιστοιχεί στη ζώνη ώρας για τους κανόνες ημερολογίου. Για την αντιστοίχιση, μεταβείτε στους κωδικούς ζώνης ώρας, αργότερα σε αυτό το άρθρο. Η προεπιλεγμένη τιμή είναι η ζώνη ώρας του χρήστη. |
InnerCalendarDescription | String | No | Αυτό το κλειδί είναι απαραίτητο μόνο εάν ο κανόνας ημερολογίου είναι για χρόνο διακοπών. Θα πρέπει να περιέχει τον λόγο του χρόνου διακοπών. |
ObserveClosure | Δυαδική τιμή | No | Αυτό το κλειδί είναι συγκεκριμένο για τις επαναλήψεις. Εάν έχει οριστεί σε true , η οντότητα παρατηρεί το κλείσιμο των επιχειρήσεων. |
RecurrenceEndDate | Ημερομηνία/ώρα | όχι | Αυτό το κλειδί είναι συγκεκριμένο για τις επαναλήψεις. Περιέχει την ημερομηνία λήξης για την περιοδικότητα. Εάν η χρονική σήμανση είναι 08:00:00 ή παλαιότερη, η ημερομηνία λήξης της περιοδικότητας είναι μία ημέρα πριν από την καθορισμένη ημερομηνία. Εάν η χρονική σήμανση είναι 08:00:01 ή νεότερη έκδοση, η ημερομηνία γίνεται σεβαστή ως έχει. Η προεπιλεγμένη τιμή για τις εμφανίσεις είναι null. Η προεπιλεγμένη τιμή για τις επαναλήψεις είναι 30 Δεκ 9999, ώρα 23:59:59, UTC |
RecurrenceSplit | Δυαδική τιμή | No | Αυτό το κλειδί είναι συγκεκριμένο για τις επαναλήψεις. Έχει οριστεί σε true για την επεξεργασία "Αυτή και ακόλουθες εμφανίσεις" μιας επανάληψης. |
ResourceId | GUID | No | Αυτό το κλειδί περιέχει το SystemUserId ή το ResourceId και πρέπει να μεταβιβάζεται μόνο όταν η οντότητα που σχετίζεται με αυτήν την κλήση είναι πόρος με δυνατότητα κράτησης τύπου SystemUser. Αυτό είναι απαραίτητο για να ελέγξετε για δικαιώματα OwnCalendar στην καρτέλα Διαχείριση υπηρεσιών. |
UseV2 | Σημαία | όχι | Με τη διέλευση αυτής της σήμανσης ενεργοποιείται η έκδοση V2 του ημερολογίου ωρών εργασίας, με μια βελτιωμένη λογική επικαλυπτόμενων κανόνων που επιτρέπει πολλαπλές περιοδικότητα. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Τι συμβαίνει εάν υπάρχουν επικαλυπτόμενες κανόνες; |
RulesAndRecurrences
Ονομασία | Type | Απαραίτητο | Περιγραφή |
---|---|---|---|
Κανόνες | Κανόνες | Ναι | Αυτό το κλειδί είναι ένας πίνακας και κάθε στοιχείο περιέχει πολλά χαρακτηριστικά όπως αναφέρονται στον πίνακα στην ακόλουθη ενότητα. Το μέγεθος του πίνακα πρέπει να είναι τουλάχιστον ένα. |
RecurrencePattern | String | No | Αυτό το κλειδί είναι συγκεκριμένο για τις επαναλήψεις. Προς το παρόν υποστηρίζουμε μόνο αυτό το μοτίβο: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA .
Το BYDAY μπορεί να αλλάξει για να συμπεριλάβει λιγότερες ημέρες. Ωστόσο, τα FREQ και INTERVAL δεν μπορούν να αλλάξουν. |
InnerCalendarId | GUID | No | Αυτό το κλειδί είναι συγκεκριμένο για επεξεργασία. Εάν γίνεται επεξεργασία ενός κανόνα, το InnerCalendarId πρέπει να περάσει εδώ. Εάν δεν περάσει ένα InnerCalendarId, το API δημιουργεί έναν νέο κανόνα, ακόμα και αν το κλειδί IsEdit έχει οριστεί σε true. |
Ενέργεια | Integer | No | Αυτό το κλειδί είναι συγκεκριμένο για τις προσαρμοσμένες επαναλήψεις. Εάν δημιουργείται ή γίνεται επεξεργασία μιας προσαρμοσμένης περιοδικότητας, θα πρέπει να εισαχθεί ένας από τους ακόλουθους αριθμούς:
|
Κανόνες
Ονομασία | Τύπος | Απαραίτητο | Περιγραφή |
---|---|---|---|
StartTime | Ημερομηνία/ώρα | Ναι | Αυτό το κλειδί περιέχει μια εγγραφή ημερομηνίας/ώρας σε μορφή ISO. Για παράδειγμα, \"2021-05-15T12:00:00.000Z\" . Το τμήμα ώρας καθορίζει την ώρα έναρξης της ώρας εργασίας στη ζώνη ώρας που καθορίστηκε προηγουμένως. Το τμήμα ημερομηνίας καθορίζει την ημερομηνία έναρξης της ώρας εργασίας. Εδώ, 15 Μαΐου 2021 είναι η ημερομηνία εμφάνισης ή η ημερομηνία έναρξης της επανάληψης. Εάν το μοτίβο ήταν BYDAY=TU,WE , αλλά 15 Μαΐου (ένα Σάββατο) είναι η ημερομηνία, το API θα δημιουργήσει ή θα επεξεργαστεί αυτόματα κανόνες για όλες τις Τρίτες και Τετάρτη μετά τις 15 Μαΐου. Σε αυτήν την περίπτωση, ο κανόνας δεν χρειάζεται να έχει την ημερομηνία που αντιστοιχεί στην ημέρα. |
EndTime | Ημερομηνία/ώρα | Ναι | Αυτό περιέχει μια εγγραφή ημερομηνίας/ώρας σε μορφή ISO. Για παράδειγμα, \"2021-05-15T12:00:00.000Z\" . Το τμήμα ώρας καθορίζει την ώρα λήξης της ώρας εργασίας στη ζώνη ώρας που καθορίστηκε προηγουμένως. Το τμήμα ημερομηνίας πρέπει να περιέχει την ίδια ημερομηνία με το τμήμα ημερομηνίας του StartTime. Οι μόνες εξαιρέσεις είναι:
|
WorkHourType | Integer | Ναι | Αυτό το κλειδί περιέχει έναν αριθμό που αντιστοιχεί σε μία από τις ακόλουθες επιλογές:
|
Προσπάθεια | Integer | όχι | Αυτό το κλειδί καθορίζει την παραγωγική ικανότητα της οντότητας. Πρέπει να είναι ακέραιος αριθμός. Η προεπιλεγμένη τιμή είναι 1. |
Έξοδος
Αυτό το API ΑΝΑΡΤΗΣΗΣ δημιουργεί ή τροποποιεί καρτέλες κανόνων ημερολογίου για την επιλεγμένη οντότητα. Παρέχει επίσης τα ακόλουθα δεδομένα εξόδου.
Ονομασία | Τύπος | Περιγραφή |
---|---|---|
InnerCalendarIds | String | Ένας πίνακας GUID InnerCalendarIds που είναι αποτέλεσμα της λειτουργίας ΑΝΑΡΤΗΣΗ. |
Διαγραφή API ημερολογίου
Είσοδος
Ονομασία | Τύπος | Απαιτούμενο | Περιγραφή |
---|---|---|---|
EntityLogicalName | String | Ναι | Αυτό το πεδίο περιγράφει την οντότητα της οποίας οι κανόνες ημερολογίου πρόκειται να διαγραφούν. |
InnerCalendarId | GUID | Ναι | Αυτό το πεδίο περιγράφει το αναγνωριστικό του InnerCalendarId που πρέπει να διαγραφεί. Εάν υπάρχουν πολλά InnerCalendarIds που συσχετίζονται με έναν κανόνα, οποιοδήποτε αναγνωριστικό είναι επαρκές εδώ. Περισσότερες πληροφορίες σχετικά με τα εσωτερικά και εξωτερικά ημερολόγια: Οντότητες ημερολογίου |
CalendarId | GUID | Ναι | Αυτό το πεδίο περιγράφει το CalendarId της οντότητας. |
IsVaried | Δυαδική τιμή | No | Αυτό το πεδίο είναι συγκεκριμένο για τις επαναλήψεις και ορίζεται σε yes εάν διαγράφεται ένας προσαρμοσμένος κανόνας περιοδικότητας. |
UseV2 | Σημαία | όχι | Με τη διέλευση αυτής της σήμανσης ενεργοποιείται η έκδοση V2 του ημερολογίου ωρών εργασίας, με μια βελτιωμένη λογική επικαλυπτόμενων κανόνων που επιτρέπει πολλαπλές περιοδικότητα. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Τι συμβαίνει εάν υπάρχουν επικαλυπτόμενες κανόνες; |
Έξοδος
Αυτό το API ΑΝΑΡΤΗΣΗΣ διαγράφει καρτέλες κανόνων ημερολογίου για την επιλεγμένη οντότητα. Επίσης, παρέχει τα ακόλουθα δεδομένα εξόδου.
Ονομασία | Τύπος | Περιγραφή |
---|---|---|
InnerCalendarIds | String | Ένας πίνακας GUID InnerCalendarIds που είναι αποτέλεσμα της λειτουργίας ΑΝΑΡΤΗΣΗ. |
Φόρτωση ημερολογίου API
Δεδομένα εισόδου
Όνομα: msdyn_LoadCalendars
Τύπος: Ενέργεια
Περιγραφή: Επιστρέφει ημερολόγια για το δεδομένο LoadCalendarsInput.
Όνομα: msdyn_LoadCalendars.LoadCalendarsInput
Τύπος: Παράμετρος
Περιγραφή: Συμβολοσειρά στην ακόλουθη μορφή JSON:
{
StartDate: string,
EndDate: string,
CalendarIds: string[]
}
Όνομα: msdyn_LoadCalendarsResponse
Τύπος: ComplexType
Περιγραφή: Περιέχει την απόκριση από την ενέργεια msdyn_loadCalendars.
Όνομα: msdyn_LoadCalendarsResponse.CalendarEvents
Τύπος: Ιδιότητα
Περιγραφή: Συμβολοσειρά στην ακόλουθη μορφή JSON:
{
"calendarId": CalendarEventSlot[]
}
Όπου το calendarId είναι ένα σωστό guid που αντιπροσωπεύει το Guid of the Calendar και το CalendarEventSlot είναι αντικείμενο της ακόλουθης μορφής:
{
CalendarId: string,
InnerCalendarId: string,
Start: string,
End: string,
Effort: double
}
Πώς να καλέσετε τα API
Αυτά τα API μπορούν να καλούνται χρησιμοποιώντας το πρόγραμμα περιήγησης.
- Ανοίξτε το πρόγραμμα περιήγησης και τον οργανισμό στον οποίο χρειάζεται να κάνετε αυτές τις αλλαγές ημερολογίου.
- Ανοίτε τα Εργαλεία προγραμματιστή (επιλέξτε Ctrl+Shift+I στο Microsoft Edge, επιλέξτε F12 στο Google Chrome).
- Στην κονσόλα, καταχωρήστε την ακόλουθη συνάρτηση, αφού αντικαταστήσετε το [org-name] με λεπτομέρειες οργανισμού (για παράδειγμα,
http://your_org.crm.dynamics.com
):
function CalendarAction(action, data) {
let req = new XMLHttpRequest();
req.open("POST", "**[org-name]**/api/data/v9.0/" + action, true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", 'odata.include-annotations="*"');
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if(this.status == 200) {
console.log(JSON.parse(this.response));
} else {
console.error(JSON.parse(this.response));
}
}
};
req.send(JSON.stringify(data));
}
- Μετά τον ορισμό αυτής της συνάρτησης, μπορείτε να την ονομάσετε για να δημιουργήσετε, να επεξεργαστείτε ή να διαγράψετε ημερολόγια χρησιμοποιώντας τα API. Πληκτρολογήστε την ακόλουθη κλήση για αποθήκευση ενός ημερολογίου:
CalendarAction("msdyn_SaveCalendar",{
"CalendarEventInfo":"{
\"CalendarId\":\"df0857c4-50f5-4576-8e89-f236670ad2d5\",
\"EntityLogicalName\":\"bookableresource\",
\"TimeZoneCode\":92,\"StartDate\":\"2021-04-25T00:00:00.000Z\",
\"IsVaried\":false,
\"RulesAndRecurrences\":[{
\"Rules\":[{
\"StartTime\":\"2021-04-25T08:00:00.000Z\",
\"EndTime\":\"2021-04-25T17:00:00.000Z\",
\"Duration\":540,
\"Effort\":1
}]
}]
}"
})
Πληκτρολογήστε την ακόλουθη κλήση για διαγραφή ενός ημερολογίου:
CalendarAction("msdyn_DeleteCalendar", {
"CalendarEventInfo":"{
\"CalendarId\":\"8390358c-77d0-430f-b176-f27adadac8eb\",
\"EntityLogicalName\":\"bookableresource\",
\"InnerCalendarId\":\"cf508c2c-5c55-485c-be1e-d2ebcb385441\"
}"
})
Ανατρέξτε στην παρακάτω ενότητα για παραδείγματα σχετικά με τον τρόπο με τον οποίο μπορείτε να κάνετε διαφορετικές κλήσεις ανάλογα με τις ανάγκες σας. Αντικαταστήστε την action
της κλήσης συνάρτησης στο βήμα 3 με msdyn_SaveCalendar
ή msdyn_DeleteCalendar
και αντικαταστήστε τα data
με το σχετικό CalendarEventInfo
.
Δείτε επίσης το ακόλουθο στιγμιότυπο οθόνης για μια κλήση Power Automate για msdyn_SaveCalendar
ενέργεια:
Παραδείγματα σεναρίων για χρήση του API
Δείτε ορισμένα σενάρια για τα οποία μπορείτε να χρησιμοποιήσετε αυτά τα API.
Ο Bob και ο Tim είναι οδηγοί φορτηγών παράδοσης για την Contoso Enterprises στο Μπέλβι, Ουάσιγκτον. Ο αποστολέας τους, η Ντέμπι, είναι υπεύθυνη για τις αλλαγές στα ημερολόγια ωρών εργασίας τους. Η Ντέμπι πραγματοποιεί αυτές τις αλλαγές χρησιμοποιώντας τα API msdyn_SaveCalendar
και msdyn_DeleteCalendar
.
Δημιουργήστε μια εμφάνιση εργάσιμης ώρας.
Ο Ιάσονας έχει προγραμματιστεί να οδηγήσει για την παράδοση των πακέτων από τις 9:00 π.μ. έως τις 5:00 μ.μ. στις 15 Μαΐου 2021. Η Ντέμπι χρησιμοποιεί το API msdyn_SaveCalendar
.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-15T09:00:00.000Z\",\"EndTime\":\"2021-05-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}]}]}"
}
Απάντηση
{
"InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}
Επεξεργαστείτε μια εμφάνιση εργάσιμης ώρας.
Στη συνέχεια, το χρονοδιάγραμμα του Ιάσονα αλλάζει και αρχίζει στις 10:00 π.μ. στις 15 Μαΐου 2021. Η Ντέμπι χρησιμοποιεί το API msdyn_SaveCalendar
.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"IsEdit\":\"true\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-15T10:00:00.000Z\",\"EndTime\":\"2021-05-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}], \"InnerCalendarId\":\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"}]}"
}
Απάντηση
{
"InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}
Διαγράψυε μια εμφάνιση εργάσιμης ώρας.
Προκύπτει μια οικογενειακή έκτακτη ανάγκη και ο Ιάσονας πρέπει να ακυρώσει ολόκληρη την ημέρα της εργασίας. Η Ντέμπι χρησιμοποιεί το API msdyn_DeleteCalendar
.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"InnerCalendarId\":\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"}"
}
Απόκριση
{
"InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}
Δημιουργήστε μια ημερήσια επανάληψη εργάσιμης ώρας
Από τις 20 Μαΐου 2021, ο Bob αποφασίζει να εργαστεί στην Contoso όλη την εβδομάδα από τις 8:00 π.μ. έως τις 5:00 μ.μ., και θα σταματήσει να εργάζεται εκεί στις 15 Ιουλίου 2021.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RecurrenceEndDate\":\"2021-07-15T00:00:00.000Z\",\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T08:00:00.000Z\",\"EndTime\":\"2021-05-20T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA\"}]}"
}
Απόκριση
{
"InnerCalendarIds": "[\"20f6cfa7-cfbe-eb11-a81d-000d3a6e4359\"]"
}
Επεξεργαστείτε μια καθημερινή περιοδικότητα μιας ώρας εργασίας με αυξημένη παραγωγική ικανότητα
Ο Bob αποφασίζει να σταματήσει να εργάζεται για ολόκληρη την εβδομάδα της 15ης Ιουλίου 2021, για να κάνει ένα διάλειμμα. Μέχρι τότε, ο Bob θα συνεχίσει το χρονοδιάγραμμα όλης της εβδομάδας όπως συμφώνησε προηγουμένως. Η Ντέμπι πραγματοποιεί αυτές τις αλλαγές χρησιμοποιώντας τα API msdyn_SaveCalendar
.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RecurrenceEndDate\":\"2021-06-15T00:00:00.000Z\",\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T08:00:00.000Z\",\"EndTime\":\"2021-05-20T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"InnerCalendarId\":\"20f6cfa7-cfbe-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA\"}]}"
}
Απάντηση
{
"InnerCalendarIds": "[\"867a2461-cdbe-eb11-a81d-000d3a6e4359\"]"
}
Δημιουργήστε μια εβδομαδιαία επανάληψη εργάσιμης ώρας
Από τις 16 Ιουνίου. 2021, ο Bob θα εργάζεται από τις 8:00 π.μ. έως τις 5:00 μ.μ. τις Τετάρτες και τις Παρασκευές και θα κάνει διάλειμμα από τις 12:00 έως τις 12:30 μ.μ. για το μεσημεριανό γεύμα. Η Debbie χρησιμοποιεί το msdyn_SaveCalendar
API, αλλά κάνει ένα λάθος και προγραμματίζει το διάλειμμα από τις 12:00 μ.μ. έως τις 1:00 μ.μ.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-16T08:00:00.000Z\",\"EndTime\":\"2021-06-16T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}, {\"StartTime\":\"2021-06-16T12:00:00.000Z\",\"EndTime\":\"2021-06-16T13:00:00.000Z\",\"Effort\":null,\"WorkHourType\":1}, {\"StartTime\":\"2021-06-16T13:00:00.000Z\",\"EndTime\":\"2021-06-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE,TH,FR\"}]}"
}
Απόκριση
{
"InnerCalendarIds": "[\"1f894441-d0be-eb11-a81d-000d3a6e4359\"]"
}
Επεξεργαστείτε ένα διάλειμμα από μια εβδομαδιαία επανάληψη ώρας εργασίας
Στη συνέχεια, η Ντέμπι διορθώνει το λάθος και αλλάζει το διάλειμμα, ώστε να συμβεί από τις 12:00 μμ έως τις 12:30 μ.μ. χρησιμοποιώντας το API msdyn_SaveCalendar
.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"IsEdit\":\"true\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-15T08:00:00.000Z\",\"EndTime\":\"2021-06-15T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}, {\"StartTime\":\"2021-06-15T12:00:00.000Z\",\"EndTime\":\"2021-06-15T12:30:00.000Z\",\"Effort\":null,\"WorkHourType\":1}, {\"StartTime\":\"2021-06-15T12:30:00.000Z\",\"EndTime\":\"2021-06-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"InnerCalendarId\":\"1f894441-d0be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE,TH,FR\"}]}"
}
Απάντηση
{
"InnerCalendarIds": "[\"1f894441-d0be-eb11-a81d-000d3a6e4359\"]"
}
Δημιουργήστε μια προσαρμοσμένη επανάληψη εργάσιμης ώρας
Ο Tim δουλεύει στην Contoso κάθε Δευτέρα από τις 8:00 π.μ. έως τις 5:00 μ.μ. και τις Τετάρτες από τις 11:00 π.μ. έως τις 3:00 μ.μ. Ο Tim άρχισε να δουλεύει για την Contoso στις 16 Μαΐου 2021. Η Ντέμπι χρησιμοποιεί το API msdyn_SaveCalendar
για να δημιουργήσει τις ώρες εργασίας του Τιμ.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"IsVaried\":true,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-16T08:00:00.000Z\",\"EndTime\":\"2021-05-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=MO\"},{\"Rules\":[{\"StartTime\":\"2021-05-16T11:00:00.000Z\",\"EndTime\":\"2021-05-16T15:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE\"}]}"
}
Απάντηση
{
"InnerCalendarIds": "[\"9fb8c199-d1be-eb11-a81d-000d3a6e4359\", \"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"]"
}
Επεξεργαστείτε μια προσαρμοσμένη επανάληψη εργάσιμης ώρας
Στη συνέχεια, το χρονοδιάγραμμα του Tim αλλάζει σε ώρες εργασίας από Τετάρτη 5:00 μ.μ. με 8:00 μ.μ. και Πέμπτη 10:00 π.μ. με 12:00 μ.μ. Η Δευτέρα καταργείται από το χρονοδιάγραμμα του Tim. Η Ντέμπι χρησιμοποιεί το API msdyn_SaveCalendar
για να το επιτύχει.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"IsVaried\":true,\"IsEdit\":true,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-16T08:00:00.000Z\",\"EndTime\":\"2021-05-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":2,\"InnerCalendarId\":\"9fb8c199-d1be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=MO\"},{\"Rules\":[{\"StartTime\":\"2021-05-16T17:00:00.000Z\",\"EndTime\":\"2021-05-16T20:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":3,\"InnerCalendarId\":\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE\"}, {\"Rules\":[{\"StartTime\":\"2021-05-16T10:00:00.000Z\",\"EndTime\":\"2021-05-16T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"InnerCalendarId\":null,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=TH\"}]}"
}
Απόκριση
{
"InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\", \"942bda0f-d3be-eb11-a81d-000d3a6e4359\"]"
}
Επεξεργαστείτε μία εμφάνιση εργάσιμης ώρας σε μια περιοδικότητα
Στις 26 Μαΐου 2021, ο Τιμ μπορεί να εργαστεί μόνο από τη 1:00 μμ έως τις 7:00 μ.μ. Η Ντέμπι χρησιμοποιεί το API msdyn_SaveCalendar
εδώ.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-26T13:00:00.000Z\",\"EndTime\":\"2021-05-26T19:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}], \"InnerCalendarId\":\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"}]}"
}
Απόκριση
{
"InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"]"
}
Διαγράψτε μια προσαρμοσμένη επανάληψη εργάσιμης ώρας
Ο Tim έχει αποφασίσει να αποχωρήσει από την εταιρεία και πρέπει να διαγράψει ολόκληρο το χρονοδιάγραμμα. Η Ντέμπι χρησιμοποιεί το API msdyn_DeleteCalendar
εδώ.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"InnerCalendarId\":\"34d2210c-9fb6-eb11-a820-000d3afb1dba\",\"IsVaried\":true}"
}
Απόκριση
{
"InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\", \"942bda0f-d3be-eb11-a81d-000d3a6e4359\"]"
}
Δημιουργήστε άδεια
Ο Τιμ θα λάβει τρεις ημέρες άδεια για οικογενειακές διακοπές, ξεκινώντας από τις 9 Ιουλίου 2021.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"InnerCalendarDescription\":\"Family Vacation\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-15T00:00:00.000Z\",\"EndTime\":\"2021-06-17T00:00:00.000Z\",\"Effort\":1,\"WorkHourType\":3}]}]}"
}
Απάντηση
{
"InnerCalendarIds": "[\"266c434e-d5be-eb11-a81d-000d3a6e4359\"]"
}
Δημιουργείστε ώρες ολοήμερης εργασίας
Ο Τιμ έχει μια βάρδια 72 ωρών από τις 20 Μαΐου 2021. Η Ντέμπι χρησιμοποιεί το API msdyn_SaveCalendar
για να δημιουργήσει τις ώρες εργασίας του Τιμ.
Αίτηση
{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T00:00:00.000Z\",\"EndTime\":\"2021-05-22T00:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}]}]}"
}
Απόκριση
{
"InnerCalendarIds": "[\"6e160a8e-d5be-eb11-a81d-000d3a6e4359\"]"
}
Συνήθεις ερωτήσεις για
Εμφανίζεται το σφάλμα "Το StartTime δεν μπορεί να είναι μεγαλύτερο ή ίσο με το EndTime".
Βεβαιωθείτε ότι δεν υπάρχουν επικαλύψεις στις υποδοχές χρόνου των διαφορετικών κανόνων ημερολογίου. Ελέγξτε τις ημερομηνίες για να βεβαιωθείτε ότι το StartTime δεν είναι μεταγενέστερο του EndTime. Επίσης, βεβαιωθείτε ότι οι ώρες ακολουθούν την 24-ωρη μορφή.
Μπορούν τα API να χρησιμοποιηθούν για την ενημέρωση της οντότητας "Πρότυπα ωρών εργασίας";
Ναι, μπορείτε να χρησιμοποιήσετε αυτό το API για να δημιουργήσετε και να ενημερώσετε πρότυπα ωρών εργασίας εκτός από τις ώρες εργασίας πόρου.
Εμφανίζεται το σφάλμα "Παρουσιάστηκε σφάλμα αποσειροποίησης του αντικειμένου τύπου Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Η προέλευση εισόδου δεν έχει μορφοποιηθεί σωστά.
ή
Αναμένεται κατάσταση 'Στοιχείο'.. Παρουσιάστηκε 'Κείμενο' με όνομα '', χώρος ονομάτων ''."
Βεβαιωθείτε ότι η συμβολοσειρά έχει ανάλυση σωστά. Ενδεχομένως να λείπουν ερωτηματικά, κόμματα ή ελληνικό ερωτηματικό.
Εμφανίζεται το σφάλμα "Μη έγκυρο μοτίβο περιοδικότητας. Ανατρέξτε στην τεκμηρίωση για υποστηριζόμενα μοτίβα."
Προς το παρόν υποστηρίζουμε μόνο αυτό το μοτίβο: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
.
Το BYDAY
μπορεί να αλλάξει για να συμπεριλάβει λιγότερες ημέρες. Ωστόσο, τα FREQ
και INTERVAL
δεν μπορούν να αλλάξουν. Βεβαιωθείτε ότι δεν υπάρχουν διαστήματα στο μοτίβο.
Πώς μπορούμε να δουμε πληροφορίες για το CalendarId και το InnerCalendarId του πόρου;
Το CalendarId
μπορεί να ανακτηθεί από χαρακτηριστικά πόρου. Κάντε αυτήν την κλήση για να λάβετε αυτές τις πληροφορίες: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID])
.
Παράδειγμα της προηγούμενης κλήσης είναι το [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e)
.
Το InnerCalendarId
μπορεί να ανακτηθεί από χαρακτηριστικά ημερολογίου. Κάντε αυτήν την κλήση για να λάβετε αυτές τις πληροφορίες: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules
.
Παράδειγμα της προηγούμενης κλήσης είναι [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules
.
Τι συμβαίνει εάν υπάρχουν επικαλυπτόμενες κανόνες;
Υπάρχουν μερικές διαφορετικές βαθμίδες στις οποίες εμπίπτουν οι κανόνες:
- Κατάταξη 1 - καθημερινή εμφάνιση (εργάσιμη/μη εργάσιμη) και περιστατικό άδειας.
- Κατάταξη 0 - εβδομαδιαία περιοδικότητα (εργάσιμη/μη εργάσιμη).
V2 επικαλυπτόμενοι κανόνες
- Οι κανόνες Κατάταξης 1 έχουν υψηλότερη προτεραιότητα από τους κανόνες Κατάταξης 0. Άρα, εάν υπάρχουν δύο κανόνες (μία από κάθε κατάταξη) την ίδια ημέρα, η καθημερινή εμφάνιση ή η εμφάνιση άδειας έχει προτεραιότητα έναντι της εβδομαδιαίας περιοδικότητας.
- Όταν υπάρχουν πολλοί κανόνες Κατάταξης 0 εντός της ίδιας ημερομηνίας:
- Εάν οι ώρες δεν συμπίπτουν, θα παραμείνουν και οι δύο στο ημερολόγιο.
- Εάν οι χρόνοι τέμνονται, ο κανόνας που δημιουργήθηκε/τροποποιήθηκε πιο πρόσφατα είναι αυτός που λαμβάνεται υπόψη για το ημερολόγιο του πόρου. Όλοι οι άλλοι κανόνες που τέμνονται στο διάστημα ημερομηνίας αφαιρούνται. Εάν ορισμένοι κανόνες κατάταξης 0 έχουν διασταυρώσεις σε ορισμένες ημερομηνίες, αλλά όχι σε άλλες, ο κανόνας έχει τη δυνατότητα να διατηρήσει τις μη αλληλένδετες ενότητες, ενώ τα τμήματα μεταξύ τους καταργούνται.
Παραδείγματα συμπεριφοράς ημερολογίου V2:
Παράδειγμα 1 - Επαναλαμβάνοντας ώρες εργασίας: Επικαλυπτόμενες ημερομηνίες χωρίς επικαλυπτόμενες ημέρες/ώρες
Για μια συγκεκριμένη χρονική διάρκεια, ένας τεχνικός εργάζεται το πρωί, το απόγευμα ή τις νυχτερινές βάρδιες στις διαφορετικές ημέρες.
Δημιουργήστε έναν πρώτο κανόνα επαναλαμβανόμενου ημερολογίου για ένα δεδομένο εύρος ημερομηνιών. Για παράδειγμα: Repeat Mon, Tue; 1.1-4.1; 8am-5pm ET
Δημιουργήστε έναν δεύτερο επαναλαμβανόμενο κανόνα ημερολογίου για ένα τέμνον εύρος ημερομηνιών, διασφαλίζοντας παράλληλα ότι οι ώρες εργασίας δεν τέμνονται με τις προηγούμενες ημέρες ή ώρες. Για παράδειγμα: Repeat Wed, Thu; 1.1-4.1; 8am-5pm ET or Repeat Mon, Tue; 1.1-4.1; 5pm-8pm ET
Αποτέλεσμα: Και οι δύο κανόνες ημερολογίου παραμένουν και συνυπάρχουν μεταξύ τους.
Παράδειγμα 2 - Επανάληψη ωρών εργασίας: Ορισμένες επικαλυπτόμενες ημερομηνίες, με όλες τις επικαλυπτόμενες ημέρες και τον δεύτερο κανόνα που ξεκινά/λήγει πριν ή μετά τον πρώτο κανόνα
Ένας τεχνικός λαμβάνει ένα νέο χρονοδιάγραμμα εργασίας, το οποίο αντικαθιστά μερικές εβδομάδες από το παλιό του χρονοδιάγραμμα. Βάσει σύμβασης, λειτουργούν πάντα τις ίδιες ημέρες κάθε εβδομάδα.
Δημιουργήστε έναν πρώτο κανόνα επαναλαμβανόμενου ημερολογίου για ένα δεδομένο εύρος ημερομηνιών. Για παράδειγμα: Repeat Mon, Tue; 2.1-4.1; 8am-5pm ET
Δημιουργήστε έναν δεύτερο επαναλαμβανόμενο κανόνα ημερολογίου για ένα εύρος επικαλυπτόμενων ημερομηνιών, όπου όλες οι ημέρες έχουν επικαλυπτόμενες ώρες εργασίας. Επιλέξτε τις ημερομηνίες έναρξης/λήξης για αυτόν τον νέο κανόνα που είναι πριν ή μετά την ημερομηνία έναρξης/λήξης για τον κανόνα λήξης. Για παράδειγμα: Repeat Mon, Tue; 3.1-5.1; 1pm-8pm ET
Αποτέλεσμα: Ο πρώτος κανόνας περικόπτεται ώστε να χωρά την ημερομηνία έναρξης/λήξης του δεύτερου κανόνα. Για παράδειγμα: Repeat Mon, Tue; 2.1-2.28; 8am-5pm ET ΚΑΙ Repeat Mon, Tue; 3.1-5.1; 1pm-8pm ET.
Παράδειγμα 3 - Επαναλαμβανόμενες ώρες εργασίας: Όλες οι επικαλυπτόμενες ημερομηνίες, με κάποιες επικαλυπτόμενες ημέρες/ώρες
Ο τεχνικός είναι υπάλληλος σύμβασης για μια σταθερή 2-μήνες περίοδο. Έχουν συμφωνήσει να εργαστούν επιπλέον ημέρες. Θέλουν να μετατοπιστεί η ώρα εργασίας της Τρίτης σε προγενέστερη/μεταγενέστερη ώρα.
Δημιουργήστε μερικούς επαναλαμβανόμενους κανόνες ημερολογίου για ένα συγκεκριμένο εύρος ημερομηνιών. Για παράδειγμα: Repeat Mon, Tue; 2.1-4.1; 8am-12pm ET ΚΑΙ Repeat Tue, Wed; 2.1-4.1, 1pm-5pm ET.
Δημιουργήστε έναν νέο επαναλαμβανόμενο κανόνα ημερολογίου για το ίδιο εύρος ημερομηνιών. Επιλέξτε ημέρες/ώρες που επικαλύπτονται μερικώς με τους αρχικούς κανόνες. Για παράδειγμα: Repeat Tue,Thurs ; 2.1-4.1; 10am-2pm ET.
Αποτέλεσμα: Ο νέος κανόνας αντικαθιστά το παλιό όπου υπάρχουν επικαλύπτονται και αφήνουν τους άλλους αμετάβλητους. Για παράδειγμα: Repeat Mon; 2.1-4.1; 8am-12pm ET ΚΑΙ Repeat Wed; 2.1-4.1; 1pm-5pm ET ΚΑΙ Repeat Tue,Thurs ; 2.1-4.1; 10am-2pm ET.
Παράδειγμα 4 - Επανάληψη ωρών εργασίας: Νέες ημερομηνίες κανόνων που περιέχονται στον παλιό κανόνα, ορισμένες επικαλυπτόμενες ημέρες/ώρες
Ένας τεχνικός εργάζεται στις 8 π.μ.-5 μ.μ.., Δευτέρα-Παρασκευή κάθε εβδομάδα. Μόνο για δύο εβδομάδες, θα χειρίζονται ένα ειδικό έργο έκτακτης ανάγκης κάθε Δευτέρα-Τετάρτη με διαφορετικό ωράριο εργασίας 6 πμ-6 μμ.
Δημιουργήστε έναν πρώτο κανόνα επαναλαμβανόμενου ημερολογίου για ένα δεδομένο εύρος ημερομηνιών. Για παράδειγμα: Repeat Mon,Tue,Wed,Thu,Fri; 1.1-No End Date; 8am-5pm ET.
Δημιουργήστε έναν δεύτερο επαναλαμβανόμενο κανόνα ημερολογίου που περιέχεται στο παραπάνω εύρος ημερομηνιών, επιλέγοντας ώρες εργασίας που επικαλύπτονται σε ορισμένες ημέρες. Για παράδειγμα: Repeat Mon,Tue,Wed; 5.1-5.14; 6am-6pm ET.
Αποτέλεσμα: Το ημερολόγιο πρέπει να έχει τέσσερις επαναλαμβανόμενους κανόνες έως το τέλος αυτής της άσκηση:
- περικοπή του πρώτου κανόνα στην ημερομηνία έναρξης του δεύτερου κανόνα
- ο δεύτερος κανόνας του ημερολογίου
- Δημιουργήστε έναν νέο κανόνα παρόμοιο με τον πρώτο κανόνα, αλλά με τις ημερομηνίες του δεύτερου κανόνα για τις μη επικαλυπτόμενες ημέρες
- περικοπή του πρώτου κανόνα για να ξεκινήσει από την ημερομηνία λήξης του δεύτερου κανόνα, χωρίς ημερομηνία λήξης
Για παράδειγμα: Repeat Mon,Tue,Wed,Thu,Fri; 1.1–4.30; 8am-5pm ET ΚΑΙ Repeat Mon,Tue,Wed; 5.1-5.14; 6am-6pm ET ΚΑΙ Repeat Thu,Fri, 5.1-5.14; 8am-5pm ET ΚΑΙ Repeat Mon,Tue,Wed,Thu,Fri; 5.15–No End Date; 8am-5pm ET
Παράδειγμα 5 - Μη επαναλαμβανόμενες ώρες εργασίας (εμφάνιση, κανόνας κατάταξης 1)
Ένας τεχνικός έχει έναν αριθμό ημερών ομαδικής συνοχής, οι οποίες υπερισχύουν όλων των άλλων περιπτώσεων ωρών εργασίας της ημέρας.
Δημιουργήστε έναν επαναλαμβανόμενο κανόνα ημερολογίου για ένα συγκεκριμένο εύρος ημερομηνιών. Για παράδειγμα: Repeat Mon,Tue,Wed,Thu,Fri; 1.1-No End Date; 8am-5pm ET.
Δημιουργήστε έναν μη επαναλαμβανόμενο κανόνα ημερολογίου εντός του παραπάνω εύρους ημερομηνιών. Επιλέξτε τις ώρες εργασίας που επικαλύπτονται σε μερικές ημέρες. Για παράδειγμα: Non-repeat; 6.21; 7am-1pm ET
Αποτέλεσμα: Το ημερολόγιο θα πρέπει να έχει 1 μη επαναλαμβανόμενο κανόνα (εμφάνιση) μέχρι το τέλος της άσκησης. Ο μη επαναλαμβανόμενος κανόνας υπερισχύει του επικαλυπτόμενου συμβάντος επανάληψης για ολόκληρη την ημέρα. Για παράδειγμα: Repeat Mon,Tue,Wed,Thu,Fri; 1.1-No End Date εκτός 6.21; non-repeat; 6.21; 7am-1pm ET.
V1 επικαλυπτόμενοι κανόνες
- Οι κανόνες Κατάταξης 1 έχουν υψηλότερη προτεραιότητα από τους κανόνες Κατάταξης 0. Άρα, εάν υπήρχαν δύο κανόνες (μία από κάθε κατάταξη) την ίδια ημέρα, η καθημερινή εμφάνιση ή η εμφάνιση άδειας έχει προτεραιότητα έναντι της εβδομαδιαίας περιοδικότητας.
- Εάν υπάρχουν δύο κανόνες της ίδιας κατάταξης, ο κανόνας που δημιουργήθηκε πιο πρόσφατα/ τροποποιήθηκε θα είναι αυτός που θεωρείται για το ημερολόγιο του πόρου.
- Λάβετε υπόψη σας ότι τα ολοήμερα συμβάντα βρίσκονται στην Κατάταξη 1, επομένως ενδεχομένως να θέλετε να εξετάσετε το ενδεχόμενο να την αλλάξετε σε εβδομαδιαία περιοδικότητα, ώστε να μπορείτε να προσθέσετε τις ώρες εργασίας εμφάνισης και να τις κάνετε σεβαστές.
- Όταν υπάρχει μια ώρα εργασίας και δημιουργείται παρουσία άδειας που την επικαλύπτει, οι κανόνες χωρίζονται με έναν τρόπο που διασφαλίζει ότι τηρήθηκε η άδεια και ο υπόλοιπος χρόνος ως ώρες εργασίας θα παραμείνει όπως είναι. Για παράδειγμα, εάν υπάρχουν ώρες εργασίας από τις 8 π.μ. έως τις 5 μ.μ. στις 21 Σεπτεμβρίου και προστίθεται η εμφάνιση άδειας από τις 3 μ.μ. έως τις 7 μ.μ. στις 21 Σεπτεμβρίου, οι ώρες εργασίας θα πρέπει να επιλυθούν ως ώρες εργασίας από τις 8 μ.μ. έως τις 3 μ.μ. και ως άδεια από τις 3 μ.μ. έως τις 7 μ.μ. Ωστόσο, εάν οι κανόνες δημιουργήθηκαν με την αντίστροφη σειρά (η άδεια δημιουργήθηκε πρώτα και μετά δημιουργήθηκαν οι ώρες εργασίας) ανεξάρτητα από τις χρονικές υποδιαιρέσεις, μόνο η ώρα εργασίας θα επιλέγονταν ξανά. Η άδεια θα παρακαμφθεί.
Κωδικοί ζώνης ώρας
Απαρίθμηση | Ζώνη ώρας |
---|---|
0 | (GMT-12:00) Δυτική διεθνής γραμμή ημερομηνίας |
1 | (GMT+13:00) Σαμόα |
2 | (GMT-10:00) Χαβάη |
3 | (GMT-09:00) Αλάσκα |
4 | (GMT-08:00) Ώρα Ειρηνικού (ΗΠΑ και Καναδά) |
5 | (GMT-08:00) Μπάχα Καλιφόρνια |
6 | (GMT-11:00) Συντονισμένη παγκόσμια ώρα-11 |
7 | (GMT-10:00) Αλεούτιες Νήσοι |
8 | (GMT-09:30) Νήσοι Μαρκέζας |
9 | (GMT-09:00) Συντονισμένη παγκόσμια ώρα-09 |
10 | (GMT-07:00) Ορεινή ώρα (ΗΠΑ και Καναδά) |
11 | (GMT-08:00) Συντονισμένη παγκόσμια ώρα-08 |
12 | (GMT--07:00) Τσιουάουα, Λαπάζ, Μαζατλάν |
15 | (GMT-07:00) Αριζόνα |
20 | (UTC-06:00) Κεντρική ώρα (ΗΠΑ και Καναδά) |
25 | (GMT-06:00) Σασκάτσιουαν |
29 | (GMT-06:00) Γκουανταλαχάρα, Πόλη του Μεξικού, Μοντερέυ |
33 | (GMT-06:00) Κεντρική Αμερική |
34 | (GMT-06:00) Νήσος του Πάσχα |
35 | (GMT-05:00) Ανατολική ώρα (ΗΠΑ και Καναδά) |
40 | (GMT-05:00) Ιντιάνα (Ανατολική) |
43 | (GMT-05:00) Αϊτή |
44 | (GMT-05:00) Αβάνα |
45 | (GMT-05:00) Μπογκοτά, Λίμα, Κουίτο, Ρίο Μπράνκο |
47 | (GMT-04:00) Καράκας |
50 | (GMT-04:00) Ώρα Ατλαντικού (Καναδάς) |
51 | (GMT-05:00) Τερκ και Κάικος |
55 | (GMT-04:00) Τζόρτζταουν, Λα Παζ, Σαν Χουάν |
56 | (GMT-04:00) Σαντιάγκο |
58 | (GMT-04:00) Κουιάμπα |
59 | (GMT-04:00) Ασουνσιόν |
60 | (GMT-03:30) Νέα Γη |
65 | (GMT-03:00) Μπραζίλια |
69 | (GMT-03:00) Μπουένος Άιρες |
70 | (GMT-03:00) Καγιέν, Φορταλέτσα |
71 | (GMT-03:00) Σαλβαδόρ |
72 | (GMT-03:00) Σεν Πιερ και Μικελόν |
73 | (GMT-03:00) Γροιλανδία |
74 | (GMT-03:00) Μοντεβιδέο |
75 | (GMT-02:00) Μέσος Ατλαντικός |
76 | (GMT-02:00) Συντονισμένη παγκόσμια ώρα-02 |
77 | (GMT-03:00) Αραγκουαΐνα |
80 | (GMT-01:00) Αζόρες |
83 | (GMT-01:00) Ν. Κάμπο Βέρντε |
84 | (GMT+01:00) Καζαμπλάνκα |
85 | (GMT+00:00) Δουβλίνο, Εδιμβούργο, Λισαβώνα, Λονδίνο |
90 | (GMT+00:00) Μονρόβια, Ρέικιαβικ |
92 | (GMT) Συντονισμένη παγκόσμια ώρα |
95 | (GMT+01:00) Βελιγράδι, Μπρατισλάβα, Βουδαπέστη, Λιουμπλιάνα, Πράγα |
100 | (GMT+01:00) Σεράγεβο, Σκόπια, Βαρσοβία, Ζάγκρεμπ |
105 | (GMT+01:00) Βρυξέλες, Κοπεγχάγη, Μαδρίτη, Παρίσι |
110 | (GMT+01:00) Άμστερνταμ, Βερολίνο, Βέρνη, Ρώμη, Στοκχόλμη, Βιέννη |
113 | (GMT+01:00) Κεντροδυτική Αφρική |
115 | (GMT+02:00) Κισινάου |
120 | (GMT+02:00) Κάιρο |
125 | (GMT+02:00) Ελσίνκι, Κίεβο, Ρίγα, Σόφια, Ταλίν, Βίλνιους (Bίλνα) |
129 | (GMT+02:00) Αμμάν |
130 | (GMT+02:00) Αθήνα, Βουκουρέστι |
131 | (GMT+02:00) Βηρυτός |
133 | (GMT+02:00) Δαμασκός |
134 | (GMT+03:00) Κωνσταντινούπολη |
135 | (GMT+02:00) Ιερουσαλήμ |
140 | (GMT+02:00) Χαράρε, Πραιτόρια |
141 | (GMT+02:00) Βίντχουκ |
142 | (GMT+02:00) Γάζα, Χεβρώνα |
145 | (GMT+03:00) Μόσχα, Αγ. Πετρούπολη |
150 | (GMT+03:00) Κουβέιτ, Ριάντ |
151 | (GMT+03:00) Μινσκ |
155 | (GMT+03:00) Ναϊρόμπι |
158 | (GMT+03:00) Βαγδάτη |
159 | (GMT+02:00) Καλίνινγκραντ |
160 | (GMT+03:30) Τεχεράνη |
165 | (GMT+04:00) Αμπού Ντάμπι, Μουσκάτ |
169 | (GMT+04:00) Μπακού |
170 | (GMT+04:00) Ερεβάν |
172 | (GMT+04:00) Πορ Λουί |
173 | (GMT+04:00) Τιφλίδα |
174 | (GMT+04:00) Ιζέβσκ, Σαμάρα |
175 | (GMT+04:30) Καμπούλ |
176 | (GMT+04:00) Αστραχάν, Ουλιάνοφσκ |
180 | (GMT+05:00) Εκατερίνμπουργκ |
184 | (GMT+05:00) Ισλαμαμπάντ, Καράτσι |
185 | (GMT+05:00) Τασκένδη |
190 | (GMT+05:30) Τσενάι (Μαντράς), Κολκάτα, Μουμπάι, Νέο Δελχί |
193 | (GMT+05:45) Κατμαντού |
195 | (GMT+06:00) Αστάνα |
196 | (GMT+06:00) Ντάκα |
197 | (GMT+06:00) Ομσκ |
200 | (GMT+05:30) Σρι Τζαγιαβαρνταναπούρα |
201 | (GMT+07:00) Νοβοσιμπίρσκ |
203 | (GMT+06:30) Γιανγκόν (Ρανγκούν) |
205 | (GMT+07:00) Μπανγκόκ, Ανόι, Τζακάρτα |
207 | (GMT+07:00) Κρασνογιάρσκ |
208 | (GMT+07:00) Μπαρναούλ, Γκόρνο-Αλτάισκ |
209 | (GMT+07:00) Χοβντ |
210 | (GMT+08:00) Πεκίνο, Τσονγκ-κινγκ, Χονγκ Κονγκ, Ουρούμκι |
211 | (GMT+07:00) Τομσκ |
215 | (GMT+08:00) Κουάλα Λουμπούρ, Σιγκαπούρη |
220 | (GMT+08:00) Ταϊπέι |
225 | (GMT+08:00) Περθ |
227 | (GMT+08:00) Ιρκούτσκ |
228 | (GMT+08:00) Ουλάν Μπατόρ |
229 | (GMT+09:00) Πιονγκ Γιανγκ |
230 | (GMT+09:00) Σεούλ |
231 | (GMT+08:45) Γιούκλα |
235 | (GMT+09:00) Οσάκα, Σαππόρο, Τόκιο |
240 | (GMT+09:00) Γιακούτσκ |
241 | (GMT+09:00) Τσιτά |
245 | (GMT+09:30) Ντάργουιν |
250 | (GMT+09:30) Αδελαΐδα |
255 | (GMT+10:00) Καμπέρα, Μελβούρνη, Σίντνεϋ |
260 | (GMT+10:00) Μπρίσμπεϊν |
265 | (GMT+10:00) Χόμπαρτ |
270 | (GMT+10:00) Βλαδιβοστόκ |
274 | (GMT+10:30) Νησί Λορντ Χάου |
275 | (GMT+10:00) Γκουάμ, Πορτ Μόρεσμπι |
276 | (GMT+11:00) Νήσος Μπουγκενβίλ |
277 | (GMT+11:00) Νήσος Νόρφολκ |
278 | (GMT+11:00) Σαχαλίνη |
279 | (GMT+11:00) Τσοκουρντάχ |
280 | (GMT+11:00) Νησιά Σολομώντα, Νέα Καληδονία |
281 | (GMT+11:00) Μάγκανταν |
284 | (GMT+12:00) Συντονισμένη παγκόσμια ώρα+12 |
285 | (GMT+12:00) Φίτζι |
290 | (GMT+12:00) Όκλαντ, Γουέλλινγκτον |
295 | (GMT+12:00) Αναντίρ, Πετροπαβλόσκ-Καμτσάτσκι |
299 | (GMT+12:45) Νήσοι Τσάταμ |
300 | (GMT+13:00) Νουκουαλόφα |
301 | (GMT-05:00) Τσετουμάλ |
302 | (UTC + 02:00) Χαρτούμ |
303 | (GMT-03:00) Πούντα Αρένας |
304 | (GMT+04:00) Βόλγκογκραντ |
305 | (GMT-07:00) Γιουκόν |