Appointment (Afspraak)
Appointment is de technische verzendentiteit voor kalenderafspraken in Ultimo: het systeem legt hier iCalendar-berichten (RFC 5545) vast die via de e-mailservice naar ontvangers worden gestuurd, inclusief de volledige berichttekst (Body), begin- en eindtijd (StartDate/EndDate), locatie en een UniqueIdentifier waarmee Outlook/Exchange de afspraak uniek identificeert. De entiteit fungeert als een uitwachtrij — afspraken doorlopen een verzendstatuscyclus (Draft → Sent, of Failed/Invalid bij fouten) — en wordt doorgaans automatisch aangemaakt door workflows, niet door eindgebruikers.
Entiteitsnaam: Appointment
Databasetabel: Appointment
Primaire sleutel: APTID (UltimoString(11))
Contextsbewerken
| Value | Naam | Beschrijving |
|---|---|---|
| 0 | AppointmentContext.None | Standaard |
| 1 | AppointmentContext.Appointment | Standaard |
Statussenbewerken
| Value | Naam | Beschrijving |
|---|---|---|
| -1 | AppointmentStatus.Trash | Trash |
| 0 | AppointmentStatus.None | None |
| 1 | AppointmentStatus.Draft | Te verzenden |
| 2 | AppointmentStatus.Sent | Verzonden |
| 4 | AppointmentStatus.ToBeSentAfterError | Te verzenden na error |
| 8 | AppointmentStatus.Failed | Verzenden mislukt |
| 16 | AppointmentStatus.Invalid | Incorrect |
| 32 | AppointmentStatus.Concept | Concept |
| 64 | AppointmentStatus.Ignored | Genegeerd |
Belangrijkste propertiesbewerken
De entiteit heeft in totaal 30 properties. Hieronder de belangrijkste; gebruik
lookup_entity("Appointment")voor de volledige lijst.
| Property | Type | Kolom | Nullable | Default | Omschrijving |
|---|---|---|---|---|---|
| Id | UltimoString(11) | APTID | Nee | Uniek ID van de afspraak | |
| Language | CountryCode? | APTLANGUAGE | Ja | Taalcode voor de inhoud van de afspraak (ISO-landcode) | |
| LastFailureTime | DateTime? | APTLASTFAILURETIME | Ja | Tijdstip van de laatste mislukte verzendpoging | |
| RecordCreateDate | DateTime? | APTRECCREATEDATE | Ja | SYSDATETIME | Aanmaakdatum van het record |
| Sender | Employee | APTFROMEMPID | Ja | Medewerker die als afzender van de afspraak wordt gebruikt | |
| SendTime | DateTime? | APTSENDTIME | Ja | Tijdstip waarop de afspraak is of moet worden verstuurd | |
| AllDay | Boolean | APTALLDAY | Nee | 0 | Geeft aan of dit een hele-dag-afspraak is (zonder specifieke begin- of eindtijd) |
| Body | UltimoString | APTBODY | Ja | Inhoud (beschrijving) van de afspraak; optioneel HTML (IsBodyHtml) |
|
| Canceled | Boolean | APTCANCELED | Nee | 0 | Geeft aan of dit een annuleringsafspraak betreft die een eerder verstuurde afspraak terugtrekt |
| Context | Context | APTCONTEXT | Nee | Context van de afspraak (altijd Appointment) | |
| CultureName | UltimoString(50) | APTCULTURENAME | Ja | Cultuur-/taalinformatie voor opmaak van datum en tijd in de afspraak | |
| EndDate | DateTime | APTENDDATE | Nee | Einddatumtijd van de afspraak (verplicht, niet nullable) | |
| ErrorMessage | UltimoString | APTERRORMESSAGE | Ja | Foutmelding bij de laatste mislukte verzendpoging | |
| FailedCount | Int32 | APTFAILEDCOUNT | Nee | 0 | Aantal mislukte verzendpogingen (default: 0) |
| From | UltimoString(255) | APTFROM | Ja | E-mailadres van de afzender als vrij tekstveld (alternatief voor Sender-koppeling) |
|
| IsBodyHtml | Boolean | APTISBODYHTML | Nee | 0 | Geeft aan of de Body HTML-opmaak bevat |
| Location | UltimoString(200) | APTLOCATION | Ja | Locatieomschrijving die in de kalenderafspraak wordt opgenomen | |
| MarkAsFree | Boolean | APTMARKASFREE | Nee | 0 | Indien actief: de ontvanger ziet de afspraak als 'Vrij' in zijn kalender in plaats van 'Bezet' |
| Private | Boolean | APTPRIVATE | Nee | 0 | Markeert de afspraak als privé, zodat de inhoud niet zichtbaar is voor andere agendagebruikers |
| Sequence | Int32 | APTSEQUENCE | Nee | 0 | Volgnummer voor het bijwerken van een eerder verstuurde afspraak (verhoog bij wijzigingen) |
| StartDate | DateTime | APTSTARTDATE | Nee | Begindatumtijd van de afspraak (verplicht, niet nullable) | |
| Status | Status | APTRECSTATUS | Nee | Verzendstatus van de afspraak (Draft, Sent, Failed, Invalid, Ignored, …) | |
| Subject | UltimoString(200) | APTSUBJECT | Ja | Onderwerp van de kalenderafspraak (max. 200 tekens) | |
| To | UltimoString | APTTO | Ja | Ontvanger(s) van de afspraak als vrij tekstveld (kommagescheiden e-mailadressen) | |
| ToCancel | UltimoString | APTTOCANCEL | Ja | Ontvanger(s) die een annulering ontvangen wanneer Canceled = true |
|
| UniqueIdentifier | UltimoString(36) | APTUNIQUEIDENTIFIER | Ja | UUID die de afspraak uniek identificeert in het iCalendar-protocol; moet stabiel blijven bij updates |
Relaties met andere entiteitenbewerken
| Property | Verwijst naar | Nullable |
|---|---|---|
| Sender | Employee | Ja |
Onderliggende / verwijzende entiteiten (1-op-veel)bewerken
De volgende entiteiten verwijzen naar Appointment:
| Entiteit | Via property |
|---|---|
| AppointmentAttachment | Id.Appointment |
| AppointmentRecipient | Id.Appointment |
| AppointmentSubject | Id.Appointment |
| ObjectDocument | Appointment |
Tips voor consultantsbewerken
- Appointment is een verzendwachtrij: Eindgebruikers maken geen afspraken handmatig aan; ze worden gegenereerd door workflows (bv. bij statuswijziging van een job of reservering). Beheer de aanmaaklogica uitsluitend in workflows.
UniqueIdentifiermoet stabiel blijven: Bij een wijziging in de afspraak (bv. nieuwe locatie of tijd) verhoog jeSequencemaar behoud je hetzelfdeUniqueIdentifier. Zo werkt Exchange/Outlook de bestaande afspraak bij in plaats van een nieuwe te maken.Canceled = true+ToCancel: Gebruik het annuleringspatroon om een eerder verstuurde afspraak expliciet in te trekken. ZetCanceled = trueen vulToCancelin; het systeem verstuurt dan een iCal-CANCEL-bericht.- Foutdiagnose via status: Controleer bij status
Failed(8) altijdErrorMessageenLastFailureTime. StatusToBeSentAfterError(4) houdt de afspraak in de wachtrij voor een volgende poging;Invalid(16) vereist handmatige correctie. MarkAsFreevoor informatieve afspraken: Gebruik dit veld voor afspraken die de ontvanger willen informeren zonder zijn/haar agenda als 'bezet' te markeren — bv. planningsmeldingen of beschikbaarheidsmededelingen.AppointmentRecipientvoor meerdere ontvangers: DeTo-kolom is een vrij tekstveld; voor gestructureerde meerder-ontvanger-afspraken gebruik je de deelentiteitAppointmentRecipient, die ook de acceptatiestatus per ontvanger kan bijhouden.
Database Detailsbewerken
De tabel dba.Appointment bevat 27 kolommen, 0 eigen trigger(s), 0 externe triggers en 1 foreign keys.
Belangrijke defaultsbewerken
| Kolom | Default |
|---|---|
AptContext |
0 |
AptRecStatus |
0 |
AptAllDay |
0 |
AptCanceled |
0 |
AptFailedCount |
0 |
AptIsBodyHtml |
0 |
AptMarkAsFree |
0 |
AptPrivate |
0 |
AptRecCreateDate |
sysdatetimeoffset() |
AptSequence |
0 |
Brondatabewerken
Let op: De wiki-samenvatting hierboven toont een curated subset van properties en praktische consultant-tips. Voor ground truth (exacte kolomnamen, alle properties, defaults, triggers) gebruik de onderstaande tools.
- Entity-definitie —
lookup_entity("Appointment")· reference/entities/Appointment Alle properties, contexts en statussen. Bron:Entities.xml. - DB-schema —
lookup_table_schema("Appointment")· reference/tables/Appointment Alle DB-kolommen, triggers, computed columns en defaults. Bron:database-schema.json. - Gerelateerde workflows —
find_workflows("", entity="Appointment")Alle Before/After Save events en andere workflow-ActionFields. Bron:workflows.xml.
Zie ookbewerken
- email - E-mailfunctionaliteit in Ultimo (verwant aan Appointment)
- reservation-occurrence - Reserveringsinstanties die Appointments kunnen genereren
- workflow-engine - Workflow-engine die Appointments aanmaakt
- employee - Afzender van de afspraak
- object-document - DocumentObject-koppeling die naar Appointments kan verwijzen