# Automatiser les fonctionnalités du Manager

Toutes les actions généralement effectuées dans l'interface du Manager (jusqu'à la distribution d'un modèle), peuvent être automatisées dans un fichier de script. Toutes les sources et toutes les cibles supportées par le Manager sont également supportées dans le fichier de script.

## Pourquoi et quand exécuter cette tâche

Les actions que vous pouvez automatiser sont les suivantes :

* démarrage et arrêt de la journalisation de la base de données,

* création et suppression d'un environnement,

* création et suppression d'un modèle,

* ajout et suppression de tables,

* création et suppression d'une cible,

* démarrage, arrêt et arrêt forcé de la distribution d'un modèle,

* reprise en chargement sur la distribution.

## Procédure

1. Pour créer le fichier de script, ouvrez un fichier .txt.
2. Alimentez-le en fonction des commandes suivantes et de leur syntaxe :

   Note InformationsRemarque : Vous pouvez ajouter autant de commandes que nécessaire dans un même fichier de script (par exemple, vous pouvez vous connecter à plusieurs bases de données sources et créer plusieurs distributions). Vous pouvez également créer un fichier de script pour chaque type de source. Cela dépend de vos besoins.
   | Command | Description | Détails et syntaxe |
   | --- | --- | --- |
   | : comment line |  | ```<br>:this is a comment line<br>```<br><br>ou<br><br>```<br>: this is a comment line<br>``` |
   | connect source | Permet de se connecter à la base de données source | L'entrée Type fait référence à l'une des bases de données supportées en source (AS400, MS SQL Server, Oracle, OpenEdge, PostgreSQL, MySQL, MariaDB).<br><br>Trois commandes différentes sont utilisées :<br><br><ul> <li>Pour une source <span>AS400</span> IBMi&nbsp;: 												<pre><code><pre><code><code>connect IpAddress/AS400/</code></code></pre></code></pre> </li> <li>Pour des sources <span>MS SQL Server</span> et <span>Oracle</span>&nbsp;: 												<pre><code><pre><code><code>connect IpAddress/Type/Instance</code></code></pre></code></pre> </li> <li>Pour des sources <span>MariaDB</span>, <span>MySQL</span>, <span>PostgreSQL</span> et <span>OpenEdge</span>&nbsp;:<pre><code><pre><code><code>connect IpAddress/Type/DB_Name</code></code></pre></code></pre> </li> </ul> |
   | start journalization |  | ```<br>start-journalisation<br>Database = <database_name><br>StoragePath = <storage_path><br>end-journalisation<br>```<br><br>où storage\_path est le dossier situé sur la même machine que le moteur, utilisé pour le stockage des fichiers .JRN. |
   | select-env | Permet de sélectionner un environnement | Utilisez cette commande uniquement si vous souhaitez utiliser un environnement déjà créé dans le Manager.<br><br>```<br>select-env envid<br>``` |
   | create env | Permet de créer et de sélectionner un environnement<br><br><br>La valeur par défaut est utilisée si aucun paramètre n'est spécifié | ```<br>create-env envid<br>	EnvType	:=	2<br>				:0 = Production	'default<br>				:1 = Test<br>				:2 = Training<br>				:3 = Model<br>				:4 = Deployment<br>	Description    :=	SFEnvirt Training 01<br>	Hold	    :=	0<br>				:0 = False	     :default<br>				:1 = True<br>	SrcId	    :=	S01<br>	Tempo	    :=	1<br>	Retry	    :=	5<br>end-create<br>``` |
   | create metadata | Permet de créer des métadonnées pour cet environnement | Principalement pour les variables JSON utilisées pour les sources de type Streaming (Kafka, Kinesis, Snowflake). Le script JSON est ensuite inclus dans la commande create model.<br><br>```<br>select-env envid<br>create-metadata<br>	#variable1#	:=	metavalue1<br>	#variable2#	:=	metavalue2<br>	#variable3#       :=      metavalue3<br>end-create<br>``` |
   | select model | Permet de sélectionner un modèle | ```<br>select-env envid<br>select-model grpid<br>``` |
   | create model | Permet de créer et de sélectionner un modèle<br><br><br>La valeur par défaut est utilisée si aucun paramètre n'est spécifié | Source AS400<br><br>```<br>select-env envid<br>create-model grpid<br><br>GrpType         :=   0<br>			:0 = Journal<br>			:1 = Extract<br>Description     :=   SFo-Replication a l'identique<br>iASPgroup       :=   *NONE<br>LibJrn          :=   DD_TRAING<br>JrnName         :=   JOURNAL<br>ManualDistrib   :=   0<br>			:0 = False		:default<br>			:1 = True<br>AllMembers      :=   0<br>			:0 = False		:default<br>			:1 = True<br>AccesMode       :=   3<br>			:0 = Auto		 :default<br>			:1 = RRN<br>			:2 = Index Key<br>			:3 = SQL<br>			:4 = Backup<br>OrpheanMgt      :=   0<br>			:0 = False		:default<br>			:1 = True<br>ContError       :=   0<br>			:0 = False		:default<br>			:1 = True<br>Repair          :=   1<br>			:0 = No<br>			:1 = Yes		  :default<br>			:2 = Skip<br>			:3 = Yes with trace<br>DDLchange       :=   1<br>			:0 = No		<br>			:1 = Ignore<br>			:2 = Yes		<br>			:3 = Yes Alter no Drop	:default<br>			:4 = Yes Alter with Drop<br>Truncate        :=   1<br>			:0 = No<br>			:1 = Yes		  :default<br>			:2 = Ignore<br>RGZPFM          :=   2<br>			:0 = No<br>			:1 = Yes<br>			:2 = Ignore		:default<br>ADDPFM          :=   2<br>			:0 = No<br>			:1 = Yes<br>			:2 = Ignore		:default<br>RMVMBR          :=   2<br>			:0 = No<br>			:1 = Yes<br>			:2 = Ignore		:default<br>DLTF            :=   0<br>			:0 = No		    :default<br>			:1 = Yes<br>NullProcess     :=   0<br>			:0 = No		    :default<br>			:1 = Yes<br>DateAschar      :=   0<br>			:0 = No		    :default<br>			:1 = Yes<br>MetaScript      :=   Begin<br>script<br>MetaScript      :=   End<br><br>end-create<br>```<br><br>Autres sources<br><br>```<br>create-model grpid<br>GrpType         :=   0<br>			:0 = Journal<br>			:1 = Extract<br>Description     :=   SFo-Replication a l'identique<br>DataBase        :=   DD_TRAINING<br>ManualDistrib   :=   0<br>			:0 = False		:default<br>			:1 = True<br>AllMembers      :=   0<br>			:0 = False		:default<br>			:1 = True<br>AccesMode       :=   3<br>			:0 = Auto		 :default<br>			:1 = RRN<br>			:2 = Index Key<br>			:3 = SQL<br>			:4 = Backup<br>OrpheanMgt      :=   0<br>			:0 = False		:default<br>			:1 = True<br>ContError       :=   0<br>			:0 = False		:default<br>			:1 = True<br>Repair          :=   1<br>			:0 = No<br>			:1 = Yes		  :default<br>			:2 = Skip<br>			:3 = Yes with trace<br>DDLchange       :=   1<br>			:0 = No		<br>			:1 = Ignore<br>			:2 = Yes		<br>			:3 = Yes Alter no Drop	:default<br>			:4 = Yes Alter with Drop<br>Truncate        :=   1<br>			:0 = No<br>			:1 = Yes		   :default<br>			:2 = Ignore<br>NullProcess     :=   0<br>			:0 = No		    :default<br>			:1 = Yes<br>DateAschar      :=   0<br>			:0 = No		    :default<br>			:1 = Yes<br>MetaScript      :=   Begin<br>script<br>MetaScript      :=   End<br>end-create<br>``` |
   | select-table | Permet de sélectionner une table | ```<br>select-env envid<br>select-model grpid<br>select-table tableid<br>``` |
   | add-table | Permet d'ajouter une table au modèle sélectionné | L'Id est l'identifiant unique (numérique compris entre 1 et 9999999999) de la table dans ce modèle.<br><br>Grâce à cet Id, une table peut être ajoutée plusieurs fois avec différents identifiants.<br><br>Source AS400<br><br>```<br>select-env envid<br>select-model grpid<br>add-table Library FileName [TargetTableName] [Id:nn]<br><br>```<br><br>Autres sources<br><br>```<br>select-env envid<br>select-model grpid<br>add-table TableName [TargetTableName][Id:nn]<br><br>``` |
   | select target |  | ```<br>select-env envid<br>select-target tgtid<br>``` |
   | create target | Permet de créer et de sélectionner une cible | ```<br>select-env envid<br>create-target tgtid<br>Description	  :=   My DD machine<br>NewSourceId	  :=<br>				: blank is default<br>TargetType	   :=   1<br>				: 0 = IBM I<br>				: 1 = Windows		:default	<br>	Hold	   :=  0<br>				:0 = False		   :default<br>				:1 = True<br>	TargetName    :=  MyVM<br>	TargetAdress  :=  192.168.0.0<br>end-create<br>``` |
   | distribute model | Permet de distribuer le modèle dans la cible | ```<br>select-env envid<br>select-model grpid<br>select-target tgtid<br>distribute<br>	Hold            :=	0<br>				:0 = False		:default<br>				:1 = True<br>	scheduled       :=	0<br>				:0 = False		:default<br>				:1 = True<br>	TgtBDType       :=	0<br>				:0 =	IBMi<br>				:1 =	SQL Server<br>'2 = Oracle ODBC<br>				:5 = ODBC<br>				:8 = PostgreSQL<br>				:9 = Text<br>				:A = MySQL<br>				:B = DB2 LUW<br>				:C = XML<br>				:D = SyBase<br>				:E = Oracle OCI<br>				:F = SQL Server Bi-Directional<br>				:G = OpenEdge<br>				:H = SQLite<br>				:J = MySQL Latin<br>				:K = MySQL Native<br>				:L = PostgreSQL Native<br>				:M = SQLite NAtive<br>				:N = GreenPlum<br>				:O = Netezza<br>				:P = Vectowise MicroBatch<br>				:Q = VectorWise<br>				:R = NuoDB<br>				:S = Altibase<br>				:T = Iseries Access<br>				:V = Kafka<br>				:k = Kinesis	<br>				:W = Hana<br>				:X = Teradata	<br>				:Y = SalesForce<br>				:Z = MariaDB	<br>				:b = MariaDB Latin	<br>				:c = MariaDB Native<br>				:d = Azure SQL	<br>				:e = Azure Event Hub<br>				:g = Azure Service Bus<br>				:i = SnowFlake<br>	UseLibName      :=	0<br>				:0 = FileName		:default<br>				:1 = BDName_FileName<br>				:2 = BDName..FileName or BD.FileName<br>	TargetDB        :=	MyDatabase<br>	LoadByFlatFile  :=   0<br>				:0 = False		:default<br>				:1 = True<br>	PathForFlatFile :=<br>#if Kinesis or kafka or servicebus or eventhub Target<br>	Format           :=  J			:default<br>'J = Json<br>'A = Avro<br>'F = Fixed<br>'D = Delimited<br>	FieldNameOn1st   :=  0<br>				:0 = False		:default<br>				:1 = True<br>FieldSep         :=  ;<br>				:tab = tabulation<br>				:; = semicolon		:default<br>				:, = colon<br>				: … 1 character<br>	TextSep         :=  "<br>				:1 character<br>	LineSep          :=  2<br>				:1 = <CR><br>				:2 = <CR><LF>		'default<br>				:3 = <LF><br>				:4 = ;<br>				:5 = ,<br>				:6 = tabulation<br>				:7 = nothing<br>	DateFormat       :=  2<br>'0 = DMY<br>'1 = MDY<br>'2 = YMD			'default<br>'3 = YDM<br>'4 = DYM<br>'5 = MYD<br>	YearIn4Digits    :=  1<br>				:0 = False		<br>				:1 = True		:default<br><br>	DateDelimiter    :=  /			:default<br>				1 character<br>	TimeDelimiter    :=  :			:default<br>				1 character<br>	DecimalSep       :=  .			:default<br>				1 character<br>	kdsConnectString    :=  region=eu-west-3;<br>				accesskey={0B733EDD1CF71};<br>				secretkey={0B733EDD1CF71}<br>#elseif SnowFlake Target<br>	sfAccount         :=  AB65262.west-europe.azure<br>	sfConnectString   :=  DSN=SnowFlakes;UID=gammadev;<br>				PWD={0B733EDD1CF71};<br>				CodePage=e297UTF8.cpg;<br>	sfPathForTextFile :=  D:\DD_FILE\AS400\M3P<br>	sfCommandFile     :=  LoadData.cmd %s %s 1<br>	sfMaxRecord       :=  0<br>	sfMaxTime         :=  5<br>#else<br>	ConnectString     :=   DSN=…<br>#endif<br>#endif<br>	Planning          :=   000..000<br>				sequence of 168 digits (0 or 1)<br>				for the 168 hours of a week with<br>				0 = inactive, 1=active.<br>The first digit represents Monday from 0 AM to 1 AM<br>	RecoveryType      :=<br>				:Blank is nothing<br>				:C = Load<br>				:P = Sequence<br>	CaseSensitive     :=    0<br>				:0 = False		:default<br>				:1 = True<br>	CacheSize         :=    0<br>				:0 = 32Ko		:default<br>				:1 = 128K0<br>				:2 = 256Ko = 128*2<br>				:3 = 512Ko = 256*2<br>				..<br>				:7 = 8Mo<br>#if AS400 source<br>	RecoveryLib        :=<br>#endif<br>	RecoveryReceiver   :=<br>Sequence           :=<br>	end-distribute<br>``` |
   | change-distributed-table | Permet de modifier les propriétés de la table distribuée | D'abord, utilisez les commandes de sélection :<br><br>```<br>select-model grpid<br>select-target tgtid<br>```<br><br><br>Ensuite, modifiez les propriétés de la table distribuée :<br><br>```<br>change-distributed-table ficid TargetDBName TargetTableName<br>```<br><br>Si vous ne souhaitez modifier que le nom de la table cible, saisissez :<br><br>```<br>change-distributed-table ficid default TargetTableName<br>``` |
   | add query to table | Permet d'ajouter la requête à la table sélectionnée<br><br>Note InformationsRemarque : Uniquement pour les sources NT. | D'abord, utilisez les commandes de sélection :<br><br>```<br>select-env envid<br>select-model grpid<br>select-table tableid<br>```<br><br>Ensuite, ajoutez la requête à la table :<br><br>```<br>begin-script-where<br>:Some query after where clause<br>	SALESNUM = '1' AND PROMOKEY > 10<br>end-script-where<br>``` |
   | add transformation to the table | Permet d'ajouter la transformation à la table sélectionnée | D'abord, utilisez les commandes de sélection :<br><br>```<br>select-env envid<br>select-model grpid<br>select-table tableid<br>```<br><br><br>Ensuite, ajoutez la transformation à la table :<br><br>```<br>begin-transformation<br>DCL O.SALESNUM Char 20 NULL Rtrim KEYORDER 1<br>DCL O.PROMOKEY Numeric 10,0 NULL Same<br><br>if I.SALESNUM = '1' Then<br>O.PROMOKEY = 1<br>O.SALESNUM = I.SALESNUM<br>Endif<br>end-transformation<br>```<br><br>Les lignes DCL sont des lignes par défaut. Elles s'affichent dans la liste si aucune autre déclaration n'est saisie.<br><br><br>Si vous souhaitez ajouter des lignes DCL en plus de celles par défaut, vous pouvez les ajouter au bloc de transformation. Les lignes DCL par défaut sont automatiquement supprimées de la liste et seules les nouvelles sont prises en compte.<br><br>Note InformationsRemarque : Entre begin-transformation et end-transformation, les commentaires sont indiqués par /\* uniquement. |
   | stop distribution | Permet d'arrêter la distribution du modèle | ```<br>select-env envid<br>select-target tgtid<br>stop-distribution grpid<br>``` |
   | kill distribution | Permet d'arrêter de manière forcée la distribution d'un modèle | ```<br>select-env envid<br>select-target tgtid<br>kill-distribution grpid<br>``` |
   | delete distribution | Permet de supprimer la distribution d'un modèle | ```<br>select-env envid<br>select-target tgtid<br>delete-distribution grpid<br>``` |
   | delete target | Permet de supprimer une cible | ```<br>select-env envid<br>delete-target tgtid<br>``` |
   | delete model | Permet de supprimer un modèle | ```<br>select-env envid<br>delete-model grpid<br>``` |
   | delete table | Permet de supprimer une table | ```<br>select-env envid<br>select-model grpid<br>delete-table tableid<br>``` |
   | delete environment | Permet de supprimer un environnement | ```<br>delete-env envid<br>``` |
   | stop journalization | Permet d'arrêter la journalisation d'une base de données | ```<br>dejournalise dbid<br>``` |
3. Sauvegardez le fichier.
4. Lancez une invite de commande et saisissez les commandes suivantes :

   &gt;cd TalendChangeDataCaptureDestinationPath. Appuyez sur Entrée.

   DDmanager -cicd "ScriptFilePath". Appuyez sur Entrée.

## Résultats

Les distributions sont créées telles qu'elles ont été déclarées dans le fichier de script.

Si vous souhaitez voir le résultat : démarrez le Manager et souscrivez à la source, puis connectez-vous à la source. Pour plus d'informations, consultez [Gérer la souscription et la connexion aux sources](https://help.qlik.com/talend/fr-FR/change-data-capture-user-guide/7.3/managing-sources). Pour commencer le processus de réplication, suivez les étapes de la section [Opérer et superviser une réplication](https://help.qlik.com/talend/r/fr-FR/7.3/change-data-capture-user-guide/operation-of-replication).

Pour voir les logs relatifs au lancement du script, ouvrez le fichier DDMGRAUTO.log, situé dans le référentiel DestinationPath (le même que pour le fichier .exe du Manager).

Pour planifier le lancement de toutes les réplications, vous pouvez configurer le Scheduler (consultez [Démarrage automatique des réplications](https://help.qlik.com/talend/r/fr-FR/7.3/change-data-capture-user-guide/starting-replications-automatically)).

### Dans cette section

* [Exemples de fichiers de scripts](https://help.qlik.com/talend/fr-FR/change-data-capture-user-guide/7.3/script-file-samples)