Buscar disponibilidad de recursos y crear reservas para grupos de requisitos

Use la API Buscar disponibilidad de recursos para el grupo de requisitos y la API Crear reservas de grupo de requisitos para reservar los recursos que satisfagan las necesidades que identifique en sus grupos de requisitos.

Usted pasa los detalles de un grupo de requisitos en sus llamadas a API y recupera una lista de recursos disponibles y sus intervalos de tiempo abiertos. Esta lista es útil para escenarios de autoprogramación, en los que un usuario quiere ver la disponibilidad de recursos, o para escenarios de programación de portales, en los que un cliente quiere ver la disponibilidad de recursos desde un sitio web o aplicación.

En el momento de redactar este artículo, v1 es la última versión de msdyn_SearchResourceAvailabilityForRequirementGroup y admite llamadas a la API web.

API Buscar disponibilidad de recursos para el grupo de requisitos

Utilice los siguientes parámetros de entrada y salida para la API Buscar disponibilidad de recursos para el grupo de requisitos (msdyn_SearchResourceAvailabilityForRequirementGroup).

Parámetros

Nombre Escriba Requerido Descripción
Versión String El número de versión de la API. El número de versión identifica la versión de la API que debe invocarse. El número de versión es un número de versión semántico con el formato principal.menor.revisión. No es necesario que la solicitud contenga el número de versión completo.
RequirementGroup Una referencia de entidad a la entidad del grupo de requisitos.
RequirementSpecification Número entero No Si se deja en nulo, se respeta la duración del grupo de requisitos objetivo de forma predeterminada.
Configuración Entity<InputSettings> No Establece la configuración de la solicitud.

Entrada

Nombre Escriba Requerido Descripción
ConsiderSlotsWithLessThanRequiredDuration Booleana No Especifica si se debe considerar un intervalo de tiempo con una duración restante inferior a la requerida al calcular los intervalos de tiempo potenciales. De forma predeterminada, es falso.
ConsiderSlotsWithOverlappingBooking Booleana No Especifica si se deben considerar los intervalos de tiempo con reservas superpuestas al calcular intervalos de tiempo potenciales. De forma predeterminada, es falso.
ConsiderSlotsWithProposedBooking Booleana No Especifica si las franjas horarias con las reservas propuestas deben tenerse en cuenta al calcular las franjas horarias potenciales. De forma predeterminada, es falso.
MaxResourceTravelRadius Distancia No Especifica el radio de viaje máximo para los recursos al calcular los intervalos de tiempo disponibles.
SortOrder Número entero No Especifica el orden del grupo de requisitos para la respuesta.
PageSize Número entero No Números de artículos devueltos en una página. Es 20 de forma predeterminada.
PagingCookie String No Cookie de paginación recuperada del resultado de búsqueda anterior.
OrganizationUnits Lista<Guid> No Una colección de id. de unidades organizativas. Un recurso calificado debe ser miembro de una de las unidades organizativas especificadas.
MustChooseFromResources Lista<Guid> No Evalúe y seleccione los resultados de los recursos de esta lista.
RequiredResources Lista<Guid> No Evalúe todos los recursos, filtre los resultados según esta lista. En general, utilice MustChooseFromResources en su lugar para mejorar el rendimiento.
IgnoreTimeSlots Booleana No Especifica si se deben ignorar los intervalos de tiempo devueltos. Cuando es verdadero, la lista de intervalos de tiempo devueltos está vacía. De forma predeterminada, es falso.
ConsiderAppointments Booleana No Establezca en Verdadero para que la API de disponibilidad de recursos de búsqueda respete las citas Dataverse existentes como reservas en el recurso, siempre que la configuración del nivel de organización y recurso esté configurada. Citas con estatus Ocupado y Terminado se consideran como no disponibles para las operaciones de programación.

Salida

Devoluciones Nombre (tipo) Descripción
TimeSlots (Lista<OutputTimeSlot>) Hora de inicio (fecha y hora) La hora de inicio.
Hora de finalización (DateTime) La hora de finalización.
ArrivalTime (DateTime) Hora de llegada.
Travel(OutputTimeSlotTravel)

OutputTimeSlotTravel
  • Distancia (doble)
  • TravelTime (doble)
  • DistanceFromStartLocation (doble)
  • TravelTimeToEndLocation (doble)
La información de viaje de la franja horaria. Solo está presente si el requisito de recurso contiene valores de latitud y longitud.
Effort (doble) Esfuerzo/capacidad.
IsDuplicate (booleano) Un valor booleano que indica si el intervalo de tiempo es un duplicado.
Resource(OutputResource)

OutputResource
  • Recurso (BookableResource)
  • TotalAvailableTime (doble)
La entidad de recurso que se explica en este artículo.
Location(OutputTimeSlotLocation)

OutputTimeSlotLocation:
  • Ubicación de trabajo (enumeración):
    • In situ (0)
    • Instalaciones (1)
    • Independiente de la ubicación (2)

  • LocationSourceSlot (enumeración):
    • Común (1)
    • Entidad de GPS personalizada (2)
    • Auditoría móvil (3)
La entidad contiene detalles sobre la ubicación de un intervalo de tiempo. Para más información, consulte TimeSlotLocation en este artículo.
TimeGroup(TimeSlotTimeGroup)

OutputTimeSlotTimeGroup:
  • TimeGroupId (GUID)
  • TimeGroupDetail (EntityReference)
  • TimeGroupDetailStartTime (DateTime)
  • TimeGroupDetailEndTime (DateTime)
La entidad contiene detalles sobre un grupo de tiempo. Para obtener más información, consulte TimeSlotTimeGroup en este módulo.
AvailableIntervals (List<<Guide>OutputTimeSlot>) Una colección de intervalos disponibles.
Recursos (List<OutputResource>) Recurso (EntityReference) Una referencia de entidad al recurso reservable.
Unidad de negocio (EntityReference) Una referencia de entidad al grupo de recursos que se pueden reservar.
Unidad organizativa (EntityReference) Una referencia de entidad a la unidad organizativa.
ResourceType (int) El tipo de recurso. Consulte el atributo resourcetype en la entidad BookableResource para ver los posibles valores.
PoolId (GUID) El Id. del grupo del que es miembro el recurso durante la duración del intervalo de tiempo.
CrewId (Guid) El Id. del equipo del que es miembro el recurso durante la duración del intervalo de tiempo.
Email (cadena) La dirección de correo electrónico del recurso.
Phone (cadena) El número de teléfono del recurso.
ImagePath (cadena) Ruta de acceso a la imagen del recurso.
Requisitos (List<OutputRequirements>) Requisito (EntityReference) Una referencia de entidad al recurso de requisito de recursos.
ConstraintBag (cadena) Restricción de requisitos en contenedor ufx (interno)
Recursos (List<<EntityReference>EntityReference>) Lista de referencia de entidad del recurso que está disponible para los requisitos.
ProposalResourceAssignmentSets (List<OutputProposalResourceAssignmentSet>) IntervalStart (DateTime) Hora de inicio para cada conjunto de asignaciones de recursos de propuesta.
ProposalResourceAssignments (Lista<OutputProposalResourceAssignments>

OutputProposalResourceAssignments:
  • RequirementId (Guid)
  • ResourceId (Guid)
Lista de recursos asignados a Requisito.
PagingInfos (OutputPagingInfo) MoreResults (booleano) Si hay más resultados o no.
PagingCookie (cadena) Cookie de paginación que se puede utilizar en la búsqueda futura.

Carga de ejemplo

{
  "RequestName": "msdyn_SearchResourceAvailabilityForRequirementGroup",
  "Parameters": [
    {
      "Key": "Version",
      "Value": "1"
    },
    {
      "Key": "RequirementGroup",
      "Value": {
        "Id": "6927721a-0137-42be-8092-26995625a9d9",
        "LogicalName": "msdyn_requirementgroup",
        "Name": null,
        "KeyAttributes": [],
        "RowVersion": null
      }
    }
  ],
  "RequestId": null
}

Respuesta de ejemplo

{
  "ResponseName": "msdyn_SearchResourceAvailabilityForRequirementGroup",
  "Results": [
    {
      "Key": "TimeSlots",
      "Value": {....}
    },
    {
      "Key": "Requirements",
      "Value": {....}
    },
    {
      "Key": "ProposalResourceAssignmentSets",
      "Value": {....}
    },
    {
      "Key": "PagingInfos",
      "Value": {....}
    }]
}

API Crear reservas de grupo de requisitos

Utilice los siguientes parámetros de entrada y salida para la API Crear reservas de grupo de requisitos (msdyn_CreateRequirementGroupBookings).

Parámetros

Nombre Escriba Requerido Descripción
Versión String El número de versión de la API. El número de versión identifica la versión de la API que debe invocarse. El número de versión es un número de versión semántico con el formato principal.menor.revisión. No es necesario que la solicitud contenga el número de versión completo.
RequirementGroup EntityReference Una referencia de entidad a la entidad del grupo de requisitos, generalmente es un GUID, como se muestra en el ejemplo siguiente.
Principio Fecha y hora Hora de inicio del intervalo de tiempo.
Duración Número entero Duración de la reserva que se creará.
ResourceAssignments EntityCollection Es una colección de entidades de las Asignaciones de recursos que se deberán realizará para las Reservas que se crearán. Consulte la tabla de entidades Asignación de recursos para obtener más detalles.

Asignaciones de recursos

Nombre Escriba Requerido Descripción
RequirementId GUID El id. de requisito de recurso del Requisito para el que se creará el registro de reserva.
ResourceId GUID El id. del recurso que se puede reservar del Recurso para el que desea crear la reserva.
BookingStatusId GUID Id. de estado de reserva de la reserva que se creará.
Esfuerzo Número entero No La capacidad del recurso que se puede reservar que consume esta reserva.
TravelTime Número entero No El tiempo de viaje en minutos.

Salida

Devuelve el valor HandlerExecuted que es de tipo booleano.