Pardonnez-moi, car si je connais un peu les services web de NAV, je ne sais pratiquement rien de Sharepoint et de BCS.
Cela dit, j'ai quelques conseils qui pourraient être utiles : tout d'abord, les services web de NAV sont construits sur WCF et utilisent le BasicHttpBinding. Si vous faites quelques recherches sur la manière de connecter un service WCF BasicHttpBinding à BCS, vous pourriez obtenir quelques résultats. Il n'y a pas de différence fondamentale entre un service BasicHttpBinding standard et un service web spécifique à NAV.
Vous avez également indiqué que vous avez réussi à vous connecter aux services web de NAV dans Visual Studio à l'aide d'une référence web. Cependant, les proxies de référence web sont construits à l'aide de l'ancien utilitaire "wsdl.exe" et, en tant que tels, ils ne peuvent fonctionner qu'avec des services web SOAP classiques. Bien que les services BasicHttpBinding soient entièrement rétrocompatibles avec les services web SOAP, il reste le problème des paramètres de configuration manquants qui sont propres à tout service WCF. Vous devriez vraiment envisager d'utiliser une référence de service dans Visual Studio et de trouver comment la faire fonctionner correctement avec vos services web NAV publiés. Vous pourrez alors utiliser les paramètres de configuration générés pour avoir une idée de ce qui manque dans le concepteur de SharePoint. Je pense que l'erreur "endpoint configuration" manquante vous indique, en d'autres termes, que certains paramètres spécifiques à WCF sont nécessaires dans sharepoint designer avant que vous puissiez vous connecter au service web NAV à l'aide d'un proxy WCF. Cela pourrait être dans le domaine de la sécurité par exemple, puisque WCF vous donne un niveau de contrôle beaucoup plus granulaire que SOAP classique. Encore une fois, je pense que la clé est de se rappeler que Sharepoint a besoin d'un point de terminaison WCF correctement configuré alors que les anciennes références web n'en ont pas besoin. C'est probablement la raison pour laquelle vous pouvez le faire fonctionner dans Visual Studio mais pas dans Sharepoint Designer.
Pour vous donner une idée (et non une leçon sur les "meilleures pratiques"), lorsque je crée un proxy de référence de service dans mes projets NAV, j'essaie souvent d'opter pour une configuration basée sur le code plutôt que pour une configuration basée sur un fichier trop verbeux (d'autant plus que nous ne pouvons de toute façon pas contrôler les bindings des points d'extrémité du niveau de service NAV). J'utilise un code similaire à celui-ci pour créer une connexion client (bien sûr, ce n'est que du pseudo-code et il ne compilera pas, vous aurez besoin de pointer vers une classe de proxy client de référence de service réelle par exemple, mais cela devrait vous donner une idée des paramètres de configuration de liaison WCF qui sont nécessaires) :
using System.Security.Principal;
using System.ServiceModel;
private void TestNavConnection(string url)
{
using (var ws = new NavServiceReference(GetBindingTransportCredentialOnly(), new EndpointAddress(url)))
{
ws.ClientCredentials.Windows.AllowNtlm = true;
ws.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Delegation;
var record = ws.Read("XYZ");
}
}
private static BasicHttpBinding GetBindingTransportCredentialOnly()
{
var binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
binding.MaxReceivedMessageSize = 1048576;
return binding;
}
J'espère que cela vous aidera. Je vous souhaite bonne chance !