Develop integrations
AB-400 · 40 questions
- A plug-in on the opportunity table must post the execution context to an Azure Service Bus queue already registered as a service endpoint, but only when the estimated revenue exceeds a threshold stored in an environment variable. The team wants the platform's own posting mechanism rather than custom HTTP calls. How should the developer implement this?
- Two integration requirements arrive. Every contact update must be posted unchanged to a Service Bus queue. Opportunity data may leave Dataverse only when the opportunity's probability is above a value that the business can change, so no other opportunity data may reach Azure. Both use the same registered service endpoint. What is the best implementation?
- A step that posts account updates to an Azure Service Bus endpoint is registered as synchronous. During a Service Bus outage, users saving accounts receive an error and their changes are lost. The business says saves must succeed even when Azure is unavailable, and a short delay in delivery is acceptable. What should the developer change?
- An integration team wants every update to an account row published to an existing Azure Service Bus queue. They will use the Plug-in Registration Tool and do not want to write or deploy any plug-in code. Which sequence accomplishes this?
- A Service Bus queue receives Dataverse execution contexts from a registered service endpoint. The new consumer is a Node.js service that must read the context, including the target row's columns, without .NET assemblies. The current endpoint uses the default message format. What should the developer configure?
- An asynchronous step posts account changes to an Azure Service Bus topic. The namespace is unreachable for 20 minutes because of a network problem, and several accounts are updated during that time. What happens to those account events?
- A team registers a webhook in Dataverse that posts to an HTTPS endpoint they host. Their receiver validates every request by reading a custom header named x-contoso-signature and comparing it with a shared secret. How should the developer register the webhook?
- Dataverse must publish invoice changes to downstream systems. A billing service, a data warehouse loader and a notification service each need every message, and more subscribers will be added later without changing anything in Dataverse. Which service endpoint design should the developer register?
- An analytics team wants a continuous stream of changes from several high-volume Dataverse tables, millions of updates a day, fed into a streaming analytics pipeline that reads in parallel partitions. Which service endpoint type best fits this requirement?
- A maker who does not write code wants a notification and an approval to start whenever a row in a custom Dataverse table is created or its status column changes. No developer is available to build or register anything. Which option should the maker use to listen for the Dataverse events?
- A small company wants Dataverse to notify its existing order API whenever a sales order is created. The API is an always-on HTTPS endpoint they already run, volume is low, and the company has no Azure subscription and does not want to operate messaging infrastructure. Which listening option should the developer recommend?
- A downstream ERP connector processes Dataverse case updates. Every Sunday the connector is taken offline for several hours of maintenance, and no case update may be lost. The connector team can host a Service Bus listener or a webhook receiver. Which design should the developer recommend?
- A nightly job copies Dataverse product rows to an external catalog database. It currently reads every row each night, which is slow. The job must fetch only rows created, updated or deleted since its last run, without building any custom components in Dataverse. What should the developer implement?
- A developer is building an incremental synchronization against the Dataverse Web API for the account table, which already has change tracking enabled. How should the first request and later requests be made so that each later run receives only the changes since the previous one?
- A synchronization job uses Web API delta links to keep an external table in step with Dataverse accounts. New and updated accounts arrive correctly, but accounts deleted in Dataverse never disappear from the external table. The job's code skips any entry in the response that has no account columns. What is the cause?
- An external billing system identifies customers by a customer number that it stores in a text column on the Dataverse account table. The integration code must create, retrieve and update accounts by that customer number without first looking up the Dataverse GUID. What should the developer configure on the table?
- A developer created an alternate key on a text column of a custom table that holds 400,000 rows migrated from a legacy system that never enforced uniqueness. The key saved without errors, but a few hours later its index status shows Failed. What is the most likely cause, and what should the developer do?
- The contact table has an active alternate key on the column named employeeid, and an integration must retrieve the contact whose employee ID is E-1042 by using the Dataverse Web API without knowing the row's GUID. Which request should the integration send?
- A scheduled integration sends the same batch of product records from an ERP system to Dataverse every hour. A product may or may not already exist in Dataverse, and the job must be safe to rerun after a failure without creating duplicates. The ERP product code is an active alternate key. Rows must be written without a separate existence check. What should the developer use?
- A C# integration sends UpsertRequest messages for supplier rows identified by an alternate key. For reporting, the code must count how many suppliers each run created and how many it updated. How can the code tell which happened for each request?
- A sync job calls Upsert for every customer from an external system. Instead of updating existing accounts, each run creates a new account for every customer. The code builds each entity as new Entity("account"), sets the external customer number in its Attributes, and no alternate key has been defined on that column. What should the developer do?
- A developer is creating a custom connector for an internal REST API that is protected by Microsoft Entra ID. Each maker's calls must carry their own Entra identity, and the API's app registration exposes an application ID URI. How should the developer configure the connector's security?
- A partner exposes a REST API and issues a separate API key to each of its customers, sent in a request header named X-Partner-Key. Several business units, each a different partner customer, will use one custom connector, and each unit must use its own key. Which authentication type should the developer configure?
- A developer configured a custom connector with OAuth 2.0 and the Microsoft Entra ID identity provider. When a maker tries to create a connection, the Microsoft sign-in page shows an error that the redirect URI in the request does not match the redirect URIs configured for the application. What should the developer do?
- A SaaS vendor hosts each customer on a regional host such as eu.api.contoso.com or us.api.contoso.com. One custom connector must serve all regions: the maker picks the region as a connection parameter when creating a connection, and every operation must be sent to that region's host. What should the developer configure?
- A backend API requires every request to include a header named X-Api-Version with the value 2024-10. Makers should never see or set it, and the requirement must also cover operations that are added to the connector later, without editing each operation's definition or writing code. What should the developer configure?
- A legacy API returns customer attributes as an array of objects, each with a name property and a value property. Makers using the custom connector need to pick individual attributes, such as tier or region, directly as dynamic content. The team does not want to write or maintain code. What should the developer use?
- An API team provides an OpenAPI 2.0 definition file for its REST service, already describing the operations, parameters, responses and security scheme. A developer must create a custom connector from it with minimal manual entry. How should the developer start?
- A company publishes its line-of-business APIs through Azure API Management. Makers in a specific Power Platform environment should get a custom connector for one of those APIs, and the API developers want to create it from the API Management side without hand-writing a definition. What should the developers do?
- A developer at a small company needs to expose an internal REST API as a custom connector in Power Automate. No OpenAPI definition or Postman collection exists for the API, and the developer would rather describe each action by hand in the wizard than write one first. Which way of starting the custom connector does Microsoft document for this situation?
- Makers want to call the Azure AI Language sentiment API from flows and apps through a custom connector. The Azure resource authenticates callers with a resource key sent in the Ocp-Apim-Subscription-Key header, and each team will use its own Azure resource and key. How should the developer configure the connector's general and security settings?
- A team exposes an Azure-hosted web API to makers through a custom connector. The API runs in Azure App Service, and the security team requires every call to carry the calling maker's Microsoft Entra ID identity, with no shared keys stored in connections. How should the developer secure the connector and the API?
- A custom connector for an Azure Function app worked in testing. The function app was then redeployed to a new app with a different host name, and the old app was deleted. Since then, every operation in flows fails with a host not found error, even though the connections are still valid. What should the developer do?
- A developer is building an Azure Function that will back a custom connector so makers can call a pricing calculation from flows and apps. The connector should be created from a definition rather than built by hand. How should the developer build the function and describe it for the connector?
- An HTTP-triggered Azure Function backs a custom connector used by many makers. The compliance team requires the function to log which individual user made each call and to reject callers who are not signed in to the company tenant, and it does not want a shared secret distributed to makers. Which authentication approach should the developer choose?
- A custom connector for an HTTP-triggered Azure Function uses API Key authentication with the parameter name api-key in the header, and the maker entered the function's default key when creating the connection. The function's authorization level is Function. Every test returns 401 Unauthorized. What should the developer change?
- In a custom connector's OpenAPI definition, an operation has a parameter named custref that makers must fill in and that should appear in the designer as Customer reference, and another parameter named tracemode that the connector always sends with a default value and that makers should never see. Which OpenAPI extensions should the developer use?
- A custom connector has a Create ticket action with a project parameter. Makers should choose the project from a dropdown filled at design time by calling the connector's own List projects operation, which returns an array of objects with id and name properties. Which OpenAPI extension should the developer add to the project parameter?
- A custom connector's Get orders operation returns dates in a legacy text format and deeply nested totals. Before makers see the response, it must be reshaped with logic that converts each date and calculates a summary total, which no policy template supports. Where and how should the developer implement this transformation?
- A team building a custom connector is reviewing four requirements and wants to use policy templates wherever possible and custom code only where it is truly needed. Which requirement can only be met by custom code on the connector?