
 TSI3DXBatch
 ==========

 The CAA utility TSI3DXBatch can be used to export a structure, files or effectivities from 3DEXPERIENCE,
 to import a structure to 3DEXPERIENCE, or to synchronize designs attached to a folder. 
 To use the tool the T-Systems license manager must be installed. A license for module 1070 must be available.
 The license must cover the version of TSI3DXBatch. 
 The following functions are available:
 
 XPDM Functionality
 ------------------
 1. Export a structure from 3DEXPERIENCE using utility "XPDMImportExportBatch"
    This export can be used with or without event bus connectivity (XPDM / ENOVIA Gateway infrastructure)
	
 1a Export multiple root items using an input file from 3DEXPERIENCE using utility "XPDMImportExportBatch"

 2. Export a structure from 3DEXPERIENCE using SendToXpdm
    This export can be used to trigger the Dassault Systemes XPDM export a structure. It uses the XPDM 
    Gateway infrastructure XPGClientBatchService. The file export is done on a configured 
    XPGClientBatchService host. This functionality is available for 3DEXPERIENCE 2015x and later.
    
 3. Import a structure to 3DEXPERIENCE using utility "XPDMImportExportBatch"
 
 4. Change Location of Control (CLOC) using utility "CoexistenceAdministration"
    This function uses an input (xml) file holding a list of changeownership elements.
    The changed objects are referenced in the result file.
 
 
 Non XPDM Functionality
 ---------------------- 
 5. Export effectivities
    This export uses an input (xml) file holding a list of PLMCoreReference elements and the relations 
    between. The exported effectivities are stored in a result (xml) file.
 
 6. Export native V5 geometry files using utility "DownwardCompatibility"
    This export uses an input (xml) file holding a list of PLMCoreRepReference elements.
    It is possible to get additional JT files for the exported 3D objects. 
    The exported files are stored in a result directory. A result file holding the mapping between
    input and output is stored in the result directory.    

 7. Export documents attached to a reference
    This export uses an input (xml) file holding a list of PLMCoreReference elements. 
    All "Document" elements that are attached to the input object are exported.
    The exported files are stored in a result directory. A result file holding the mapping between
    input and output and the attributes of the Documents is stored in the result directory.              
    
 8. Export viewable files
    This export uses an input (xml) file holding a list of PLMCoreRepReference elements.
    It is possible to specify different viewable formats and picture sizes.
    The exported files are stored in a result directory. A result file holding the mapping between
    input and output is stored in the result directory.    
    
 9. Export XCAD files using utility "DataExchangePLMBatch"
    This export uses an input (xml) file holding a list of PLMCoreRepReference and/or PLMCoreReference 
    elements. It is possible to specify multiple exporter/format combinations in one export.
    A selected exporter may need a special license.  
    The exported files are stored in a result directory. A result file holding the mapping between
    input and output is stored in the result directory.    
 
    It is possible to use a JT converter that generates additional JT files from the exported CATParts. 
    To enable the function use the option "-JTV5 <FullPath>\jtv5.bat". The script jtv5.bat is called 
    with the following options:
       jtv5.bat <workdir> <input_file> <DebugLevel>
    The script jtv5.bat is started in <workdir> with the following environment settings:
       PATH=.  
       COMSPEC=<full path>\cmd.exe
       PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS;.MSC
       PROMPT=$P$G
       SystemRoot=<System root from TSI3DXBatch>
       TEMP=<TEMP from TSI3DXBatch>
       SystemDrive=<SystemDrive from TSI3DXBatch>
    <workdir> is the current working directory of the tool. As by default batch scripts do not support UNC path 
    as current directory it may be necessary to use pushd to change to the working directory:
       pushd "%1"
    <input_file> points on a file in workdir that contains a list of the CATParts to be processed and the 
    corresponding JT files to be generated:
       "<full_path>\Geometry1.CATPart" "<full_path>\Geometry1.jt"
       "<full_path>\Geometry2.CATPart" "<full_path>\Geometry2.jt"
       "<full_path>\Geometry3.CATPart" "<full_path>\Geometry3.jt"
    <DebugLevel> has always one of the following values:
       0 ... debug off
       1 ... debug on
       2 ... performance debug 
10. Print Drawing using utility "PLMPrintBach"
    Print a Drawing to a PDF file.
    The printed files are stored in a result directory. A result file holding the mapping between
    input and output is stored in the result directory.
11. Export 3D XML files using utility "Export 3D XML"
    This export uses an input (xml) file holding a list of PLMCoreReference elements.
    A for each node in the list a single 3dxml file will be generated.
    The exported files are stored in a result directory. A result file holding the mapping between
    input and output is stored in the result directory.

12. Synchronize folder structure
    This function updates or creates a provided folder structure. Missing folders are created, additional
    sub folders are deleted. Designs attached to a folder can are synchronized to the provided designs. 
    Additional designs at a sub folder will be detached from the sub folder, 
    missing designs at a sub folder will be attached to the sub folder.    
    
13. Export folder structure
    This function provides the folder structure including the ids of attached designs under a given root folder.
    The exported structure is stored in the result file.    

14. Export documents
    This export uses an input (xml) file holding a list of document elements. 
    The exported files are stored in a result directory. A result file holding the mapping between
    input and output and the attributes of the Documents is stored in the result directory.              

15. Export mapping info
    This export uses an input (xml) file holding a list of mappinginfo elements. 
    The exported mapping info files are stored in a result directory. A result file holding the mapping between
    input and output is stored in the result directory.
    Requires the SiteId argument.

16. Import Filter
    This import uses an input (xml) file holding the filtered structure in a tree structure. 
    It is possible to filter a few levels and keep all children of a branch without explicit mention all children in the xml.

17. Expand Filter (one level)
    This export uses an input (xml) file holding a list of expandFilter elements.
    The top level of the filtered structure and its direct child relations are stored in the result file.

18. PLMCobotIntegrationBatch
    Runs the PLMCobotIntegrationBatch with the provided objects.

19. Revise
    Create a new major version of the provided objects

20. Synchronize bookmark structure
    This function updates or creates a provided bookmark structure. Missing bookmarks are created, additional
    sub bookmark are deleted. Designs attached to a bookmark can are synchronized to the provided designs. 
    Additional designs at a bookmark will be detached from the bookmark, 
    missing designs at a bookmark will be attached to the bookmark.    

21. Export bookmark structure
    This function provides the bookmark structure including the ids of attached designs under a given root bookmark.
    The exported structure is stored in the result file.    

22. Expand Configurations (one level / multi level)
    This export uses an input (xml) file holding a list of configroot elements (root nodes of configured structures)
    and the pre defined Configuration names (configItem) to be applied to the structure.

22a Expand Configurations using persitent filter (one level / multi level) (legacy)
    This export uses an input (xml) file holding a list of configroot elements (root nodes of configured structures)
    and the pre defined Configuration names (configItem) to be applied to the structure.
    For each configItem a corresponding persitent filter is created (if not exists). This filter is applied
    and the first level of the filtered structures and their direct child relations are stored in the result file.
    To use 22a instead of 22, you have to use the command line setting "-UseLegacyConfigExport" or set the environment
    variable TSI3DXBATCH_USELEGACYCONFIGEXPORT=ON.

 The functions 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 and 22(a)
 can be combined in a single call. 


 Installation
 ============
    
 Prerequisits:
 - 3DEXPERIENCE Rich client (CATIA) including the XVG module
 - 3DEXPERIENCE VPM client
 - T-Systems - COM/FOX xcad (if export JT is configured or to export xcad JT_COMFOX/jt) 

 Installation:
 - Extract the package TSI_3DX_Exp_Rxxxxx_Vxxx.zip to your preferred directory.
 - Use the 3DEXPERIENCE utility: "Environment Editor" to create a new environment file 
   based on the existing environment (Create new environment file TSI3DXBatchEnv.txt).

 Configuration:
 
   To use the XPDM export please follow the configuration described in the Enovia V6 
   documentation:
   Installation and Administration -> Social and Collaborative 
   -> Global Engineering and Manufacturing Management -> X-PDM Gateway -> Installation

   To use COM/FOX xcad to export JTs, configure V6 Client environment like described in COM/Fox 
   documentation. With this environment you should be able to export JT files using the native 
   3DX Batch utility "DataExchangePLMBatch" from the Batch management.
   

  Additional Settings in TSI3DXBatchEnv.txt (only needed for "Export a structure from 3DEXPERIENCE 
  using utility "XPDMImportExportBatch". It seems that all debug directories need the same base,
  otherwise there is an error when trying to export a CATPart for the first time):
  
    XPGDIR=C:\temp\XPGClientBatchConfig_B417
    TEMP=%XPGDIR%\TEMP
    Temp=%XPGDIR%\Temp
    TMP=%XPGDIR%\TMP
    TMPDIR=%XPGDIR%\TMPDIR
    CATTemp=%XPGDIR%\CATTemp
    CATErrorLog=%CATTemp%\error.log
    CATReport=%XPGDIR%\CATReport
    XPG_CLIENTSERVICELOG_FILE=%TMPDIR%  

  Additional Post Installation / Configuration when using "Synchronize bookmark structure":
    Synchronize bookmark structure needs an additional file from the 3DExperience server 
    (eMatrixServletRMI.jar) and some configurations in TCIXpgConfig.xml. See "Installation" and 
    "Configuration" in Readme_TCIXpgPostProcess.txt.
    CheckServerConnection.bat must show no error for "Check 3DExperience Server connection"


  TSI3DXBatch uses the following environment variables:    
    TSI3DXBATCH_DEBUG ON   ... write debug output in log file <Jobname>.log
                      ONT  ... write profiling output in log file 

  Optional TSI3DXBatch Environment variables that can be used instead of command line arguments (see usage):
    TSI3DXBATCH_WORKDIR 
    TSI3DXBATCH_ENVIRONMENT
    TSI3DXBATCH_REPOSITORY
    TSI3DXBATCH_SERVERPROTOCOL
    TSI3DXBATCH_SERVER
    TSI3DXBATCH_PORT
    TSI3DXBATCH_ROOTURI
    TSI3DXBATCH_TEMPLATECATPART
    TSI3DXBATCH_VIEWABLESIZE
    TSI3DXBATCH_CREATEJTFORCLASSES
    TSI3DXBATCH_XCADEXPORTER
    TSI3DXBATCH_XCADFORMAT
    TSI3DXBATCH_PRINTTEMPLATE
    TSI3DXBATCH_PRINTFILENAMEFORMAT
    TSI3DXBATCH_PRINTTEMPDIR
    TSI3DXBATCH_PRINTTIMEOUT
    TSI3DXBATCH_RETRYGEOMETRYEXPORT
    TSI3DXBATCH_USESIMPLEQUERY
    TSI3DXBATCH_AUTHORINGCAD
    TSI3DXBATCH_MAXXCADBATCHOBJECTS
    TSI3DXBATCH_XCADINVALIDCHARACTERS
    TSI3DXBATCH_BATCHINACTIVITYTIMEOUT
	TSI3DXBATCH_SESSIONREFRESHTIMEOUT	
    TSI3DXBATCH_USELEGACYCONFIGEXPORT
    TSI3DXBATCH_CONFIGEXPORTINCLUDEUNDEFINED
    TSI3DXBATCH_STARTSUBPROCESSLEGACYMODE
	TSI3DXBATCH_COEXADMINWORKSPACE
	TSI3DXBATCH_COEXADMINMODE
	TSI3DXBATCH_COEXADMINPROPAGATE
	TSI3DXBATCH_COEXADMINDEPTHWITHINSTANCE
	TSI3DXBATCH_MAXXPDMEXPORTROOTS
	TSI3DXBATCH_EXPORT3DXML_PROPAGATEDEPTH
	TSI3DXBATCH_EXPORT3DXML_WITHOUTWIREFRAME
	TSI3DXBATCH_EXPORT3DXML_SENDCONFIGURATION
	TSI3DXBATCH_EXPORT3DXML_PREVIEW
	TSI3DXBATCH_EXPORT3DXML_LIBRARYCONTENT
	TSI3DXBATCH_EXPORT3DXML_EXPORT_SPLIT
	TSI3DXBATCH_EXPORT3DXML_COMPATIBILITY_MODE
	TSI3DXBATCH_EXPORT3DXML_COMPATIBILITY_LEVEL

  Usage
  =====

  C:\<...>\B417\win_b64\code\bin\CATSTART.exe -env TSI3DXBatchEnv -direnv <dir>  -run "TSI3DXBatch -h"

  TSI3DXBatch version: <Version> Build: xxxxxx  Date: MMM dd yyyy hh:mm:ss

  Usage: TSI3DXBatch
  General options:
  ================

     [-h]                            print this Usage
     [-CallingInfo <Info>]           Some text to identify the application environment in debug output
     [-JobName <jobname>]            name of the job used to name files in working directory (default: TSI3DXBatch)
     [-WorkDir <working directory>]  working directory (default use environment %TSI3DXBATCH_WORKDIR%, if not set use current directory)

   3DX Server:
     -ServerUrl <url>                3DX server Url. If set ignore -ServerProtocol, -ServerName, -ServerPort and -ServerRootURI
                                     If not set -ServerProtocol, -ServerName, -ServerPort and -ServerRootURI must be provided
                                     The expected  format of server url is 'protocol://ServerName:PortNumber/RootURI'
                                     If 'PortNumber' is not provided, use 80 (http) or 443 (https).
                                     (default use environment %TSI3DXBATCH_SERVERURL%)
     [-ServerProtocol <http|https>]  3DX server protocol (default use environment %TSI3DXBATCH_SERVERPROTOCOL%, if not set use http)
     [-ServerName <server>]          3DX server name (default use environment %TSI3DXBATCH_SERVER%)
     [-ServerPort <port>]            3DX server port (default use 80 (http) or 443 (https) or environment %TSI3DXBATCH_PORT%)
     [-ServerRootURI <uri>]          3DX server root uri (default use environment %TSI3DXBATCH_ROOTURI%)
     [-Environment <environment>]    3DX environment (default use environment %TSI3DXBATCH_ENVIRONMENT%)
                                     If not set use first environment. If TSI3DXBATCH_DEBUG=ON all available environments are listed in log file.
     [-Repository  <repository>]     Repository, (default use environment %TSI3DXBATCH_REPOSITORY%, if not set use PLM1)


   3DX User:
     -LoginTicket <LoginTicket>      Login Ticket can be used instead of User + Password + SecurityCtx. To create a ticket use:
                                     3DX Web client: Collaboration and Approvals->Experience Configuration->Manage Login Tickets
                                     If 3DPassport is used, the usage of LoginTicket is mandatory
     -User <username>                3DX user name
     -Passwd <password>              Passwort for 3DX user
     -SecurityCtx <SecCtx>           3DX security context (Role.Organization.Project)

   Subordinate general options:
     [-LicenceFile <full path>]      Full path of a file containing the licensing information used by external 3DX batch utilities:
                                     XPGClientBatch, DownwardCompatibilityBatch, DataExchangePLMBatch or PLMPrintBach
                                     If not set use licence defined in the settings.
     [-UseSimpleQuery <ON|OFF>]      Switch to ON to use multiple single queries instead of a setbased query. Some versions / hotfixes (detected in
                                     3DEXPERIENCE R2016x HF7) ignore the query criterias of a setbased query and instead return all objects of a given
                                     type of the database.
                                     If not set use environment %TSI3DXBATCH_USESIMPLEQUERY%. Set TSI3DXBATCH_USESIMPLEQUERY = "ON" to enable simple
                                     queryies or "OFF" to use a setbased query. If not set use: OFF
                                     for currently used 3DX version.
     [-UseLoadDuringQuery]           Load the found objects during query. Depending to the number of versions of each item, the query may be faster as it uses
                                     only set based operations during query. If not set use environment %TSI3DXBATCH_USELOADDURINGQUERY%.
                                     Set TSI3DXBATCH_USELOADDURINGQUERY = "ON" to enable the feature. Default value is "OFF".
     [-StartSubProcessLegacyMode]    If set, do not terminate sub process if current process is terminated. If not set use environment
                                     %TSI3DXBATCH_STARTSUBPROCESSLEGACYMODE%. Set TSI3DXBATCH_STARTSUBPROCESSLEGACYMODE = "ON" to enable the legacy
                                     start mode of sub processes. This setting is needed if the OS does not allow to start a process in suspended mode.
     [-InputFile <full path>]        Input file to export multiple CATPats with the utility DownwardCompatibility, to read Effectivities, to export
                                     XCAD, ...
                                     When export a single structure using XPDM or import with XPDM, the option - InputFile is not needed.
     [-BatchInactivityTimeout <seconds>]
                                     When Downwardcompatibility or DataExchangePLMBatch do not change anything in the working directory for "seconds",
                                     the CATUtility process will be terminated.
                                     If not set use value of environment %TSI3DXBATCH_BATCHINACTIVITYTIMEOUT%. Default: 0 (infinite).
     [-SessionRefreshTimeout <timeout>]
                                     In some cases TSI3DXBatch starts a native 3DX Batch. Depending on the data, these 3DX Batches may take very long.
                                     To make sure the 3DX Session of TSI3DXBatch is still valid when a 3DX Batch ends, it may be necesarry to refresh
                                     the 3DX Session of TSI3DXBatch while a native 3DX Batch is still running. This setting specifies the refresh timeout
                                     in seconds. If not set use environment %TSI3DXBATCH_SESSIONREFRESHTIMEOUT%, default: 0 (infinite).

  Non XPDM options (require -InputFile):
  ======================================

     [-JT]                           If CATParts are exported with Downward Compatibility, create additional JT files.
     [-JTV5 <full path>]             If CATParts are exported with Downward Compatibility, create additional JT files using an external application
                                     to create JT files using the exported V5 files as input.
     [-JT_ContinueOnError]           Do not interrupt export process if the export of a JT fails.
     [-CreateJtForClass <Class>]     Create JT file for objects of type <Class> and the sub types of <Class>. Class must be a sub type of
                                     PLMCoreRepReference. To use multiple classes, the classes can be separated by comma like Class1,Class2,...
                                     it is also possible to use this parameter multiple times.
                                     Default use environment "%TSI3DXBATCH_CREATEJTFORCLASSES%=Class1,Class2 ...",
                                     if not set use "3DShape".
                                     To get a JT file if ever possible use <Class>=PLMCoreRepReference in combination with
                                     -JT_ContinueOnError.
     [-CATFileFormatForJt <format>]  If using -JTV5 only create JT files for exported files of <format>. To use multiple formats, the formats can be separated by comma
                                     like format1,format2,... , it is also possible to use this parameter multiple times.
                                     Default use environment "%TSI3DXBATCH_CATFILEFORMATSFORJT%=format1,format2 ...",
                                     if not set use "CATPart".
                                     To get a JT file if ever possible use <format>=ALL in combination with
                                     -JT_ContinueOnError.
     [-ViewableSize <SIZE>]          Size for the generated viewables (default use environment %TSI3DXBATCH_VIEWABLESIZE%
                                     if not set use 240)
     [-ViewableFormat <Format>]      The following formats are supported (default JPEG_HIGH):
                                     TIFF      ... True colour uncompressed TIFF file
                                     TIFFTCPB  ... True colour PackBits compressed TIFF file
                                     TIFFINDEX ... Indexed (256 colours) uncompressed TIFF file
                                     TIFFPB    ... Indexed (256 colours) PackBits compressed TIFF file
                                     TIFFGREY  ... Grey scale PackBits compressed TIFF file
                                     TIFFBWPB  ... Bilevel (black and white) PackBits compressed TIFF file
                                     RGB       ... RGB file (SGI format)
                                     HPRTL     ... HP/RTL - 300 dpi
                                     BMP       ... Windows Bitmap
                                     JPEG_FAIR ... JPEG, fair quality
                                     JPEG      ... JPEG, medium quality
                                     JPEG_HIGH ... JPEG, high quality
                                     PNG       ... Portable Network Graphics
     [-XCadExporter <Usage>]         Set the exporter to export geometry files.
                                     A different exporter/format can be specified in the InputFile for every geometry.
                                     Default use environment %TSI3DXBATCH_XCADEXPORTER%
                                     If -XCadExporter or -XCadFormat is specified %TSI3DXBATCH_XCADEXPORTER% is ignored.
                                     It is not possible to use different exporters to export files with the same format
     [-XCadFormat <Extension>]       Set the extension to be used with the exporter.
                                     A different exporter/format can be specified in the InputFile for every geometry.
                                     For the following exporters the command line option -XCadFormat can be skipped, because
                                     a default extension is available:
                                     DXF          ... dxf
                                     DWG          ... dwg
                                     ICEM         ... icem
                                     IGES2D       ... ig2
                                     IGES3D       ... igs
                                     STEP         ... stp     (STS license needed)
                                     STL          ... stl
                                     VRML         ... wrl
                                     JT_COMFOX    ... jt      (T-Systems COM/FOX license needed)
                                     If a different exporter is uesed or a different file format is used <Extension> has to be specified.
                                     Default use environment %TSI3DXBATCH_XCADFORMAT%
                                     If -XCadExporter or -XCadFormat is specified %TSI3DXBATCH_XCADFORMAT% is ignored.
                                     If "format" is used in the InputFile the global settings are ignored for this file.
                                     If the option -JTV5 is used -XCadFormat / %TSI3DXBATCH_XCADFORMAT%, can used to specify a special extension of
                                     the JT files, like "JT" or "JTX".
     [-MaxXCadBatchObjects <Count>]  Restict the maximum number of objects for a single DataExchangePLMBatch call. If more objects are passed to the
                                     tool, DataExchangePLMBatch will be called multiple times. It is also possible to use the environment
                                     %TSI3DXBATCH_MAXXCADBATCHOBJECTS%, if not set use default value 200.
     [-XCadInvalidCharacters <invalid characters>
                                     During export of XCAD the object name is used to build the file name of the exported object. Some characters cannot
                                     in be used in a file name, these will be replaced by '_'.
                                     If not set use environment %TSI3DXBATCH_XCADINVALIDCHARACTERS%, default: \/:*?"<>  |
     [-PrintTemplate <full path>]    It is possible to use the PLMPrintBatch Utility to print a Drawing. It is possible to create an input
                                     template for the batch with the interactive PLMPrintBatch utility:
                                     - open PLMPrintBatch from Batch management
                                     - specify the printer settings
                                     - save print template xml file
                                     If not set use environment setting %TSI3DXBATCH_PRINTTEMPLATE%.
     [-PrintFilenameFormat <file name format>]
                                     The printer has to be configured to save the output (PDF, WPS, ...) to a configured directory.
                                     The file name of the printed file has to follow the the configured PrintFilenameFormat.
                                     <TYPE>, <NAME>, <REVISION>, <MINORREVISION>, <TITLE> can be used as placeholder, like "Print_<TITLE>.pdf".
                                     If not set use environment %TSI3DXBATCH_PRINTFILENAMEFORMAT% otherwise use
                                     Default: "<TITLE> <REVISION>.<MINORREVISION>.pdf"
     [-NoDsVirtualPrinter]           If set use legacy print mode without possibility of printing multiple Sheets.
                                     To enable legacy print mode it is also possible to set environment  %TSI3DXBATCH_USEDSVIRTUALPRINTER% = OFF
     [-PrintTempDir <director>]      Only needed if "-NoDsVirtualPrinter" or %TSI3DXBATCH_USEDSVIRTUALPRINTER%=OFF is used
                                     Temporary directory were the printer stores the PDF, WPS, ... output files.
                                     If not set use environment %TSI3DXBATCH_PRINTTEMPDIR%
                                     Default use environment %TEMP% of the user who runs the batch
                                     PrintTempDir must be located on the same volume like "working directory".
     [-PrintTimeout <seconds>]       Timeout used for printer driver to store the PDFs, WPSs, ... If not set use environment %TSI3DXBATCH_PRINTTIMEOUT%
                                     Default: 600
     [-TemplateCATPart <full path>]  Use a "Template CATPart" to export geometries with DownwardCompatibility
                                     (default use environment %TSI3DXBATCH_TEMPLATECATPART%, if not set use no template)
                                     The template has to be created with CATIA V5, it is not possible to use a exported CATPart as template.
     [-DwcMapping <mapping name>]    Use "Mapping table" to export CATParts / CATProducts with DownwardCompatibility
                                     (default use environment %TSI3DXBATCH_DWCMAPPING%, if not set do not use mapping table).
     [-RetryGeometryExport]          If the DownwardCompatibility export fails for a list of items because not all geometries are exportable by DWC,
                                     try to export as many geometries as possible. If not set the environment %TSI3DXBATCH_RETRYGEOMETRYEXPORT% = "ON"
                                     will also enable this function.
                                     If this option is enabled along with option "-GeometryType3D AsSpecification", the tool tries to export the failing
                                     objects in Exact mode (as Result). In this case an information is added to the result.
     [-Export3DXML_REP3DShapeObject <Yes|No|All>]
                                     Completion Options: Yes: With 3D Shape representations only (default)
                                                         No : Without any representation
                                                         All: With all representations
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_REP3DSHAPEOBJECT%
     [-Export3DXML_Mode <File Exchanges|Project Space|Team Workspace>
                                     Mode: File Exchange (default)
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_MODE%
     [-Export3DXML_Format  <WithAuthoring|ForReview>]
                                     When exporting 3dxml files this option specifies the format of the content. For more information see 3DEXPERIENCE
                                     documentation of "Export 3D XML" batch utility. If not set use environment %TSI3DXBATCH_EXPORT3DXML_FORMAT%.
                                     Default: WithAuthoring
     [-Export3DXML_PropagateDepth <All|1|2|3|...>]
                                     Propagate Depth: All      : all children (default)
                                                      1,2,3,...: level
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_PROPAGATEDEPTH%
     [-Export3DXML_WithoutWireFrame <YES|NO>] Default: NO
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_WITHOUTWIREFRAME%
     [-Export3DXML_SendConfiguration <YES|NO>] With Configuration (default YES)
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_SENDCONFIGURATION%
     [-Export3DXML_Preview <YES|NO>] Default: NO
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_PREVIEW%
     [-Export3DXML_LibraryContent <YES|NO>] Default: NO
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_LIBRARYCONTENT%
     [-Export3DXML_EXPORT_SPLIT <YES|NO>] Default: NO
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_EXPORT_SPLIT%
     [-Export3DXML_COMPATIBILITY_MODE <YES|NO> Default: NO
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_COMPATIBILITY_MODE%
     [-Export3DXML_COMPATIBILITY_LEVEL<<empty>|CompatibilityLevel2013x|CompatibilityLevel2020x>]
                                     Compatibility level: Default: empty
                                     If not set use environment %TSI3DXBATCH_EXPORT3DXML_COMPATIBILITY_LEVEL%
     [-ExpandFilterWithEffectivities]
                                     When this option is set the expandFilter functionality also returns the effectivities for the returned relatioons.
     [-UseLegacyEffectivity]         Use export Effectivity like before 2018x. Starting with 2019 also add "domain". To enable legacy effectivity
                                     mode it is also possible to set environment %TSI3DXBATCH_USELEGACYEFFECTIVITY% = "ON"
     [-EnableSetBasedEffectivity]    Do use setbased API to fetch effectivities. It is also possible to set the environment
                                     %TSI3DXBATCH_ENABLESETBASEDEFFECTIVITY% = "ON" to enable the setbased API to fetch effectivities.
     [-Simulate]                     Do not process the content of the input file. When activated, the result file only holds a copy of the input file
                                     The Simulate state can also be activated by the environment %TSI3DXBATCH_SIMULATE%=ON
     [-SimulateFileExport]           Do not process the content of the input file for DWC file export. When activated, the result file only holds a
                                     copy of the input file. The SimulateFileExport state can also be activated by the
                                     environment %TSI3DXBATCH_SIMULATEFILEEXPORT%=ON
     [-UseLegacyConfigExport]        Export configurations using persitent filters. If not set use environment %TSI3DXBATCH_USELEGACYCONFIGEXPORT% = "ON"
                                     to activate the legacy config export mode. Default: Not set.
     [-ConfigExportIncludeUndefined]
                                     If set also the relations with undefined state are included in the result. This setting is not used if using
                                     legacy configuration export (-UseLegacyConfigExport)
                                     If not set use environment %TSI3DXBATCH_CONFIGEXPORTINCLUDEUNDEFINED% = "ON". Default: Not set.


  XPDM options ("Change Location of Control" also requires -InputFile):
  =======================================================================

   Option for Import and export a structure via XPDM and "Change Location of Control"
     [-SiteId <site name>]           String identifying PLM Mapping Context for the target site.
                                      (default use environment %TSI3DXBATCH_SITEID%, if not set use XPDM)

   Option for Import and export a structure via XPDM
     [-CustomizedParameter <parm=val>]
                                     additional parameter (can be used multiple times):
                                     TCIPostProcess_Disable=true ... disable any post process action (import and export)
                                     TCIPostProcessingCheckRelation=ON ... same as TCIXpgPostProcess_FORCERELATIONCHECK=ON in TCIXpgConfig.xml (import)
                                     PostProcess_Configuration=0 ... disable effectivity handling (import)

   Only used for XPDM Import (-InputFile must not be used):
     [-ImportXpdm]                   Import a structure to 3D Experience using XPDM. Beside the 3DX login information this also requires to set
                                     "-MetaDataFile <full path>" and "-SiteId <site name>".
                                     Optionally you can use "-CustomizedParameter <parm=val>" multiple times.
     [-MetaDataFile <full path>]     Full path to metadata.xml for ImportXpdm
     [-NativeDataAccess <Yes|No>]    Import in native mode. Default: not set
                                     If setting NativeDataAccess do not set -AuthoringCAD
     [-AuthoringCAD <Mode name>]     Set the PowerBy Mode. If not set use environment %TSI3DXBATCH_AUTHORINGCAD%. Default: not set
                                     If setting AuthoringCAD do not set -NativeDataAccess
     [-ForceUpdateMode <Yes|No>]     Force Reimport. Default: not set

   Only used for XPDM Export:
     [-InputFile <full path>]        If used - InputFile, the options "-Type", "-Id" and "-Version" are ignored.
                                     This setting also requires the environment variable : XPG_ACTIVATE_MULTIROOT = 1
     [-MaxXpdmExportRoots <count>]   Restict the maximum number of root nodes for a single call of XPDM Export. If more objects are passed to the
                                     tool, XPDMImportExportBatch will be called multiple times. It is also possible to use the environment
                                     %TSI3DXBATCH_MAXXPDMEXPORTROOTS%, if not set use default value 64.
     [-Type <type name>]             3DX Type of the exported root object
     [-Id <External_Id>]             3DX Id of the exported root object
     [-Version <version>]            3DX Major Version of the exported root object

   XPDM Export using XPGClientService + Gateway infrastructure
     [-UseSendToXpdm]                If set do not use XPGClientBatch directly. Use the XPGClientBatch service of the XPDM infrastructure instead.
     [-SendToXpdmDescription <text>] Description to be shown in the Gateway (only used with -UseSendToXpdm, default: not set)
     [-SendToXpdmQueueName <Queue>]  Specify a queue name for the XPDM transfer (only used with -UseSendToXpdm, default: UserId)
     [-SendToXpdmTransferOption <operation>]
                                     (only used with -UseSendToXpdm)
                                     Sets the option string which enables selection of right connection parameter file (default: not set).

   The following options are ignored if "-UseSendToXpdm" is set
   Local XPDM Export, possibly send result to XPDM Gateway
     [-FileFormat3D <format>]        Format to export 3D geometry (default: CATIAV5-6R2022)
     [-GeometryType3D <precision>]   Precision of exported geometry (Exact | Tessellated | AsSpecification) default: AsSpecifications
     [-FileFormat2D <format>]        Format to export 2D geometry (default: CATIAV5-6R2022)
     [-WithFiles <withfiles>]        Export files (Yes | No | IfModified (default))
     [-WithDocuments <Yes|No>]       Export With Documents (Yes | No (default))
     [-WithPLMParams <Yes|No>]       Export With PLMParams (Yes | No (default))
     [-EffectivityExport <Yes|No>]   Export Effectivity (Yes | No (default))
     [-FilterXPDMOwnedObjects <True|False>]
                                     If 'False', Exports complete information of the X-PDM owned objects present in product structure.
                                     Default: 'False'. WithFiles parameter is not taken into account if FilterXPDMOwnedObjects is 'True'.
     [-CompletionType <loading>]     Predefined loading of objects that make up the structure of the selected object to be exported.
                                     Default value is 'XPDM'. If set, must fit with a Completion type known by the 3DX server.
                                     Example: -CompletionType Expand=<Level>
     [-EffectivityExpression <CurrentAndProjected|OnlyCurrent|OnlyProjected>]
                                     Export Effectivity Expressions. This option needs the additional environment XPG_ACTIVATE_EFFEXP=1
                                     and the following settings in plm-cust-config:
                                     <attribute Export="true" type="string" V6Name="PROJECTED_EFFECTIVITY" XPGName="PROJECTED_EFFECTIVITY"/>
                                     <attribute Export="true" type="string" V6Name="CURRENT_EFFECTIVITY" XPGName="CURRENT_EFFECTIVITY"/>
     [-EventBusConnectivity <TRUE|FALSE>]
                                     Deactivate event-bus connectivity during process operations (default TRUE)
                                     If TRUE send result to XPDM Gateway

   Only used for MappingInfo:
     [-MappingInfoResult <All|Each>]
                                     All: Export MappingInfo result to one file.
                                     Each: one result file for each mappinginfo entry in the input file.
                                     The default is All.
     [-MappingInfoExposed <TRUE|FALSE>]
                                     TRUE: export only exposed mapping.
                                     FALSE: export exposed and internal mapping.
                                     The default is TRUE.

   Used for "MappingInfo" and "Change Location of Control" ("CoexistenceAdministration"):
     [-CoexAdmin_Workspace <WS>]     Workspace to be used. If not set use environment %TSI3DXBATCH_COEXADMINWORKSPACE%. Default: not set.
     [-CoexAdmin_Mode <Run|Preview>] Mode to be used. If not set use environment %TSI3DXBATCH_COEXADMINMODE%. Default: "Run".
     [-CoexAdmin_ApplyTo <Selection|All>]
                                     Handled objects from the mapping table. If not set use environment %TSI3DXBATCH_COEXADMINAPPLYTO%.
                                     Default: "Selection".
     [-CoexAdmin_Propagate <level|All>]
                                     Defines the level of propagate depth. If not set use environment %TSI3DXBATCH_COEXADMINPROPAGATE%.
                                     Default: "0".
   Only used for "Change Location of Control" ("CoexistenceAdministration"):
     [-CoexAdmin_DepthwithInstance <YES|NO>]
                                     Also handle "First Instance level". If not set use environment %TSI3DXBATCH_COEXADMINDEPTHWITHINSTANCE%.
                                     Default: "NO".

     Export CATParts with DownwardCompatibility, export documents attached to reference, export viewable, export xcad, export print, export 3dxml,
     synchronize folder structure, create Filter, expand filtered structure (one level)  - InputFile:
     When exporting viewable objects it is possible to have the same <viewable/> object with different size or format attributes multiple times
     When exporting xcad objects it is possible to have the same <xcad/> object with different exporter/format attributes multiple times
     Possible xcad exporter/format combinations like exporter="STEP" format="stp" can be found using
     Export CATParts with DownwardCompatibility, export viewable or export print use objects of a sub type of PLMCoreRepReference as input.
     To export xcad use  objects of a sub type of PLMCoreReference or PLMCoreRepReference as input. Get the possible xcad formats with:
     "catutil" -> "DataExchangePLMBatch": "usage", "extension"
     Export documents attached to reference and export 3dxml use objects of a sub type of PLMCoreReference as input.
     Export print files PLMPrintBatch, can be used to export PDF, PRN, WPS, ... print formats using a printer driver from Windows.
     Synchronize folder structure. When "rootfolder" objects are provided to the input file the folder structure with its attached designs synchronized.
     Missing Root and SubFolders are created, additional existing sub folders will be deleted. Missing designs will be attached, additionl designs
     will be detached.
     Export folder structure. When "exportfolder" Rootfolder objects are provided to the input file, the folder structures with their attached designs
     are exported to the result file.
     Export bookmark structure. When "exportbookmark" Rootbookmark objects are provided to the input file, the folder structures with their attached designs
     are exported to the result file.
     Export documents. When "document" objects are provided to the input file, the attached Files is downloaded and exposed in the result file.
     Export mapping info. When "mappinginfo" objects are provided to the input file, the mapping info is downloaded to an xml file and exposed in the
     result file. Export mapping info Requires the SiteId argument.
     Create Filter. When "filter" objects are provided to the input file a filter is created for the provided object. The content of the filter has to be
     specified by the "child" objects.
     Expand filtered structure. When "expandFilter" objects are provided to the input file, the result file shows the relations drectly under top level of
     the filter, further levels are ignored.
     Change Ownership. When "changeownership" objects are provided to the input file, the utility CoexistenceAdministration is used to change the ownership.
     Change Ownership Requires the SiteId argument. Supported modes are V5V6Master and V6V5Master.
     PLMCobotIntegrationBatch: When "cobot" objects are provided, PLMCobotIntegrationBatch is executed for these objects.
     Revise: When "revise" objects are provided, a new major version is created. It is possible to set the applicability date for the new version.
     Export Configurations: When "configroot" including "configItem" objects are provided, the tool creates / uses expand filters to provide the
     root nodes of the filtered sub structures. For each configItem it is possible to define a maxRecurseLevel (default=0) and a comma seperated list 
	 of recurseTypes (default empty). To use all types use "*".
     expandObject and updateInstance is used for getting and setting the instance matrix.
     expandObject expands one level and provides the matrix info.
     updateInstance reads the matrix info and stores the matrix on the instance.
     documentInstance reads Reference and Document, and attaches the document to the reference.
     ----------
     <?xml version='1.0' encoding='UTF-8' ?>
     <TSI3DX [request="getFiles"]>
         <object id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>"/>
         <xpdm id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>"/>
         <revise id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>"
                      [applicabilityDate = "<Year>-<Month>-<Day>T<Hour>:<Minute>:<Second>.0Z"] />
         <viewable id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" [size = "<Size>"] [format = "<Format>"]/>
         <documentparent id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>"/>
         <xcad id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" [exporter = "<usage>" format = "<Format>"]/>
         <print id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" />
         <cat3dxml id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" />
         <rootfolder id  = "<External Id>" type = "<Type>" [description = "<Description>"] >
             <folder id  = "<External Id>" type = "<Type>" [description = "<Description>"] >
                 <design id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" />
                 <folder  id  = "<External Id>" type = "<Type>" [description = "<Description>"]  >
                     ...
                 </folder>
                 ...
             </folder>
             ...
         </rootfolder>
         <rootbookmark id  = "<External Id>" type = "<Type>" [description = "<Description>"] >
             <bookmark id  = "<External Id>" type = "<Type>" [description = "<Description>"] >
                 <design id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" />
                 <bookmark  id  = "<External Id>" type = "<Type>" [description = "<Description>"]  >
                     ...
                 </bookmark>
                 ...
             </bookmark>
             ...
         </rootbookmark>
         <exportfolder id  = "<External Id>" type = "<Type>" />
         <exportbookmark id  = "<External Id>" type = "<Type>" />
         <document id = "<DocumentName>" version = "<DocumentRevision>" type = "<DocumentType>"/>
         <mappinginfo id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>"/>
         <filter name = "<filter name>" id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>" >
             <child instance = "<Instance Name>" id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>" >
                 <child instance = "<Instance Name>" id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>" >
                     ...
                     <child instance = "<Instance Name>" id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>" >
                         <allChildren keep = "true|false" />
                     </child>
                 </child>
             </child>
             ... >
         </filter>
         <expandFilter id = "Filter Id (name)" type = "<Filter Type" />
         <configroot id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" >
             <configItem name = "<Configuration (name)>" type = "<Configuration Type>" [maxRecurseLevel="<Level>" recurseTypes="<Type1>,...,<TypeN>"] />
             ...
         </configroot>
         <expandFilter id = "Filter Id (name)" type = "<Filter Type" />
         <changeownership id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" mode="V5V6Master|V6V5Master"/>
         <cobot id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>"/>
         <expandObject id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>"/>
         ...
         <updateInstance id = "<External Id>" version = "<version>" type = "<Type>" ident = "<ident>" >
           <instance id = "<External Id>" matrix = "1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0" >
             <child id = "<External Id>" version = "<version>" type = "<Type>" / >
           </instance>
           <instance id = "<External Id>" matrix = "1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0" >
             <child id = "<External Id>" version = "<version>" type = "<Type>" / >
           </instance>
         </updateInstance>
         <documentInstance id = "<External Id>" version = "<version>" type = "<Type>" docid = "<External Id>" docversion = "<version>" doctype = "<Type>" />
     </TSI3DX>

     Export CATParts with DownwardCompatibility, export documents attached to reference, export viewable, export xcad, print, export 3dxml,
     synchronize folder structure - ResultFile:
     ----------
     <?xml version='1.0' encoding='UTF-8' ?>
     <TSI3DX>
         <object id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>">
              <File name = "<Full Path>"/>
              <JT   name = "<Full Path>"/>
         </object>
         <xpdm id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>">
              <MetadataFile name = "<Full Path>"/>
         </xpdm>
         <revise id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>">
              <newobject id = "<new External Id>" version = "<new version>" minorrevision = "<new MinorRevision>" type = "<new Type>"/>
         </revise>
         <viewable id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" [size = "<Size>"] [format = "<Format>"]>
              <File name = "<Full Path>"/>
         </object>
         </viewable>
         <documentparent id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>">
              <document type = "<DocumentType>" name = "<DocumentName>" revision = "<DocumentRevision>" >
                   <Attribute name = "<AttributeName>" value = "<AttributeValue>"/>
                   ...
                   <File name = "<original file name>" location = "<downloaded file full path>"/>
              </document>
         </documentparent>
         <xcad id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" [exporter = "<usage>" format = "<Format>"]>
              <File name = "<Full Path>"/>
         </xcad>
         <print id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" >
              <File name = "<Full Path>"/>
         </print>
         <cat3dxml id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" >
              <File name = "<Full Path>"/>
         </cat3dxml>
         <rootfolder id  = "<External Id>" type = "<Type>" [description = "<Description>"] >
             <folder id  = "<External Id>" type = "<Type>" [description = "<Description>"]  >
                 <design id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" >
                      <Error>If there is an Error by attaching the design you will find it here</Error>
                      <Information>result of the attachement</Information>
                 </design>
                 <folder  id  = "<External Id>" type = "<Type>" [description = "<Description>"] >
                     ...
                 </folder>
                 ...
                 <Information>If the folder is created or reused, If a design is detached you will get the information here</Information>
                 <Error>If there is a general Error with the folder you will find it here</Error>
             </folder>
             ...
             <Information>If the root folder is created or reused</information>
             <Error>If there is a general Error with the rootfolder you will find it here</Error>
         </rootfolder>
         <rootbookmark id  = "<External Id>" type = "<Type>" [description = "<Description>"] >
             <bookmark id  = "<External Id>" type = "<Type>" [description = "<Description>"]  >
                 <design id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" >
                      <Error>If there is an Error by attaching the design you will find it here</Error>
                      <Information>result of the attachement</Information>
                 </design>
                 <bookmark  id  = "<External Id>" type = "<Type>" [description = "<Description>"] >
                     ...
                 </bookmark>
                 ...
                 <Information>If the bookmark is created or reused, If a design is detached you will get the information here</Information>
                 <Error>If there is a general Error with the bookmark you will find it here</Error>
             </bookmark>
             ...
             <Information>If the root bookmark is created or reused</information>
             <Error>If there is a general Error with the rootbookmark you will find it here</Error>
         </rootbookmark>
         <exportfolder id  = "<External Id>" type = "<Type>" >
             <folder id  = "<External Id>" type = "<Type>" >
                 <design id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" />
                 <folder  id  = "<External Id>" type = "<Type>" >
                     ...
                 </folder>
                 ...
                 <Error>If there is a general Error with the folder you will find it here</Error>
             </folder>
             ...
             <Error>If there is a general Error with the rootfolder you will find it here</Error>
         </exportfolder>
         
         <exportbookmark id  = "<External Id>" type = "<Type>" >
             <bookmark id  = "<External Id>" type = "<Type>" >
                 <design id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" />
                 <bookmark  id  = "<External Id>" type = "<Type>" >
                     ...
                 </bookmark>
                 ...
                 <Error>If there is a general Error with the bookmark you will find it here</Error>
             </bookmark>
             ...
             <Error>If there is a general Error with the rootbookmark you will find it here</Error>
         </exportbookmark>
         
         <document id = "<DocumentName>" version = "<DocumentRevision>" type = "<DocumentType>">
             <document type = "<DocumentType>" name = "<DocumentName>" revision = "<DocumentRevision>" >
                 <Attribute name = "<AttributeName>" value = "<AttributeValue>"/>
                 ...
                 <File name = "<original file name>" location = "<downloaded file full path>"/>
             </document>
         </document>
         <mappinginfo id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>">
            <File name = "<downloaded file full path>"/>
         </mappinginfo>
         <filter name = "<filter name>" id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>" >
             <child instance = "<Instance Name>" id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>" >
                 <child instance = "<Instance Name>" id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>" >
                     [<Information|Error>"<Information / Error Message>"</Information>]
                 </child>
                 ...
                 <child instance = "<Instance Name>" id = "<External Id>" version = "<version>" [minorrevision = "<MinorRevision>"] type = "<Type>" >
                    <allChildren keep = "true|false" />
                   [<Information|Error>"<Information / Error Message>"</Information>]
                 </child>
                [<Information|Error>"<Information / Error Message>"</Information>]
             </child>
             <Information|Error>"<Information / Error Message>"</Information>
         </filter>
         <expandFilter id = "Filter Id (name)" type = "<Filter Type" >
            <rootObject type = "<Type>" id = "<External Id>" version = "<version>.<MinorRevision>"/>
            <filteredRel type = "<Instance Type>" id = "<External Id>" created = "time stamp" modified = "time stamp" >
                <child type = "<Type>" id = "External Id" version = "<version>.<MinorRevision>"/>        
                [<Property name = "CURRENT_EFFECTIVITY" type = "string">
                    <Value>
                        <![CDATA[<?xml version="1.0" ?>
                        <CfgEffectivityExpression xsi:schemaLocation="urn:com:dassault_systemes:config CfgEffectivityExpression.xsd"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:com:dassault_systemes:config">
                        <Expression><Context HolderType="Model" HolderName="DDT2Car"><AND><Feature Type="ConfigFeature"
                        Name="DDT2Seats"><Feature Type="ConfigFeature" Name="DDTTwoSeats"/><Feature Type="ConfigFeature"
                        Name="DDT2FourSeats"/></Feature><Date DescId="1"><Interval><From Value="2014-03-24T00:00:00"/>
                        <To Value="2020-03-24T23:59:59"/></Interval></Date></AND></Context></Expression></CfgEffectivityExpression>
                        ]]>
                    </Value>
                </Property>
                <Property name = "PROJECTED_EFFECTIVITY" type = "string">
                    <Value>
                        ...
                    </Value>
                </Property> ]
            </filteredRel>
            <filteredRel type = "<Instance Type>" id = "<External Id>" created = "time stamp" modified = "time stamp" />

                ...
            </filteredRel>
            ...
         </expandFilter>
         <configroot id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" >
            <configItem name = "<Configuration (name)>" type = "<Configuration type>" [maxRecurseLevel="<Level>" recurseTypes="<Type1>,...,<TypeN>"] >
                 <Information>optional information< / Information>
                 <filteredRel type = "<Instance Type>" id = "<External Id>" created = "<time stamp>" modified = "<time stamp>" />
                     <child type = "<child Type>" id =  "<External Id>" version = "<child version>">
						<filteredRel type = "<Instance Type>" id = "<External Id>" created = "<time stamp>" modified = "<time stamp>" />
							 <child type = "<child Type>" id =  "<External Id>" version = "<child version>">
							 ...
							 </child>
                 </filteredRel>
                 ...
					 </child>
                </filteredRel>
                ...
             </configItem>
             ...
         </configroot>
         <changeownership id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" mode = "V5V6Master"/>
         <changeownership id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>" mode = "V6V5Master"/>
         <ChangeOwnershipV5V6MasterResult>
            <ChangeOwnership Oid = "32CF7E0900004D9C5C9506D800008DD6" type = "Reference" V6Type = "PLMCoreReference" PLMExternalID = "prd00001689"
                             MajorVersion = "A" MinorVersion = "1">Warning:  No mapping for this Component  </ChangeOwnership>
            <ChangeOwnership Oid = "32CF7E0900004D9C5C9506D800008DD8" type = "Representation" V6Type = "PLMCoreRepReference" PLMExternalID = "3sh00001405"
                             MajorVersion = "A" MinorVersion = "1">Warning:  No mapping for this Component  </ChangeOwnership>
            <ChangeOwnership Oid = "3sh00001405.1" type = "RepInstance" V6Type = "PLMCoreRepInstance" PLMExternalID = "3sh00001405.1"
                             MajorVersion = "" MinorVersion = "">Warning:  No mapping for this Component  </ChangeOwnership>
         </ChangeOwnershipV5V6MasterResult>
         <ChangeOwnershipV6V5MasterResult>
            <ChangeOwnership Oid = "32CF7E0900002D545C98A9F9000004BB" type = "Reference" V6Type = "PLMCoreReference" PLMExternalID = "prd00001690"
                             MajorVersion = "A" MinorVersion = "2">Warning:  No mapping for this Component  </ChangeOwnership>
            <ChangeOwnership Oid = "32CF7E0900002F645C98A961000086E7" type = "Reference" V6Type = "PLMCoreReference" PLMExternalID = "prd00001690"
                             MajorVersion = "A" MinorVersion = "1">Warning:  No mapping for this Component  </ChangeOwnership>
         </ChangeOwnershipV6V5MasterResult>
        <cobot id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>">
            [<Error>Failed to find Object in 3DExperience</Error>]
        </cobot>
         <expandObject id = "<External Id>" version = "<version>" minorrevision = "<MinorRevision>" type = "<Type>">
          <instance type = "<Type>" id = "<Instance Name>" created = "<>" modified = "<Timestamp>" 
                    matrix = "<Matrix - 1 0 0 0 1 0 0 0 1 0 0 0>">
             <child type = "<Type>" id = "<External Id>" version = "<version>" / >
           </instance>
        ..." << endl
         </expandObject>
         ...
         <updateInstance id = "<External Id>" version = "<version>" type = "<Type>" ident = "<ident>" >
           <instance id = "<External Id>" matrix = "1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0" >
             <child id = "<External Id>" version = "<version>" type = "<Type>" / >
           </instance>
           <instance id = "<External Id>" matrix = "1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0" >
             <child id = "<External Id>" version = "<version>" type = "<Type>" / >
           </instance>
         </updateInstance>
         <documentInstance id = "<External Id>" version = "<version>" type = "<Type>" docid = "<External Id>" docversion = "<version>" doctype = "<Type>" >
           <Information>Attached Document</Information>
        </documentInstance>
     </TSI3DX>

     Get Effectivities - InputFile:
     ----------
        <?xml version='1.0' encoding='UTF-8' ?>
        <TSI3DX request="getEffectivities">
            <Reference key="r_1" id="<External Id>" version="<version>" minorrevision="<MinorRevision>" type="<Type>"></Reference>
            <Reference key="r_2" id="<External Id>" version="<version>" minorrevision="<MinorRevision>" type="<Type>"></Reference>
            <Reference key="r_2" id="<External Id>" version="<version>" minorrevision="<MinorRevision>" type="<Type>"></Reference>
            <Instance key="i_1" id="<External Id>" owned="r_1" instancing="r_2"></Instance>
            <Instance key="i_2" id="<External Id>" owned="r_1" instancing="r_3"></Instance>
          ...
        </TSI3DX>

     Get Effectivities - ResultFile:
     ----------
        <?xml version='1.0' encoding='UTF-8' ?>
        <TSI3DX request="getEffectivities">
            <Reference key="r_1" id="<External Id>" version="<version>" minorrevision="<MinorRevision>" type="<Type>"></Reference>
            <Reference key="r_2" id="<External Id>" version="<version>" minorrevision="<MinorRevision>" type="<Type>"></Reference>
            <Reference key="r_2" id="<External Id>" version="<version>" minorrevision="<MinorRevision>" type="<Type>"></Reference>
            <Instance key="i_1" id="<External Id>" owned="r_1" instancing="r_2">
                <Property name = "CURRENT_EFFECTIVITY" type = "string">
                    <Value>
                        <![CDATA[<?xml version="1.0" ?>
                        <CfgEffectivityExpression xsi:schemaLocation="urn:com:dassault_systemes:config CfgEffectivityExpression.xsd"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:com:dassault_systemes:config">
                        <Expression><Context HolderType="Model" HolderName="DDT2Car"><AND><Feature Type="ConfigFeature"
                        Name="DDT2Seats"><Feature Type="ConfigFeature" Name="DDTTwoSeats"/><Feature Type="ConfigFeature"
                        Name="DDT2FourSeats"/></Feature><Date DescId="1"><Interval><From Value="2014-03-24T00:00:00"/>
                        <To Value="2020-03-24T23:59:59"/></Interval></Date></AND></Context></Expression></CfgEffectivityExpression>
                        ]]>
                    </Value>
                </Property>
                <Property name = "PROJECTED_EFFECTIVITY" type = "string">
                    <Value>
                        ...
                    </Value>
                </Property>
            </Instance>
            <Instance key="i_2" id="<External Id>" owned="r_1" instancing="r_3"></Instance>
                <Property name = ...
                     ...
                </Property>
                ...
            </Instance>
            ...
        </TSI3DX>

     
  Return values:
     0 ... OK
     1 ... invalid arguments / TSI3DXBATCH_* Variables
     2 ... problems with <WorkDir>, cannot create <WorkDir> (if needed), 
           cannot change to <WorkDir>, cannot create logfile in <WorkDir>
     3 ... Cannot open PLM session (login) / Cannot load environment
     4 ... Query failed, see log file: "No object found for applied criteria" or general error (needs debug) 
     5 ... Problems to create XPDMImportExportBatch input file <Jobname>.xml
     6 ... Failure in DWC see DownwardCompatibility_GlobalReport.htm
     7 ... Failed to close PLM Session
     8 ... Read InputFile failed
     9 ... Cannot get objects from InputFile
     10... Export Effectivities failed: Check InputFile
     11... Failed to get Effectivities
     12... Failed to export JT
     13... Failed to export XCAD
     14... Failed to export print
     15... Failed to export 3dxml
     16... Failed to export MappingInfo
     17... Failed to create/expand Filter
     18... Failed to change location of control (CLOC)
     19... Failed to change ownership
     20... Some JTs could not be exported (only with option -JT_ContinueOnError)
     21... Failed to allocate Licence (see logfile)
     22... Failed to ExportConfigurations
     23... Failed to fetch effectivites during export filter. 
     24... Faild to run PLMCobotIntegrationBatch.
     25... Failed to revise objects. 
     26... Failed to execute XPDMImportExportBatch.
     27... Unexpected general error (needs debug).
	 28... Cobot: Passed objects could not be found in 3DExperience
     200 and above: Return value of XPDMImportExportBatch

  There are 3 different infrastructure modes to run the utility:
    
    Use XPDM (with or without -InputFile):
    1.  Export with event bus connectivity: -EventBusConnectivity TRUE (default)
        This mode exports the structure and saves the results on the host / directory configured in fsclient-config.properties. 
        At the end of the export an event is raised on the XPDM bus. A configured adapter can fetch the event and use the exported structure.
    1a. Export without event bus connectivity: -EventBusConnectivity FALSE
        This mode exports the structure and saves the result working directory. At the end of the export the caller can directly use the 
        exported data.

    Read Effectivities
    2.  Read only Effectivities for an already exported structure: -InputFile <FullPath>
        This mode reads the VPM effectivities at a relation between two references (derived from PLMCoreReference).
        The result is stored in <WorkDir>\<JobName>\<JobName>_result.xml.
        - The attribute "minorrevision" in the InputFile is optional. 
        - The attribute request="getEffectivities" of TSI3DX in the InputFile is is required.    
    
    All other functions
    3.  Use: -InputFile <FullPath>
        This mode exports native CATIA V5 geometries derived from "PLMCoreRepReference" (object). 
        It is also possible to export other formats like JT, STEP, ... using xcad. 
        This mode also downloads "Document" objects that are attached to an object derived from "PLMCoreReference" (documentparent).
        The exported geometries and document files are stored in <WorkDir>\<JobName>.
        The mapping of the input and the file names is stored in <WorkDir>\<JobName>\<JobName>_result.xml.
        - The attribute "minorrevision" in the InputFile is optional. 
        - It is possible to add an identifier like key="MyKey" to the objects in the InputFile. This identifier is copied to the result file.
        - The attribute request="getFiles" of TSI3DX in the InputFile is optional (default). 
        - To export CATParts and JTs use the option "-JT" 
        Problems:
        - It is not possible to export objects with ellipse ("...") in PLM_ExternalID
        - Theoretical it is possible to get multiple CATParts for one object. In this case there are multiple "File" attributes for
          one object in the result file.
        - The size of the full path of an exported file must not exceed 230 characters, otherwise DownwardCompatibility will fail.
    

 Sample using XPDMClientBatch:

C:\<...>\B215\win_b64\code\bin\CATSTART.exe -env TSI3DXBatchEnv -direnv <dir>  -run "TSI3DXBatch -User DemoDesigner2 -Passwd DemoDesigner2 
                                            -SecurityCtx \"VPLMDesigner.Company Name.Standard\" -Type iPLMCAD -Id <Id> -Version --A 
                                            -SiteId TC -ServerName <ServerName> -ServerPort <ServerPort> -ServerRootURI enovia  
                                            -CustomizedParameter xx=a -CustomizedParameter yy=b 
                                            -WorkDir C:\xmap\TSI3DXBatch -JobName 12345 -Environment VPM -EventBusConnectivity FALSE"

This sample generates the following output:

C:\xmap\TSI3DXBatch
          + TSI3DXBatch.pid                      (this file holds the process id of TSI3DXBatch) 
          + 12345
            + 12345_MetaData.xml                 (exported structure)
            + ...                                (CATParts)
          + 12345.log                            (Log File of TSI3DXBatch)
          + 12345.xml                            (input of XPDMImportExportBatch)
          + Data                                 (pictures for html output of XPDMImportExportBatch)
          + DWC_RepresentationConversion.htm     (report for file translation)
          + Parameters.dtd              
          + TransitionEngine
            + Report_<date>                      (detailed XPDMImportExportBatch report with attribute mapping 
               + ...
          + XPDMXMLReport
            + ...                                (general report of XPDMImportExportBatch usage) 
          + XPGClientBatch.htm                   (result of XPDMImportExportBatch)


 Sample: Export a structure from 3DExperience using SendToXpdm
    C:\<...>\B417\win_b64\code\bin\CATSTART.exe -env TSI3DXBatchEnv -direnv <dir>  
    -run "TSI3DXBatch -WorkDir C:\TSI3DXWorkdir -ServerName <ServerName> -ServerPort <ServerPort> 
    -ServerRootURI enovia -User <UserId> -Passwd <XXX> 
    -SecurityCtx "VPLMAdmin.Company Name.Default" 
    -Type VPMReference -Id prd-0-00013721 -Version A 
    -UseSendToXpdm -SiteId XPDM -SendToXpdmDescription "Hello World" 
    -SendToXpdmTransferOption ABC -CustomizedParameter param1=val1 
    -CustomizedParameter param2=val2"



 Sample DownwardCompatibility (-InputFile <FullPath>):

C:\<...>\B215\win_b64\code\bin\CATSTART.exe -env TSI3DXBatchEnv -direnv <dir>  -run "TSI3DXBatch -User DemoDesigner2 -Passwd DemoDesigner2 
                                            -SecurityCtx \"VPLMDesigner.Company Name.Standard\" -ServerName <ServerName> 
                                            -ServerPort <ServerPort> -ServerRootURI enovia -WorkDir C:\xmap\TSI3DXBatch 
                                            -JobName 12345 -Environment VPM -InputFile \"C:\xmap\dw_batch\test_input.xml\" "

This sample generates the following output:

C:\xmap\TSI3DXBatch
          + TSI3DXBatch.pid                      (this file holds the process id of TSI3DXBatch)
          + 12345
            + 12345_result.xml                   (result)
            + ...                                (CATParts)
          + 12345.log                            (Log File of TSI3DXBatch)
          + 12345.xml                            (input of DownwardCompatibility)
          + Data                                    (pictures for html output of DownwardCompatibility)
          + DownwardCompatibility_GlobalReport.html (report for file translation)
          + DownwardCompatibility_GlobalReport.xml  (internal mapping of input and result files)
          + Parameters.dtd              

 Sample DownwardCompatibility V6R2015x with LoginTicket (-InputFile <FullPath>):  
C:\<...>\B417\win_b64\code\bin\CATSTART.exe -env TSI3DXBatchEnv -direnv <dir>  -run "TSI3DXBatch -WorkDir C:\xmap\TSI3DXBatch_2015x 
                                            -Environment UnifiedTyping -ServerName <ServerName> -ServerPort <ServerPort> -ServerRootURI enovia 
                                            -LoginTicket "NzcyRjQxRDI2QkQ2NDE1MEEzQ0Q537FwQjQ4QjRFQzJ8a2hlcnpvZ3xraGVyem9nfHx8MHw=" 
                                            -InputFile "C:\xmap\TSI3DXBatch_2015x\input.xml"

        