Utilisation du ServiceBroker “SQL Remote Requester”

Pour mon premier article de blog, je vais présenter un service broker développé par mes soins permettant d’exécuter des scripts SQL sur une base distante (comprendre sur un autre serveur) et de récupérer les résultats sous forme de fichier .csv (format lisible dans Excel).

  1. Présentation
  2. Installation et configuration
  3. Utilisation

1. Présentation

Comme de nombreux autres service broker, il a été développé en c# et en utilisant le framework .Net. Le broker se présente sous la forme d’une DLL, que vous trouverez en téléchargement sur le site communautaire de K2 via le lien suivant . Avant de détailler son installation et son paramétrage, on est en droit de se poser la question suivante : quel est l’intérêt de ce type de service broker et en quoi diffère-t’il du service broker SQL Server de base (décrit dans un précédent billet) ?

La réponse peut se diviser en plusieurs points distincts :

  • Possibilité de passer des scripts directement sur la base SQL, de type INSERT de données dans une table, DROP/CREATE de Procédures stockées, instantanément et via un champ de saisie ou un upload de fichier .sql et même sur des bases hébergées sur des serveurs dont nous n’avons pas l’accès à un instant T.
  • Sélection du mode d’authentification (compte K2 ou compte spécifique).
  • Récupération de listes d’information sans avoir à passer par des SmO dédiés à chaque table et ne permettant pas d’exports directs.
  • Connexion centralisée via un seul SmO pour toutes les opérations sur la base.

C’est donc un outil simple d’utilisation permettant de manipuler une base SQL avec plus de souplesse, de manière plus efficiente, à distance et offrant des résultats prêts à l’analyse dans un fichier dédié.

2. Installation et configuration

Maintenant que les présentations sont faîtes, parlons de son installation et de sa configuration :

Pour commencer, il faudra copier la DLL téléchargée dans le répertoire “Service Broker” de votre dossier “K2 Blackpearl”, présent dans le répertoire d’installation de K2 (par défaut C:\ProgramFiles(x86)).

Une fois cette opération effectuée, il convient d’enregistrer le connecteur afin de pouvoir en créer des instances (il faut donc register le ServiceType afin de pouvoir créer son Service Instance ). A partir du SmartObject Service Tester, on clique sur Register Service Type pour accéder à l’écran suivant :

ServiceTypeUne fois cette étape effectuée, il est nécessaire de configurer son service instance via un clic-droit sur le service type puis Register Service Instance. Il est possible d’en enregistrer/instancier plusieurs afin d’avoir accès à différentes bases de données distantes. Il est possible de choisir entre deux configurations d’authentification AD, une authentification compte de service et une authentification permettant l’impersonation d’un autre utilisateur du domaine.

Dans tous les cas il convient de choisir ServiceAccount dans l’Authentication Mode, ce choix se fera en spécifiant ou non les paramètres ADAccount et ADAccountPWD comme indiqué sur la capture d’écran ci-dessous :

ConfigServiceInstance

  • SQLDataSource : informations sur le serveur SQL,
  • SQLDataBase : nom de la base ciblée par cette instance du SQL Remote Requester,
  • ADAccount (facultatif) : compte de l’utilisateur à impersonifier,
  • ADAccountPWD (facultatif) : mot de passe de l’utilisateur à impersonifier,

Une fois le service instance configuré, on peut générer son SmartObject de manière classique en effectuant un clic-droit puis Generate SmartObject. Il ne reste plus qu’à choisir sa destination et son nom.

3. Utilisation

Ca y est votre SmO est généré, vous êtes prêt à utiliser votre RemoteRequester . Deux méthodes se présentent à vous, Execute SQL plutôt tournée vers l’exécution de scripts pour lesquels les résultats seront simplement en consultation, et Export to CSV permettant la génération d’un fichier de type Excel afin de conserver les dits résultats et de pouvoir travailler ces données.

Ici j’exécute une requête via la zone de saisie directe “Request for CSV” :

UtilisationExport

Le fichier CSV est directement prompté en téléchargement, et il suffit de le sauvegarder pour pouvoir l’utiliser. Cela fonctionne bien évidemment sur les SmartForms pour le proposer à des profils moins techniques ou n’ayant pas accès au serveur.

Si j’exécute la même requête via Execute SQL, mais cette fois-ci en la stockant dans un fichier texte (.txt, .sql pris en compte) les résultats seront directement affichés dans ma zone List Results :

ExecutionFichierDans ce simple fichier texte, j’aurai pu stocker un ensemble de modifications à effectuer sur ma base SQL, la création de plusieurs procédures stockées etc…

Voilà, c’est tout pour les explications sur ce SQLRemoteRequester, j’espère qu’il pourra vous être utile, à bientôt !

Téléchargement de la DLL sur community

raphael

Consultant au sein du pôle expertise application, développe et accompagne les projets de clients K2, en essayant d’innover par la même occasion !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *