Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As organizações de serviço de campo precisam agendar o trabalho, normalmente por meio de um agente de serviço diretamente pelo cliente. As reservas costumam ser criadas com base nos recursos disponíveis para a empresa e nos requisitos do trabalho.
Quando você usar pelo menos Dynamics 365 Field Service v8.8.43.51 e o Universal Resource Scheduling v3.12.46.21 para agendar trabalhos, use a API msdyn_SearchResourceAvailability para recuperar todos os recursos elegíveis para o trabalho, para que você possa agendar o trabalho de forma eficiente. No momento em que escrevo, a v3 é a versão mais recente e msdyn_SearchResourceAvailability suporta chamadas de API web.
Observação
Use a versão mais recente da API, pois versões antigas podem usar métodos de autenticação obsoletos.
Parâmetros de entrada
| Name | Tipo | Description | Obrigatória | Padrão |
|---|---|---|---|---|
| Versão | Cadeia de Caracteres | O número de versão da API identifica a versão da API que deve ser chamada. Ele segue o formato de major.minor.patch. A solicitação não precisa conter o número completo da versão.
|
Sim | -N/D- |
| IsWebApi | booleano | Defina como True para usar o assistente de agendamento via web API. | Sim | -N/D- |
| Requisito | Entity | Este atributo especifica o requisito de recurso para o qual a disponibilidade do recurso está sendo recuperada. Espera-se que seja uma entidade do tipo msdyn_resourcerequirement. O requisito pode ser um registro pré-existente do banco de dados ou criado em tempo real com as restrições necessárias. A entidade deve conter todos os detalhes relevantes para sua pesquisa. O @odata.type para esta entidade deve ser Microsoft.Dynamics.CRM.msdyn_requirement. É importante preencher os seguinte atributos:
|
Sim | -N/D- |
| Configurações | Entity | O atributo de configurações ajuda a filtrar ainda mais os recursos recuperados. Especifique configurações como atributos em uma bolsa de entidades. O tipo de entidade não importa. Você pode especificar qualquer nome lógico da entidade. | Sim | -N/D- |
| ResourceSpecification | Entity | Defina o resourceSpecification atributo como atributos em uma bolsa de entidades. O @odata.type para esta entidade deve ser Microsoft.Dynamics.CRM.expando. |
No | Nenhum |
Entidade de configurações
A entidade de configurações não é uma entidade que existe no Dataverse; no entanto, é uma coleção de todos os atributos a seguir que ajudam os resultados do filtro da API do assistente de agendamento. Assim, o @odata.type para essa entidade deve ser Microsoft.Dynamics.CRM.expando.
| Name | Tipo | Description | Obrigatória | Padrão |
|---|---|---|---|---|
| ConsiderSlotsWithLessThanRequiredCapacity | booleano | Defina isso como True se um intervalo de tempo com menos do que a capacidade necessária (esforço) deve ser considerado ao calcular os intervalos de tempo disponíveis potenciais no calendário do recurso. | No | Falso |
| ConsiderSlotsWithLessThanRequiredDuration | booleano | Defina isso como True se um intervalo de tempo com menos do que a duração necessária deve ser considerado ao calcular os intervalos de tempo disponíveis potenciais no calendário do recurso. | No | Falso |
| ConsiderSlotsWithOverlappingBooking | booleano | Defina isso como True se um intervalo de tempo com reservas sobrepostas deve ser considerado ao calcular os intervalos de tempo disponíveis potenciais no calendário do recurso. | No | Falso |
| ConsiderSlotsWithProposedBookings | booleano | Defina isso como True se um intervalo de tempo com reservas propostas deve ser considerado ao calcular os intervalos de tempo disponíveis potenciais no calendário do recurso. | No | Falso |
| ConsiderAppointments | booleano | Defina como True para a API de disponibilidade de recursos de pesquisa para respeitar os compromissos existentes do Dataverse como reservas no recurso, desde que as configurações de nível de organização e recurso tenham sido definidas. Compromissos com status Ocupado ou Concluído são considerados indisponíveis para operações de agendamento. | No | Falso |
| ConsiderTravelTime | booleano | Defina isso como True se um tempo com reservas sobrepostas propostas deve ser considerado ao calcular os intervalos de tempo disponíveis potenciais no calendário do recurso. | No | Verdadeiro |
| ExcludeResourceCharacteristics | booleano | Defina isso como Verdadeiro para excluir características de recursos para os intervalos de tempo em resposta. | No | Falso |
| MovePastStartDateToCurrentDate | booleano | Defina isso paraTrue para mover uma data de início no passado para a data atual. | No | Falso |
| UseRealTimeResourceLocation | booleano | Defina isso como True se o local em tempo real dos recursos deve ser usado ao calcular os intervalos de tempo disponíveis potenciais no calendário do recurso. | No | Falso |
| SortOrder | EntityCollection | Especifique a ordem de classificação usando uma coleção de entidades. Cada entidade na coleção representa um critério de classificação e só pode classificar Resources a partir da resposta, mas não TimeSlots. O @odata.type para esta entidade deve ser Microsoft.Dynamics.CRM.expando. Estes são os atributos que você precisa preencher:
|
No | Nenhum |
| MaxResourceTravelRadius | Entity | Este atributo especifica o máximo que pode ser definido em uma entidade. O @odata.type para esta entidade deve ser Microsoft.Dynamics.CRM.expando. Estes são os atributos que você precisa preencher:
|
No | 0 km. Se esse for o caso, nenhum recurso será retornado para requisitos no local. |
| MaxNumberOfResourcesToEvaluate | Integer | Este atributo define um limite no número de recursos considerados para a solicitação. | No | Se esse atributo não for incluído na chamada de API, o sistema usa o Limite de Recuperação de Disponibilidade de Recursos a partir da definição de entidade escalonável, conforme definido nas configurações de Editar para entidades habilitadas. Se incluído na chamada, ele substitui o Limite de Recuperação de Disponibilidade de Recursos definido. |
| ConsiderOutlookSchedules | booleano | Defina isso para True se os cronogramas de Outlook deverem ser considerados. Disponível apenas nas versões 3.1.0 e posteriores. | No | Falso |
Entidade de especificação de recurso
| Name | Tipo | Description | Obrigatória | Padrão |
|---|---|---|---|---|
| ResourceTypes | EntityCollection | Este atributo especifica o tipo de recurso necessário para o requisito. Use uma coleção de entidades para especificar esse atributo. Cada entidade da coleção representa um tipo de recurso reservável. O @odata.type para esta entidade deve ser Microsoft.Dynamics.CRM.msdyn_resourceType. Esse atributo é obrigatório:
|
No | Todos os tipos de recursos, exceto equipes |
| PreferredResources | EntityCollection | Este atributo especifica o recursos de preferência para o requisito. Adicione recursos a essa coleção de entidades para garantir que estejam no topo da lista de recursos disponíveis. Mesmo recursos que não fazem parte da coleção de entidades estão na lista, mas só depois dos recursos preferidos. | No | Nenhum |
| RestrictedResources | EntityCollection | Este atributo especifica o recursos que não devem ser considerados para o requisito. Todos os intervalos de tempo desse recurso são filtrados da lista de resultados dessa API. | No | Nenhum |
| MustChooseFromResources | EntityCollection | Este atributo especifica os únicos recursos que podem estar na lista de recursos disponíveis. Ele filtra e exclui todos os outros resultados com base na lista de saída. | ||
| Restrições | Entity | Este atributo especifica as restrições adicionais que devem ser aplicadas à recuperação dos recursos disponíveis. | No | Nenhum |
| RetrieveResourcesQueryId | GUID | A ID da consulta de Recuperação de recursos. | No | A ID padrão da consulta de Recuperação de recursos. |
| BookedResourceId | GUID | Este atributo especifica o recurso atualmente reservado para o requisito. | No | Nenhum |
Observação
Use uma coleção de entidades de recursos que podem ser reservadas para especificar os atributos de recursos Preferidos, Restritos e MustChooseFrom . Cada entidade na coleção representa um recurso Preferencial, Restrito ou MustChooseFrom . Esse atributo é necessário para eles:
-
Valor (Guid): O ID do recurso reservado do recurso Preferido, Restrito ou MustChooseFrom . O
@odata.typepara esta entidade deve serMicrosoft.Dynamics.CRM.msdyn_bookableresource.
Restrições
Especifique restrições adicionais por meio de atributos nesta entidade. O tipo de entidade não importa. Você pode especificar qualquer nome lógico da entidade.
Revise a Consulta de recuperação de recursos nas configurações do quadro de agendamento para identificar quais restrições podem ser aplicadas. Por padrão, ela inclui o seguinte:
| Name | Tipo | Description |
|---|---|---|
| Características | EntityCollection | Um conjunto de características que um recurso qualificado deve possuir. Cada entrada contém um characteristic com o ID característico. Opcionalmente, inclua um ratingvalue com o ID do valor de avaliação para filtrar recursos por um nível específico de proficiência. |
| Funções | EntityCollection | Uma coleção de IDs de função que um recurso qualificado deve ter. |
| Regiões | EntityCollection | Uma coleção de IDs de território. Um recurso qualificado deve ser atribuído a um dos territórios. |
| UnspecifiedTerritory | booleano | Em conjunto com a restrição de territórios, especifica que um recurso qualificado deve ser atribuído a um dos territórios ou a nenhum território. |
| OrganizationalUnits | EntityCollection | Uma coleção de IDs de unidades organizacionais. Um recurso qualificado deve ser membro de uma das unidades organizacionais especificadas. |
| Teams | EntityCollection | Uma coleção de IDs de equipe. Um recurso qualificado deve pertencer a uma das equipes (implica que o tipo de recurso é um usuário do sistema). |
| BusinessUnits | EntityCollection | Uma coleção de IDs de unidades de negócios. Um recurso qualificado deve pertencer a uma das unidades de negócios (implica que o recurso é um usuário do sistema). |
Parâmetros de saída
No nível mais alto, a saída tem estes quatro parâmetros: Os resultados são representados em coleções de entidades e entidades. As respostas podem não incluir todos os atributos descritos aqui, pois o valor nulo ou os valores não ND são omitidos da resposta. Sempre verifique a presença de um atributo antes de tentar acessá-lo.
| Name | Tipo | Description |
|---|---|---|
| TimeSlots | EntityCollection | Uma coleção de resultados de intervalo de tempo. Para obter mais informações, consulte a seção de entidade de intervalo de tempo . |
| Recursos | EntityCollection | Uma coleção de resultados de recursos. Os recursos são representados como uma coleção de entidades com os seguintes atributos:
|
| Relacionada | Entity | Recursos relacionados representam recursos e intervalos de tempo de recursos que não são qualificados diretamente para o requisito solicitado, mas estão relacionados. Por exemplo, se um membro da equipe se qualificar para um requisito, os outros membros dessa equipe serão resultados relacionados.
|
| Exceções | Entity | Este atributo contém informações sobre qualquer exceção que tenha ocorrido e informações sobre se e onde a pesquisa de recursos foi truncada.
|
Entidade de intervalos de tempo
| Name | Tipo | Description |
|---|---|---|
| ID | GUID | Identificador exclusivo para o intervalo de tempo |
| Tipo | Integer | O tipo de horário. Pode ser um dos seguintes valores:
|
| StartTime | DateTime | O horário de início do intervalo de tempo. Se houver viagem para o requisito, esse horário é o início da viagem. Se não, esse horário é o início do requisito. |
| ArrivalTime | DateTime | O horário de chegada do intervalo de tempo. Se houver viagem para o requisito, esse horário é o início do requisito, após a conclusão da viagem. Caso contrário, ela é igual à hora de início do intervalo de tempo. |
| EndTime | DateTime | A hora de término do intervalo de tempo. |
| Esforço | Integer | O esforço ou capacidade do recurso de cumprir os requisitos. |
| ResourceRequirement | EntityReference | O requisito de recurso para o qual os intervalos de tempo estão sendo recuperados. |
| Potencial | booleano | Um valor booliano que indica se o intervalo de tempo tem potencial para atender ao requisito solicitado. |
| IsDuplicate | booleano | Um valor booliano que indica se o intervalo de tempo é duplicado. |
| AllowOverlapping | booleano | Um valor booliano indicando se a sobreposição é permitida. |
| Recurso | Entity | O recurso ao qual o intervalo de tempo pertence. Para obter mais informações, consulte recurso do intervalo de tempo. |
| Localização | Entity | O local tem três atributos:
|
| Viagem | Entity | Esta entidade contém detalhes de tempo de viagem e informações de distância para um intervalo de tempo. Estes são os atributos:
|
| Próximo | Entity | Essa entidade contém detalhes sobre o tempo de viagem e a distância até a próxima reserva de intervalo de tempo.
|
| Disponibilidade | Entity | As informações detalhadas de disponibilidade para um intervalo de tempo. Essa entidade é usada com grupos de tempo.
|
| TimeGroup | Entity | Os detalhes sobre um grupo de tempo.
|
Dica
Quando você cria reservas usando a API, use o campo Potencial descrito na tabela. Não usar esse campo pode resultar em reservas sobrepostas ou inadequadas.
Recurso de intervalo de tempo
| Name | Tipo | Description |
|---|---|---|
| Recurso | EntityReference | Uma referência de entidade para o recurso reservável. |
| ResourceGroup | EntityReference | Uma referência de entidade para o grupo de recursos reserváveis. |
| BusinessUnit | EntityReference | Uma referência de entidade à unidade de negócios. |
| OrganizationalUnit | EntityReference | Uma referência de entidade à unidade organizacional. |
| ResourceType | Integer | O tipo de recurso. Veja o atributo ResourceType na entidade BookableResource para obter valores possíveis. |
| PoolId | GUID | O ID do pool do qual o recurso é membro durante o intervalo de tempo. |
| CrewId | GUID | O ID da equipe do qual o recurso é membro durante o intervalo de tempo. |
| Características | EntityCollection | As características do recurso reservável. Cada entidade da coleção contém entidades com características e informações de classificação.
|
| HasStartLocation | booleano | Um valor booleano que indica se o recurso tem um local de início. |
| HasEndLocation | booleano | Um valor booleano que indica se o recurso tem um local de término. |
| Cadeia de Caracteres | O endereço de email do recurso. | |
| Telefone | Cadeia de Caracteres | O número de telefone do recurso. |
| ImagePath | Cadeia de Caracteres | O caminho para a imagem do recurso. |
| Calendarid | GUID | O ID de calendário do recurso. |
Exemplos
Neste exemplo, você usa a versão 3 da API do assistente de agendamento, que suporta chamadas da API web, para um requisito com duração de 60 minutos. Ao usar o settings atributo, você filtra os resultados. Você considera dois tipos de recursos para os resultados finais: 1 e 2 (ou seja, genérico e de contato).
{
"Version": "4",
"IsWebApi": true,
"Requirement": {
"msdyn_fromdate": "2021-07-14T00:00:00Z",
"msdyn_todate": "2021-07-15T23:59:00Z",
"msdyn_remainingduration": 60,
"msdyn_duration": 60,
"msdyn_TimeGroup@odata.bind": "/msdyn_timegroups(c3dc79ea-d12f-ee11-9cc9-000d3a745a58)",
"@odata.type": "Microsoft.Dynamics.CRM.msdyn_resourcerequirement"
},
"Settings": {
"ConsiderSlotsWithProposedBookings": false,
"MovePastStartDateToCurrentDate": true,
"@odata.type": "Microsoft.Dynamics.CRM.expando"
},
"ResourceSpecification": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"ResourceTypes@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"ResourceTypes": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "1"
},
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "2"
}
],
"Constraints": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"Characteristics@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Characteristics": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"characteristic": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "67387f9f-12e2-ec11-bb43-000d3aed25f7"
},
"ratingvalue": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "a1b2c3d4-5678-90ab-cdef-1234567890ab"
}
}
],
"Territories@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Territories": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "cc19f004-4483-ee11-8178-000d3a5c32c3"
}
],
"Roles@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Roles": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "76998e42-744c-f011-877d-6045bdfb899e"
}
]
}
}
}
O exemplo a seguir demonstra o uso indicado de coleções de entidades. Neste caso, ela especifica MustChooseFromResources.
{
"Version": "4",
"IsWebApi": true,
"Requirement": {
"msdyn_fromdate": "2021-07-14T00:00:00Z",
"msdyn_todate": "2021-07-15T23:59:00Z",
"msdyn_remainingduration": 60,
"msdyn_duration": 60,
"msdyn_latitude": 47.64807,
"msdyn_longitude": -122.41249,
"msdyn_worklocation": 690970000,
"msdyn_TimeGroup@odata.bind": "/msdyn_timegroups(c3dc79ea-d12f-ee11-9cc9-000d3a745a58)",
"@odata.type": "Microsoft.Dynamics.CRM.msdyn_resourcerequirement"
},
"Settings": {
"ConsiderSlotsWithProposedBookings": false,
"MovePastStartDateToCurrentDate": true,
"MaxNumberOfResourcesToEvaluate":500,
"ConsiderTravelTime": true,
"MaxResourceTravelRadius": {
"Value": 20,
"Unit" : 192350000,
"@odata.type": "Microsoft.Dynamics.CRM.expando"
},
"@odata.type": "Microsoft.Dynamics.CRM.expando"
},
"ResourceSpecification": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"ResourceTypes@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"ResourceTypes": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "1"
},
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "2"
}
],
"MustChooseFromResources@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"MustChooseFromResources": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "2145a982-f718-ed11-b83e-0022482d79c8"
}
],
"Constraints": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"Characteristics@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Characteristics": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"characteristic": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "67387f9f-12e2-ec11-bb43-000d3aed25f7"
},
"ratingvalue": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "a1b2c3d4-5678-90ab-cdef-1234567890ab"
}
}
],
"Territories@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Territories": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "cc19f004-4483-ee11-8178-000d3a5c32c3"
}
]
}
}
}