Nous travaillons beaucoup avec SQL Server et la suite de logiciels qui s’y rattache (SSIS, SSRS notamment, en version 2008 R2). A côté de cela, nous avons développé un intranet et PHP/MySQL. Du coup, il nous arrive régulièrement d’avoir besoin de lancer un package Integration Services depuis une page PHP. Cet article donne une des façons possibles de faire pour pouvoir exécuter un package SSIS depuis une page PHP, avec en plus la possibilité de pouvoir avoir un historique des différentes exécutions.

SSIS logo

Le principe est en fait très simple.
Pour lancer un package SSIS, il y a plusieurs options :

  • Planifier au travers un job de l’agent SQL Server le déclenchement à intervalle régulier du package
  • Le lancer sur déclencheur (sur demande)

Pour lancer notre package SSIS depuis une page PHP, nous allons procéder comme cela :

  • Nous allons créer un job sur l’agent SQL Server qui lance le package SSIS souhaité. Nous ne planifions pas ce job.
  • Nous allons créer une procédure SQL Server qui va contenir la ligne suivante, permettant de lancer le job que nous venons de créer :

EXEC sp_start_job @job_name = ‘nomDuJobCree’, @server_name = ‘nomDuServeur’

  • Nous allons ensuite appeler la procédure depuis le code PHP

L’avantage de passer par le job, c’est que vous allez ensuite pouvoir avoir une trace des différentes exécutions dans l’historique du job. C’est également plus propre que de lancer l’exécutable DTSExec via un appel de ligne de commande.