
Connecteur JAVA vers DATAVERSE
Connecteur JAVA vers DATAVERSE
Posté par Vincenzo sur 17 avril 2025 at 11h59Bonjour,
je viens d’arriver et j’ai aussi tôt une question à poser 🙂
Est-ce qu’à votre connaissance il existe un moyen pour venir écrire dans une base DATAVERSE avec une API JAVA ?
Merci de votre accueil !
R3dKap a répondu 2 days, 18 hours ago 2 Membres · 1 Réponse- 1 Réponse
Salut @Vincenzo,
Voici ce que m’a répondu ChatGPT 😅 :
Oui, c’est tout à fait possible d’écrire dans une table Dataverse depuis une API Java externe — et c’est même une architecture courante dans des projets hybrides (apps web back-end Java + Power Platform côté métier).
Voici comment tu peux le faire. 👇
<hr>
<h2>✅ Méthodes pour écrire dans Dataverse depuis Java</h2>
<h3>🔑 1. Utiliser l’API Web de Dataverse (Web API REST)</h3>Dataverse expose une API RESTful OData v4 qui te permet de créer, lire, mettre à jour, supprimer des enregistrements.
👉 Tu peux l’appeler directement depuis Java via
HttpClient
,RestTemplate
,HttpURLConnection
, etc.<h4>Exemple : Requête HTTP POST pour créer une ligne</h4>
URL :
https://<environment>.crm.dynamics.com/api/data/v9.2/<nom_table_logique_plural>
Méthode :
POST
Headers :
Authorization: Bearer <token>
Content-Type: application/json
OData-Version: 4.0
Body JSON :
<code class="language-json">{ "nomduchamp_logique1": "valeur1", "nomduchamp_logique2": "valeur2" }
<hr>
<h2>🔐 2. Authentification : Azure AD (OAuth 2.0)</h2>Tu dois d’abord obtenir un jeton d’accès (access token) via Azure Active Directory.
<h3>Étapes :</h3>
Enregistre ton application Java dans Azure AD (via Azure Portal)
Donne-lui les droits d’accès à Dataverse (API Dynamics 365)
Utilise le client credentials flow (client ID + secret) ou authorization code flow (si un user est impliqué)
<h4>Exemple d’URL de token :</h4>
POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
<h4>Body (x-www-form-urlencoded) :</h4>
client_id=xxxx client_secret=xxxx grant_type=client_credentials scope=https://<environment>.crm.dynamics.com/.default
👉 En réponse, tu obtiens un
access_token
à injecter dans les headers d’appel REST.<hr>
<h2>🧠 Exemple Java avec HttpClient (simplifié)</h2><code class="language-java">HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://<env>.crm.dynamics.com/api/data/v9.2/<nom_table_logique_plural>")) .header("Authorization", "Bearer " + accessToken) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString("{ \"champ1\": \"valeur\" }")) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); System.out.println(response.body());
<hr>
<h2>🧩 Autres options (moins directes)</h2>
<table>
<thead>
<tr>
<th>Méthode</th>
<th>Détail</th>
</tr>
</thead>
<tbody>
<tr>
<td>🔁 Azure Function intermédiaire</td>
<td>Java appelle une Azure Function qui écrit dans Dataverse via Power Platform</td>
</tr>
<tr>
<td>📩 Appeler un flux Power Automate via HTTP</td>
<td>Tu exposes un flux avec un connecteur HTTP entrant, et ton Java appelle ce flux (plus simple que l’auth Azure pour certains cas)</td>
</tr>
<tr>
<td>🔗 Intégration via Service Bus / Event Grid</td>
<td>Pour des scénarios asynchrones plus avancés</td>
</tr>
</tbody>
</table>
<hr>
<h2>🚀 Besoin d’un coup de main ?</h2>Je peux t’aider à :
Générer une requête POST Java prête à l’emploi
T’orienter sur l’enregistrement de l’app Azure AD
T’indiquer les noms de tables/champs logiques dans Dataverse
Ou même te générer un mini module Java réutilisable
Tu veux une démo sur un exemple précis ? Quelle table tu veux écrire dans Dataverse ?
Connectez-vous pour répondre.