Opplæring
Læringsbane
Implement finance and operations apps - Training
Plan and design your project methodology to successfully implement finance and operations apps with FastTrack services, data management and more.
Denne nettleseren støttes ikke lenger.
Oppgrader til Microsoft Edge for å dra nytte av de nyeste funksjonene, sikkerhetsoppdateringene og den nyeste tekniske støtten.
Organisasjoner må ofte opprette, redigere eller slette arbeidstid programmatisk i kalenderne for ressursene. Kalendere viser arbeidstid, fritid og pauser som bestemmer tilgjengeligheten til en ressurs når arbeid planlegges. Disse ressursene må planlegges i bestemte tidssoner, kan eller kan ikke observere tidspunkt selskapet holder stengt, og kan ha variabel kapasitet. Hvis du vil ha informasjon om hvordan du definerer arbeidstid i Field Service-appen, kan du gå til Legge til arbeidstid i en ressurs som kan reserveres.
I tillegg til å bruke Field Service-appen kan du bruke følgende APIer til å endre kalenderregler for valgte oppføringstyper:
msdyn_SaveCalendar
) oppretter eller oppdaterer kalenderoppføringer for en valgt enhet basert på inndataene som ble sendt som forespørsel.msdyn_DeleteCalendar
) sletter alle interne kalenderregler for en kalender på en valgt enhet, basert på inndataene som ble sendt som forespørsel.Dette artikkelen inneholder detaljer om hver API sine inndata (forespørsel) og utdata (svar) og deres bruk, med eksempler.
Når du oppretter en kalender, definerer du hvor mange ganger en arbeidstidstype skjer – én gang, hele dagen, hver uke eller hver dag, eller du kan opprette en egendefinert regelmessighet. Hvis du vil ha mer informasjon om disse kalenderhendelsene, kan du gå til eksemplene senere i denne artikkelen.
Når en arbeidstidstype bare forekommer én gang i enhetens kalender, kalles den en forekomst.
Tenk deg for eksempel en ressurs som arbeider fra 05:00 til 10:00 den 26. mai 2021. Disse APIene støtter bare denne typen forekomster, som starter og slutter i løpet av samme dag. Tenk deg for eksempel en ressurs som arbeider fra 26. mai 2021 kl 20:00 PM til 10:00 27. mai 2021. Du kan ikke opprette denne forekomsten ved å bare bruke ett kall fra msdyn_SaveCalendar
-API-et, du må gjøre to kall i stedet.
Når en arbeidstidstype forekommer for én eller flere hele dager, fra midnatt (00:00) av startdatoen, er det en heldagsforekomst. Maksimal varighet for en heldagsforekomst er fem år.
En ressurs fungerer for eksempel hele dagen fra 26. mai 2021 til slutten av dagen 30. mai 2021. Dette er en heldagsforekomst som varer i fem dager.
Når en arbeidstidstype forekommer samtidig på valgte dager i hver uke, kalles den en ukentlig regelmessighet.
En ressurs arbeider for eksempel fra 05:00 til 10:00 hver mandag, tirsdag og onsdag.
Når en arbeidstidstype forekommer samtidig hver dag, kalles den en daglig regelmessighet.
En ressurs arbeider for eksempel fra 05:00 til 10:00 hver dag i uken.
Når en arbeidstidstype forekommer på bestemte tidspunkt på bestemte ukedager, men klokkeslettene er forskjellige på forskjellige dager, kan du opprette en egendefinert regelmessighet.
En ressurs arbeider for eksempel fra 05:00 til 10:00 hver mandag og 12:00 til 15:00 hver onsdag.
Disse APIene støtter opprettings-, oppdaterings- og sletteoperasjoner for følgende arbeidstidstyper:
Arbeidstid er tider der en enhet er tilgjengelig for å utføre arbeid.
Ved hjelp av disse APIene kan du gjøre følgende:
Ved hjelp av denne APIen kan du ikke gjøre følgende:
Dette er tider da enheten ikke er tilgjengelig for arbeid på grunn av en uspesifisert grunn.
Ved hjelp av disse APIene kan du gjøre følgende:
Ved hjelp av disse APIene kan du gjøre følgende:
Dette er tider på en arbeidsdag der en enhet tar en pause og ikke er tilgjengelig for arbeid. Pauser kan ikke eksistere uten arbeidstid – de må skje mellom to arbeidstider i løpet av en dag. Pauser kan ikke overlappe med arbeidstiden.
Ved hjelp av disse APIene kan du gjøre følgende:
Ved hjelp av disse APIene kan du gjøre følgende:
Dette er tider da en enhet ikke er tilgjengelig for arbeid på grunn av en ferie. Årsaken til fritiden kan angis.
Ved hjelp av disse APIene kan du gjøre følgende:
Ved hjelp av disse APIene kan du gjøre følgende:
Du kan opprette enheter for tidspunkt selskapet holder stengt som definerer tidspunktene virksomheten er lukket. Ved hjelp av msdyn_SaveCalendar
-API-et kan du angi at alle enheter skal overholde eller ignorere organisasjonens tidspunkt selskapet holder stengt, ved hjelp av den valgfrie ObservClosure-nøkkelen. Når de er satt til å observere disse nedleggelsene, vil enhetene ikke være tilgjengelige for arbeid.
Forespørselen inneholder bare ett attributt – CalendarEventInfo, som er en String-type. Den inneholder flere andre attributter som alle er innebygd i denne strengen.
Obs!
I tabellen nedenfor representerer Type formatet som forventes å komme med en vellykket forespørsel. Hele forespørselen analyseres imidlertid som en enkelt streng.
Navn | Type | Obligatorisk | Beskrivelse |
---|---|---|---|
EntityLogicalName | String | Ja | Denne nøkkelen beskriver enheten som APIen kalles fra. Kalenderen for denne enheten skal opprettes eller redigeres. |
CalendarId | GUID | Ja | Denne nøkkelen inneholder kalender-IDen som er knyttet til enheten som er beskrevet ovenfor. Når noen av disse enhetene opprettes, opprettes det også automatisk en kalenderoppføring. Disse APIene redigerer denne kalenderposten ved å legge til regler eller redigere eksisterende regler. |
RulesAndRecurrences | RulesAndRecurrences | Ja | Denne nøkkelen er en matrise, og hvert element inneholder flere attributter som er oppført i tabellen i den følgende delen. Størrelsen på matrisen må være minst én. |
IsVaried | Boolean | No | Denne nøkkelen bør settes til true for egendefinerte scenarier for regelmessighet. |
IsEdit | Boolean | No | Denne nøkkelen bør settes til true for redigering av eksisterende regler. |
TimeZoneCode | Integer | No | Denne nøkkelen tar en heltallsverdi som tilsvarer tidssonen for kalenderreglene. For tilordningen går du til Tidssonekoder senere i denne artikkelen. Standardverdien er brukerens tidssone. |
InnerCalendarDescription | String | No | Denne nøkkelen er bare nødvendig hvis kalenderregelen er for fritid. Den bør inneholde årsaken til fritiden. |
ObserveClosure | Boolean | No | Denne nøkkelen er spesifikk for regelmessigheter. Hvis den er satt til true , vil enheten observere tidspunkt selskapet holder stengt. |
RecurrenceEndDate | Date/klokkeslett | No | Denne nøkkelen er spesifikk for regelmessigheter. Den inneholder sluttdatoen for regelmessigheten. Hvis tidsstempelet er 08:00:00 eller tidligere, er sluttdatoen for regelmessighet én dag før den angitte datoen. Hvis tidsstempelet er 08:00:01 eller senere, respekteres datoen som den er. Standardverdien for forekomster er null. Standardverdien for regelmessigheter er 30. des 9999 kl. 23:59:59 UTC. |
RecurrenceSplit | Boolean | No | Denne nøkkelen er spesifikk for regelmessigheter. Den er satt til true for å redigere "Denne og følgende forekomster" av en regelmessighet. |
ResourceId | GUID | No | Denne nøkkelen inneholder SystemUserId eller ResourceId og skal bare sendes når enheten som er knyttet til dette kallet, er en ressurs av typen SystemUser som kan reserveres. Dette er nødvendig for å se etter OwnCalendar-rettigheter i kategorien Servicebehandling. |
UseV2 | Flagg | No | Hvis du sender dette flagget, aktiveres V2-versjonen av arbeidstidskalenderen med en forbedret overlappende regellogikk som tillater flere regelmessigheter. Hvis du vil ha mer informasjon, kan du se Hva skjer hvis det finnes overlappende regler?. |
Name | Type | Kreves | Bekrivelse |
---|---|---|---|
Regler | Regler | Ja | Denne nøkkelen er en matrise, og hvert element inneholder flere attributter som er oppført i tabellen i den følgende delen. Størrelsen på matrisen må være minst én. |
RecurrencePattern | String | No | Denne nøkkelen er spesifikk for regelmessigheter. Vi støtter for øyeblikket bare dette mønsteret: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA .
BYDAY kan endres til å ta med færre dager, men FREQ og INTERVAL kan imidlertid ikke endres. |
InnerCalendarId | GUID | No | Denne nøkkelen er spesifikk for redigering. Hvis en regel redigeres, må InnerCalendarId sendes her. Hvis en InnerCalendarId ikke sendes, oppretter API en ny regel selv om IsEdit-nøkkelen er satt til Sann. |
Handling | Integer | No | Denne nøkkelen er spesifikk for egendefinerte regelmessigheter. Hvis det blir opprettet eller redigert en egendefinert regelmessighet, må du legge inn ett av følgende numre:
|
Navn | Type | Obligatorisk | Beskrivelse |
---|---|---|---|
StartTime | Date/klokkeslett | Ja | Denne nøkkelen inneholder en dato/klokkeslett-oppføring i ISO-format. Eksempel: \"2021-05-15T12:00:00.000Z\" . Tidsdelen avgjør starttiden for arbeidstiden i den tidligere angitte tidssonen. Datodelen avgjør startdatoen for arbeidstiden. Her er 15. mai 2021 datoen for forekomsten eller startdatoen for regelmessigheten. Hvis mønsteret var BYDAY=TU,WE , men 15. mai (en lørdag) er datoen, oppretter eller redigerer API-et automatisk regler for alle tirsdager og onsdager etter 15. mai. Dette er tilfellet der regelen ikke trenger å ha datoen som tilsvarer dagen. |
EndTime | Date/klokkeslett | Ja | Denne inneholder en dato/klokkeslett-oppføring i ISO-format. Eksempel: \"2021-05-15T12:00:00.000Z\" . Tidsdelen avgjør sluttiden for arbeidstiden i den tidligere angitte tidssonen. Datodelen må inneholde samme dato som datodelen i StartTime. De eneste unntakene er:
|
WorkHourType | Integer | Ja | Denne nøkkelen inneholder et tall som tilsvarer ett av følgende alternativer:
|
Innsats | Integer | No | Denne nøkkelen avgjør enhetskapasiteten. Den må være et heltall. Standardverdien er 1. |
Dette POST API-et oppretter eller endrer kalenderregeloppføringer for den valgte enheten. Det gir også følgende utdata:
Navn | Type | Beskrivelse |
---|---|---|
InnerCalendarIds | String | En matrise med InnerCalendarIds-GUIDer som er et resultat av POST-operasjonen. |
Navn | Type | Obligatorisk | Beskrivelse |
---|---|---|---|
EntityLogicalName | String | Ja | Dette feltet beskriver enheten som kalenderreglene skal slettes for. |
InnerCalendarId | GUID | Ja | Dette feltet beskriver IDen for InnerCalendarId som må slettes. Hvis det er flere InnerCalendarIds knyttet til én enkelt regel, er én ID tilstrekkelig her. Mer informasjon om indre og ytre kalendere: Kalenderenheter |
CalendarId | GUID | Ja | Dette feltet beskriver CalendarId for enheten. |
IsVaried | Boolean | No | Dette feltet er spesifikt for regelmessigheter, og angis til yes hvis en egendefinert regelmessighetsregel blir slettet. |
UseV2 | Flagg | No | Hvis du sender dette flagget, aktiveres V2-versjonen av arbeidstidskalenderen med en forbedret overlappende regellogikk som tillater flere regelmessigheter. Hvis du vil ha mer informasjon, kan du se Hva skjer hvis det finnes overlappende regler?. |
Dette POST API-et sletter kalenderregeloppføringer for den valgte enheten. I tillegg gir det følgende utdata.
Navn | Type | Beskrivelse |
---|---|---|
InnerCalendarIds | String | En matrise med InnerCalendarIds-GUIDer som er et resultat av POST-operasjonen. |
Navn: msdyn_LoadCalendars
Type: Handling
Beskrivelse: Returnerer kalendere for angitt LoadCalendarsInput.
Navn: msdyn_LoadCalendars.LoadCalendarsInput
Type: Parameter
Beskrivelse: streng i følgende JSON-format:
{
StartDate: string,
EndDate: string,
CalendarIds: string[]
}
Navn: msdyn_LoadCalendarsResponse
Type: ComplexType
Beskrivelser: Inneholder svaret fra handlingen msdyn_loadCalendars.
Navn: msdyn_LoadCalendarsResponse.CalendarEvents
Type: Egenskap
Beskrivelse: streng i følgende JSON-format:
{
"calendarId": CalendarEventSlot[]
}
Der calendarId er en riktig GUID som representerer GUID for kalenderen og CalendarEventSlot er et objekt med følgende format:
{
CalendarId: string,
InnerCalendarId: string,
Start: string,
End: string,
Effort: double
}
Disse API-ene kan kalles opp i leseren.
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));
}
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
}]
}]
}"
})
Skriv inn følgende oppkall for å slette en kalender:
CalendarAction("msdyn_DeleteCalendar", {
"CalendarEventInfo":"{
\"CalendarId\":\"8390358c-77d0-430f-b176-f27adadac8eb\",
\"EntityLogicalName\":\"bookableresource\",
\"InnerCalendarId\":\"cf508c2c-5c55-485c-be1e-d2ebcb385441\"
}"
})
Se delen nedenfor for å få eksempler på hvordan du foretar ulike samtaler basert på dine behov. Bytt ut action
for funksjonskallet i trinn 3 med msdyn_SaveCalendar
eller msdyn_DeleteCalendar
, og erstatt data
med den relevante CalendarEventInfo
.
Se også følgende skjermbilde for en Power Automate-oppfordring til msdyn_SaveCalendar
-handling:
La oss gå gjennom noen scenarier som du kan bruke disse API-ene for.
Bob og Tim er sjåfører for leveringsbiler for Contoso Enterprises i Bellevue, Washington. Fordelingsansvarlig, Debbie, er ansvarlig for å gjøre endringer i arbeidstidskalenderen. Debbie gjør disse endringene ved hjelp av API-ene msdyn_SaveCalendar
og msdyn_DeleteCalendar
.
Bob skal kjøre rundt for å levere pakker fra 09:00 til 17:00 15. mai 2021. Debbie bruker msdyn_SaveCalendar
-API-en.
Forespørsel
{
"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}]}]}"
}
Response
{
"InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}
Bobs tidsplan endres deretter til å starte kl. 10:00 15. mai 2021. Debbie bruker msdyn_SaveCalendar
-API-en.
Forespørsel
{
"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\"}]}"
}
Response
{
"InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}
En familiesituasjon dukker opp, og Bjørn må kansellere en hel arbeidsdag. Debbie bruker msdyn_DeleteCalendar
-API-en.
Be om
{
"CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"InnerCalendarId\":\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"}"
}
Svar
{
"InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}
Fra 20. mai 2021 beslutter Bjørn seg for å jobbe med Contoso hele uken fra 08:00 til 17:00, og slutter å jobbe der 15. juli 2021.
Be om
{
"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\"}]}"
}
Svar
{
"InnerCalendarIds": "[\"20f6cfa7-cfbe-eb11-a81d-000d3a6e4359\"]"
}
Bjørn bestemmer seg for å slutte å jobbe hele uken 15. juni 2021 for å ta en pause. Inntil da vil Bjørn fortsette helukesplanen slik den tidligere er godtatt. Debbie gjør disse endringene ved hjelp av API-en msdyn_SaveCalendar
.
Forespørsel
{
"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\"}]}"
}
Response
{
"InnerCalendarIds": "[\"867a2461-cdbe-eb11-a81d-000d3a6e4359\"]"
}
Fra 16. juni 2021 arbeider Bjørn fra 08:00 til 17:00 på onsdager og fredager, og tar en pause fra 12:00 til 12:30 for lunsj. Debbie bruker API-en msdyn_SaveCalendar
, men gjør en feil og planlegger pausen fra 12:00 til 13:00.
Be om
{
"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\"}]}"
}
Svar
{
"InnerCalendarIds": "[\"1f894441-d0be-eb11-a81d-000d3a6e4359\"]"
}
Debbie korrigerer deretter feilen og endrer pausen, slik at den inntreffer fra 12:00 til 12:30, ved hjelp av API-en msdyn_SaveCalendar
.
Forespørsel
{
"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\"}]}"
}
Response
{
"InnerCalendarIds": "[\"1f894441-d0be-eb11-a81d-000d3a6e4359\"]"
}
Tim arbeider for Contoso på mandager fra 08:00 til 17:00 og onsdager fra 11:00 til 15:00. Tim startet i Contoso 16. mai 2021. Debbie bruker msdyn_SaveCalendar
-API-en til å opprette Tims arbeidstid.
Forespørsel
{
"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\"}]}"
}
Response
{
"InnerCalendarIds": "[\"9fb8c199-d1be-eb11-a81d-000d3a6e4359\", \"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"]"
}
Tims tidsplan endres deretter til en arbeidstid fra onsdager 17:00 til 20:00 og torsdag 10:00 til 12:00. Mandag fjernes fra tidsplanen til Tim. Debbie bruker msdyn_SaveCalendar
-API-en til å oppnå dette.
Be om
{
"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\"}]}"
}
Svar
{
"InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\", \"942bda0f-d3be-eb11-a81d-000d3a6e4359\"]"
}
26. mai 2021 kan Tim bare jobbe fra 13:00 til 19:00. Debbie bruker msdyn_SaveCalendar
-API-en her.
Be om
{
"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\"}]}"
}
Svar
{
"InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"]"
}
Tim har bestemt seg for å forlate firmaet og må slette hele tidsplanen. Debbie bruker msdyn_DeleteCalendar
-API-en her.
Be om
{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"InnerCalendarId\":\"34d2210c-9fb6-eb11-a820-000d3afb1dba\",\"IsVaried\":true}"
}
Svar
{
"InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\", \"942bda0f-d3be-eb11-a81d-000d3a6e4359\"]"
}
Tim tar tre fridager for en familieferie med start 9. juni 2021.
Forespørsel
{
"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}]}]}"
}
Response
{
"InnerCalendarIds": "[\"266c434e-d5be-eb11-a81d-000d3a6e4359\"]"
}
Tim har et 72-timers skift som starter 20. mai 2021. Debbie bruker msdyn_SaveCalendar
-API-en til å opprette Tims arbeidstid.
Be om
{
"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}]}]}"
}
Svar
{
"InnerCalendarIds": "[\"6e160a8e-d5be-eb11-a81d-000d3a6e4359\"]"
}
Kontroller at det ikke finnes overlappinger i tidsluken for de forskjellige kalenderreglene. Kontroller datoene for å forsikre deg om at StartTime ikke er senere enn EndTime. Kontroller også at klokkeslettene er i 24-timers format.
Ja, du kan bruke denne API-en til å opprette og oppdatere arbeidstidsmaler i tillegg til arbeidstimer for ressurser.
Jeg får feilmeldingen Det oppstod en feil under deserialisering av objektet av typen Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Inndatakilden er ikke riktig formatert.
or
Forventer tilstand 'Element'. Fant 'Tekst' med navnet namespace.
Kontroller at strengen er riktig analysert. Det kan mangle desimaler, komma eller semikolon.
Vi støtter for øyeblikket bare dette mønsteret: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
.
BYDAY
kan endres til å ta med færre dager, men FREQ
og INTERVAL
kan imidlertid ikke endres. Kontroller at det ikke er mellomrom i mønsteret.
Kan CalendarId
hentes fra ressursattributter. Gjør dette kallet for å få denne informasjonen: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID])
.
Eksempel på forrige samtale er [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e)
.
Kan InnerCalendarId
hentes fra kalenderattributter. Gjør dette kallet for å få denne informasjonen: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules
.
Eksempel på forrige samtale er [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules
.
Reglene faller under et par ulike rangeringer:
Eksempler på virkemåte for V2-kalenderen:
En tekniker arbeider for et gitt tidsrom om morgenen, ettermiddagen eller natten på ulike dager.
Opprett en første repeterende kalenderregel for et bestemt datointervall. Eksempel: Gjenta man, tir; 1.1-4.1; 8:00-17:00 ET.
Opprett en ny, gjentakende kalenderregel for et tidsintervall som krysser, samtidig som du sørger for at arbeidstimene ikke overlapper med de foregående dagene eller klokkeslettene. Eksempel: Gjenta ons, tors; 1.1-4.1; 8:00-17:00 ET eller Gjenta man, tirs; 1.1-4.1; 5:00-20:00 ET .
Resultat: Begge kalenderreglene forblir og eksistere sammen med hverandre.
En tekniker får en ny arbeidstidsplan som erstatter noen uker med den gamle tidsplanen. Ved kontrakt fungerer de alltid de samme dagene hver uke.
Opprett en første repeterende kalenderregel for et bestemt datointervall. Eksempel: Gjenta man, tir; 2.1-4.1; 8:00-17:00 ET.
Opprett en ny, regelmessig kalenderregel for en overlappende datointervall, der alle dager har overlappende arbeidstimer. Velg start-/sluttdatoer for denne nye regelen som er før eller etter start-/sluttdatoen for den første regelen. Eksempel: Gjenta man, tir; 3.1-5.1; 13:00-20:00 ET.
Resultat: Den første regelen blir avkortet for å få plass til start-/sluttdatoen for den andre regelen. Eksempel: Gjenta man, tirs; 2.1-2.28; 8:00-17:00 ET OG Gjenta man, tirs; 3.1-5.1; 13:00-20:00 ET .
Teknikeren er kontraktarbeider i en fast 2-måneders periode. De har godtatt å ta på seg ekstra arbeid noen dager. De vil endre tirsdagens arbeidstid til et tidligere/senere tidspunkt.
Opprett noen repeterende kalenderregler for et bestemt datointervall. Eksempel: Gjenta man, tirs; 2.1-4.1; 8:00-24:00 ET OG Gjenta tirs, ons; 2.1-4.1; 13:00-17:00 ET .
Opprett en ny repeterende kalenderregel for det samme datointervallet. Velg dager/klokkeslett som delvis overlapper med de opprinnelige reglene. Eksempel: Gjenta tirs, tors, 2.1-4.1; 10:00-14:00 ET.
Resultat: Den nye regelen overskriver den gamle der overlappingen er, og la de andre være uendret. Eksempel: Gjenta man; 2.1-4.1; 8:00-24:00 ET OG Gjenta ons; 2.1-4.1; 13:00-17:00 ET OG Gjenta tirs, tors; 2.1-4.1; 10:00-14:00 ET.
En reparatør arbeider 8:00-17:00 man-fre hver uke. Bare i to uker skal de håndtere et nødprosjekt hver man-ons med forskjellig arbeidstid fra 06:00 til 18:00.
Opprett en første repeterende kalenderregel for et bestemt datointervall. Eksempel: Gjenta man, tirs, ons, tors, fre; 1.1-Ingen sluttdato; 8:00-17:00.
Opprett en annen gjentagende kalenderregel i datointervallet ovenfor, velg arbeidstimer som overlapper noen dager. Eksempel: Gjenta man, tir, ons; 5.1-5.14; 6:00-18:00 ET.
Resultat: Kalenderen må ha fire repeterende regler innen denne øvelsen er slutt:
Eksempel: Gjenta man, tirs, ons, tors, fre; 1.1-4.30; 8:00-17:00 ET OG Gjenta man, tir, ons; 5.1-5.14; 6:00-18:00 ET OG Gjenta tor, fre, 5.1-5.14; 8:00-17:00 ET OG Gjenta man, tirs, ons, tors, fre; 5.15-Ingen sluttdato; 8:00-17:00 ET
En tekniker har en rekke sammenhengende teamdager, som har forrang i alle andre arbeidstimeforekomster for dagen.
Opprett en repeterende kalenderregel for et bestemt datointervall. Eksempel: Gjenta man, tirs, ons, tors, fre; 1.1-Ingen sluttdato; 8:00-17:00.
Opprett en ikke-gjentatt kalenderregel i datointervallet ovenfor. Velg arbeidstimer som overlapper noen dager. Eksempel: Ikke-repeter; 6.21; 7:00-13:00 ET.
Resultat: Kalenderen må ha 1 ikke-repeterende regel (forekomst) innen slutten av denne øvelsen. Den ikke-repeterende regelen overstyrer den overlappende gjentagende hendelsen for hele dagen. Eksempel: Gjenta man, tir, ons, tor, fre; 1.1-Ingen sluttdato unntatt 6.21; ikke-gjentakelse; 6.21; 7:00-13:00 ET.
Enum | Tidssone |
---|---|
0 | (GMT-12:00) Internasjonal datolinje, vest |
1 | (GMT+13:00) Samoa |
2 | (GMT-10:00) Hawaii |
3 | (GMT-09:00) Alaska |
4 | (GMT–08:00) Stillehavskysten (USA og Canada) |
5 | (GMT-08:00) Baja, California |
6 | (GMT-11:00) Coordinated Universal Time-11 |
7 | (GMT-10:00) Aleutian-øyer |
8 | (GMT-09:30) Marquesasøyene |
9 | (GMT-09:00) Coordinated Universal Time-09 |
10 | (GMT–07:00) Rocky Mountains (USA og Canada) |
11 | (GMT-08:00) Coordinated Universal Time-08 |
12 | (GMT-07:00) Chihuahua, La Paz, Mazatlan |
15 | (GMT-07:00) Arizona |
20 | (GMT–06:00) Midtvesten (USA og Canada) |
25 | (GMT-06:00) Saskatchewan |
29 | (GMT-06:00) Guadalajara, Mexico by, Monterrey |
33 | (GMT-06:00) Sentral-Amerika |
34 | (GMT-06:00) Påskeøya |
35 | (GMT–05:00) Østkysten (USA og Canada) |
40 | (GMT-05:00) Indiana (øst) |
43 | (GMT-05:00) Haiti |
44 | (GMT-05:00) Havana |
45 | (GMT-05:00) Bogota, Lima, Quito, Rio Branco |
47 | (GMT-04:00) Caracas |
50 | (GMT-04:00) Atlanterhavskysten (Canada) |
51 | (GMT-05:00) Turks- og Caicosøyene |
55 | (GMT-04:00) Georgetown, La Paz, San Juan |
56 | (GMT-04:00) Santiago |
58 | (GMT-04:00) Cuiaba |
59 | (GMT-04:00) Asuncion |
60 | (GMT-03:30) Newfoundland |
65 | (GMT-03:00) Brasilia |
69 | (GMT-03:00) Buenos Aires |
70 | (GMT-03:00) Cayenne, Fortaleza |
71 | (GMT-03:00) Salvador |
72 | (GMT-03:00) Saint-Pierre-et-Miquelon |
73 | (GMT-03:00) Grønland |
74 | (GMT-03:00) Montevideo |
75 | (GMT-02:00) Det sentrale Atlanterhav |
76 | (GMT-02:00) Coordinated Universal Time-02 |
77 | (GMT-03:00) Araguaina |
80 | (GMT-01:00) Azorene |
83 | (GMT-01:00) Cabo Verde-øyene |
84 | (GMT+01:00) Casablanca |
85 | (GMT+00:00) Dublin, Edinburgh, Lisboa, London |
90 | (GMT+00:00) Monrovia, Reykjavik |
92 | (GMT) Coordinated Universal Time |
95 | (GMT+01:00) Beograd, Bratislava, Budapest, Ljubljana, Praha |
100 | (GMT+01:00) Sarajevo, Skopje, Warszawa, Zagreb |
105 | (GMT+01:00) Brussel, København, Madrid, Paris |
110 | (GMT+01:00) Amsterdam, Berlin, Bern, Roma, Stockholm, Wien |
113 | (GMT+01:00) Vestlige Sentral-Afrika |
115 | (GMT+02:00) Chisinau |
120 | (GMT+02:00) Kairo |
125 | (GMT+02:00) Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius |
129 | (GMT+02:00) Amman |
130 | (GMT+02:00) Aten, Bucuresti |
131 | (GMT+02:00) Beirut |
133 | (GMT+02:00) Damaskus |
134 | (GMT+03:00) Istanbul |
135 | (GMT+02:00) Jerusalem |
140 | (GMT+02:00) Harare, Pretoria |
141 | (GMT+02:00) Windhoek |
142 | (GMT+02:00) Gaza, Hebron |
145 | (GMT+03:00) Moskva, St. Petersburg |
150 | (GMT+03:00) Kuwait, Riyadh |
151 | (GMT+03:00) Minsk |
155 | (GMT+03:00) Nairobi |
158 | (GMT+03:00) Bagdad |
159 | (GMT+02:00) Kaliningrad |
160 | (GMT+03:30) Teheran |
165 | (GMT+04:00) Abu Dhabi, Muscat |
169 | (GMT+04:00) Baku |
170 | (GMT+04:00) Jerevan |
172 | (GMT+04:00) Port Louis |
173 | (GMT+04:00) Tbilisi |
174 | (GMT+04:00) Izjevsk, Samara |
175 | (GMT+04:30) Kabul |
176 | (GMT+04:00) Astrakhan, Uljanovsk |
180 | (GMT+05:00) Jekaterinburg |
184 | (GMT+05:00) Islamabad, Karachi |
185 | (GMT+05:00) Tasjkent |
190 | (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi |
193 | (GMT+05:45) Katmandu |
195 | (GMT+06:00) Astana |
196 | (GMT+06:00) Dhaka |
197 | (GMT+06:00) Omsk |
200 | (GMT+05:30) Sri Jayawardenepura |
201 | (GMT+07:00) Novosibirsk |
203 | (GMT+06:30) Yangon (Rangoon) |
205 | (GMT+07:00) Bangkok, Hanoi, Djakarta |
207 | (GMT+07:00) Krasnojarsk |
208 | (GMT+07:00) Barnaul, Gorno-Altajsk |
209 | (GMT+07:00) Hovd |
210 | (GMT+08:00) Beijing, Chongqing, Hongkong, Urumqi |
211 | (GMT+07:00) Tomsk |
215 | (GMT+08:00) Kuala Lumpur, Singapore |
220 | (GMT+08:00) Taipei |
225 | (GMT+08:00) Perth |
227 | (GMT+08:00) Irkutsk |
228 | (GMT+08:00) Ulan Bator |
229 | (GMT+09:00) Pyongyang |
230 | (GMT+09:00) Seoul |
231 | (GMT+08:45) Eucla |
235 | (GMT+09:00) Osaka, Sapporo, Tokyo |
240 | (GMT+09:00) Jakutsk |
241 | (GMT+09:00) Tsjita |
245 | (GMT+09:30) Darwin |
250 | (GMT+09:30) Adelaide |
255 | (GMT+10:00) Canberra, Melbourne, Sydney |
260 | (GMT+10:00) Brisbane |
265 | (GMT+10:00) Hobart |
270 | (GMT+10:00) Vladivostok |
274 | (GMT+10:30) Lord Howe-øya |
275 | (GMT+10:00) Guam, Port Moresby |
276 | (GMT+11:00) Bougainville-øya |
277 | (GMT+11:00) Norfolkøya |
278 | (GMT+11:00) Sakhalin |
279 | (GMT+11:00) Chokurdakh |
280 | (GMT+11:00) Salomonøyene, Ny Caledonia |
281 | (GMT+11:00) Magadan |
284 | (GMT+12:00) Coordinated Universal Time+12 |
285 | (GMT+12:00) Fijiøyene |
290 | (GMT+12:00) Auckland, Wellington |
295 | (GMT+12:00) Anadyr, Petropavlovsk-Kamtsjatskij |
299 | (GMT+12:45) Chatham-øyer |
300 | (GMT+13:00) Nuku'alofa |
301 | (GMT -05.00) Chetumal |
302 | (UTC+02:00) Khartoum |
303 | (GMT-03:00) Punta Arenas |
304 | (GMT+04:00) Volgograd |
305 | (GMT-07:00) Yukon |
Opplæring
Læringsbane
Implement finance and operations apps - Training
Plan and design your project methodology to successfully implement finance and operations apps with FastTrack services, data management and more.