EDB Automation
ritten By | Revision 1 | |
Created | 5/10/2007 | |
Last updated | 5/13/2007 | |
Contributors | ||
Contact | Eric Baudouin | Tool Author |
Drop Location | \\sqlbufs\Data\LSSQL\Tools\EDB AUTOMATION 30 | |
Source Depot Enlistment | //depot/Tools_Main/sqluetools/source/Localization/EDBAUTOMATION_XML | I have saved the latest code in the uetools enlistment owned by the tools team. Trevor Carnahan is the manager. Here are the instruction to enlist: Enlisting in Tools_Main (including SUBS) Source Depot Branch
|
Contents
Appendix 1 Workflow samples 22
Appendix 2 - Language Sample 23
Appendix 4 - Entities Sample 26
Appendix 5 - Command Sample 28
Automation Tool
Introduction
The EDB Automation has been through many improvements but after intensive testing I am confident that this version can be released. This tool is used to centralize our processes and drive EDB Automation tasks.
We have fully converted the tool to XML so there is no Access store anymore. This document will list the current features, how to install the tool, how to use it and outline possible developments for the features
Features
Feature Name | Description |
Automatic file list generation | This tool scans a defined directory and list the EDBs that match a language and family |
Target Command Generation | Once the commands and the resource are selected you can generate a "Trajectory" that represents the list of task with their respective variable |
Master Definition detection | You can decide whether or not the file list will contain some pseudo related information, such as the path and name of the reference EDB. |
File List Read-Only Attribute Refresh | This is a nice Feature that allows you to see whether or not the file is checked in or checkout using color code |
Simplified Logging | We have simplified the Logging. We list the name of the running task and only displayed a message if an error has been detected. |
XML Conversion | During the previous release only the Workflow was XML base. Now all our data are into separate file. It makes the architecture more open and more versatile. We have now the following files:
COMMANDS.XML VARIABLES.XML FAMILIES.XML LANGUAGE.XML ENTITIES.XML |
LCL Generation | We have added a module to generate the LCL file and also to group them |
LCL to SQL | We have added a module to load the LCL file to a SQL Server Database |
How to setup the tool
- Copy the EdbAutomation Executable and the XSD file on a folder on your machine. Those files are available from:
\\sqlbufs\Data\LSSQL\Tools\EDB AUTOMATION 30\latest\edbautomation_bin
You should have the following files:
COMMANDS.XML
EDBAutomation.EXE
ENTITIES.XSD
FAMILIES.XSD
LANGUAGES.XSD
MASTER_DEFINITION.XSD
- Copy the setting files, COMMANDS.XML,VARIABLES.XML, FAMILIES.XML, LANGUAGE.XML, ENTITIES.XML in a directory on your machine
If you just started working on a new project, use the following template file:
\\sqlbufs\Data\LSSQL\Tools\EDB AUTOMATION 30\latest\sample
- Create the following folder:
Folder name | Description |
LOG | Folder to backup the log files generated by the EDB Automation tool |
LSS | Folder for the setting file, see the LSS section for further information |
LCL | Folder where the LCL files generated by the generatelclfiles modules are copied to |
TGT | Folder where the generatelocbinaries are copied to |
LCI | Folder that contains either LCI or LCG file. Those comments will be imported using the importinstructionsfromlci module, please make sure to check the LSS section to import the appropriate comment file |
- Create a Workflow filter when you can save your workflow, please see the WorkFlow section for the further information. To start you might want to copy the examples that are on:
\\sqlbufs\Data\LSSQL\Tools\EDB AUTOMATION 30\latest\workflow
- Edit the Attributes in the LANGUAGE.XML and FAMILY.XML accordingly, please refer to the LANGUAGE definition and FAMILY definition section for further information. You can Edit those file with notepad or by using Excel and opening the document as XML DATA.
- Enable or Disable the pseudo switch, read instructions in the MASTER_DEFINITION.XML file to know how to do this. For further information please read the Master Definition section
- Check the variable in the variable tab according to your machine setup, please refer to the section Variable Management for further information. You can Edit those after launching the tool from the UI or directly in Excel by the opening the VARIABLE.XML file as an XML DATA.
- Launch the tool by clicking on the EdbAutomation.exe or by running the following command:
EDBAUTOMATION.EXE <PATH TO THE SETTTING FILE>
- From the resource selection click on the Generate File List button, if your setting are properly defined you should see the list of EDB that are on your machine. You can also select the choice of your selection from the Filter tab, just select a few families and few languages, click on the Save button and in the Resource tab you will see the selection based on the filter. Select the EDB of your choice
- Load the workflow of your choice. Select the Import Workflow command from the Workflow menu. You can also create a new workflow from the WorkFlow creation menu. Please refer to the WorkFlow section for further information. Once the Workflow is loaded you will see a subset of task to define the workflow in the Command tab
- If you want to test or verified that you have defined your variable properly just click on the Generate Script button, the commands displays, you can test it in a Dos Windows, or just run it by clicking on the Run button
- Check the log to see what happens, if you see a Red message, it means that an Error Occurred. The log are saved in the
Variable Tab
The variable Tab displays the variables in the variable.xml file. You can edit and save the variable. If you need to add a new variable, just add the new variable to the XML file directly.
Command tab
Those are the command that you can use, they are also define by the workflow that you have loaded.
You have a button to generate a script automatically. You can also run the overall process from the Run button.
Here is the bitmap that shows what happens when you run the tool, in this case we were trying to check out an EDB:
Here is another bitmaps that shows what happens when you have an error:
Resource tab
The resource tab is where you select the entities that you want to process. What you see here is the result of the Filter Tab. I have also added a file attribute detection. As you can see down below, in red are the files that are read-only and in green are the files that are writable. This is very useful, after running the checkout module, you can click on the Refresh button to see whether or not the edb file attribute was changed. If a file is missing you will see the file in Grey.
To summarize:
Red: The file is read-only
Green: The file is writable
Grey: The file is missing from the EDB Location folder
Filter Tab
The filter tab allows you to select the entities
Workflow creation\editing
The workflow definition is done from the worklow menu. You can Edit\Create a workflow and save it content into am XML file.
Master EDB detection
To enable the pseudo detection, you need to customize the MASTER_DEFINITION.xml file. Here are some explanation. I treat pseudo just as another language, however our Master EDB are not necessarily neutral, so as an example, lets say I want use an English EDB as another language, I would add the following entry in the language list:
<LANGUAGE>
<LANGUAGEDISPLAYNAME>Pseudo</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>en-US</LANGUAGEISOCODE>
<EDBLANGUAGECODE>PSEUDO</EDBLANGUAGECODE>
<LCID>1033</LCID>
<FILTER>EN_</FILTER>
</LANGUAGE>
In the Master_Definition file I have the following xml fragment that I need to change accordingly
<PSEUDO>
<EDB_NAMING>PSEUDO</EDB_NAMING>
</PSEUDO>
If I want my system to generate the appropriate attribute for the pseudo, then preserve the PSEUDO entry that belong to the EDB_NAMING language.
If you don't need those metadata then you can remove the pseudo definition from the LANGUAGE.XML file and remove the PSEUDO entry in the MASTER_DEFINITION.XML.
When we enable PSEUDO, the Master Attribute will be set properly on each EDB and you will get the
EDBREFPAH
EDBREFNAME
EDBREFFULLPATH
Attributes updated properly in the ENTITY.XML file after refreshing the file list.
XML-Excel Interoperability
You can indeed open all the XML file we have with Excel since they all represent one table only. The way to do it is very simple, you just open the document as a XML Data file and save the file as a XML Data file.
Variable management
The tool was built in such a way that it passes the variables listed in the Variable tabs, please variables that are EDBs related and that are refreshed for any iterations. Those variables are then injected into the command template to build the final command. This one is then called via the shell.
Here is the list:
Variable Name | Description | Type |
BUILDNUMBER | Build number | Static |
TOOLPATH | Tool Path, this should point to the module location on your machine | Static |
EDBLOCATION | Path to the EDB genererally points to your source depot folder | Static |
PROJECTNAME | Name of the project | Static |
LOGPATH | Log Path | Static |
HANDOFFSERVER | This is where we drop the EDB | Static |
LOCBINARYLOCATION | Where the localized files are being generated | Static |
LSSPATH | Path to the LSS file | Static |
DATASERVERNAME | Server where we store the statistics | Static |
STATISTICSREPORTPATH | Location for the CSV statistic Report | Static |
Root_TARGET_PATH | Target where we generate loc file or LCL | Static |
LSBUILDLOCATION | LSBUILD Tool Location | Static |
LSBUILDLOCATION60 | LSBUILD 60 Location | Static |
LS60CONVERSIONWORKFOLDER | Working folder for the EDB to Project and packing work | Static |
EDBNAME | Edb name | Dynamic |
LANGUAGEISOCODE | .Net code | Dynamic |
EDBPATH | Edb Path | Dynamic |
EDBLANGUAGE | Edb Language | Dynamic |
LCID | LCID | Dynamic |
FAMILY | EDB family | Dynamic |
MASTER | Boolean that says whether or not this is master EDBs or not | Dynamic |
EDBSOURCEPATH | Source path to the EDB | Dynamic |
EDBREFPATH | Edb Reference Edb | Dynamic |
EDBREFNAME | Edb Ref Name | Dynamic |
EDBREFFULLPATH | Edb Ref Full Path | Dynamic |
Modules
Because we have some legacy issues we need to have two set of scripts:
\\varmints\PUBLIC\ericbaud\edbautomationtoolsetup\latestdrop\moduleLegacy
\\varmints\PUBLIC\ericbaud\edbautomationtoolsetup\latestdrop\newmodules
Changes were made in LocServices to support non neutral languages, historically speaking the request was made by the Exchange Team. We are now promoting the use of the new modules. For instance if you choose French, you should have French (France), if you work on a Lecacy project it is very likely that you will have French (Legacy ) entry instead. The issue is that the word count is read by LocService and because it relies on the Language name, the script is not agnostics.
Please note that we have added two more modules:
EDBtoLSProject
This module converts the EDB to LSPROJECT
Package Creation
This module packages the LSPROJECT
LSS management:
We have three types of setting files.
Type | Description |
Master LSS | The Master File contains setting that are related on how you handle the extension, for instance this is where we preserve the setting for the LCI, LCG file |
Default LSS | Has all the default parser setting |
Family based LSS | Is related to family set, for instance the template for Orcas, or the UE file for Katmai |
Those files are specified in the lssmapping XML file placed in the LSS folder.
Here is an example that I am using for Orcas:
<LSSMAPPING>
<LSSMASTER NAME="Orcas_Master.lss" />
<LSSDEFAULT NAME="default.lss" />
<LSSEXCEPTIONS>
<LSSEXCEPTION FAMILY="SQL_REPORT_TEMPLATE" NAME="CommentOnly_SourceEncoding.lss"/>
<LSSEXCEPTION FAMILY="SQL_TEMPLATE" NAME="locxml_vstemplate.lss"/>
</LSSEXCEPTIONS>
</LSSMAPPING>
This file is very important because it will be used by the EDB to LCL conversion to make sure we can place the LCL setting reference accordingly in the LCL file. If we miss this generation we just break the build. Here is a bitmap that shows the directory structure after the LCL generation:
Parser setting are very important so it is crucial to understand how to use those files.
LANGUAGE SUPPORT
We decided to support more non-neutral culture to be standard so we need to look at the impact of those changes.
Since we are not using any Term Table name with Policheck we have killed the dependency on this modules for the other languages.
Here is the list of the function that we will be affected:
getlanguageacronyn(LCID)
getlanguageName(LCID) -> Dependency for the word count
To fix this I have decided to use the locculture.xml file and apply the two functions that are available in the helper.vbs file
Function getlanguageName(LCID)
Set XMLCulture= CreateObject("microsoft.XMLDOM")
XMLCulture.load("LocCultures.xml")
Set pNode= XMLCulture.selectSingleNode("/LocCultures/LocCulture/LocCulture[@LCID='"& LCID & "']")
GetLanguageName = pNode.Attributes.GetNamedItem("EnglishName").Value
End Function
Function getlanguageacronyn(LCID)
Set XMLCulture= CreateObject("microsoft.XMLDOM")
XMLCulture.load("LocCultures.xml")
Set pNode= XMLCulture.selectSingleNode("//LocCultures/LocCulture/LocCulture[@LCID='"& LCID & "']")
'Set pNode= XMLCulture.selectSingleNode("//LocCultures/LocCulture")
GetLanguageAcronym = pNode.Attributes.GetNamedItem("RFC3066Name").Value
End Function
Appendix 1 Workflow samples
Here are a couple of workflow sample so that you can look at the schema:
Handback Example
<Commands>
<Command COMMANDNAME="Checkout"></Command>
<Command COMMANDNAME="CopyLatestEDBtoLocalmachine"></Command>
<Command COMMANDNAME="Import the LSS setting"></Command>
<Command COMMANDNAME="CleanUserLock"></Command>
<Command COMMANDNAME="CleanInstructions"></Command>
<Command COMMANDNAME="UpdateEdb"></Command>
<Command COMMANDNAME="ImportCommentsFromLCI"></Command>
<Command COMMANDNAME="LocRuleEdb"></Command>
<Command COMMANDNAME="GenerateXMLStatistics"></Command>
<Command COMMANDNAME="ReportstatisticsCSV"></Command>
<Command COMMANDNAME="Generatelclfiles"></Command>
<Command COMMANDNAME="GroupLCLFile"></Command>
<Command COMMANDNAME="UpLoadLCLToServer"></Command>
<Command COMMANDNAME="PolicheckEdb"></Command>
<Command COMMANDNAME="BackupEdbsentbyVendor"></Command>
</Commands>
Handoff Example
<Commands>
<Command COMMANDNAME="Checkout"></Command>
<Command COMMANDNAME="Import the LSS setting"></Command>
<Command COMMANDNAME="CleanUserLock"></Command>
<Command COMMANDNAME="UpdateEdb"></Command>
<Command COMMANDNAME="CleanInstructions"></Command>
<Command COMMANDNAME="ImportCommentsFromLCI"></Command>
<Command COMMANDNAME="LocRuleEdb"></Command>
<Command COMMANDNAME="GenerateXMLStatistics"></Command>
<Command COMMANDNAME="ReportstatisticsCSV"></Command>
<Command COMMANDNAME="CopyHandoffEdbtoFromMSLatestFolder"></Command>
<Command COMMANDNAME="BackupEdbsentbymicrosoft"></Command>
</Commands>
Appendix 2 - Language Sample
<?xml version="1.0" encoding="UTF-8"?>
<LANGUAGES>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>French</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>1036</LANGUAGEISOCODE>
<EDBLANGUAGECODE>FRN</EDBLANGUAGECODE>
<LCID>1036</LCID>
<FILTER>_FRN</FILTER>
</LANGUAGE>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>German</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>1031</LANGUAGEISOCODE>
<EDBLANGUAGECODE>GER</EDBLANGUAGECODE>
<LCID>1031</LCID>
<FILTER>_GER</FILTER>
</LANGUAGE>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>Spanish</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>3082</LANGUAGEISOCODE>
<EDBLANGUAGECODE>SPA</EDBLANGUAGECODE>
<LCID>3082</LCID>
<FILTER>_SPA</FILTER>
</LANGUAGE>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>Chinese Simplified</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>2052</LANGUAGEISOCODE>
<EDBLANGUAGECODE>CHS</EDBLANGUAGECODE>
<LCID>2052</LCID>
<FILTER>_CHS</FILTER>
</LANGUAGE>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>Russian</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>1049</LANGUAGEISOCODE>
<EDBLANGUAGECODE>RUS</EDBLANGUAGECODE>
<LCID>1049</LCID>
<FILTER>_RUS</FILTER>
</LANGUAGE>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>Chinese Traditional</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>1028</LANGUAGEISOCODE>
<EDBLANGUAGECODE>CHT</EDBLANGUAGECODE>
<LCID>1028</LCID>
<FILTER>_CHT</FILTER>
</LANGUAGE>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>Korean</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>1042</LANGUAGEISOCODE>
<EDBLANGUAGECODE>KOR</EDBLANGUAGECODE>
<LCID>1042</LCID>
<FILTER>_KOR</FILTER>
</LANGUAGE>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>Italian</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>1040</LANGUAGEISOCODE>
<EDBLANGUAGECODE>ITN</EDBLANGUAGECODE>
<LCID>1040</LCID>
<FILTER>_ITN</FILTER>
</LANGUAGE>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>Japanese</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>1041</LANGUAGEISOCODE>
<EDBLANGUAGECODE>JPN</EDBLANGUAGECODE>
<LCID>1041</LCID>
<FILTER>JPN</FILTER>
</LANGUAGE>
<LANGUAGE>
<LANGUAGEDISPLAYNAME>Pseudo</LANGUAGEDISPLAYNAME>
<LANGUAGEISOCODE>1031</LANGUAGEISOCODE>
<EDBLANGUAGECODE>PSEUDO</EDBLANGUAGECODE>
<LCID>1031</LCID>
<FILTER>_PSEUDOS</FILTER>
</LANGUAGE>
</LANGUAGES>
Appendix 3 - Family Sample
<?xml version="1.0" encoding="UTF-8"?>
<FAMILIES>
<FAMILY>
<Familyname>SQL_DPGREENBIT</Familyname>
<Description>NDP EDB</Description>
<FILTER_FAMILY>SQL_DPGREENBIT_</FILTER_FAMILY>
<EDBSOURCEPATH>D:\Projects\Orcas\sqllocteambranch\src</EDBSOURCEPATH>
</FAMILY>
</FAMILIES>
Appendix 4 - Entities Sample
<?xml version="1.0" standalone="yes"?>
<ENTITIES>
<EDB>
<EDBNAME>SQL_DPGREENBIT_JPN.edb</EDBNAME>
<LANGUAGEISOCODE>1041</LANGUAGEISOCODE>
<EDBPATH>C:\dev\edbautomationcode\edb</EDBPATH>
<EDBLANGUAGE>JPN</EDBLANGUAGE>
<LCID>1041</LCID>
<FAMILY>SQL_DPGREENBIT</FAMILY>
<MASTER>false</MASTER>
<EDBSOURCEPATH>D:\Projects\Orcas\sqllocteambranch\src</EDBSOURCEPATH>
<EDBREFPATH>C:\dev\edbautomationcode\edb</EDBREFPATH>
<EDBREFNAME>SQL_DPGREENBIT_pseudos.edb</EDBREFNAME>
<EDBREFFULLPATH>C:\dev\edbautomationcode\edb\SQL_DPGREENBIT_pseudos.edb</EDBREFFULLPATH>
</EDB>
<EDB>
<EDBNAME>SQL_DPGREENBIT_pseudos.edb</EDBNAME>
<LANGUAGEISOCODE>1031</LANGUAGEISOCODE>
<EDBPATH>C:\dev\edbautomationcode\edb</EDBPATH>
<EDBLANGUAGE>PSEUDO</EDBLANGUAGE>
<LCID>1031</LCID>
<FAMILY>SQL_DPGREENBIT</FAMILY>
<MASTER>true</MASTER>
<EDBSOURCEPATH>D:\Projects\Orcas\sqllocteambranch\src</EDBSOURCEPATH>
<EDBREFPATH />
<EDBREFNAME />
<EDBREFFULLPATH />
</EDB>
</ENTITIES>
Appendix 5 - Command Sample
<?xml version="1.0" encoding="UTF-8"?>
<COMMANDS>
<COMMAND>
<COMMANDNAME>CopyLatestEDBtoLocalmachine</COMMANDNAME>
<DESCRIPTION>Copy Latest Edb from Vendor to Local machine</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\copyedbfromdropsharetolocalmachine.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /HANDOFFSERVER:"%HANDOFFSERVER%" /PROJECTNAME:"%PROJECTNAME%" /BUILDNUMBER:"%BUILDNUMBER%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /LCID:"%LCID%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>BackupEdbsentbyVendor</COMMANDNAME>
<DESCRIPTION>Backup Edb sent by Vendor</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\backupedbsentbyvendor.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /HANDOFFSERVER:"%HANDOFFSERVER%" /PROJECTNAME:"%PROJECTNAME%" /BUILDNUMBER:"%BUILDNUMBER%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /PROJECTNAME:"%PROJECTNAME%" /LCID:"%LCID%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>BackupEdbsentbymicrosoft</COMMANDNAME>
<DESCRIPTION>Backup the EDB sent by Microsoft</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\backupedbsentbymicrosoft.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /HANDOFFSERVER:"%HANDOFFSERVER%" /PROJECTNAME:"%PROJECTNAME%" /BUILDNUMBER:"%BUILDNUMBER%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /PROJECTNAME:"%PROJECTNAME%" /LCID:"%LCID%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>CleanUserLock</COMMANDNAME>
<DESCRIPTION>Clean the user Locks</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\cleanuserlock.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /PROJECTNAME:"%PROJECTNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>CopyHandoffEdbtoFromMSLatestFolder</COMMANDNAME>
<DESCRIPTION>Copy Handoff Edbs to the FromMs latest folder</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\copyedbtotheFromMSlatestfolder.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /HANDOFFSERVER:"%HANDOFFSERVER%" /PROJECTNAME:"%PROJECTNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /LCID:"%LCID%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>UpdateEdb</COMMANDNAME>
<DESCRIPTION>Update the Edb</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\update.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /USBINARYLOCATION:"%EDBSOURCEPATH%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>Generate</COMMANDNAME>
<DESCRIPTION>Generate the localized binaries</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\generatelocalizedfile.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOCBINARYLOCATION:"%LOCBINARYLOCATION%" /USBINARYLOCATION:"%EDBSOURCEPATH%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /LCID:"%LCID%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>ImportInstructions</COMMANDNAME>
<DESCRIPTION>Import the instructions in the from the master Edb</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\importinstructions.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /EDBREFPATH:"%EDBREFPATH%" /EDBREFNAME:"%EDBREFNAME%" /EDBTYPE:"%EDBTYPE%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>ImporttheLocks</COMMANDNAME>
<DESCRIPTION>Import the Locks from the Master Edb</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\importlocks.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /EDBREFPATH:"%EDBREFPATH%" /EDBREFNAME:"%EDBREFNAME%" /EDBTYPE:"%EDBTYPE%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>LocRuleEdb</COMMANDNAME>
<DESCRIPTION>Run the Localization Rule Extension</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\locver.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /PROJECTNAME:"%PROJECTNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>OptimizeEdb</COMMANDNAME>
<DESCRIPTION>Optimize the Edb</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\optimize.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>PruneEdb</COMMANDNAME>
<DESCRIPTION>Prune the Edb</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\prune.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>ValidateEdb</COMMANDNAME>
<DESCRIPTION>Validate the Edb</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\validate.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>SetStringStatusToLocalized</COMMANDNAME>
<DESCRIPTION>Set the string status to Loc</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\settolocalized.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>Setthebuildnumber</COMMANDNAME>
<DESCRIPTION>Set the build number</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\setbuildnumber.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /TOOLPATH:"%TOOLPATH%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>Checkout</COMMANDNAME>
<DESCRIPTION>Checkout a file</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\checkout.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>CheckinEdb</COMMANDNAME>
<DESCRIPTION>Checkin the Edb</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\checkin.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>Import the LSS setting</COMMANDNAME>
<DESCRIPTION>Import the LSS setting</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\importlssetting.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LSSPATH:"%LSSPATH%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /EDBFAMILY:"%EDBFAMILY%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>SetInstructionToNo</COMMANDNAME>
<DESCRIPTION>Set the Instruction field to no</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\setinstructionstono.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /PROJECTNAME:"%PROJECTNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>PolicheckEdb</COMMANDNAME>
<DESCRIPTION>Check the Edb against political sensitive issue</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\policheckedb.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LCID:"%LCID%" /PROJECTNAME:"%PROJECTNAME%" /LOGPATH:"%LOGPATH%" /HANDOFFSERVER:"%HANDOFFSERVER%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>GenerateXMLStatistics</COMMANDNAME>
<DESCRIPTION>Generate a csv files and convert them to XML</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\statisticsXML.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LCID:"%LCID%" /COUNTER:"%COUNTER%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>ReportstatisticsCSV</COMMANDNAME>
<DESCRIPTION>This file generate REPORT variable</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\ReportstatisticsCSV.wsf /PROJECTNAME:"%PROJECTNAME%" /STATISTICSREPORTPATH:"%STATISTICSREPORTPATH%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /BUILDNUMBER:"%BUILDNUMBER%"</TEMPLATE>
<TRANSITION></TRANSITION>
<PROCESSMODE>1</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>ImportCommentsFromLCI</COMMANDNAME>
<DESCRIPTION>Imports the comments from the LCI file</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\importInstructionsFromLCI.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%"</TEMPLATE>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>CleanInstructions</COMMANDNAME>
<DESCRIPTION>Clean the Instruction in the Instructions field</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\cleaninstructions.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /TOOLPATH:"%TOOLPATH%"</TEMPLATE>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>Generatelclfiles</COMMANDNAME>
<DESCRIPTION>Generate the LCL file</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\generatelclfiles.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /LSBUILDLOCATION:"%LSBUILDLOCATION%" /Root_TARGET_PATH:"%Root_TARGET_PATH%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /LCID:"%LCID%"</TEMPLATE>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>GroupLCLFile</COMMANDNAME>
<DESCRIPTION>Group the LCX file</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\grouplclfiles.wsf /EDBPATH:"%EDBPATH%" /EDBNAME:"%EDBNAME%" /Root_TARGET_PATH:"%Root_TARGET_PATH%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /LCID:"%LCID%"</TEMPLATE>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
<COMMAND>
<COMMANDNAME>UpLoadLCLToServer</COMMANDNAME>
<DESCRIPTION>Uppload the LCL files to the LCXServer</DESCRIPTION>
<TEMPLATE>%TOOLPATH%\UploadLCLToServer.wsf /EDBNAME:"%EDBNAME%" /LSBUILDLOCATION:"%LSBUILDLOCATION%" /Root_TARGET_PATH:"%Root_TARGET_PATH%" /LOGPATH:"%LOGPATH%" /LOGNAME:"%LOGNAME%" /LCID:"%LCID%"</TEMPLATE>
<PROCESSMODE>2</PROCESSMODE>
</COMMAND>
</COMMANDS>