Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Utilice API personalizadas para crear sus propias API en Dataverse. Puede consolidar una o más operaciones en una API personalizada a la que usted y otros desarrolladores pueden llamar en su código o desde Power Automate. El conector de Microsoft Dataverse permite llamar a acciones en Power Automate.
Puede usar la API personalizada como eventos empresariales para habilitar la creación de nuevas capacidades de integración, como exponer un nuevo tipo de efecto desencadenante en el conector de Microsoft Dataverse. Obtenga más información sobre los eventos empresariales de Microsoft Dataverse.
Las API personalizadas son una alternativa a las acciones de proceso personalizadas. Las acciones de proceso personalizadas proporcionan una manera sin código de incluir mensajes personalizados, pero tienen algunas limitaciones para los desarrolladores. Las API personalizadas brindan capacidades específicamente para que los desarrolladores definan su lógica en el código con más opciones. Para obtener una comparación completa de la acción del proceso personalizado y la API personalizada, consulte Comparar la acción del proceso personalizado y la API personalizada.
Crear una API personalizada
Una API personalizada suele incluir lógica implementada con un complemento, pero no es necesaria. Mediante el uso de eventos empresariales de Microsoft Dataverse, puede crear una API personalizada sin un complemento para pasar datos sobre un evento al que responden otros suscriptores.
La mayoría de las veces, combina una API personalizada con un complemento para definir alguna operación delegada a Dataverse para calcular y devolver el resultado.
Puede crear una API personalizada de varias maneras diferentes:
| Vínculo de método | Prestación |
|---|---|
| Plug-in Registration tool (PRT) | Una herramienta GUI fácil de usar integrada con herramientas utilizadas para desarrollar complementos. |
| Power Apps | Uso de formularios para ingresar datos. No necesita instalar una herramienta separada, debe crear un registro separado para cada parte de la API personalizada. |
| Con código | Una vez que comprenda el modelo de datos, puede crear una API personalizada muy rápidamente con un cliente de API como Postman o Insomnia. O puede crear su propia experiencia para crear una API personalizada. |
| Con archivos de solución | Cuando utiliza las herramientas de administración del ciclo de vida de la aplicación (ALM), puede crear o modificar definiciones de API personalizadas con archivos XML en una solución que se incluye en su repositorio de código fuente. La API personalizada se creará cuando importe la solución generada a partir de su código fuente. |
Nota
Aunque los datos de API personalizados se almacenan en tablas, no se admite la creación de una aplicación controlada por modelos para estas tablas.
Estas herramientas son creadas y apoyadas por la comunidad para usar con la API personalizada.
- Administrador de API personalizada de Dataverse
- Evaluador de API personalizado
- Conversor de acción personalizada a API personalizada
Microsoft no admite herramientas creadas por la comunidad. Si tiene preguntas o problemas con las herramientas de la comunidad, comuníquese con el creador de la herramienta.
Personalización de API
Al crear una API personalizada y parámetros de solicitud relacionados y propiedades de respuesta, comprenda que estas definiciones de API se pueden personalizar de forma predeterminada. Si son personalizables, puede iterar y realizar cambios en estos elementos de la solución no administrada.
Importante
Cuando envíe o implemente su solución, use una solución administrada y establezca siempre la propiedad administrada Is Customizable en false para estos componentes. Esta configuración impide que los usuarios que usen la solución administrada modifiquen o eliminen estos componentes. Dichos cambios podrían romper el código escrito para la definición original de la API personalizada.
Establecer Is Customizable en falso
Configure la propiedad administrada Es personalizable desde la solución en Power Apps.
Establezca esta propiedad para cada API personalizada, parámetro de solicitud y propiedad de respuesta individualmente.
Obtenga más información sobre las propiedades administradas.
Agregar más parámetros de solicitud y propiedades de respuesta
Incluso cuando establece la propiedad gestionada Is Personalizable en false, puede agregar nuevos parámetros de solicitud y propiedades de respuesta a su API personalizada. Sin embargo, las personas que agregan estos parámetros de solicitud no pueden hacerlos obligatorios. Si elige permitir pasos de procesamiento personalizados en su API personalizada, otros complementos registrados para el mensaje creado por la API personalizada podrán usarlos. Dado que los parámetros de solicitud personalizados solo son opcionales, el complemento que proporciona para la operación principal de la API personalizada puede omitirlos y no es responsable del uso de ningún parámetro de solicitud personalizado ni de establecer ninguna propiedad de respuesta personalizada agregada a la API personalizada que especificó.
Tablas y entidades de API personalizadas
Para obtener información sobre las tablas y los valores de columna que se usarán al crear API personalizadas, consulte Tablas customAPI.
Seleccionar un tipo de paso de procesamiento personalizado
En la tabla siguiente se describe qué tipo de paso de procesamiento personalizado de API personalizada (AllowedCustomProcessingStepType) se va a usar.
| Opción | Cuándo usar |
|---|---|
| Ninguno. | Use cuando el conjunto de complementos establecido para esta API personalizada mediante CustomAPI.PluginTypeId es la única lógica que se produce al ejecutar esta operación. No permitirá que otro desarrollador registre ningún paso adicional que pueda desencadenar una lógica adicional, modificar el comportamiento de esta operación o cancelar la operación. Use esta opción cuando la API personalizada proporcione alguna capacidad que no debería ser personalizable. |
| Async Only | Use cuando quiera permitir que otros desarrolladores detecten cuándo se produce esta operación, pero no quiere que puedan cancelar la operación o personalizar el comportamiento de la operación. Otros desarrolladores pueden registrar pasos asincrónicos para detectar que se ha producido esta operación y responder a ella después de que finalice. Esta es la opción recomendada si está utilizando el patrón de eventos de negocio. Un evento empresarial crea un desencadenador en Power Automate que puede usar cuando se produce este evento. Más información acerca de los eventos de negocio de Microsoft Dataverse |
| Sync and Async | Use cuando quiera permitir a otros desarrolladores cambiar el comportamiento de la operación e incluso cancelarlo si su lógica de negocios dicta. Si la operación tiene éxito, otros desarrolladores también pueden detectar este evento y agregar lógica para que se ejecute de forma asíncrona. La mayoría de los mensajes de Dataverse habilitan la extensión de esta manera. Use esta opción cuando su mensaje represente un proceso de negocio que deba ser personalizable. |
Selección de un tipo de enlace
El enlace es un concepto de OData que asocia una operación a una tabla específica. La siguiente tabla describe la API personalizada Tipo de enlace (BindingType) que debe usar.
| Opción | Cuándo usar |
|---|---|
| Global | Cuando la operación no se aplica a una tabla específica. |
| Entidad | Cuando la operación acepta como parámetro un solo registro de una tabla específica. |
| EntityCollection | Cuando la operación aplica cambios o devuelve una colección de una tabla específica. |
Seleccionar Entity o EntityCollection requerirá que use el nombre completo de la función o acción cuando use la API web. El nombre completo es Microsoft.Dynamics.CRM.<UniqueName of the custom API>.
Cuando selecciona Entity, un parámetro de solicitud denominado Target con el tipo EntityReference se crea automáticamente. No necesita crearla. Este valor se pasará a todos los complementos registrados para este mensaje.
Cuando selecciona EntityCollection, no se incluye ningún parámetro o propiedad de respuesta que represente la colección de entidades. Establecer este enlace simplemente agrega el requisito de que la operación se invoque adjunta al conjunto de entidades cuando se usa la API web.
Nota
Estos tipos de enlace están disponibles para que los use al redactar la API personalizada, pero no es necesario enlazar a una entidad o colección de entidades. Puede componer todas su API personalizadas como Global y agregar los parámetros de solicitud o propiedades de respuesta que necesite para lograr la misma funcionalidad que una función o acción enlazada.
Más información:
Cuándo crear una función
La propiedad Is Function de la API personalizada controla si la API personalizada será una Función o una Acción. En OData, una función es una operación a la que se llama mediante una solicitud HTTP GET . Devuelve datos sin realizar ningún cambio. Mediante una solicitud GET, se pasan todos los parámetros de la dirección URL al invocar la función.
Puede probar más fácilmente las solicitudes GET utilizando únicamente su navegador, pero hay un límite de 32 KB (32 768 caracteres) para la longitud de la dirección URL que puede enviar. Si la API personalizada tiene muchos parámetros de solicitud complejos que podrían hacer que la longitud de la dirección URL sea demasiado larga, es aceptable crear una acción que realice la misma operación y pase todos los datos de parámetros del cuerpo mediante una POST solicitud.
Nota
- Las funciones deben devolver algunos datos. Debe incluir al menos una propiedad de respuesta para que la API personalizada sea válida.
- Una función que no incluye una propiedad de respuesta no aparece en el documento de servicio de la API web $metadata.
- Si intenta usar una función no válida, obtendrá un
404 Not founderror similar al siguiente:{"error":{"code":"0x8006088a","message":"Resource not found for the segment 'your_function_name'."}}
- No puede usar una función al seleccionar la opción Habilitado para flujo de trabajo . Consulte Uso de una API personalizada en un flujo de trabajo.
- Actualmente, el conector de Microsoft Dataverse solo permite realizar acciones. Si necesita que la operación se realice mediante Power Automate, debe crear la API personalizada como una acción.
Aprender a usar las funciones de la API Web
Cuándo hacer que su API personalizada sea privada
De forma predeterminada, otros desarrolladores pueden detectar y usar cualquier API personalizada que cree. Como publicador de API personalizado, es responsable de mantener las API públicas que cree. No quite la API ni aplique ningún cambio que interrumpa a otros consumidores.
Si no estás dispuesto a apoyar a otros desarrolladores con tu API personalizada, configura la propiedad Is Private en IsPrivate true antes de lanzar la solución administrada que contiene tu API personalizada.
La propiedad Is Private impide que la API personalizada aparezca dentro del documento de servicio de $metadata e impide que las herramientas de generación de código de Dataverse creen clases para usar los mensajes de la API personalizada.
Establecer esta propiedad no significa que otros desarrolladores no puedan usar el mensaje si lo saben y pueden redactar una solicitud para usarla. Al establecer la propiedad Is Private, se indica que no se respalda el uso de su mensaje por parte de otros desarrolladores.
Es posible que desee mantener privada una API personalizada hasta que esté seguro de que no necesitará eliminarla o introducir algún cambio importante.
Deja Is Private configurado como falso en tu entorno de desarrollo a fin de que puedas ver la salida en el documento $metadata del servicio o generar clases para tu propio uso. Sin embargo, establezca Is Private en true antes de enviar la API personalizada en la solución administrada.
Más información:
- Documento de $metadatos CSDL
- Generar clases de enlace en tiempo de compilación para SDK para .NET
- Mensajes privados
Protege tu API personalizada requiriendo un privilegio
Establezca la propiedad de API personalizada Execute Privilege Name (ExecutePrivilegeName) en el nombre del privilegio para requerirlo. Actualmente, no hay ninguna manera admitida para que los desarrolladores fuera de Microsoft creen nuevos privilegios, pero puede usar un privilegio existente. Para obtener más información, consulte P: ¿Puedo crear un nuevo privilegio para mi API personalizada?
Usar un complemento para incluir lógica en la API personalizada
Si no establece el tipo de complemento de API personalizado (PluginTypeId) para especificar la lógica de operación principal, los usuarios todavía pueden invocar la API personalizada.
Puede optar por no incluir ninguna lógica en el complemento porque está utilizando la API personalizada como un evento empresarial. Más información acerca de los eventos de negocio de Microsoft Dataverse.
Es posible que no desee agregar un complemento como paso de prueba. Sin un complemento, cualquier valor de parámetro de salida devolverá los valores predeterminados para el tipo porque no hay código para establecerlos. De lo contrario, consulte Escritura de un complemento para la API personalizada.
Nota
No puede pasar datos de configuración al complemento especificado para la lógica de operación principal. Hay una la solución alternativa para esto.
Usar una API personalizada en un flujo de trabajo
Establezca Enabled for Workflow (WorkflowSdkStepEnabled) de la API personalizada en verdadero cuando necesite habilitar la llamada a una API personalizada como una acción de flujo de trabajo. Sin embargo, esta opción agrega las siguientes limitaciones para que se pueda llamar a la API personalizada en el diseñador de flujo de trabajo:
La API personalizada no puede ser una función. Is Function debe ser falso.
La API personalizada solo puede tener parámetros de solicitud o tipos de propiedades de respuesta compatibles con el flujo de trabajo:
- Booleana
- Fecha y hora
- Decimal
- EntityReference
- EntityReference solo se puede usar cuando la API personalizada está enlazada a una entidad.
- Float
- Entero
- Dinero
- Los atributos de lista desplegable
- Cadena
- Guid
No se pueden utilizar los siguientes tipos de propiedad de respuesta o parámetro de solicitud:
- Entity
- EntityCollection
- StringArray
Invocación de API personalizadas
Una API personalizada crea un nuevo mensaje que los usuarios pueden invocar a través de la API web o el SDK de Dataverse para .NET igual que cualquier otra operación.
Invocación de API personalizadas desde la API web
Durante las pruebas, puede invocar la API mediante un cliente de API como Postman o Insomnio. Para configurar un entorno en Insomnia que genere el token de acceso que necesita, consulte Uso de Insomnia con Dataverse Web API. Si la API es una acción, siga los pasos descritos en Uso de acciones de API web. Si la API es una función, siga los pasos descritos en Uso de funciones de API web.
Observe los siguientes ejemplos:
Acción no enlazada
Esta acción se denomina myapi_CustomUnboundAPI. Tiene un parámetro de solicitud de una sola cadena llamado InputParameter:
POST [Organization URI]/api/data/v9.1/myapi_CustomUnboundAPI
OData-MaxVersion: 4.0
OData-Version: 4.0
Content-Type: application/json; charset=utf-8
{
"InputParameter": "Value"
}
Función vinculada a una tabla
Esta función, denominada myapi_CustomBoundAPI, está vinculada a la tabla de cuentas:
GET [Organization URI]/api/v9.1/accounts(ed5d4e42-850c-45b7-8b38-2677545107cc)/Microsoft.Dynamics.CRM.myapi_CustomBoundAPI()
OData-MaxVersion: 4.0
OData-Version: 4.0
Content-Type: application/json; charset=utf-8
Función vinculada a una colección de tabla
Esta función, denominada myapi_CustomEntityCollectionBoundAPI, está vinculada a la colección de tablas de cuentas:
GET [Organization URI]/api/v9.1/accounts/Microsoft.Dynamics.CRM.myapi_CustomEntityCollectionBoundAPI()
OData-MaxVersion: 4.0
OData-Version: 4.0
Content-Type: application/json; charset=utf-8
Más información:
Invocación de API personalizadas desde el SDK para .NET
Para invocar su API personalizada, use código de enlace temprano o de enlace tardío. Usa la herramienta pac modelbuilder build para generar clases auxiliares de solicitud y respuesta que muestran los parámetros de solicitud y las propiedades de respuesta de la API personalizada. Obtener más información sobre cómo generar clases enlazadas de forma anticipada para el SDK para .NET
Para el código de enlace tardío, o para una API personalizada que marques como privada, cree un OrganizationRequest con el nombre único de su API personalizada. Agregue parámetros con nombres que coincidan con los nombres únicos de las propiedades de la solicitud.
Las API personalizadas enlazadas a entidades tienen una propiedad de solicitud implícita denominada Target. Establezca esta propiedad en un EntityReference del registro en el que se invocará la API.
Puede acceder a las propiedades de respuesta desde los parámetros de la respuesta devuelta.
En este ejemplo, una API personalizada llamada myapi_EscalateCase está vinculada a la tabla de incidentes para aceptar un registro como el parámetro Target junto con otro parámetro de solicitud de valor conjunto de opciones llamado Priority. Tiene una propiedad de respuesta EntityReference llamada AssignedTo.
var req = new OrganizationRequest("myapi_EscalateCase")
{
["Target"] = new EntityReference("incident", guid),
["Priority"] = new OptionSetValue(1)
};
var resp = svc.Execute(req);
var newOwner = (EntityReference) resp["AssignedTo"];
Aprenda a usar mensajes con el SDK para .NET.
Invocar API personalizada como operación en segundo plano
La lógica que se va a realizar mediante una operación en segundo plano debe definirse como una API personalizada. Aprenda a usar operaciones en segundo plano (versión preliminar)
Escritura de un complemento para la API personalizada
Escribir un complemento para implementar la operación principal de la API personalizada no es diferente de escribir ningún otro complemento. Sin embargo, no use la herramienta Registro de complementos para establecer un paso específico y no puede especificar los datos de configuración para pasar al complemento.
Deberá conocer la información siguiente:
- El nombre del mensaje.
- Los nombres y tipos de los parámetros de solicitud y las propiedades de respuesta.
Los valores del parámetro de solicitud se incluirán en los InputParameters.
Establezca los valores de las propiedades de respuesta en OutputParameters.
El siguiente código es un complemento simple que invierte los caracteres del StringParameter y devuelve el resultado como StringProperty.
using System;
using System.Linq;
using System.ServiceModel;
using Microsoft.Xrm.Sdk;
namespace CustomAPIExamples
{
public class Sample_CustomAPIExample : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
// Obtain the tracing service
ITracingService tracingService =
(ITracingService)serviceProvider.GetService(typeof(ITracingService));
// Obtain the execution context from the service provider.
IPluginExecutionContext context = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));
if (context.MessageName.Equals("sample_CustomAPIExample") && context.Stage.Equals(30)) {
try
{
string input = (string)context.InputParameters["StringParameter"];
if (!string.IsNullOrEmpty(input)) {
//Simply reversing the characters of the string
context.OutputParameters["StringProperty"] = new string(input.Reverse().ToArray());
}
}
catch (Exception ex)
{
tracingService.Trace("Sample_CustomAPIExample: {0}", ex.ToString());
throw new InvalidPluginExecutionException("An error occurred in Sample_CustomAPIExample.", ex);
}
}
else
{
tracingService.Trace("Sample_CustomAPIExample plug-in is not associated with the expected message or is not registered for the main operation.");
}
}
}
}
Para obtener más información sobre cómo escribir complementos, consulte Tutorial: Escribir y registrar un complemento. Debe registrar el ensamblado, pero no es necesario registrar un paso. Aprenda a usar un complemento para incluir lógica en la API personalizada.
Consulte el ejemplo ejemplo: API personalizada IsSystemAdmin.
Una vez que registre el ensamblado, asegúrese de agregar el ensamblado y todos los tipos a su solución.
Valores de etiqueta localizados
Las API personalizadas tienen etiquetas localizables. Puede localizar los valores de etiqueta mediante los pasos descritos en Traducción de texto localizable para aplicaciones controladas por modelos y Traducción de etiquetas y cadenas de visualización.
Este proceso implica exportar un archivo que contiene los valores del idioma base e incluirá una columna para cada idioma habilitado. Entonces puede editar los valores en Excel. Después de completar el proceso para importar las traducciones, las etiquetas se incluirán en su solución.
El siguiente ejemplo muestra cómo editar la hoja de cálculo de Excel para agregar traducciones al japonés para los valores en inglés.
Sugerencia
Si está editando los archivos de soluciones para crear sus API personalizadas, puede proporcionar las etiquetas localizadas directamente. Obtenga información sobre cómo proporcionar etiquetas localizadas con la solución
Establecer valores localizados
Si prefiere establecer etiquetas localizadas en código en lugar de usar el proceso manual descrito anteriormente, use el mensaje SetLocLabels mediante la acción SetLocLabels de la Web API o el SDK para .NET SetLocLabelsRequest.
El siguiente ejemplo muestra cómo utilizar la API web para configurar las etiquetas localizadas para la propiedad displayname de una API personalizada.
Solicitud:
POST [Organization URI]/api/data/v9.1/SetLocLabels HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Content-Type: application/json
{
"EntityMoniker": {
"@odata.type": "Microsoft.Dynamics.CRM.customapi",
"customapiid": "86bcd12e-2f30-eb11-a813-000d3a122b89"
},
"AttributeName": "displayname",
"Labels": [
{
"Label": "例え",
"LanguageCode": 1041
},
{
"Label": "Beispiel",
"LanguageCode": 1031
},
{
"Label": "ejemplo",
"LanguageCode": 1034
}
]
}
Respuesta:
HTTP/1.1 204 No Content
Recuperar valores localizados
Para recuperar las etiquetas localizadas, use el RetrieveLocLabels mensaje mediante la función RetrieveLocLabels de la API web o el SDK para la clase RetrieveLocLabelsRequest de .NET.
El siguiente ejemplo muestra cómo usar la función RetrieveLocLabels para recuperar las etiquetas de la propiedad displayname de una API personalizada con la customapiid de 88602189-183d-4584-ba4b-8b60f0f5b89f.
Solicitud:
GET [Organization URI]/api/data/v9.1/RetrieveLocLabels(EntityMoniker=@p1,AttributeName=@p2,IncludeUnpublished=@p3)?
@p1={'@odata.id':'customapis(88602189-183d-4584-ba4b-8b60f0f5b89f)'}&
@p2='displayname'&
@p3=false HTTP/1.1
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.RetrieveLocLabelsResponse",
"Label": {
"LocalizedLabels": [
{
"Label": "Custom API Example",
"LanguageCode": 1033,
"IsManaged": null,
"MetadataId": null,
"HasChanged": null
},
{
"Label": "カスタムAPIの例",
"LanguageCode": 1041,
"IsManaged": null,
"MetadataId": null,
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Custom API Example",
"LanguageCode": 1033,
"IsManaged": null,
"MetadataId": null,
"HasChanged": null
}
}
}
Preguntas más frecuentes (P+F)
Las siguientes preguntas y respuestas pueden ayudarle:
P: ¿Puedo crear un nuevo privilegio para mi API personalizada?
R: Aunque la API personalizada tiene una propiedad Execute Privilege Name (ExecutePrivilegeName), actualmente no hay ninguna manera admitida de crear un nuevo privilegio solo para esta API. Esta capacidad está prevista para una versión posterior. Mientras tanto, use una de las siguientes opciones:
- Use un valor existente de Privilege.Name.
- Cree una entidad personalizada y use uno de los privilegios creados para esa entidad. Por ejemplo, cree una entidad llamada
new_myactiony para ello se generarán privilegios para operaciones CRUD. Por ejemplo:prvCreatenew_myaction. Incluya esta entidad personalizada con la solución que incluye la API personalizada.
P: ¿Puedo activar o desactivar los registros de API personalizadas?
R: No puede. Aunque estos registros tienen las columnas Status y Status Reason comunes que se encuentran en la mayoría de las tablas de Microsoft Dataverse, establecer los valores de estas columnas no afecta a la disponibilidad de la API personalizada, los parámetros de solicitud o las propiedades de respuesta.
P: ¿Cómo puedo usar mis mensajes privados si no están incluidos en el documento del servicio $metadata de la API web?
R: Sus mensajes privados funcionarán independientemente de si se anuncian en la API web Documento de $metadata CSDL o no. Mientras desarrolla la solución, establezca el IsPrivate valor en false. Puede consultar la $metadata lista y usar herramientas de generación de código que dependen de estos datos. Sin embargo, establezca el valor CustomAPI.IsPrivate en true antes de enviar su solución para que otros la utilicen. Si luego decide que desea admitir que otras aplicaciones utilicen el mensaje, puede cambiar el valor CustomAPI.IsPrivate a false.
Más información:
- Cuándo hacer que su API personalizada sea privada
- Mensajes privados
- Los mensajes privados no se pueden usar en complementos
Problemas conocidos con API personalizadas
Las API personalizadas ahora están disponibles con carácter general, pero algunas funcionalidades relacionadas pueden cambiar.
No se puede usar el generador de perfiles para depurar
Para depurar usando la herramienta de registro de complementos y la solución de perfilador de complementos, debe seleccionar un paso de complemento específico. La implementación de la etapa principal para el complemento no está disponible actualmente en la herramienta Registro de complementos.
Solución alternativa: registre el tipo de complemento en la fase PostOperation del mensaje creado para la API personalizada.
Los mensajes privados no se pueden usar en complementos
Si define la API personalizada como privada, no puede usar ese mensaje en un complemento. Obtenga información sobre los mensajes privados.
No se puede establecer una configuración segura e insegura para el complemento principal de operación de API personalizada.
No se puede pasar una configuración segura o no segura al complemento de operación principal para la API personalizada.
Solución alternativa: en lugar de asociar el complemento con la API personalizada, registre el complemento en la PostOperation fase mediante la herramienta Registro de complementos (PRT). Con este enfoque, puede especificar los datos de configuración en el paso del PostOperation plug-in como se hace habitualmente.
Para usar esta solución alternativa, debe configurar la API personalizada para habilitar los tipos de pasos de procesamiento personalizado sincronizadoy asincrónico al crear la API personalizada. No se puede cambiar esta configuración después de crearla.
Pasos siguientes
Crear una API personalizada con la herramienta de registro de complementos
Vea también
Crear y usar API personalizadas
Crear una API personalizada con código
Crear una API personalizada con archivos de solución
Crear sus propios mensajes
Tablas de API personalizadas