EulandaConnect-help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Approve-Signature</command:name>
      <command:verb>Approve</command:verb>
      <command:noun>Signature</command:noun>
      <maml:description>
        <maml:para>This PowerShell function signs a script or program with an EV certificate. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Approve-Signature.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Signs a script, module or exe program with an Authenticode certificate. </maml:para>
      <maml:para>The prerequisite is that the sign tool from the Microsoft SDK and compatible software such as the SafeNet Authentication Client from Thales are installed. The Signtool can be installed using the `Install-Signtool` function from this module. In addition, a valid token (USB device) for the EV certificate must be available. </maml:para>
      <maml:para>&gt; The dongle must be plugged into the signing PC or connected via a probe server such as the UTN servers from SEH. This is tested and used with the dongle Token-JC, which also works in virtual environments with the UTN server.</maml:para>
      <maml:para>If the path parameter is specified without path and without extension, the current path is assumed and ps1 is used as extension. If the parameter is not specified or empty, then the name of the folder is used as file name and it is tested whether a ps1, psm1 or an exe with the name can be found.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Approve-Signature</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>Path to the script or executable file to be signed. If no extension is specified or no path is specified, ps1 is used as extension and the current path is used as path. If the parameter is not specified or empty, then the name of the folder (or the last folder name) is used as file name and it is tested whether a ps1, psm1 or an exe with the name can be found.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>Path to the script or executable file to be signed. If no extension is specified or no path is specified, ps1 is used as extension and the current path is used as path. If the parameter is not specified or empty, then the name of the folder (or the last folder name) is used as file name and it is tested whether a ps1, psm1 or an exe with the name can be found.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------------- Example 1:Signs a PowerShell script -------------</maml:title>
        <dev:code>PS C:\&gt; Approve-Signature test</dev:code>
        <dev:remarks>
          <maml:para>Signs the script `.\test.ps1` in the current folder.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Approve-Signature.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-SignToolPath</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Install-SignTool</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Backup-MssqlDatabase</command:name>
      <command:verb>Backup</command:verb>
      <command:noun>MssqlDatabase</command:noun>
      <maml:description>
        <maml:para>This PowerShell function backs up a Microsoft SQL Server database to a file, compresses it, and stores it locally and/or on an FTP server. The local backup files also the FTP files are kept according to the specified history. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Backup-MssqlDatabase.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Backup-MssqlDatabase` script allows for easy backup of Microsoft SQL Server databases to a local file storage location or an FTP server. It utilizes ADO to connect to the SQL server and locates the backup folder using the Windows registry. The script must be executed on the computer where the SQL server is running. It can be easily integrated into the Windows Task Scheduler to perform automated backups without requiring a logged-in user.</maml:para>
      <maml:para>The script defaults to retaining the latest three backups of the database and provides an option to delete the original `.bak` file created during the backup process via the `-removeBak` switch. This can be useful when storage space is limited, particularly for large databases. The number of backup generations to retain can be modified via the `-history` parameter.</maml:para>
      <maml:para>When backing up a database to a file storage location or an FTP server, a subfolder with the name of the SQL instance is created to store the corresponding databases. This allows for other databases of the same instance to be backed up in the same location.</maml:para>
      <maml:para>The script returns the name of the original ZIP file, which is also stored in the standard folder for SQL databases. This enables further operations to be performed on the created ZIP file after the backup. If the function result is not needed, the output can be piped to `Out-Null` to avoid unnecessary display of the ZIP file name.</maml:para>
      <maml:para>The files stored in the file storage location or on the FTP server are named after the corresponding database, with a timestamp added. For example: `Eulanda_JohnDoe-2023-05-07-17-31-00-0765.zip`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Backup-MssqlDatabase</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="none">
          <maml:name>history</maml:name>
          <maml:description>
            <maml:para>Optional integer parameter. The number of backups to keep. Default value is 3.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="12" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="13" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>resumeAge</maml:name>
          <maml:description>
            <maml:para>The maximum age of a file in seconds whose upload was interrupted.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>resumeRetries</maml:name>
          <maml:description>
            <maml:para>The number of attempts made to upload a file that was interrupted during the upload process.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>Directory on the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
          <maml:name>storageFolder</maml:name>
          <maml:description>
            <maml:para>This is an optional string parameter that represents the path to the local folder where the backup files should be stored. If this parameter is provided, a folder with the name of the SQL instance is added to the folder name specified by the parameter. If this parameter is not specified, the backup files are not stored locally.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>removeBak</maml:name>
          <maml:description>
            <maml:para>Optional switch parameter. If specified, the backup file created during the process is deleted from the database server after compression and storage.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="13" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="none">
        <maml:name>history</maml:name>
        <maml:description>
          <maml:para>Optional integer parameter. The number of backups to keep. Default value is 3.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>Directory on the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>removeBak</maml:name>
        <maml:description>
          <maml:para>Optional switch parameter. If specified, the backup file created during the process is deleted from the database server after compression and storage.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>resumeAge</maml:name>
        <maml:description>
          <maml:para>The maximum age of a file in seconds whose upload was interrupted.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>resumeRetries</maml:name>
        <maml:description>
          <maml:para>The number of attempts made to upload a file that was interrupted during the upload process.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
        <maml:name>storageFolder</maml:name>
        <maml:description>
          <maml:para>This is an optional string parameter that represents the path to the local folder where the backup files should be stored. If this parameter is provided, a folder with the name of the SQL instance is added to the folder name specified by the parameter. If this parameter is not specified, the backup files are not stored locally.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="12" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Backup a SQL database to a local store and an FTP server</maml:title>
        <dev:code>PS C:\&gt; Backup-MssqlDatabase -udl 'C:\temp\Eulanda_1 JohnDoe.udl' -storageFolder '\\NAS1\store' -server 'myFtp.eulanda.eu' -user 'doe' -password 'superPass' -remoteFolder '/MyFiles'</dev:code>
        <dev:remarks>
          <maml:para>This command backs up the database defined in the specified `.udl` file, compresses the backup file, and stores it in both the specified local folder `-storageFolder` under `\NAS1\store` and the specified FTP server. The command sorts the backup files by date and removes the oldest backup files, keeping only the specified number of recent backups, the default is 3.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Backup-MssqlDatabase.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Backup-MssqlDatabase.ps1 on GitHub</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Backup-MssqlDatabase.ps1</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Close-Delivery</command:name>
      <command:verb>Close</command:verb>
      <command:noun>Delivery</command:noun>
      <maml:description>
        <maml:para>This PowerShell function closes the delivery note where quantities are debited from the warehouse. This function requires an EULANDA ERP system. Source on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Close-Delivery.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>On the one hand, a delivery bill is write-protected when it is closed, and on the other hand, the delivery quantities are debited from the warehouse.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Close-Delivery</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The `DeliveryId` is the `ID` of the header record of the delivery bill. The `ID` is always unique throughout the table.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The DeliveryNo is the delivery bill number of the record. It is the number used in the business correspondence and of course in the delivery bill itself. It is also unique.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The `DeliveryId` is the `ID` of the header record of the delivery bill. The `ID` is always unique throughout the table.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The DeliveryNo is the delivery bill number of the record. It is the number used in the business correspondence and of course in the delivery bill itself. It is also unique.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. You cannot pipe objects</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- Example 1:Close the Delivery Note 202305230 ---------</maml:title>
        <dev:code>PS C:\&gt; Close-Delivery -deliveryNo 202305230 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>This closes the delivery bill with the delivery bill number 202305230. The database, i.e. the client is specified in this example by a UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Close-Delivery.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Open-Delivery</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Close-SalesOrder</command:name>
      <command:verb>Close</command:verb>
      <command:noun>SalesOrder</command:noun>
      <maml:description>
        <maml:para>This PowerShell function closes a sales order, it is considered completed and can no longer be modified. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Close-SalesOrder.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>After the sales order is closed, it is kept as an open order in ERP and, for example, displayed as an order in the brief information system at the customer's site. Orders with this status can no longer be changed.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Close-SalesOrder</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>salesOrderNo</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>salesOrderId</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>customerOrderNo</maml:name>
          <maml:description>
            <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>customerOrderNo</maml:name>
        <maml:description>
          <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>salesOrderId</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>salesOrderNo</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------------ Example 1:Close Sales Order with Id 25 ------------</maml:title>
        <dev:code>PS C:\&gt; Close-SalesOrder -salesOrderId 25 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>This closes the sales order specified by its Id=25 and the database connection to the UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Close-SalesOrder.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Close-SalesOrder.ps1 on GitHub</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Close-SalesOrder.ps1</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Confirm-System</command:name>
      <command:verb>Confirm</command:verb>
      <command:noun>System</command:noun>
      <maml:description>
        <maml:para>This PowerShell function retrieves various system information to quickly diagnose a malfunction. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Confirm-System.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function retrieves various values from the computer system to quickly diagnose a malfunction. The results are collected in an array of PsCustomObject, which can be piped to Out-GridView or Format-Table for further processing.</maml:para>
      <maml:para>Different switches can be used to determine which check sets should be retrieved.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Confirm-System</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>administrator</maml:name>
          <maml:description>
            <maml:para>Checks if the user has administrative rights.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>all</maml:name>
          <maml:description>
            <maml:para>All optiones are used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>controlledFolderAccess</maml:name>
          <maml:description>
            <maml:para>This function checks if the Microsoft ransomware protection for monitored folders is active. This protection prevents, for example, the creation of folders in 'My Documents' in the command prompt. Similarly, PowerShell modules cannot be installed as the current user, only as an administrator for all users.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>drives</maml:name>
          <maml:description>
            <maml:para>This function retrieves the list of installed drives and checks the health status of the disks. The function retrieves the installed drives using `Get-PSDrive` and filters the file system drives. It then loops through the drives, checks the physical disks using `Get-PhysicalDisk`, and filters the HDD and SSD disks that have an operational status of OK or Healthy.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>memory</maml:name>
          <maml:description>
            <maml:para>Checks how much memory is installed.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>network</maml:name>
          <maml:description>
            <maml:para>This function checks the network settings and tests name resolution. It pings the default gateway and then performs a DNS lookup of the local host name and compares the results. If they match, it checks if the DNS server is reachable. The output is a `PsCustomObject` that can be piped to `Out-GridView` or `Format-Table`.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>administrator</maml:name>
        <maml:description>
          <maml:para>Checks if the user has administrative rights.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>all</maml:name>
        <maml:description>
          <maml:para>All optiones are used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>controlledFolderAccess</maml:name>
        <maml:description>
          <maml:para>This function checks if the Microsoft ransomware protection for monitored folders is active. This protection prevents, for example, the creation of folders in 'My Documents' in the command prompt. Similarly, PowerShell modules cannot be installed as the current user, only as an administrator for all users.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>drives</maml:name>
        <maml:description>
          <maml:para>This function retrieves the list of installed drives and checks the health status of the disks. The function retrieves the installed drives using `Get-PSDrive` and filters the file system drives. It then loops through the drives, checks the physical disks using `Get-PhysicalDisk`, and filters the HDD and SSD disks that have an operational status of OK or Healthy.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>memory</maml:name>
        <maml:description>
          <maml:para>Checks how much memory is installed.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>network</maml:name>
        <maml:description>
          <maml:para>This function checks the network settings and tests name resolution. It pings the default gateway and then performs a DNS lookup of the local host name and compares the results. If they match, it checks if the DNS server is reachable. The output is a `PsCustomObject` that can be piped to `Out-GridView` or `Format-Table`.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------- Example 1:Possible results for system diagnosis. -------</maml:title>
        <dev:code>PS C:\&gt; $result = Confirm-System -administrator -controlledFolderAccess -memory -drives -network
PS C:\&gt; $result | Format-Table
 
Description Value
----------- -----
Administrative rights False
Ransomware protection aktiv False
Working memory (GB) 32
Drive free on C (GB) 445
Drive free on D (GB) 427
Drive free on F (GB) 17
S.M.A.R.T. (USB SanDisk 3.2Gen1 USB Device) OK
S.M.A.R.T. (Samsung SSD 870 QVO 2TB) OK
S.M.A.R.T. (NVMe Samsung SSD 970) OK
Gateway Ip 192.168.178.1
Gateway Name fritz.box
Local Ip 192.168.178.10
Local Subnet 255.255.255.0
Local CIDR 24
Public Ip 98.32.56.11
Max possible Hosts 254
Network ID 192.168.178.0
First possible Ip 192.168.178.1
Last possible Ip 192.168.178.254
Broadcast Ip 192.168.178.255</dev:code>
        <dev:remarks>
          <maml:para>The output of this function shows some of the possible results for system diagnosis.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Confirm-System.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Confirm-System.ps1 on GitHub</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Confirm-System.ps1</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-Accent</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>Accent</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts special characters from other languages to the characters a-z. ö becomes oe etc. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-Accent.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function converts special characters that occur in a string into common characters from the US character set. ö becomes oe , é becomes an e . Additionally it is possible to output the characters of the output in lowercase, uppercase or capitalized. If nothing is specified for the `strCase` parameter, no further conversion is performed.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-Accent</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>value</maml:name>
          <maml:description>
            <maml:para>The text to be converted, which may contain the special characters or umlauts from foreign languages.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>strCase</maml:name>
          <maml:description>
            <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>strCase</maml:name>
        <maml:description>
          <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>value</maml:name>
        <maml:description>
          <maml:para>The text to be converted, which may contain the special characters or umlauts from foreign languages.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-- Example 1:Converts special characters to US characters a-z --</maml:title>
        <dev:code>PS C:\&gt; [string]$myOutput= Convert-Accent -value "Häuser stehen in Zürich"
PS C:\&gt; Write-Host $myOutput
 
# Output
 
Haeuser stehen in Zuerich</dev:code>
        <dev:remarks>
          <maml:para>In this example, a simple transformation of the text is performed. Characters like the German umlauts are converted here.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-Accent.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Convert-Accent.ps1 on GitHub</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-Accent.ps1</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-DatanormToXml</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>DatanormToXml</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts a Datanorm PsCustomObject into an XML string that's also compatible with the EULANDA merchandise management system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-DatanormToXml.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Convert-DatanormToXml function accepts a Datanorm object as input, which represents the content of a Datanorm file, and converts it into an XML string that is compatible with the EULANDA merchandise management system. The resulting XML can be directly read by the EULANDA system.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-DatanormToXml</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>datanorm</maml:name>
          <maml:description>
            <maml:para>The Datanorm object to be converted. This should represent a Datanorm file that was previously converted using the Convert-FromDatanorm function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>show</maml:name>
          <maml:description>
            <maml:para>Displays a progress bar during execution.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>datanorm</maml:name>
        <maml:description>
          <maml:para>The Datanorm object to be converted. This should represent a Datanorm file that was previously converted using the Convert-FromDatanorm function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>show</maml:name>
        <maml:description>
          <maml:para>Displays a progress bar during execution.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>The EULANDA merchandise management system requires a specific XML format for data import. This function is designed to create an XML string that complies with this format based on the provided Datanorm object.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Converts PowerShell Datanorm object to an EULANDA specific XML</maml:title>
        <dev:code>PS C:\&gt; $datanorm = Convert-FromDatanorm -path "C:\Users\john\Desktop\datanorm\Test\datanorm.001"
PS C:\&gt; $xml = Convert-DatanormToXml -datanorm $datanorm
 
&lt;EULANDA&gt;
    &lt;METADATA&gt;
        &lt;VERSION&gt;3.2.1&lt;/VERSION&gt;
        &lt;GENERATOR&gt;EulandaConnect&lt;/GENERATOR&gt;
        &lt;DATEFORMAT&gt;ISO8601&lt;/DATEFORMAT&gt;
        &lt;FLOATFORMAT&gt;US&lt;/FLOATFORMAT&gt;
        &lt;COUNTRYFORMAT&gt;ISO2&lt;/COUNTRYFORMAT&gt;
        &lt;FIELDNAMES&gt;NATIVE&lt;/FIELDNAMES&gt;
        &lt;DATE&gt;2023-06-23T15:38:00&lt;/DATE&gt;
        &lt;PCNAME&gt;DADOSTUDIO&lt;/PCNAME&gt;
        &lt;USERNAME&gt;CN&lt;/USERNAME&gt;
    &lt;/METADATA&gt;
    &lt;ARTIKELLISTE&gt;
        &lt;ARTIKEL&gt;
            &lt;ARTNUMMER&gt;8241335&lt;/ARTNUMMER&gt;
            &lt;ARTMATCH&gt;EVB 10/265 A2&lt;/ARTMATCH&gt;
            &lt;BARCODE&gt;4003899170225&lt;/BARCODE&gt;
            &lt;ARTNUMMERERSATZ&gt;456 01 31&lt;/ARTNUMMERERSATZ&gt;
            &lt;VKNETTO&gt;2.75&lt;/VKNETTO&gt;
            &lt;MENGENEH&gt;Stk&lt;/MENGENEH&gt;
            &lt;VERPACKEH&gt;1&lt;/VERPACKEH&gt;
            &lt;RABATTGR&gt;EM01&lt;/RABATTGR&gt;
            &lt;WARENGR&gt;01&lt;/WARENGR&gt;
            &lt;KURZTEXT1&gt;ELTROPA Verdrahtungsbrücke 1ph 265mm sw&lt;/KURZTEXT1&gt;
            &lt;KURZTEXT2&gt;EVB 10/265 A2 10qmm Stift isol&lt;/KURZTEXT2&gt;
            &lt;ULTRAKURZTEXT&gt;ELTROPA Verdrahtungsbrücke 1ph 265mm sw&lt;/ULTRAKURZTEXT&gt;
            &lt;LANGTEXT&gt;ELTROPA Verdrahtungsbrücke 1ph 265mm sw
EVB 10/265 A2 10qmm Stift isol&lt;/LANGTEXT&gt;
        &lt;/ARTIKEL&gt;
    &lt;/ARTIKELLISTE&gt;
&lt;/EULANDA&gt;</dev:code>
        <dev:remarks>
          <maml:para>This command converts a Datanorm PowerShell object into an XML string that's compatible with the EULANDA merchandise management system. These files can be imported directly.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-DatanormToXml.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Convert-DatanormToXml.ps1 on GitHub</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-DatanormToXml.ps1</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-DataToXml</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>DataToXml</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts data structures like nested hashtables or arrays into an XML. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-DataToXml.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The data structures can contain nested hashtables combined with arrays, which may also contain hashtables. Additionally, an array containing hashtables can be passed directly. For cases involving arrays, a separate array root name can be specified, allowing for the creation of a plural form, such as 'Records' and its corresponding 'Record' elements.</maml:para>
      <maml:para>The notation for node names can be set via a parameter, which is particularly useful when dealing with data from external databases.</maml:para>
      <maml:para>At the moment, pure arrays of simple data types, such as arrays of integers or arrays containing only simple data types, are not supported. However, these have not been encountered in previous work with databases.</maml:para>
      <maml:para>An alternative approach is to use the built-in ConvertTo-Xml function. Although this function returns the field name and value in two separate nodes, it is a good choice if you require data types. To use this function, call: `[xml]$xml = $data | ConvertTo-Xml`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-DataToXml</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>data</maml:name>
          <maml:description>
            <maml:para>The data parameter contains the data structure to be converted into an XML file. So for example a hashtable variable `$h = @{ "Field1" = "Value1"; "Field2" = "Value2" }`</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>strCase</maml:name>
          <maml:description>
            <maml:para>The node names in the XML are always sensitive to upper and lower case. This parameter can be used to standardize the spelling. The default is `upper`, you can make the following settings:</maml:para>
            <maml:para>| Command | Meaning | | ------- | ----------------------------------- | | none | keep spelling | | upper | upper case | | lower | lowercase letters | | capital | only the first letter in upper case |</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Upper</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>root</maml:name>
          <maml:description>
            <maml:para>The parameter specifies the name of the root in the XML. The default is `Root`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Root</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>arrRoot</maml:name>
          <maml:description>
            <maml:para>If a structure starts with an array, or it is arrays of arrays, there is no possibility to take a field name. For this case it is possible to use a node name, which should be in plural like `ITEMS`. The default is `Records`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Records</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>arrSubRoot</maml:name>
          <maml:description>
            <maml:para>When arrays of hash tables are formed, the field containing the array is called, for example, `Items`. `arrSubRoot` are the child items of that. In the case here it should be `item`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Record</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>metadata</maml:name>
          <maml:description>
            <maml:para>If the switch metadata is passed, then an ERP-specific metablock is output as the first node.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>arrRoot</maml:name>
        <maml:description>
          <maml:para>If a structure starts with an array, or it is arrays of arrays, there is no possibility to take a field name. For this case it is possible to use a node name, which should be in plural like `ITEMS`. The default is `Records`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Records</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>arrSubRoot</maml:name>
        <maml:description>
          <maml:para>When arrays of hash tables are formed, the field containing the array is called, for example, `Items`. `arrSubRoot` are the child items of that. In the case here it should be `item`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Record</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>data</maml:name>
        <maml:description>
          <maml:para>The data parameter contains the data structure to be converted into an XML file. So for example a hashtable variable `$h = @{ "Field1" = "Value1"; "Field2" = "Value2" }`</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>metadata</maml:name>
        <maml:description>
          <maml:para>If the switch metadata is passed, then an ERP-specific metablock is output as the first node.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>root</maml:name>
        <maml:description>
          <maml:para>The parameter specifies the name of the root in the XML. The default is `Root`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Root</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>strCase</maml:name>
        <maml:description>
          <maml:para>The node names in the XML are always sensitive to upper and lower case. This parameter can be used to standardize the spelling. The default is `upper`, you can make the following settings:</maml:para>
          <maml:para>| Command | Meaning | | ------- | ----------------------------------- | | none | keep spelling | | upper | upper case | | lower | lowercase letters | | capital | only the first letter in upper case |</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Upper</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. You cannot pipe objects</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Xml.XmlDocument</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------------- EXAMPLE 1:Sample for a metablock ---------------</maml:title>
        <dev:code>&lt;EULANDA&gt;
    &lt;METADATA&gt;
        &lt;VERSION&gt;1.22&lt;/VERSION&gt;/VERSION&gt;
        &lt;GENERATOR&gt;EulandaConnect&lt;/GENERATOR&gt;
        &lt;DATEFORMAT&gt;ISO8601&lt;/DATEFORMAT&gt;
        &lt;FLOATFORMAT&gt;US&lt;/FLOATFORMAT&gt;
        &lt;COUNTRYFORMAT&gt;ISO2&lt;/COUNTRYFORMAT&gt;
        &lt;FIELDNAMES&gt;NATIVE&lt;/FIELDNAMES&gt;
        &lt;DATE&gt;2023-02-16T13:05:12&lt;/DATE&gt;
        &lt;PCNAME&gt;PC4ALL&lt;/PCNAME&gt;
        &lt;USERNAME&gt;DOE&lt;/USERNAME&gt;
    &lt;/METADATA&gt;
&lt;/EULANDA&gt;</dev:code>
        <dev:remarks>
          <maml:para>A meta block, when the `metadata` parameter is used, would appear as the first node after the root in the generated XML. This block is created by the `Write-XmlMetadata` function, which is implicitly called when the `metadata` parameter is specified. The meta block provides additional information about the XML structure, such as data types or other relevant metadata.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>EXAMPLE 2:A hash table containing arrays of hash tables is converted to XML</maml:title>
        <dev:code>$data = [ordered]@{
    "Name" = "John Doe";
    "City" = "New York";
    "Items" = @(
        [ordered]@{ "Field1" = "Value1"; "Field2" = "Value2" },
        [ordered]@{ "Field3" = "Value3"; "Field4" = "Value4" }
    )
}
[xml]$xml = Convert-DataToXml -data $data -arrRoot 'ITEMS' -arrSubRoot 'ITEM'
$xml.Save("C:\Temp\MyData.xml")
 
&lt;ROOT&gt;
    &lt;NAME&gt;John Doe&lt;/NAME&gt;
    &lt;CITY&gt;New York&lt;/CITY&gt;
    &lt;ITEMS&gt;
        &lt;ITEM&gt;
            &lt;FIELD1&gt;Value1&lt;/FIELD1&gt;
            &lt;FIELD2&gt;Value2&lt;/FIELD2&gt;
        &lt;/ITEM&gt;
        &lt;ITEM&gt;
            &lt;FIELD3&gt;Value3&lt;/FIELD3&gt;
            &lt;FIELD4&gt;Value4&lt;/FIELD4&gt;
        &lt;/ITEM&gt;
    &lt;/ITEMS&gt;
&lt;/ROOT&gt;</dev:code>
        <dev:remarks>
          <maml:para>In this example, there is a hash table that contains a field with an array of hash tables at the end.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---- EXAMPLE 3:An array of hash tables is converted to XML ----</maml:title>
        <dev:code>$data = @(
[ordered]@{ "Field1" = "Value1"; "Field2" = "Value2" },
[ordered]@{ "Field3" = "Value3"; "Field4" = "Value4" }
)
 
[xml]$xml = Convert-DataToXml -data $data
$xml.Save("C:\Temp\MyData.xml")
 
&lt;ROOT&gt;
    &lt;RECORDS&gt;
        &lt;RECORD&gt;
            &lt;FIELD1&gt;Value1&lt;/FIELD1&gt;
            &lt;FIELD2&gt;Value2&lt;/FIELD2&gt;
        &lt;/RECORD&gt;
        &lt;RECORD&gt;
            &lt;FIELD3&gt;Value3&lt;/FIELD3&gt;
            &lt;FIELD4&gt;Value4&lt;/FIELD4&gt;
        &lt;/RECORD&gt;
    &lt;/RECORDS&gt;
&lt;/ROOT&gt;</dev:code>
        <dev:remarks>
          <maml:para>In this example, the structure starts with an array. This is where the arrRoot parameter comes into play, which then holds the individual records of the hash tables. The node is then used from the arrSubRoot parameter. The default is for arrRoot = 'Records' and for arrSubRoots 'Record'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-DataToXml.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Write-XmlMetadata</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-DateToIso</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>DateToIso</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts a date to an ISO string. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-DateToIso.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function has several options to convert a date-time value combination into a string.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-DateToIso</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>value</maml:name>
          <maml:description>
            <maml:para>The value of the date/time combination to convert.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">DateTime</command:parameterValue>
          <dev:type>
            <maml:name>DateTime</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>asUtc</maml:name>
          <maml:description>
            <maml:para>The date is output in UTC, i.e. Greenwitch time. Here only a Z is appended to the output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noDate</maml:name>
          <maml:description>
            <maml:para>The date is suppressed or set to 1.1.1 for this output. However, only the time is output due to the formatting.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noTime</maml:name>
          <maml:description>
            <maml:para>The time is suppressed for this output or set to 0:00. However, only the date is output due to the formatting.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noTimeZone</maml:name>
          <maml:description>
            <maml:para>The date is output in local time without specifying the time zone.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noonTime</maml:name>
          <maml:description>
            <maml:para>The time is ignored and set to 12 noon.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>zeroTime</maml:name>
          <maml:description>
            <maml:para>The time is ignored and set to 0:00.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>asUtc</maml:name>
        <maml:description>
          <maml:para>The date is output in UTC, i.e. Greenwitch time. Here only a Z is appended to the output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noDate</maml:name>
        <maml:description>
          <maml:para>The date is suppressed or set to 1.1.1 for this output. However, only the time is output due to the formatting.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noTime</maml:name>
        <maml:description>
          <maml:para>The time is suppressed for this output or set to 0:00. However, only the date is output due to the formatting.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noTimeZone</maml:name>
        <maml:description>
          <maml:para>The date is output in local time without specifying the time zone.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noonTime</maml:name>
        <maml:description>
          <maml:para>The time is ignored and set to 12 noon.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>value</maml:name>
        <maml:description>
          <maml:para>The value of the date/time combination to convert.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">DateTime</command:parameterValue>
        <dev:type>
          <maml:name>DateTime</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>zeroTime</maml:name>
        <maml:description>
          <maml:para>The time is ignored and set to 0:00.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------- Example 1:Local date in ISO format --------------</maml:title>
        <dev:code>PS C:\&gt; [string]$myDate= Convert-DateToIso -value $(Get-Date) -noTimeZone
PS C:\&gt; $myDate
 
# Output
 
2023-02-17T13:29:02</dev:code>
        <dev:remarks>
          <maml:para>`Convert-DateToIso` takes the current date with time via the value parameter and outputs the date value in the local time.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-DateToIso.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Convert-DateToIso</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-DateToIso.ps1</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-FromDatanorm</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>FromDatanorm</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts a Datanorm 4.0 file into a structured PowerShell object - PsCustomObject. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-FromDatanorm.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function `Convert-FromDatanorm` reads a Datanorm file and converts it into a collection of PowerShell objects arranged in a hierarchical data structure. Currently, it can process the following types of records:</maml:para>
      <maml:para>1. Type `V`: Version Data - Carries version information, date, and additional text information. 2. Type `A`: Basic Article Data - Includes basic information such as article number, description, price, unit, etc. 3. Type `B`: Additional Article Data - Includes supplementary details like alternative article number, weight, packaging amount, etc. 4. Type `P`: Price and Condition Data - Handles various price and condition information for an article.</maml:para>
      <maml:para>The function is still under development . Future enhancements include handling long texts with insertions, bill of materials (BOM), and material surcharges. These additions will make the function more comprehensive and beneficial for processing Datanorm files.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-FromDatanorm</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>The path of the Datanorm file to be converted.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="decimal">
          <maml:name>decimalSeparator</maml:name>
          <maml:description>
            <maml:para>The decimal separator used in the Datanorm file. The default value is the current culture's number decimal separator.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>cuDel</maml:name>
          <maml:description>
            <maml:para>Copper-DEL Notation, the price is in EUR per 100 kg copper. The price was in 02/2022 879 EUR for 100 kg copper.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
          <dev:type>
            <maml:name>Double</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>vat</maml:name>
          <maml:description>
            <maml:para>The value-added tax rate. The default value is 19.0 %.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
          <dev:type>
            <maml:name>Double</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>show</maml:name>
          <maml:description>
            <maml:para>Displays a progress bar during execution.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>utf8</maml:name>
          <maml:description>
            <maml:para>If this switch is set, an attempt is first made to open the Datanorm file as UTF8 (without BOM). If this fails, the file is opened as ANSI file. Datanorm is not available as Utf8 according to the documentation, but the first wholesalers output this encoding. The switch can usually not hurt, because there is an automatic fallback, but it should remain the exception and with a fallback it simply also takes longer to read. So use the switch only if you have problems with the character representation, which is ANSI according to the standard.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="decimal">
        <maml:name>decimalSeparator</maml:name>
        <maml:description>
          <maml:para>The decimal separator used in the Datanorm file. The default value is the current culture's number decimal separator.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>The path of the Datanorm file to be converted.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>cuDel</maml:name>
        <maml:description>
          <maml:para>Copper-DEL Notation, the price is in EUR per 100 kg copper. The price was in 02/2022 879 EUR for 100 kg copper.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
        <dev:type>
          <maml:name>Double</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>vat</maml:name>
        <maml:description>
          <maml:para>The value-added tax rate. The default value is 19.0 %.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
        <dev:type>
          <maml:name>Double</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>show</maml:name>
        <maml:description>
          <maml:para>Displays a progress bar during execution.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>utf8</maml:name>
        <maml:description>
          <maml:para>If this switch is set, an attempt is first made to open the Datanorm file as UTF8 (without BOM). If this fails, the file is opened as ANSI file. Datanorm is not available as Utf8 according to the documentation, but the first wholesalers output this encoding. The switch can usually not hurt, because there is an automatic fallback, but it should remain the exception and with a fallback it simply also takes longer to read. So use the switch only if you have problems with the character representation, which is ANSI according to the standard.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Currently, this function supports Datanorm version 4.0 only. Despite Datanorm 4.0 being an older standard, it is still widely used and relevant in many industries, particularly in Germany's building and construction sector. It provides a comprehensive and universal standard for electronic product data exchange between manufacturers, wholesalers and craftsmen in the HVAC sector. Datanorm 4.0 covers the basic and most commonly used elements, such as general product data (type A), additional product data (type B), version data (type V), and price data (type P). </maml:para>
        <maml:para>Datanorm 5.0 introduces additional complexities and features that are not yet supported by this function. The newer version extends the possibilities for the transfer of multimedia content, logistics data, long texts and other additional information. Should there be sufficient demand for Datanorm 5.0 support, we may consider enhancing this function accordingly in the future. </maml:para>
        <maml:para>It is important to note that due to the complexity and variety of data, there might be special cases which this function does not cover. It is recommended to thoroughly test this function with your specific Datanorm files to ensure compatibility.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1: Convert Datanorm file to a PowerShell object ---</maml:title>
        <dev:code>PS C:\&gt; $datanorm = Convert-FromDatanorm -path "C:\Users\john\Desktop\datanorm\Test\datanorm.001"</dev:code>
        <dev:remarks>
          <maml:para>This command converts a Datanorm file located at `C:\Users\john\Desktop\datanorm\Test\datanorm.001` into a PowerShell object `$datanorm`. The object represents the content of the Datanorm file and can be further processed or manipulated in PowerShell. It has the four properties `v`, `a`, `b` and `p`.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>--- Example 2: Shows the data for a specific article number ---</maml:title>
        <dev:code>PS C:\&gt; $datanorm = Convert-FromDatanorm -path "C:\Users\john\Desktop\datanorm\Test\datanorm.001" -cuDel 879
PS C:\&gt; $datanorm.a["8241335"]
PS C:\&gt; $datanorm.b["8241335"]
PS C:\&gt; $datanorm.a["8241335"].Kurztext1
 
# original datanorm dump
A;A;8241335;00;ELTROPA Verdrahtungsbr�cke 1ph 265mm sw;EVB 10/265 A2 10qmm Stift isol;1;0;Stk;257;EM01;01;;
B;A;8241335;EVB 10/265 A2;456 01 31;;1;150;250;4003899170225;;010204;0;1;;;
 
# PowerShell object from $datanorm.a["8241335"]
SatzKennzeichen : A
VerarbeitungsKennzeichen : A
ArtikelNummer : 8241335
TextKennzeichen : 00
Kurztext1 : ELTROPA Verdrahtungsbrücke 1ph 265mm sw
Kurztext2 : EVB 10/265 A2 10qmm Stift isol
PreisKennzeichen : 1
PreisEinheit : 0
MengenEinheit : Stk
Preis : 2,57
RabattGruppe : EM01
WarenhauptGruppe : 01
LangtextSchluessel :
EUL_PreisProStueck : 2,57
 
# PowerShell object from $datanorm.b["8241335"]
SatzKennzeichen : B
VerarbeitungsKennzeichen : A
ArtikelNummer : 8241335
Matchcode : EVB 10/265 A2
AlternativArtikelNummer : 456 01 31
KatalogSeite :
CUGewichtsMerker : 1
CUKennzahl : 150
Gewicht : 2,50
EuroArtikelNummer : 4003899170225
AnbindungsNummer :
WarenGruppe : 010204
KostenArt : 0
VerpackungsMenge : 1
ReverenzKuerzel :
ReverenzNummer :
EUL_CuGewichtProStueck : 0,025
EUL_CuAufschlagProStueck : 0,18225
EUL_CuDelPro100Kg : 879
 
# PowerShell field object from $datanorm.a["8241335"].Kurztext1
ELTROPA Verdrahtungsbrücke 1ph 265mm sw</dev:code>
        <dev:remarks>
          <maml:para>Via `$datanorm.a` the individual field values can be retrieved and also addressed directly by specifying the article number. The same applies to the other properties like `$datanorm.b` or `$datanorm.p`. Field designations with EUL contain adjusted values so that, for example, copper surcharges are displayed in unit terms.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-FromDatanorm.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Convert-FromDatanorm</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-FromDatanorm.ps1</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-ImageToBase64</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>ImageToBase64</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts an image file into a mime text Base64 encoded. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-ImageToBase64.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Convert-ImageToBase64 function loads an image file from the specified path and converts it to a Base64-encoded MIME string, using the file extension to determine the MIME type (jpeg, bmp, or png). The resulting string can be used to embed the image in HTML or other documents.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-ImageToBase64</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>This parameter is mandatory and specifies the path of the image file that needs to be converted. The path can be a local file path or a remote file path (UNC path), and it must include the name and extension of the file. If the file is located in a directory with a space in its name, the path must be enclosed in quotation marks. The parameter accepts string values.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>This parameter is mandatory and specifies the path of the image file that needs to be converted. The path can be a local file path or a remote file path (UNC path), and it must include the name and extension of the file. If the file is located in a directory with a space in its name, the path must be enclosed in quotation marks. The parameter accepts string values.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1:Converts an image file into a mime text ------</maml:title>
        <dev:code>PS C:\&gt; Convert-ImageToBase64 -path "C:\Temp\MyImage.jpg"
 
# Output
 
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAwADAAAD/4cNoRXhpZgAATU0AKgAAAAgACwEPAAIAAAAKAAAAkgEQAAIAAAAWAAAAnAESAAMAAAABAAEAAAEaAAUAAAABAAAAsgEbAAUAAAABAAAAugEoAAMAAAABAAIAAAExAAIAAAAmAAAAwgEyAAIAAAAUAAAA6AITAAMAAAABAAEAAIdpAAQAAAABAAAA/IglAAQAAAABAADCyAAAAABNaWNyb3NvZnQATHVta...</dev:code>
        <dev:remarks>
          <maml:para>This will convert the image file "MyImage.jpg" located in the "C:\Temp" directory to a Base64-encoded MIME string.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-ImageToBase64.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-OemToUtf8</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>OemToUtf8</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts an input string from OEM (Original Equipment Manufacturer) encoding to UTF-8 encoding, with specific mappings for German special characters also called Umlaut like äöü. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-OemToUtf8.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function takes a string encoded in OEM and converts it to UTF-8, using mappings for specific German special characters. The function loops through each character in the input string, checks if it corresponds to one of the specified OEM encoded characters, and replaces it with the corresponding UTF-8 character.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-OemToUtf8</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>inputString</maml:name>
          <maml:description>
            <maml:para>The input string to be converted from OEM to UTF-8 encoding. This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>inputString</maml:name>
        <maml:description>
          <maml:para>The input string to be converted from OEM to UTF-8 encoding. This parameter is mandatory.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>The function was created to support legacy data formats, particularly the Datanorm standard, which still requires this type of conversion. Datanorm is a German data format standard used in the commercial sector, especially in the building and electrical trades. Despite its age, it is still in widespread use today.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Convert-OemToUtf8 -inputString 'Rckfahrt'</dev:code>
        <dev:remarks>
          <maml:para>This command converts the input string 'Rckfahrt' from OEM to UTF-8, and returns 'Rückfahrt'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-OemToUtf8.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-Slugify</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>Slugify</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts a string so that only letters from a-z, underscores and digits are output. All other letters are converted to these base letters if possible. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-Slugify.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Converts the text from value to a contiguous string consisting only of letters a-z, digits 0-9 and an underscore. Special characters from the different languages are automatically converted in a meaningful way, e.g. ö becomes oe . All other characters are converted to an underscore. If several underscores meet, all but one are removed. The output can be additionally controlled by the parameter `strCase`. Here the output can be converted completely into lowercase or uppercase letters or into capizalized .</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-Slugify</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>value</maml:name>
          <maml:description>
            <maml:para>The text to be converted</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>strCase</maml:name>
          <maml:description>
            <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>delimiter</maml:name>
          <maml:description>
            <maml:para>The delimiter connects the words to each other. The default delimiter is the underscore character. Alternatively, the hyphen can be specified as the delimiter.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">-</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">_</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>delimiter</maml:name>
        <maml:description>
          <maml:para>The delimiter connects the words to each other. The default delimiter is the underscore character. Alternatively, the hyphen can be specified as the delimiter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>strCase</maml:name>
        <maml:description>
          <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>value</maml:name>
        <maml:description>
          <maml:para>The text to be converted</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Converts the text from value to a contiguous string of a-z 0-9 and underscore</maml:title>
        <dev:code>PS C:\&gt; [string]$myOutput= convert-slugify -value 'Mein Haus Österreich'
PS C:\&gt; Write-Host $myOutput
 
# Output
 
mein_haus_oesterreich</dev:code>
        <dev:remarks>
          <maml:para>The function converts the text into a slugy text. All special characters are removed and words are connected with underscores.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-Slugify.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-StringCase</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>StringCase</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts text to lowercase, uppercase, or capitalized. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-StringCase.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Converts text to lowercase, uppercase, or capitalized. With Capitalized, only the first letter starts in upper case.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-StringCase</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>value</maml:name>
          <maml:description>
            <maml:para>The text to be converted</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>strCase</maml:name>
          <maml:description>
            <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>strCase</maml:name>
        <maml:description>
          <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>value</maml:name>
        <maml:description>
          <maml:para>The text to be converted</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------------ Example 1:Converts text in upper case ------------</maml:title>
        <dev:code>PS C:\&gt; [string]$myOutput= Convert-StringCase -value 'Hello, i am John, John Doe' -strCase upper
PS C:\&gt; Write-Host $myOutput
 
# Output
 
HELLO, I AM JOHN, JOHN DOE</dev:code>
        <dev:remarks>
          <maml:para>The text specified in value is converted to uppercase. The strCase parameter also allows conversion to lowercase or capitalized.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-StringCase.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-SubnetToBitmask</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>SubnetToBitmask</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts a subnet mask or CIDR to its bit representation. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-SubnetToBitMask.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function converts the subnet mask or CIDR to its bit representation. If neither `$subnet` nor `$cidr` is provided, the function gets the subnet mask from the local IP address.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-SubnetToBitmask</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>subnet</maml:name>
          <maml:description>
            <maml:para>The subnet mask in IP address format (e.g., 255.255.255.0).</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>cidr</maml:name>
          <maml:description>
            <maml:para>The CIDR notation (e.g., 24 for a subnet mask of 255.255.255.0).</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>cidr</maml:name>
        <maml:description>
          <maml:para>The CIDR notation (e.g., 24 for a subnet mask of 255.255.255.0).</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>subnet</maml:name>
        <maml:description>
          <maml:para>The subnet mask in IP address format (e.g., 255.255.255.0).</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- Example 1:Representation of the subnet mask ---------</maml:title>
        <dev:code>PS C:\&gt; Convert-SubnetToBitmask -subnet '255.255.255.0'
 
# Output
 
11111111111111111111111100000000</dev:code>
        <dev:remarks>
          <maml:para>The output is a string representing the bit representation of the subnet mask or CIDR.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-SubnetToBitmask.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Convert-ToDecimalDegrees</command:name>
      <command:verb>Convert</command:verb>
      <command:noun>ToDecimalDegrees</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts coordinates in Degrees-Minutes-Seconds (DMS) format to Decimal Degrees (DD). Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Convert-ToDecimalDegrees.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function takes coordinates in Degrees-Minutes-Seconds (DMS) format, along with a direction (N,S,E,W), and converts them to Decimal Degrees (DD) format. For southern latitudes and western longitudes, the DD value will be negative. Make sure that the values you input are valid DMS coordinates</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Convert-ToDecimalDegrees</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>degrees</maml:name>
          <maml:description>
            <maml:para>Degrees of the DMS coordinate. Should be an integer between 0 and 180.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>minutes</maml:name>
          <maml:description>
            <maml:para>Minutes of the DMS coordinate. Should be an integer between 0 and 59.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>seconds</maml:name>
          <maml:description>
            <maml:para>Seconds of the DMS coordinate. Should be an integer between 0 and 59.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>direction</maml:name>
          <maml:description>
            <maml:para>The direction of the DMS coordinate. Should be one of 'N', 'S', 'E', 'W' (case insensitive).</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">N</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">S</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">E</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">W</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>degrees</maml:name>
        <maml:description>
          <maml:para>Degrees of the DMS coordinate. Should be an integer between 0 and 180.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>direction</maml:name>
        <maml:description>
          <maml:para>The direction of the DMS coordinate. Should be one of 'N', 'S', 'E', 'W' (case insensitive).</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>minutes</maml:name>
        <maml:description>
          <maml:para>Minutes of the DMS coordinate. Should be an integer between 0 and 59.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>seconds</maml:name>
        <maml:description>
          <maml:para>Seconds of the DMS coordinate. Should be an integer between 0 and 59.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1: Converts coordinates to Decimal Degrees ------</maml:title>
        <dev:code>PS C:\&gt; Seconds of the DMS coordinate. Should be an integer between 0 and 59.</dev:code>
        <dev:remarks>
          <maml:para>Returns: 52.52</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-ToDecimalDegrees.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-Distance</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-USFloat</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>USFloat</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts a string representation of a float number into a U.S. format. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/ConvertTo-USFloat.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `ConvertTo-USFloat` function takes a string that represents a float number, which could be formatted in either U.S. (dot as decimal separator, comma as thousands separator) or European (comma as decimal separator, dot as thousands separator) style, and converts it into a U.S. style float string (dot as decimal separator, no thousands separator).</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-USFloat</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>inputString</maml:name>
          <maml:description>
            <maml:para>A string that represents a float number. The string could be formatted in either U.S. or European style.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>inputString</maml:name>
        <maml:description>
          <maml:para>A string that represents a float number. The string could be formatted in either U.S. or European style.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This function assumes that the last occurrence of dot or comma in the input string is the decimal separator. If there are non-numeric characters other than dot and comma, or if the input string is not a valid representation of a float number, the function will throw an error.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-- Example 1: Converts German float string to US float string --</maml:title>
        <dev:code>PS C:\&gt; ConvertTo-USFloat -inputString "2.561,12"
Returns: "2561.12"</dev:code>
        <dev:remarks>
          <maml:para>In this example, the string "2.561,12" is passed as input to the `ConvertTo-USFloat` function. This input string represents a float number in European style: 2.561 as thousands part and 12 as decimal part. The function will convert this European style float string into a U.S. style float string, which uses a dot as the decimal separator and has no thousands separator.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/ConvertTo-USFloat.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-WrappedLines</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>WrappedLines</command:noun>
      <maml:description>
        <maml:para>This PowerShell function performs a wrap of a text. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/ConvertTo-WrappedLines.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Performs a wrap of a text. The maximum width can be specified with `width`. If an overlong word is found, which is longer than the specified `width`, the word will be split at the maximally necessary position.</maml:para>
      <maml:para>The output is an array of strings, but it is also possible to get the value as a string with line feeds by setting the switch `asString`. Optionally the string can also get carriage-return and line-feeds, as it is common under Windows, by setting the `useCrLf` switch.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-WrappedLines</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>text</maml:name>
          <maml:description>
            <maml:para>The text to be wrapped is passed as a string. This can already contain line breaks like CRLF or LF. These are removed and the wrap is recalculated.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>width</maml:name>
          <maml:description>
            <maml:para>Specifies the maximum width of a line.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>asString</maml:name>
          <maml:description>
            <maml:para>This switch is used to specify that the output is not an array but a string. With a string the individual lines are separated by CRLF or LF.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>useCrLf</maml:name>
          <maml:description>
            <maml:para>If the return is a string, the lines are separated by LF (line feeds), as is common under Linux. If the switch is set, the separation is done by CRLF (carriage return + line feed), as it is usual under Windows.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>asString</maml:name>
        <maml:description>
          <maml:para>This switch is used to specify that the output is not an array but a string. With a string the individual lines are separated by CRLF or LF.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>text</maml:name>
        <maml:description>
          <maml:para>The text to be wrapped is passed as a string. This can already contain line breaks like CRLF or LF. These are removed and the wrap is recalculated.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>useCrLf</maml:name>
        <maml:description>
          <maml:para>If the return is a string, the lines are separated by LF (line feeds), as is common under Linux. If the switch is set, the separation is done by CRLF (carriage return + line feed), as it is usual under Windows.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>width</maml:name>
        <maml:description>
          <maml:para>Specifies the maximum width of a line.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Performs a wrap of a text with a width of 40 ----</maml:title>
        <dev:code>PS C:\&gt; $myText = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.'
PS C:\&gt; $newLines= ConvertTo-WrappedLines -text $myText -width 40
PS C:\&gt; $newLines
 
#Output
 
Lorem ipsum dolor sit amet, consetetur
sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam
voluptua.</dev:code>
        <dev:remarks>
          <maml:para>The text specified in the `myText` variable is wrapped to the maximum width of 40 specified in `width`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-WrappedLines.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-WrappedLinesEdi</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>WrappedLinesEdi</command:noun>
      <maml:description>
        <maml:para>This PowerShell function creates two lines of text from a long continuous text, often used in EDI systems. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/ConvertTo-WrappedLinesEdi.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The first two lines are extracted from a continuous text. Various optimizations are performed to obtain the relevant information. Overlong lines are wrapped. The continuous text can be passed either with LF as with Linux or with CRLF in lines separated. This separation is taken into account in the conversion. The maximum line length can be set via Width, where the default value is 80 characters. This kind of separation is especially needed for EDI. The lines are there `al` for the first line and `a1` for the second line. If a text needs to be truncated because it is too long, three dots are placed at the end to indicate this. The result is passed as a string array .</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-WrappedLinesEdi</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>text</maml:name>
          <maml:description>
            <maml:para>The text to be wrapped is passed as a string. This can already contain line breaks like CRLF or LF. These are removed and the wrap is recalculated.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Width</maml:name>
          <maml:description>
            <maml:para>Specifies the maximum width of a line.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Width</maml:name>
        <maml:description>
          <maml:para>Specifies the maximum width of a line.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>text</maml:name>
        <maml:description>
          <maml:para>The text to be wrapped is passed as a string. This can already contain line breaks like CRLF or LF. These are removed and the wrap is recalculated.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1:Separates a text into two relevant lines ------</maml:title>
        <dev:code>PS C:\&gt; ConvertTo-WrappedLinesEdi -text "This is my house, but it is also my castle.`nBut anyway my car is also my car" -width 30
 
# Output
 
This is my house, but it is
also my castle. But anyway ...</dev:code>
        <dev:remarks>
          <maml:para>The text had to be wrapped. The last line was also cut off and therefore three dots were added at the end. The result is an array of strings.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Convert-WrappedLinesEdi.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-XmlString</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>XmlString</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts ADO (ActiveX Data Objects) field objects into XML strings. It accepts various data types and handles `NULL` values according to the specified options. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/ConvertTo-XmlString.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `ConvertTo-XmlString` function in PowerShell accepts an ADO field object and an optional switch `-includeEmpty`, which specifies whether empty values should be included in the output or not. The function checks the data type of the passed object and converts its value accordingly into an XML string. For `NULL` values, it returns the default value or an empty value (depending on the `-includeEmpty` option).</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-XmlString</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>adoField</maml:name>
          <maml:description>
            <maml:para>An ADO field object to be converted. This object must be of type `System.__ComObject`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">__ComObject</command:parameterValue>
          <dev:type>
            <maml:name>__ComObject</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>includeEmpty</maml:name>
          <maml:description>
            <maml:para>An optional switch specifying whether empty values should be included in the output. If this switch is provided, empty values will be used in the output; otherwise, default values will be used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>adoField</maml:name>
        <maml:description>
          <maml:para>An ADO field object to be converted. This object must be of type `System.__ComObject`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">__ComObject</command:parameterValue>
        <dev:type>
          <maml:name>__ComObject</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>includeEmpty</maml:name>
        <maml:description>
          <maml:para>An optional switch specifying whether empty values should be included in the output. If this switch is provided, empty values will be used in the output; otherwise, default values will be used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1: Convert an ado date field to an XML string ----</maml:title>
        <dev:code># Create a recordset with a field of type adDBTimeStamp
$rs = New-Object -ComObject ADODB.Recordset
$rs.Fields.Append("MyDateField", $adDBTimeStamp)
$rs.Open()
 
# Add a new record and set the value to the current date
$rs.AddNew()
$rs.Fields("MyDateField").Value = Get-Date
 
# Retrieve the ADO object
$adoField = $rs.Fields("MyDateField")
 
# Convert the ADO object to an XML string using the ConvertTo-XmlString function
$convertedXmlString = ConvertTo-XmlString -adoField $adoField
 
# Output the converted XML string
Write-Output $convertedXmlString
 
# Close the recordset and release the used memory
$rs.Close()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($rs) | Out-Null</dev:code>
        <dev:remarks>
          <maml:para>In this example, an ADO recordset is created with a field of type `adDBTimeStamp`. A new record is added, and the field value is set to the current date. Then, the ADO object is converted to an XML string using the `ConvertTo-XmlString` function, and the output is displayed. Finally, the recordset is closed and the used memory is released.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/ConvertTo-XmlString.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Deny-RemoteFingerprint</command:name>
      <command:verb>Deny</command:verb>
      <command:noun>RemoteFingerprint</command:noun>
      <maml:description>
        <maml:para>This PowerShell function compares the SSH key of a server with the one stored in the local cache (Trusted Hosts). Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Deny-RemoteFingerprint.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Deny-RemoteFingerprint function compares the SSH key of a server with the one stored in the local cache (Trusted Hosts). By default, it supports only the SFTP protocol. However, the function is designed to accommodate future support for FTPS as well. The server parameter specifies the hostname or IP address of the server. The protocol parameter specifies the protocol to use, with 'sftp' being the default value.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Deny-RemoteFingerprint</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>Specifies the hostname or IP address of the server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>Specifies the protocol to use for connecting to the server. The default value is `sftp`. In future also `ftps` would be supported.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>Specifies the protocol to use for connecting to the server. The default value is `sftp`. In future also `ftps` would be supported.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>Specifies the hostname or IP address of the server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1: Checks the SSH key against the trusted hosts ---</maml:title>
        <dev:code>PS C:\&gt; Deny-RemoteFingerprint -server 'myftp.example.com'</dev:code>
        <dev:remarks>
          <maml:para>Checks the SSH key of the server `myftp.example.com` against the one stored in the local cache (Trusted Hosts) using the default SFTP protocol. Returns true if the keys exist and are different.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Deny-RemoteFingerprint.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Export-ArticleToXml</command:name>
      <command:verb>Export</command:verb>
      <command:noun>ArticleToXml</command:noun>
      <maml:description>
        <maml:para>This PowerShell function exports an XML message type for EULANDA articles, calling various fragment functions to create the output. Compatible with the classic Eulanda shop interface format. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Export-ArticleToXml.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function exports an XML article message type by calling various fragment functions that are also available as commands. The format is compatible with the previously used shop interface. The description of the XML format is available in a separate GitHub project http://www.github.com/eulanda/EulandaXML for reference. A summary of the XML structure can be found in this documentation under XmlStructure (../appendix/XmlStructure.md).</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Export-ArticleToXml</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>select</maml:name>
          <maml:description>
            <maml:para>Specifies a comma-separated list of field names to include in the output. Also an `*` for all fields is possible.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>filter</maml:name>
          <maml:description>
            <maml:para>Specifies an array of SQL filter conditions to apply to the output. For example: `-filter "ArtNummer='130100'`. Only native database field names are allowed in the filter conditions.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>alias</maml:name>
          <maml:description>
            <maml:para>Specifies an alternate field name to use as the unique identifier for each record. This field is always output as 'ID.ALIAS' in the XML.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>order</maml:name>
          <maml:description>
            <maml:para>Specifies a field name to sort the output of the articles.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>customerGroups</maml:name>
          <maml:description>
            <maml:para>Specifies the customer groups to use for calculating customer-specific prices based on the discounts associated with the article's discount group and the specified customer groups. This can be a single group or a comma-separated list of groups.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>breadcrumbPath</maml:name>
          <maml:description>
            <maml:para>Specifies the root of a property tree path starting with a forward slash `/`. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used to check if the current article is included in one or more breadcrumbs or catalogs. For each article, the resulting breadcrumbs or catalogs are outputted in their own node.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>The parameter `-path` specifies the path and filename of the XML file to be exported. The default value is the current directory. If a file with the same name already exists, it will be overwritten. The file path must be valid and accessible for writing.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noEmptyPropertyTree</maml:name>
          <maml:description>
            <maml:para>If this switch is set, the property is only displayed if child elements are found in the database. Otherwise, an empty XML tag with a subfield is output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>reorder</maml:name>
          <maml:description>
            <maml:para>Rearranges the field names in alphabetical order.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>revers</maml:name>
          <maml:description>
            <maml:para>Reverses the order of the output records.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>alias</maml:name>
        <maml:description>
          <maml:para>Specifies an alternate field name to use as the unique identifier for each record. This field is always output as 'ID.ALIAS' in the XML.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>breadcrumbPath</maml:name>
        <maml:description>
          <maml:para>Specifies the root of a property tree path starting with a forward slash `/`. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used to check if the current article is included in one or more breadcrumbs or catalogs. For each article, the resulting breadcrumbs or catalogs are outputted in their own node.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>customerGroups</maml:name>
        <maml:description>
          <maml:para>Specifies the customer groups to use for calculating customer-specific prices based on the discounts associated with the article's discount group and the specified customer groups. This can be a single group or a comma-separated list of groups.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>filter</maml:name>
        <maml:description>
          <maml:para>Specifies an array of SQL filter conditions to apply to the output. For example: `-filter "ArtNummer='130100'`. Only native database field names are allowed in the filter conditions.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noEmptyPropertyTree</maml:name>
        <maml:description>
          <maml:para>If this switch is set, the property is only displayed if child elements are found in the database. Otherwise, an empty XML tag with a subfield is output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>order</maml:name>
        <maml:description>
          <maml:para>Specifies a field name to sort the output of the articles.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>The parameter `-path` specifies the path and filename of the XML file to be exported. The default value is the current directory. If a file with the same name already exists, it will be overwritten. The file path must be valid and accessible for writing.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>reorder</maml:name>
        <maml:description>
          <maml:para>Rearranges the field names in alphabetical order.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>revers</maml:name>
        <maml:description>
          <maml:para>Reverses the order of the output records.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>select</maml:name>
        <maml:description>
          <maml:para>Specifies a comma-separated list of field names to include in the output. Also an `*` for all fields is possible.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Exports articles using the Eulanda standard XML structure</maml:title>
        <dev:code>PS C:\&gt; Export-ArticleToXml -filter "ArtNummer&gt;='1000' and ArtNummer&lt;='1100'" -customerGroups 'HA,HB,HC' -udl 'C:\temp\Eulanda_1 JohnDoe.udl' -path "$(Get-DesktopDir)\ARTICLE.xml"
 
EULANDA&gt;
    &lt;METADATA&gt;
        &lt;VERSION&gt;2.3.15&lt;/VERSION&gt;
        &lt;GENERATOR&gt;EulandaConnect&lt;/GENERATOR&gt;
        &lt;DATEFORMAT&gt;ISO8601&lt;/DATEFORMAT&gt;
        &lt;FLOATFORMAT&gt;US&lt;/FLOATFORMAT&gt;
        &lt;COUNTRYFORMAT&gt;ISO2&lt;/COUNTRYFORMAT&gt;
        &lt;FIELDNAMES&gt;NATIVE&lt;/FIELDNAMES&gt;
        &lt;DATE&gt;2023-03-22T13:08:27&lt;/DATE&gt;
        &lt;PCNAME&gt;DOE-PC&lt;/PCNAME&gt;
        &lt;USERNAME&gt;JOHN&lt;/USERNAME&gt;
    &lt;/METADATA&gt;
    &lt;MERKMALBAUM&gt;
        &lt;ARTIKEL&gt;
            &lt;MERKMAL&gt;
                &lt;ID&gt;2277&lt;/ID&gt;
                &lt;PARENTID&gt;38&lt;/PARENTID&gt;
                &lt;NAME&gt;SHOP&lt;/NAME&gt;
                &lt;UID&gt;{8E549CA7-CE73-418E-B2AD-743BA1AE7264}&lt;/UID&gt;
                &lt;SORT&gt;0&lt;/SORT&gt;
                &lt;COLOR /&gt;
                &lt;MERKMAL&gt;
                    &lt;ID&gt;2280&lt;/ID&gt;
                    &lt;PARENTID&gt;2277&lt;/PARENTID&gt;
                    &lt;NAME&gt;Enterprise Linie&lt;/NAME&gt;
                    &lt;UID&gt;{C412C2E2-290F-4ECE-AA68-A06F42866C69}&lt;/UID&gt;
                    &lt;SORT&gt;0&lt;/SORT&gt;
                    &lt;COLOR&gt;536870911&lt;/COLOR&gt;
                    &lt;MERKMAL&gt;
                        &lt;ID&gt;2297&lt;/ID&gt;
                        &lt;PARENTID&gt;2280&lt;/PARENTID&gt;
                        &lt;NAME&gt;Ausstattungspakete&lt;/NAME&gt;
                        &lt;UID&gt;{49561AFA-404B-4F1E-AC40-8F93BCC949E7}&lt;/UID&gt;
                        &lt;SORT&gt;1&lt;/SORT&gt;
                        &lt;COLOR&gt;536870911&lt;/COLOR&gt;
                    &lt;/MERKMAL&gt;
                    ...</dev:code>
        <dev:remarks>
          <maml:para>This example demonstrates how to export articles using the Eulanda standard XML structure. The function is called with the -filter parameter to specify a range of article numbers to export. The -customerGroups parameter is used to specify which customer groups to use for pricing. The -udl parameter specifies the location of the UDL file for connecting to the Eulanda database. The resulting XML file is saved to the desktop. The output XML file contains metadata and a property tree with the article data.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Export-ArticleToXml.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Export-DeliveryToXml</command:name>
      <command:verb>Export</command:verb>
      <command:noun>DeliveryToXml</command:noun>
      <maml:description>
        <maml:para>This PowerShell function exports a delivery bill including its line items to an XML file. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Export-DeliveryToXml.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The delivery note to be exported is selected either by the ID or the delivery note number. You can specify the XML root node via $root. Additionally `-arrRoot` can be specified. The positions are then appended to this.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Export-DeliveryToXml</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>sql</maml:name>
          <maml:description>
            <maml:para>This string array is pre-populated by default with an SQL SELECT statement for the delivery note and the delivery note position, so it does not need to be specified. However, if you want to include a field selection or new fields, such as calculated or combined fields, in the XML, you can specify this SQL statement here as an array. The first element is the master, which is the delivery note header, and the second array element is the SELECT statement to select the corresponding positions. The positions are implicitly sorted by the first field of the position, which is normally the delivery note position. The field name is then ID.ALIAS.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>A path is a combination of the drive letter, share, subfolders, and the filename of the resource, for example, a XML file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>includeEmpty</maml:name>
          <maml:description>
            <maml:para>Normally, empty nodes or nodes with a value of null are not exported. This switch allows for exporting of these nodes as well.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>includeEmpty</maml:name>
        <maml:description>
          <maml:para>Normally, empty nodes or nodes with a value of null are not exported. This switch allows for exporting of these nodes as well.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>A path is a combination of the drive letter, share, subfolders, and the filename of the resource, for example, a XML file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>sql</maml:name>
        <maml:description>
          <maml:para>This string array is pre-populated by default with an SQL SELECT statement for the delivery note and the delivery note position, so it does not need to be specified. However, if you want to include a field selection or new fields, such as calculated or combined fields, in the XML, you can specify this SQL statement here as an array. The first element is the master, which is the delivery note header, and the second array element is the SELECT statement to select the corresponding positions. The positions are implicitly sorted by the first field of the position, which is normally the delivery note position. The field name is then ID.ALIAS.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. You cannot pipe objects</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ EXAMPLE 1:Exports a delivery bill as an xml file. ------</maml:title>
        <dev:code>PS C:\&gt; Export-DeliveryToXml -deliveryNo 430220 -includeEmpty -path "C:\Temp\Result.xml"</dev:code>
        <dev:remarks>
          <maml:para>This operation creates an XML output containing the details of a specific delivery note, including its associated header and line items. the metadata and the EULANDA root. Because the switch `-includeEmpty` was set, also empty fields were exported. An example of an export can be found under XML Delivery Note (../appendix/XmlDeliveryNote.md).</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Export-DeliveryToXml.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Export-PropertyToXml</command:name>
      <command:verb>Export</command:verb>
      <command:noun>PropertyToXml</command:noun>
      <maml:description>
        <maml:para>This PowerShell function exports the entire property tree starting from a specified path in a hierarchical xml structure. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Export-PropertyToXml.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Exports the complete property tree starting from a certain path in a hierarchical structure. The `-npEmptyPropertyTree` parameter can be used to specify that the node should be completely omitted if no data is found to be exported due to the specified parameters. If a path is specified, the XML file is saved there, otherwise the XML structure is returned as an XML string.</maml:para>
      <maml:para>Access to the database is done either via an ADO COM object, a connection string, or a UDL file.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Export-PropertyToXml</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>breadcrumbPath</maml:name>
          <maml:description>
            <maml:para>Specifies the root of a property tree path starting with a backslash ``. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used the tree from that point.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>tablename</maml:name>
          <maml:description>
            <maml:para>The parameter specifies the name of the table for which the property tree should be exported. Currently, three tables are supported: Article, Address, and Delivery. The valid table names can be retrieved using the `Get-MappingTablename` function, which allows input in both the native and English names.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>The parameter `-path` specifies the path and filename of the XML file to be exported. The default value is the current directory. If a file with the same name already exists, it will be overwritten. The file path must be valid and accessible for writing.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noEmptyPropertyTree</maml:name>
          <maml:description>
            <maml:para>If this switch is set, the property is only displayed if child elements are found in the database. Otherwise, an empty XML tag with a subfield is output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>breadcrumbPath</maml:name>
        <maml:description>
          <maml:para>Specifies the root of a property tree path starting with a backslash ``. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used the tree from that point.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noEmptyPropertyTree</maml:name>
        <maml:description>
          <maml:para>If this switch is set, the property is only displayed if child elements are found in the database. Otherwise, an empty XML tag with a subfield is output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>The parameter `-path` specifies the path and filename of the XML file to be exported. The default value is the current directory. If a file with the same name already exists, it will be overwritten. The file path must be valid and accessible for writing.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>tablename</maml:name>
        <maml:description>
          <maml:para>The parameter specifies the name of the table for which the property tree should be exported. Currently, three tables are supported: Article, Address, and Delivery. The valid table names can be retrieved using the `Get-MappingTablename` function, which allows input in both the native and English names.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Exports the property tree of articles as xml ----</maml:title>
        <dev:code>PS C:\&gt; Export-PropertyToXml -breadcrumbPath '\shop' -tablename 'Article' -udl 'C:\temp\Eulanda_1 JohnDoe.udl'
 
&lt;EULANDA&gt;
    &lt;METADATA&gt;
        &lt;VERSION&gt;2.3.15&lt;/VERSION&gt;
        &lt;GENERATOR&gt;EulandaConnect&lt;/GENERATOR&gt;
        &lt;DATEFORMAT&gt;ISO8601&lt;/DATEFORMAT&gt;
        &lt;FLOATFORMAT&gt;US&lt;/FLOATFORMAT&gt;
        &lt;COUNTRYFORMAT&gt;ISO2&lt;/COUNTRYFORMAT&gt;
        &lt;FIELDNAMES&gt;NATIVE&lt;/FIELDNAMES&gt;
        &lt;DATE&gt;2023-03-22T16:41:43&lt;/DATE&gt;
        &lt;PCNAME&gt;DOE-PC&lt;/PCNAME&gt;
        &lt;USERNAME&gt;JOHN&lt;/USERNAME&gt;
    &lt;/METADATA&gt;
    &lt;MERKMALBAUM&gt;
        &lt;ARTIKEL&gt;
            &lt;MERKMAL&gt;
                &lt;ID&gt;133&lt;/ID&gt;
                &lt;PARENTID&gt;47&lt;/PARENTID&gt;
                &lt;NAME&gt;SHOP&lt;/NAME&gt;
                &lt;UID&gt;{1D3C5272-BB5F-4B63-88E4-B48F11FE7695}&lt;/UID&gt;
                &lt;SORT&gt;0&lt;/SORT&gt;
                &lt;COLOR /&gt;
                &lt;MERKMAL&gt;
                    &lt;ID&gt;166&lt;/ID&gt;
                    &lt;PARENTID&gt;133&lt;/PARENTID&gt;
                    &lt;NAME&gt;Ausstattung&lt;/NAME&gt;
                    &lt;UID&gt;{0628D2F7-BBC0-4A55-B340-1CEA90945D10}&lt;/UID&gt;
                    &lt;SORT&gt;0&lt;/SORT&gt;
                    &lt;COLOR&gt;536870911&lt;/COLOR&gt;
                    &lt;MERKMAL&gt;
                        &lt;ID&gt;171&lt;/ID&gt;
                        &lt;PARENTID&gt;166&lt;/PARENTID&gt;
                        &lt;NAME&gt;Pinsel&lt;/NAME&gt;
                        &lt;UID&gt;{033C07ED-63DA-4331-B3CD-DCB5A05597B2}&lt;/UID&gt;
                        &lt;SORT&gt;0&lt;/SORT&gt;
                        &lt;COLOR&gt;536870911&lt;/COLOR&gt;
                        ...</dev:code>
        <dev:remarks>
          <maml:para>Exports the property tree of articles under the specified breadcrumb path in XML format using the UDL file specified.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Export-PropertyToXml.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Export-StockToXml</command:name>
      <command:verb>Export</command:verb>
      <command:noun>StockToXml</command:noun>
      <maml:description>
        <maml:para>This PowerShell function exports the stock level to an XML file. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Export-StockToXml.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The quantities of individual warehouses can be exported individually or as a whole. In addition to your own warehouses, you can also export the stock levels of suppliers warehouses as an XML file.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Export-StockToXml</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>filter</maml:name>
          <maml:description>
            <maml:para>The filters are passed as an array of strings and refer to the native field names of the article table. They can contain single logical operators in PowerShell syntax. All filters are joined by logical AND. So the result set becomes smaller with the number of filters.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>alias</maml:name>
          <maml:description>
            <maml:para>Historically, the article number is always used as the unique field. However, there are other unique fields in the article table such as the `ID` and the `UID`. In addition, the barcode can be such a field, if this is changed user-specifically to uniqueness in the database. The XML file always contains `ID.ALIAS` as field name, but now related to one of the new possible field names. Allowed values are: `ID`, `UID`, `ARTNUMBER` and `BARCODE`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>qtyStatic</maml:name>
          <maml:description>
            <maml:para>Regardless of the actual stock quantities, this can be overwritten by a static specification. All outputs will then contain this static value. The idea behind this is that you can transmit stock figures to an online store in this way, for example, so that you can place and test orders in the store even without stock.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>warehouse</maml:name>
          <maml:description>
            <maml:para>The name of the warehouse, which must be located in the account area 1000-1399 in inventory management.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>A path is a combination of the drive letter, share, subfolders, and the filename of the resource, for example, a XML file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>legacy</maml:name>
          <maml:description>
            <maml:para>Historically, three fields are always output during warehouse data transfer as xml file. One that contains the total stock of all warehouses, one that lists this quantity minus all sales orders and one that also takes into account the purchase orders. If, for example, only one storage location is to be output, the other two values are also output if the legacy switch is activated; in this case, however, always with the same stock level.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>alias</maml:name>
        <maml:description>
          <maml:para>Historically, the article number is always used as the unique field. However, there are other unique fields in the article table such as the `ID` and the `UID`. In addition, the barcode can be such a field, if this is changed user-specifically to uniqueness in the database. The XML file always contains `ID.ALIAS` as field name, but now related to one of the new possible field names. Allowed values are: `ID`, `UID`, `ARTNUMBER` and `BARCODE`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>filter</maml:name>
        <maml:description>
          <maml:para>The filters are passed as an array of strings and refer to the native field names of the article table. They can contain single logical operators in PowerShell syntax. All filters are joined by logical AND. So the result set becomes smaller with the number of filters.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>legacy</maml:name>
        <maml:description>
          <maml:para>Historically, three fields are always output during warehouse data transfer as xml file. One that contains the total stock of all warehouses, one that lists this quantity minus all sales orders and one that also takes into account the purchase orders. If, for example, only one storage location is to be output, the other two values are also output if the legacy switch is activated; in this case, however, always with the same stock level.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>A path is a combination of the drive letter, share, subfolders, and the filename of the resource, for example, a XML file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>qtyStatic</maml:name>
        <maml:description>
          <maml:para>Regardless of the actual stock quantities, this can be overwritten by a static specification. All outputs will then contain this static value. The idea behind this is that you can transmit stock figures to an online store in this way, for example, so that you can place and test orders in the store even without stock.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>warehouse</maml:name>
        <maml:description>
          <maml:para>The name of the warehouse, which must be located in the account area 1000-1399 in inventory management.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. You cannot pipe objects</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>EXAMPLE 1:Exports the quantities of the CHICAGO warehouse to an XML file</maml:title>
        <dev:code>PS C:\&gt; Export-StockToXml -path "C:\Temp\Stock.xml" -udl "C:\temp\Eulanda_1 JohnDoe.udl" -filter @("Barcode &gt;= '1000000'", "Barcode &lt;= '8888889'") -alias 'BARCODE' -warehouse 'CHICAGO'
 
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;EULANDA&gt;
  &lt;METADATA&gt;
    &lt;VERSION&gt;1.22&lt;/VERSION&gt;
    &lt;GENERATOR&gt;EulandaConnect&lt;/GENERATOR&gt;
    &lt;DATEFORMAT&gt;ISO8601&lt;/DATEFORMAT&gt;
    &lt;FLOATFORMAT&gt;US&lt;/FLOATFORMAT&gt;
    &lt;COUNTRYFORMAT&gt;ISO2&lt;/COUNTRYFORMAT&gt;
    &lt;FIELDNAMES&gt;NATIVE&lt;/FIELDNAMES&gt;
    &lt;DATE&gt;2023-02-13T09:44:46&lt;/DATE&gt;
    &lt;PCNAME&gt;SURFACE&lt;/PCNAME&gt;
    &lt;USERNAME&gt;JD&lt;/USERNAME&gt;
  &lt;/METADATA&gt;
  &lt;ARTIKELLISTE&gt;
    &lt;ARTIKEL&gt;
      &lt;ID.ALIAS&gt;3102069&lt;/ID.ALIAS&gt;
      &lt;LAGER&gt;
        &lt;BESTANDVERFUEGBAR&gt;5500.0000&lt;/BESTANDVERFUEGBAR&gt;
      &lt;/LAGER&gt;
    &lt;/ARTIKEL&gt;
    &lt;ARTIKEL&gt;
      &lt;ID.ALIAS&gt;3102070&lt;/ID.ALIAS&gt;
      &lt;LAGER&gt;
        &lt;BESTANDVERFUEGBAR&gt;57100.0000&lt;/BESTANDVERFUEGBAR&gt;
      &lt;/LAGER&gt;
    &lt;/ARTIKEL&gt;
    &lt;ARTIKEL&gt;
      &lt;ID.ALIAS&gt;3102071&lt;/ID.ALIAS&gt;
      &lt;LAGER&gt;
        &lt;BESTANDVERFUEGBAR&gt;16100.0000&lt;/BESTANDVERFUEGBAR&gt;
      &lt;/LAGER&gt;
    &lt;/ARTIKEL&gt;
    &lt;ARTIKEL&gt;
      &lt;ID.ALIAS&gt;3102113&lt;/ID.ALIAS&gt;
      &lt;LAGER&gt;
        &lt;BESTANDVERFUEGBAR&gt;31538.0000&lt;/BESTANDVERFUEGBAR&gt;
      &lt;/LAGER&gt;
    &lt;/ARTIKEL&gt;
  &lt;/ARTIKELLISTE&gt;
&lt;/EULANDA&gt;</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Export-StockToXml.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Find-MssqlServer</command:name>
      <command:verb>Find</command:verb>
      <command:noun>MssqlServer</command:noun>
      <maml:description>
        <maml:para>This PowerShell function searches for all SQL-Servers in a specified IP range. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Find-MssqlServer.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function searches for all SQL-Servers in a specified IP range and returns the found IPs, Instance Name, the found SQL-Server Version and if TCP is enabled. The output is a PSCustomObject and is directly compatible for piping into an `Out-GridView`. Alternatively, you can specify only the `-fromIP`, then a single broadcast is sent. If nothing is specified, the local network configuration is evaluated (network ID and CIDR) and the entire subnet is scanned.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Find-MssqlServer</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>localIp</maml:name>
          <maml:description>
            <maml:para>If the local IP is not specified, the SQL servers are searched on the local PC, if you specify 0.0.0.0, the local network is searched. The network interface assigned to the default gateway is used here.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>remoteIp</maml:name>
          <maml:description>
            <maml:para>If you know of a remote IP that is bound on one of your network interfaces but is not on the local network, you can specify it. This is often a VPN connection to a remote SQL server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>udpPort</maml:name>
          <maml:description>
            <maml:para>Specifies the port number to scan for SQL Browser services. The default value is 1434 for the standard UDP-Port of the SQL-Browser service.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>timeoutSeconds</maml:name>
          <maml:description>
            <maml:para>Specifies the maximum time in seconds to wait for a response from IP address. The default value is 2 seconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>localIp</maml:name>
        <maml:description>
          <maml:para>If the local IP is not specified, the SQL servers are searched on the local PC, if you specify 0.0.0.0, the local network is searched. The network interface assigned to the default gateway is used here.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>remoteIp</maml:name>
        <maml:description>
          <maml:para>If you know of a remote IP that is bound on one of your network interfaces but is not on the local network, you can specify it. This is often a VPN connection to a remote SQL server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>timeoutSeconds</maml:name>
        <maml:description>
          <maml:para>Specifies the maximum time in seconds to wait for a response from IP address. The default value is 2 seconds.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>udpPort</maml:name>
        <maml:description>
          <maml:para>Specifies the port number to scan for SQL Browser services. The default value is 1434 for the standard UDP-Port of the SQL-Browser service.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1:This will display the output in a table format ---</maml:title>
        <dev:code>PS C:\&gt; Find-MssqlServer | Format-Table
 
Ip ServerName InstanceName IsClustered Version tcp np
-- ---------- ------------ ----------- ------- --- --
192.168.178.10 STUDIO EULANDA No 12.0.6024.0 60983 \\STUDIO\pipe\MSSQL$EULANDA\sql\query
192.168.178.10 STUDIO SQL2019 No 15.0.2000.5 61310 \\STUDIO\pipe\MSSQL$SQL2019\sql\query
192.168.178.16 GO EULANDA No 15.0.2000.5 52894 \\GO\pipe\MSSQL$EULANDA\sql\query</dev:code>
        <dev:remarks>
          <maml:para>Without specifying any parameters, the function will scan the entire subnet for SQL-Servers. The output can be piped to an `Out-GridView`. Instead of sending the output of `Find-MssqlServer` to a `GridView`, it can be formatted and displayed on the console using `Format-Table`, `Format-List`, or other formatting cmdlets.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>--- Example 2:This will display the output in a table format ---</maml:title>
        <dev:code>PS C:\&gt; Find-MssqlBrowser -fromIp (Get-LocalIp) -toIp (Get-LocalIp)
 
Ip : 192.168.178.10
ServerName : STUDIO
InstanceName : EULANDA
IsClustered : No
Version : 12.0.6024.0
tcp : 60983
np : \\STUDIO\pipe\MSSQL$EULANDA\sql\query
 
Ip : 192.168.178.20
ServerName : STUDIO
InstanceName : SQL2019
IsClustered : No
Version : 15.0.2000.5
tcp : 61310
np : \\STUDIO\pipe\MSSQL$SQL2019\sql\query</dev:code>
        <dev:remarks>
          <maml:para>Displays the local instances found through the SQL Browser service. The local IP is obtained through the `Get-LocalIp` function.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Find-MssqlServer.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Format-Xml</command:name>
      <command:verb>Format</command:verb>
      <command:noun>Xml</command:noun>
      <maml:description>
        <maml:para>This PowerShell function formats or beautifies an XML string or file by applying indentation and encoding. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Format-Xml.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Format-Xml` function formats an XML string or file by applying indentation and encoding. If the `xmlString` parameter is provided, the function formats it as an XML string. If the `pathIn` parameter is provided, the function reads the content of the XML file and formats it. The formatted XML output can be either returned or saved to a file, as specified by the `pathOut` parameter.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Format-Xml</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>xmlString</maml:name>
          <maml:description>
            <maml:para>Specifies the XML string to format. This parameter is mutually exclusive with the `pathIn` parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>pathIn</maml:name>
          <maml:description>
            <maml:para>Specifies the path to the XML file to format. This parameter is mutually exclusive with the `xmlString` parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>pathOut</maml:name>
          <maml:description>
            <maml:para>Specifies the path to the file where the formatted XML will be saved. If this parameter is not provided, the formatted XML will be returned as a string.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>removeDecoration</maml:name>
          <maml:description>
            <maml:para>If this parameter is set, the declaration will always be removed, even if it not was originally present in the input XML.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>setDecoration</maml:name>
          <maml:description>
            <maml:para>The parameter adds the XML declaration to the output XML string. If this parameter is set, the declaration will always be added, regardless of whether it was originally present in the input XML or not. The outfput encoding is always utf8, so the decoration is like: &lt;?xml version="1.0" encoding="utf-8" standalone="yes"?&gt;.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>pathIn</maml:name>
        <maml:description>
          <maml:para>Specifies the path to the XML file to format. This parameter is mutually exclusive with the `xmlString` parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>pathOut</maml:name>
        <maml:description>
          <maml:para>Specifies the path to the file where the formatted XML will be saved. If this parameter is not provided, the formatted XML will be returned as a string.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>removeDecoration</maml:name>
        <maml:description>
          <maml:para>If this parameter is set, the declaration will always be removed, even if it not was originally present in the input XML.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>setDecoration</maml:name>
        <maml:description>
          <maml:para>The parameter adds the XML declaration to the output XML string. If this parameter is set, the declaration will always be added, regardless of whether it was originally present in the input XML or not. The outfput encoding is always utf8, so the decoration is like: &lt;?xml version="1.0" encoding="utf-8" standalone="yes"?&gt;.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>xmlString</maml:name>
        <maml:description>
          <maml:para>Specifies the XML string to format. This parameter is mutually exclusive with the `pathIn` parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1:Format an XML string and output it to the console -</maml:title>
        <dev:code>PS C:\&gt; Format-Xml -xmlString "&lt;root&gt;&lt;child&gt;Hello John Doe!&lt;/child&gt;&lt;/root&gt;" -setDecoration
 
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;root&gt;
    &lt;child&gt;Hello John Doe!&lt;/child&gt;
&lt;/root&gt;</dev:code>
        <dev:remarks>
          <maml:para>Format an XML string and output it to the console.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---- Example 2:Format an XML file and save it to a new file ----</maml:title>
        <dev:code>PS C:\&gt; Format-Xml -pathIn "C:\xml\source.xml" -pathOut "C:\xml\formatted.xml" -removeDecoration
 
&lt;root&gt;
    &lt;child&gt;Hello John Doe!&lt;/child&gt;
&lt;/root&gt;</dev:code>
        <dev:remarks>
          <maml:para>The function `Format-Xml` formats an XML file and saves it to a new file. The content of the file is passed as input and has no decoration.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----- Example 3:Format an XML string and save it to a file -----</maml:title>
        <dev:code>PS C:\&gt; Format-Xml -xmlString "&lt;root&gt;&lt;child/&gt;&lt;/root&gt;" -pathOut "C:\xml\formatted.xml"</dev:code>
        <dev:remarks>
          <maml:para>Format an XML string and save it to a file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Format-Xml.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-AddressId</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AddressId</command:noun>
      <maml:description>
        <maml:para>This PowerShell function returns the `ID` of an address based on its unique field like addressMatch, addressId or addressUid of the EULANDA merchandise management system. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-AddressId.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function returns the id of the address using the parameter `Match`. The field `Match` is unique in the address table. Via the switch `like` it can be achieved that the parameter `Match` is considered as `search word `. This can be useful in certain scenarios. Alternatively, the `ID` can be set instead of the `Match` parameter. In this case the function returns the same value if the record could be found. If no value is found, $null is returned, otherwise the found `Id`. If more than one address is found when using the `like` switch, an exception * is thrown.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-AddressId</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>addressMatch</maml:name>
          <maml:description>
            <maml:para>The parameter `-addressMatch` is a match code in the EULANDA ERP system, which also serves as a search term but as a unique search field. It is practical because it is easily readable and understandable, and is often used to compare data with external systems. The match code is used to search for a specific address, to ensure that the searched address is unique and valid.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>addressId</maml:name>
          <maml:description>
            <maml:para>The `AddressId` is a unique key in the table. It is usually used only internally to link tables together. Although the function already returns the ID, it can still be useful to search for it, specifically to determine if the ID is valid and a record can be found with it.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>addressUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `addressUid` parameter is used to specify the UID of the address to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>like</maml:name>
          <maml:description>
            <maml:para>The switch like specifies that the address is to be fuzzy searched using the `Match` field. The beginning of the match must be exact, the remaining part is a wildcard, e.g. 'Match*'.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>addressId</maml:name>
        <maml:description>
          <maml:para>The `AddressId` is a unique key in the table. It is usually used only internally to link tables together. Although the function already returns the ID, it can still be useful to search for it, specifically to determine if the ID is valid and a record can be found with it.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>addressMatch</maml:name>
        <maml:description>
          <maml:para>The parameter `-addressMatch` is a match code in the EULANDA ERP system, which also serves as a search term but as a unique search field. It is practical because it is easily readable and understandable, and is often used to compare data with external systems. The match code is used to search for a specific address, to ensure that the searched address is unique and valid.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>addressUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `addressUid` parameter is used to specify the UID of the address to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>like</maml:name>
        <maml:description>
          <maml:para>The switch like specifies that the address is to be fuzzy searched using the `Match` field. The beginning of the match must be exact, the remaining part is a wildcard, e.g. 'Match*'.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1:Returns the ID in case of wildcard search -----</maml:title>
        <dev:code>PS C:\&gt; Get-AddressId -match 'JOHN' -like -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>Here the ID of the desired address is returned, even if the address would be stored in the database as 'JOHN DOE', because the like-switch allows this variant of the search.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-AddressId.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-AddressSql</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AddressSql</command:noun>
      <maml:description>
        <maml:para>This PowerShell function generates a SQL statement for selecting addresses from the database based on the specified selection criteria. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-AddressSql.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `select` parameter is used to specify the list of columns to be retrieved, while the `filter` parameter is used to specify the filter criteria. The `order` parameter is used to specify the order in which the results are sorted. The `-strCase` parameter specifies the case of the field names in the select statement. The `alias` parameter is used to specify an alias for the key field, which is normally the field `match`. The `noIdAlias` parameter is used to specify whether the ID.ALIAS column should be included in the output list of fields. The `limit` parameter is used to specify the maximum number of rows to return, while the `reorder` and `revers` parameters are used to specify whether the field names should be reordered (alphabetically) or reversed if the records should be in reverse order.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-AddressSql</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>select</maml:name>
          <maml:description>
            <maml:para>By default, all fields intended for output are retrieved. However, select can be used to specify a comma-separated list of the desired field names.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>alias</maml:name>
          <maml:description>
            <maml:para>The alias is historically the field 'Match' of the address table. In an XML output the node is always 'ID.ALIAS'. This alias is used to uniquely associate the record and can now refer to another unique field. Currently these are UID, ID, and MATCH.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>filter</maml:name>
          <maml:description>
            <maml:para>The filter is an array of strings and the filtering refers to the master dataset. Each row of the array is added individually to the existing filters via logical AND. By default, records whose match starts with '.MUSTER' are hidden. For example, a filter could be "MATCH &lt;&gt; 'BOND'".</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>limit</maml:name>
          <maml:description>
            <maml:para>Limits the number of records output.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noIdAlias</maml:name>
          <maml:description>
            <maml:para>The special field 'ID.ALIAS' is not output, normally it is the first field of the output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>order</maml:name>
          <maml:description>
            <maml:para>The field by which the output is to be sorted. If nested sorting is required, multiple field names can be specified comma-separated.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>reorder</maml:name>
          <maml:description>
            <maml:para>The list of field names can be sorted in the output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>revers</maml:name>
          <maml:description>
            <maml:para>The output of the record sorting can be done backwards.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>strCase</maml:name>
          <maml:description>
            <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
            <maml:para>This specification refers to the field names.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">none</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">upper</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">lower</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">capital</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>alias</maml:name>
        <maml:description>
          <maml:para>The alias is historically the field 'Match' of the address table. In an XML output the node is always 'ID.ALIAS'. This alias is used to uniquely associate the record and can now refer to another unique field. Currently these are UID, ID, and MATCH.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>filter</maml:name>
        <maml:description>
          <maml:para>The filter is an array of strings and the filtering refers to the master dataset. Each row of the array is added individually to the existing filters via logical AND. By default, records whose match starts with '.MUSTER' are hidden. For example, a filter could be "MATCH &lt;&gt; 'BOND'".</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>limit</maml:name>
        <maml:description>
          <maml:para>Limits the number of records output.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noIdAlias</maml:name>
        <maml:description>
          <maml:para>The special field 'ID.ALIAS' is not output, normally it is the first field of the output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>order</maml:name>
        <maml:description>
          <maml:para>The field by which the output is to be sorted. If nested sorting is required, multiple field names can be specified comma-separated.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>reorder</maml:name>
        <maml:description>
          <maml:para>The list of field names can be sorted in the output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>revers</maml:name>
        <maml:description>
          <maml:para>The output of the record sorting can be done backwards.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>select</maml:name>
        <maml:description>
          <maml:para>By default, all fields intended for output are retrieved. However, select can be used to specify a comma-separated list of the desired field names.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>strCase</maml:name>
        <maml:description>
          <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
          <maml:para>This specification refers to the field names.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Generates an SQL statement for selecting addresses from the database</maml:title>
        <dev:code>PS C:\&gt; Get-AddressSql -select 'Name1,Name2,Name3,Strasse,Ort' -filter "Match = 'EULANDA'"
 
SELECT Match [ID.ALIAS], Match,Name1,Name2,Name3,Strasse,Ort FROM (
        SELECT
 
        /* KEYS */
        Id, Match, [Uid],
 
        /* IDENTIFIER */
        IsNull(FremdRefNr, '') [FremdRefNr], IsNull(FremdNr, 0) [FremdNr],
        IsNull(Fibukonto,0) [Fibukonto], IsNull(ILN,0) [ILN],
 
        /* GROUPS */
        IsNull(AdresseGr,'') [AdresseGr],
 
        /* ADDRESS */
        IsNull(Name1, '') [Name1], IsNull(Name2, '') [Name2], IsNull(Name3, '') [Name3],
        IsNull(Strasse, '') [Strasse], IsNull(Plz, '') [Plz], IsNull(Ort, '') [Ort],
        RTrim(LTrim(IsNull(Land, ''))) [Land],
 
        /* COMMUNICATION */
        IsNull(EMail, '') [EMail], IsNull(Tel, '') [Tel], IsNull(Fax, '') [Fax], IsNull(Auto, '') [Auto],
        IsNull(Homepage, '') [Homepage],
 
        /* CURRENCY */
        IsNull(Rabatt, '') [Rabatt], IsNull(UstId, '') [UstId], IsNull(SteuerNr, '') [SteuerNr],
        IsNull(BankIBAN, '') [BankIBAN], IsNull(BankBIC, '') [BankBIC],
 
        /* DESCRIPTION */
        IsNull(Karteikarte,'') [Karteikarte],
 
        /* OTHER */
        IsNull(Warnung,'') [Warnung]
 
        FROM Adresse
 
        WHERE ( RTrim(LTrim(IsNull(Match,''))) &lt;&gt; '') AND Match = 'EULANDA'
        ) Dummy
 
        ORDER BY dummy.Match</dev:code>
        <dev:remarks>
          <maml:para>This command generates a SQL statement that selects the columns `Name1`, `Name2`, `Name3`, `Strasse`, and `Ort` from the `Adresse` table where the `Match` column equals `'EULANDA'`. The resulting SQL statement is then executed against the database, and the results are returned as a PowerShell object.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-AddressSql.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-AdoRs</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AdoRs</command:noun>
      <maml:description>
        <maml:para>This PowerShell function returns the first valid and opened recordset due to a query. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-AdoRs.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>It takes an ADO recordset as parameter and iterates until an open one is found. If no data is found, $null is returned.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-AdoRs</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>recordset</maml:name>
          <maml:description>
            <maml:para>This is the recordset that contains, among other things, the query. However, it may contain other recordsets.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>recordset</maml:name>
        <maml:description>
          <maml:para>This is the recordset that contains, among other things, the query. However, it may contain other recordsets.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; $myConn= Get-Conn -udl "C:\temp\Eulanda_1 JohnDoe.udl"
PS C:\&gt; $rs= Get-AdoRs -recordset $myConn.Execute('SELECT * FROM Artikel')
PS C:\&gt; if ($rs) { Write-Host $rs.fields('ArtMatch').value }</dev:code>
        <dev:remarks>
          <maml:para>Here a recordset is used, which is taken as the result of the `execute` method of the connection. Under certain circumstances, several resultsets are delivered with ADO. Get-AdoRs iterates internally with `NextRecordSet` through the different results and returns the first opened recordset. This is usually the one you are looking for.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-AdoRs.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ArticleId</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ArticleId</command:noun>
      <maml:description>
        <maml:para>This PowerShell function the `Id` of the article based on its barcode or article number. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-ArticleId.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Based on the parameter `Barcode` or `ArticleNo` the `Id` of the found article is returned. If neither a barcode nor the article number is specified, an exception is thrown.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ArticleId</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>Returns the `Id` of the found article. The search is performed using the barcode (= GTIN) of the article. </maml:para>
            <maml:para>&gt; Normally this barcode is defined ambiguously in the database. It is accordingly necessary to define the field in the database as unique.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>Returns the `Id` of the found article. The search is performed using the barcode (= GTIN) of the article. </maml:para>
          <maml:para>&gt; Normally this barcode is defined ambiguously in the database. It is accordingly necessary to define the field in the database as unique.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1:Returns the ID based on an article number -----</maml:title>
        <dev:code>PS C:\&gt; Get-ArticleId -articleNo '4711' -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>Returns the `Id` of the found article. The search is done here via the article number. Alternatively, the `Barcode` parameter can be used for the search.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-ArticleId.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ArticleNo</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ArticleNo</command:noun>
      <maml:description>
        <maml:para>This PowerShell function returns the article number based on an ID or barcode. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-ArticleNo.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This can be used to determine the article number of an article. The search can be made either via its Id or its barcode (= GTIN). In case of a barcode search, the database should be modified, since the barcode is defined ambiguously by default. If neither a `barcode` nor an `Id` is passed, the function throws an exception .</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ArticleNo</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1:Returns the article number based on a GTIN -----</maml:title>
        <dev:code>PS C:\&gt; Get-ArticleNo -barcode '4014751021005' -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>The function returns the Id of the article with the barcode number (= GTIN) '4014751021005'. In this example, the database is opened via a UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-ArticleNo.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ArticlePackingUnit</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ArticlePackingUnit</command:noun>
      <maml:description>
        <maml:para>This PowerShell function returns the packaging unit based on the `ArticleId`. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-ArticlePackingUnit.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function returns the packaging unit for an article searched by its ID. The packing unit indicates how many pieces of an item are in a box.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ArticlePackingUnit</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Returns the packaging unit by reference to an ArticleId</maml:title>
        <dev:code>PS C:\&gt; Get-ArticlePackingUnit -articleId 4711 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>Returns the packaging unit based on the `Id` of an article. The database access is done by specifying a UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-ArticlePackingUnit.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ArticleSql</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ArticleSql</command:noun>
      <maml:description>
        <maml:para>This PowerShell function creates an SQL command to retrieve a articles. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-ArticleSql.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Generates an SQL command which by default retrieves all fields of the table and uses the article number as `ID.ALIAS`. The result of the function is always an array, even if only a single SQL command is returned as result here. This makes all functions of this type compatible with other functions like `Get-DataFromSql`. </maml:para>
      <maml:para>If not all fields are to be selected, the desired fields can be specified comma-separated via the `select` parameter. </maml:para>
      <maml:para>With the parameter `filter` simple restrictions can be defined in an array. For example that only a certain range of article numbers should be selected.</maml:para>
      <maml:para>Sorting is done by default according to the alias field, which is the article number if nothing is specified. But with the parameter 'order' other fields can be used. Also fields which are not contained in the select list. Again, multiple nested sorting can be done by specifying a comma separated field list.</maml:para>
      <maml:para>The parameter strCase allows to output field names in uppercase letters, for example. Further details can be found in the parameters section.</maml:para>
      <maml:para>The historical XML format uses ID.ALIAS as a special alias to find an article by a unique key. The alias can also be set to other unique fields. A list of these can be found in the parameters. The field [`ID.Alias`] is set to the beginning of the output by default. But it can be suppressed by the switch `noIdAlias`. </maml:para>
      <maml:para>If you want only a small part of the result set, you can limit it with the `limit` parameter. If the value is set to `0`, there will be no data results, but you can retrieve the field list.</maml:para>
      <maml:para>By `reorder` the field list is output alphabetically sorted and by the switch `revers` the sorting of the records can be reversed.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ArticleSql</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>select</maml:name>
          <maml:description>
            <maml:para>By default, all fields intended for output are retrieved. However, select can be used to specify a comma-separated list of the desired field names.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>filter</maml:name>
          <maml:description>
            <maml:para>The filter is an array of strings and the filtering refers to the master dataset. Each row of the array is added individually to the existing filters via logical AND. By default, items whose item number starts with '.MUSTER' are hidden. For example, a filter could be "BARCODE &lt;&gt; '4711'".</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>strCase</maml:name>
          <maml:description>
            <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
            <maml:para>This specification refers to the field names.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>alias</maml:name>
          <maml:description>
            <maml:para>The alias is historically the field 'ArticleNo' (= phys. ARTNUMBER) of the article table. In an XML output the node is always 'ID.ALIAS'. This alias is used to uniquely associate the record and can now refer to another unique field. Currently these are UID, ID, ARTNUMBER and BARCODE. If BARCODE is used, it must be ensured that the field is unique in the database.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>order</maml:name>
          <maml:description>
            <maml:para>The field by which the output is to be sorted. If nested sorting is required, multiple field names can be specified comma-separated.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>limit</maml:name>
          <maml:description>
            <maml:para>Limits the number of records output.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noIdAlias</maml:name>
          <maml:description>
            <maml:para>The special field 'ID.ALIAS' is not output, normally it is the first field of the output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>reorder</maml:name>
          <maml:description>
            <maml:para>The list of field names can be sorted in the output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>revers</maml:name>
          <maml:description>
            <maml:para>The output of the record sorting can be done backwards.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>alias</maml:name>
        <maml:description>
          <maml:para>The alias is historically the field 'ArticleNo' (= phys. ARTNUMBER) of the article table. In an XML output the node is always 'ID.ALIAS'. This alias is used to uniquely associate the record and can now refer to another unique field. Currently these are UID, ID, ARTNUMBER and BARCODE. If BARCODE is used, it must be ensured that the field is unique in the database.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>filter</maml:name>
        <maml:description>
          <maml:para>The filter is an array of strings and the filtering refers to the master dataset. Each row of the array is added individually to the existing filters via logical AND. By default, items whose item number starts with '.MUSTER' are hidden. For example, a filter could be "BARCODE &lt;&gt; '4711'".</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>limit</maml:name>
        <maml:description>
          <maml:para>Limits the number of records output.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noIdAlias</maml:name>
        <maml:description>
          <maml:para>The special field 'ID.ALIAS' is not output, normally it is the first field of the output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>order</maml:name>
        <maml:description>
          <maml:para>The field by which the output is to be sorted. If nested sorting is required, multiple field names can be specified comma-separated.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>reorder</maml:name>
        <maml:description>
          <maml:para>The list of field names can be sorted in the output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>revers</maml:name>
        <maml:description>
          <maml:para>The output of the record sorting can be done backwards.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>select</maml:name>
        <maml:description>
          <maml:para>By default, all fields intended for output are retrieved. However, select can be used to specify a comma-separated list of the desired field names.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>strCase</maml:name>
        <maml:description>
          <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
          <maml:para>This specification refers to the field names.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; $sql = Get-ArticleSql -filter @('Barcode &gt;= 1000000','Barcode &lt;2000000') -alias Barcode</dev:code>
        <dev:remarks>
          <maml:para>Creates an SQL command that retrieves all item fields. The amount of data is limited by the Barcode field. Only data with a barcode number between 1000000 and 1999999 will be output. The results are sorted by the barcode and the alias is not the default but the Barcode field.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-ArticleSql.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-Bool</command:name>
      <command:verb>Get</command:verb>
      <command:noun>Bool</command:noun>
      <maml:description>
        <maml:para>This PowerShell function converts a string like 0, 1 Ture or False to a Boolean. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-Bool.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function converts a text to a boolean, where '1' and 'True' result in the value $true and all other values result in the value $false.
</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-Bool</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>boolStr</maml:name>
          <maml:description>
            <maml:para>Is the string value to be converted.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>boolStr</maml:name>
        <maml:description>
          <maml:para>Is the string value to be converted.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----------- Example 1:Converts string '1' to $true -----------</maml:title>
        <dev:code>PS C:\&gt; Get-Bool -boolStr '1'
 
# Output
 
True</dev:code>
        <dev:remarks>
          <maml:para>In this example the string with content `1` is passed to the function Get-Bool. This causes the function to return `True`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-Bool.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-BreadcrumbId</command:name>
      <command:verb>Get</command:verb>
      <command:noun>BreadcrumbId</command:noun>
      <maml:description>
        <maml:para>This PowerShell function retrieves the ID of the last breadcrumb element in a given property tree path. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-BreadcrumbId.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This command retrieves the ID of the last element of a breadcrumb path in the property tree. The `breadcrumbPath` parameter specifies the root of the path, which starts with a backslash ``. The `tablename` parameter specifies the name of the table that the property tree refers to. The retrieved ID is used to retrieve corresponding data in the database.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-BreadcrumbId</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>breadcrumbPath</maml:name>
          <maml:description>
            <maml:para>Specifies the root of a property tree path starting with a backslash (``). This parameter is used to search for the corresponding branch in the property tree and retrieve the ID of the ending path element.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>tablename</maml:name>
          <maml:description>
            <maml:para>Specifies the name of the table the property tree is associated with. Currently supported values for `tablename` are `Article`, `Address`, and `Delivery`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>breadcrumbPath</maml:name>
        <maml:description>
          <maml:para>Specifies the root of a property tree path starting with a backslash (``). This parameter is used to search for the corresponding branch in the property tree and retrieve the ID of the ending path element.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>tablename</maml:name>
        <maml:description>
          <maml:para>Specifies the name of the table the property tree is associated with. Currently supported values for `tablename` are `Article`, `Address`, and `Delivery`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Get-BreadcrumbId -breadcrumpPath '\Shop\Profi-Aqua\Make-Up' -tablename 'Article' -udl 'C:\temp\Eulanda_1 JohnDoe.udl'
 
756</dev:code>
        <dev:remarks>
          <maml:para>Returns the ID of the breadcrumb element with the path `\Shop\Profi-Aqua\Make-Up`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-BreadcrumbId.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-BreadcrumbPath</command:name>
      <command:verb>Get</command:verb>
      <command:noun>BreadcrumbPath</command:noun>
      <maml:description>
        <maml:para>This PowerShell function returns the breadcrumb path of a given breadcrumb ID. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-BreadcrumbPath.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-BreadcrumbPath` function retrieves the breadcrumb path of a specific node in the Eulanda property tree. The `breadcrumbId` parameter specifies the ID of the node for which the breadcrumb path is retrieved. The function can access the Eulanda database using either an ADO COM-object, a UDL file or a connection string.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-BreadcrumbPath</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>breadcrumbId</maml:name>
          <maml:description>
            <maml:para>Specifies the ID of the breadcrumb to retrieve the path for.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>breadcrumbId</maml:name>
        <maml:description>
          <maml:para>Specifies the ID of the breadcrumb to retrieve the path for.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------- Example 1:Returns the breadcrumb path of ID 756 -------</maml:title>
        <dev:code>PS C:\&gt; Get-BreadcrumbPath -breadcrumbId 756 -udl 'C:\temp\Eulanda_1 JohnDoe.udl'
 
\Shop\Profi-Aqua\Make-Up</dev:code>
        <dev:remarks>
          <maml:para>Returns the breadcrumb path of the breadcrumb with ID 756 using a UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-BreadcrumbPath.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-BroadcastIp</command:name>
      <command:verb>Get</command:verb>
      <command:noun>BroadcastIp</command:noun>
      <maml:description>
        <maml:para>This PowerShell function calculate the broadcast IP of a given network. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-BroadcastIp.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function `Get-BroadcastIp` is used to calculate the broadcast IP of a given network. This information is commonly used to send a message to all devices within a particular network. The function takes either a network ID, an IP address, a subnet mask, or a CIDR as input parameters, and it returns the broadcast IP for that network.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-BroadcastIp</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>networkId</maml:name>
          <maml:description>
            <maml:para>The network ID of the network for which you want to calculate the broadcast IP.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>An IP address in the network for which you want to calculate the broadcast IP.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>subnet</maml:name>
          <maml:description>
            <maml:para>The subnet mask of the network for which you want to calculate the broadcast IP.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>cidr</maml:name>
          <maml:description>
            <maml:para>The CIDR notation of the network for which you want to calculate the broadcast IP.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>cidr</maml:name>
        <maml:description>
          <maml:para>The CIDR notation of the network for which you want to calculate the broadcast IP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>An IP address in the network for which you want to calculate the broadcast IP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>networkId</maml:name>
        <maml:description>
          <maml:para>The network ID of the network for which you want to calculate the broadcast IP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>subnet</maml:name>
        <maml:description>
          <maml:para>The subnet mask of the network for which you want to calculate the broadcast IP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Returns the broadcast IP address for the network ID 192.168.178.0 /24</maml:title>
        <dev:code>PS C:\&gt; Get-BroadcastIp -networkId 192.168.178.0 -cidr 24
 
# Output
 
192.168.178.255</dev:code>
        <dev:remarks>
          <maml:para>This example returns the broadcast IP address for the network ID 192.168.178.0 with a subnet mask of 255.255.255.0 or the equivalent CIDR of 24. The broadcast IP address is the last address in the network range and is used for sending messages to all devices on the network at once.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-BroadcastIp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-Cidr</command:name>
      <command:verb>Get</command:verb>
      <command:noun>Cidr</command:noun>
      <maml:description>
        <maml:para>This PowerShellfunction calculates the CIDR based on the subnet. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-Cidr.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function calculates the CIDR based on the subnet provided. If no subnet is provided, it attempts to obtain the local IP and the subnet mask from the network interface. The CIDR is a method of representing the subnet mask as a single number that expresses the number of bits in the mask. For example, a subnet mask of 255.255.255.0 can be represented as a CIDR of /24.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-Cidr</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>subnet</maml:name>
          <maml:description>
            <maml:para>(optional): Specifies the subnet mask to be used to calculate the CIDR. If this parameter is not specified, the function will try to determine the local subnet mask based on the local IP address and associated network interface.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>(optional): Specifies the IP address to be used to calculate the CIDR. If this parameter is not specified, the function will try to determine the local IP address and calculate the CIDR based on the subnet mask of the associated network interface.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>(optional): Specifies the IP address to be used to calculate the CIDR. If this parameter is not specified, the function will try to determine the local IP address and calculate the CIDR based on the subnet mask of the associated network interface.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>subnet</maml:name>
        <maml:description>
          <maml:para>(optional): Specifies the subnet mask to be used to calculate the CIDR. If this parameter is not specified, the function will try to determine the local subnet mask based on the local IP address and associated network interface.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Get-Cidr
 
# Output
 
24</dev:code>
        <dev:remarks>
          <maml:para>In this example, no parameter is specified. The local IP address is then determined and the subnet mask is obtained from the network interface associated with that IP. In the example, the command was run in a local network based on a Fritzbox. The default gateway IP in such a network is typically 192.168.178.1, and the subnet mask is usually 255.255.255.0.</maml:para>
          <maml:para>CIDR (Classless Inter-Domain Routing) is a method for allocating IP addresses and routing Internet Protocol packets. It replaces the previous system based on classes A, B, and C. CIDR notation is a compact representation of an IP address and its associated network mask. It is expressed in the form of IP address followed by a slash and a number which represents the length of the prefix mask.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-Cidr.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-Conn</command:name>
      <command:verb>Get</command:verb>
      <command:noun>Conn</command:noun>
      <maml:description>
        <maml:para>This PowerShell function returns an open connection to a EULANDA database. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-Conn.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function returns an opened Connection object. If a connection is already passed as input parameter, it will be used. If it was closed, it will be opened automatically. Alternatively a UDL file or a Connection-String can be specified to access the database.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-Conn</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------- Example 1:Returns an opened connection object --------</maml:title>
        <dev:code>PS C:\&gt; $conn = Get-Conn -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>Based on a UDL file, an opened Connection object is returned and assigned to the `$conn` variable. This can then be used to make many other calls by continuing to use the same connection.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-Conn.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-ConnItems</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ConnItems</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ConnItems</command:noun>
      <maml:description>
        <maml:para>This PowerShell function returns all value pairs as a hash table. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-ConnItems.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function returns a hash table with the values of the Connection object. Alternatively, a UDL file or a connection string can be specified. The individual values are then accessed by specifying the individual value names. The individual value pairs are especially needed for SQL access via the PowerShell module `ImportExcel`, but can also be useful in other ways.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ConnItems</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Returns the value pairs of a connection as hash table</maml:title>
        <dev:code>PS C:\&gt; [hashtable]$params = Get-ConnItems -udl "C:\temp\Eulanda_1 JohnDoe.udl"
PS C:\&gt; Write-Host $params['Initial Catalog']
 
# Result is shown on the display
Eulanda_JohnDoe
 
[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Data Source=.\EULANDA;USER ID=eulanda;PASSWORD=NoIdea;Initial Catalog=Eulanda_JohnDoe;Persist Security Info=True</dev:code>
        <dev:remarks>
          <maml:para>Returns a hash table with all value pairs that can be determined from the UDL file. It is now very easy to access each element. These parameters are needed for the Excel module `ImportExcel`. The second block shows the content of the UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-ConnItems.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-Conn</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ConnStr</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ConnStr</command:noun>
      <maml:description>
        <maml:para>This PowerShell function creates a connection string based on the specified parameters. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-ConnStr.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The name of the database must be specified. This is used, no matter which method is used for the authentication. This makes it possible, for example, to use a UDL file but with a different database. The prerequisite is always that the user also has the authorization for this database.</maml:para>
      <maml:para>The function allows to specify all parameters individually, to use an existing connection, a connection string or a UDL file. If the parameters are specified individually, the server name is sufficient in the simplest case. The logged-in Windows user is then used as the user.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ConnStr</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>database</maml:name>
          <maml:description>
            <maml:para>The name of the database to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The name of the MSSQL server. This can also contain the instance name. If one is used, it must be specified with backslah. The name of the server can also be an IP address like 192.168.178.20. If a server is specified, the UDL, Conn and ConnStr parameters are ignored. If the server name is used, there are two methods, Windows authentication and SQL authentication. In the first variant, the user name and password are omitted. The logged-in user is then used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>If the user is specified, a password is also required. SQL authentication is used as authentication and a server name is expected.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to be connected to the database. In any case, this also includes the user name.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>database</maml:name>
        <maml:description>
          <maml:para>The name of the database to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to be connected to the database. In any case, this also includes the user name.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The name of the MSSQL server. This can also contain the instance name. If one is used, it must be specified with backslah. The name of the server can also be an IP address like 192.168.178.20. If a server is specified, the UDL, Conn and ConnStr parameters are ignored. If the server name is used, there are two methods, Windows authentication and SQL authentication. In the first variant, the user name and password are omitted. The logged-in user is then used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>If the user is specified, a password is also required. SQL authentication is used as authentication and a server name is expected.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title> Example 1:Returns a connection string for the master database </maml:title>
        <dev:code>PS C:\&gt; $connStr= Get-ConnStr -database 'Master' -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>In this example, the server name and authentication from the UDL file are used. `Master` is used as the database. Important here, the authorization used in the UDL file must also be sufficient for access to the `Master` database.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-ConnStr.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DataFromSql</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DataFromSql</command:noun>
      <maml:description>
        <maml:para>This PowerShell function creates a data structure based on an SQL select command. This function requires an EULANDA ERP system. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Get-DataFromSql.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function creates a PowerShell data structure as a result that returns a hash table, an array of hash tables, or a combination of these. It expects the SQL query as an array of strings, from various select commands. The array must contain at least one SQL command. If two SQL commands are specified, the first is processed as master and the second as detail.</maml:para>
      <maml:para>The connection to a database is made either via an existing connection, the specification of a UDL file name or the specification of a connection string.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DataFromSql</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>sql</maml:name>
          <maml:description>
            <maml:para>The SQL parameter can contain several sections, each of which is an independently executable SQL query. For this reason, the parameter is an array of strings. If only a single array element is specified, it is usually several records, i.e. a list.</maml:para>
            <maml:para>If two queries are specified, the first is considered the master and may return only one record. The second SQL query is then the detail query. For an invoice, for example, this would be the invoice items.</maml:para>
            <maml:para>If a third array element is specified, it is the summary, i.e. the totals that are to be shown in a report.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>arrRoot</maml:name>
          <maml:description>
            <maml:para>Specifying the parameter allows to specify the node name of the detail in case of a master-detail relationship. The term should be specified in plural.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Items</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>arrRoot</maml:name>
        <maml:description>
          <maml:para>Specifying the parameter allows to specify the node name of the detail in case of a master-detail relationship. The term should be specified in plural.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Items</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>sql</maml:name>
        <maml:description>
          <maml:para>The SQL parameter can contain several sections, each of which is an independently executable SQL query. For this reason, the parameter is an array of strings. If only a single array element is specified, it is usually several records, i.e. a list.</maml:para>
          <maml:para>If two queries are specified, the first is considered the master and may return only one record. The second SQL query is then the detail query. For an invoice, for example, this would be the invoice items.</maml:para>
          <maml:para>If a third array element is specified, it is the summary, i.e. the totals that are to be shown in a report.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. You cannot pipe objects</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- EXAMPLE 1:Exporting a delivery note to a data object -----</maml:title>
        <dev:code>[int]$deliveryNo = 430220
[string[]]$sql= Get-DeliverySql -deliveryNo $deliveryNo
[System.Object]$data = Get-DataFromSql -sql $sql -conn $conn</dev:code>
        <dev:remarks>
          <maml:para>In this example, the delivery bill with the number `430220` is exported to a nested hash table. The appropriate SQL commands to generate a master/detail connection are provided by the `Get-DeliberySql` function. This data could then be output as an XML file, for example.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DataFromSql.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DeliveryId</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DeliveryId</command:noun>
      <maml:description>
        <maml:para>Returns the `Id` for a delivery bill</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Based on a delivery bill number, the Id to a delivery bill is returned. The Id is used for various functions. Especially for linking tables. The database can be specified via a Connection object, a UDL file or a ConnectionString.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DeliveryId</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1:Returns the Id of the specified delivery bill ---</maml:title>
        <dev:code>PS C:\&gt; Get-DeliveryId -deliveryNo 20230515 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>After executing the command, the function result returns the Id of the delivery bill to which the delivery note number `20230515` belongs. The database is accessed by specifying a UDL file. Instead, an existing Connection object could also be specified.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DeliveryId.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DeliveryLink</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DeliveryLink</command:noun>
      <maml:description>
        <maml:para>Creates a condition for the where case of an SQL query to select a delivery note.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function creates a condition for an SQL query to select a delivery note. This can be found both via the ID and via its delivery note number. In addition, by specifying an alias, a query can also be made for the details.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DeliveryLink</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>alias</maml:name>
          <maml:description>
            <maml:para>The alias is used to execute the condition for the SQL query of the details, i.e. the associated positions. For the delivery note the alias is usually 'lf'.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>alias</maml:name>
        <maml:description>
          <maml:para>The alias is used to execute the condition for the SQL query of the details, i.e. the associated positions. For the delivery note the alias is usually 'lf'.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. You cannot pipe objects</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>string</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>EXAMPLE 1:Provides the link to connect header and position data</maml:title>
        <dev:code>PS C:\&gt; [string]$sqlFrag = Get-DeliveryLink -deliveryNo 430220
 
KopfNummer = 43020</dev:code>
        <dev:remarks>
          <maml:para>Provides the link to connect the delivery bill items to the delivery bill header (= master/detail). This text is then used by `Get-DataFromSql` to create the nested hash tables.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DeliveryLink.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DeliveryNo</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DeliveryNo</command:noun>
      <maml:description>
        <maml:para>Returns the delivery bill number based on its `Id`</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Based on a delivery bill `Id` the delivery bill number is returned. The database can be specified via a Connection object, a UDL file or a ConnectionString.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DeliveryNo</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---------- Example 1:Returns the delivery note number ----------</maml:title>
        <dev:code>PS C:\&gt; [int]$deliveryNo= Get-DeliveryNo -deliveryId 25 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>After execution of the command, the variable `$deliveryNo` contains the delivery bill number of the delivery bill to which the `Id` `25` belongs. The database is accessed by specifying a UDL file. Instead, an existing Connection object could also be specified.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DeliveryNo.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DeliveryQty</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DeliveryQty</command:noun>
      <maml:description>
        <maml:para>Returns a hashtable with the delivery quantities of the positions</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>For a delivery note number, all quantities of the delivery note items are output in the form of a hash table. The key of the hash table is the field `articleNo`, which however corresponds with the database field `barcode`. All positions of the delivery bill, which possibly contain the same key field, in this case the field `barcode`, are summarized .</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DeliveryQty</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Returns a hashlist with all cumulated line items of a delivery note</maml:title>
        <dev:code>PS C:\&gt; [hashtable]$qty = Get-DeliveryQty -deliveryNo 430220 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>For delivery note number `430220`, the quantities of all items are returned in a hash table. The key here is the respective article number. In this example, the database is accessed by specifying a UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DeliveryQty.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DeliverySql</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DeliverySql</command:noun>
      <maml:description>
        <maml:para>Creates a SQL command to retrieve a delivery note incl. positions</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Generates two SQL commands that are returned as an array of strings. One is a query of a delivery note header and the other is a query of the corresponding positions. The delivery note is found via the ID or its delivery note number.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DeliverySql</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. You cannot pipe objects</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>EXAMPLE 1:Creates an SQL query to retrieve a delivery bill including its attached line items</maml:title>
        <dev:code>[int]$deliveryNo = 430220
[string[]]$sql= Get-DeliverySql -deliveryNo $deliveryNo
[System.Object]$data = Get-DataFromSql -sql $sql -conn $script:conn</dev:code>
        <dev:remarks>
          <maml:para>Creates a string array with two SQL queries and a link relationship, which is required in `Get-DataFromSql` if it is a set from Master / Detail. In the `Get-DataFromSql` function, a retrieval with the second SQL query is then performed for each delivery bill.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DeliverySql.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DeliveryStatus</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DeliveryStatus</command:noun>
      <maml:description>
        <maml:para>Returns the status of the delivery bill</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The status of the delivery bill indicates in which mode it is. The status is an integer value and can assume different values. The higher the number, the further the delivery bill is completed. A delivery bill is completed when the status value is &gt;20.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DeliveryStatus</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------- Example 1:Returns the status of a delivery note -------</maml:title>
        <dev:code>PS C:\&gt; [int]$status = Get-DeliveryStatus -deliveryNo 20230515 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>Here the status of the delivery bill `20230515` is returned. Alternatively, its `Id` can also be specified. In this example, the database is accessed via an UDL file.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------------- Example 2:Table of Status code ----------------</maml:title>
        <dev:code>┌───────┬───────────────────────┬──────────────────────┐
│ Value │ Description (English) │ Description (German) │
├───────┼───────────────────────┼──────────────────────┤
│ 0 │ Capture │ Erfassen │
│ 2 │ Captured │ Erfasst │
│ 5 │ Reserved │ Reserviert │
│ 6 │ Transfer to WMS │ Übergeben an LVS │
│ 8 │ Picking │ Kommissioniermodus │
│ 9 │ Shippable │ Versandfertig │
│ 10 │ Delivered │ Geliefert │
│ 20 │ Billed │ Berechnet │
│ 21 │ Underbilled │ Unterberechnet │
│ 22 │ Unbilled │ Unberechnet │
└───────┴───────────────────────┴──────────────────────┘</dev:code>
        <dev:remarks>
          <maml:para>Table of possible values and their meaning</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DeliveryStatus.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DesktopDir</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DesktopDir</command:noun>
      <maml:description>
        <maml:para>Returns the path to the desktop</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the path to the desktop of the logged in user. The path does not contain a terminating backslash.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DesktopDir</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---------- Example 1:Returns the path to the desktop ----------</maml:title>
        <dev:code>PS C:\&gt; Get-DesktopDir
 
# Output
 
C:\Users\JohnDoe\Desktop</dev:code>
        <dev:remarks>
          <maml:para>Returns the path to the desktop for the user John Dow.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DesktopDir.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-TempDir</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-Distance</command:name>
      <command:verb>Get</command:verb>
      <command:noun>Distance</command:noun>
      <maml:description>
        <maml:para>Calculates the distance between two points on the Earth's surface, given their coordinates in Decimal Degrees (DD).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function takes the coordinates of two points on the Earth's surface in Decimal Degrees (DD) format, and calculates the distance between these points in kilometers using the Haversine formula. Make sure that the coordinates you input are valid Decimal Degrees.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-Distance</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="lat1">
          <maml:name>startLatitude</maml:name>
          <maml:description>
            <maml:para>Latitude of the first point in DD format. Should be a decimal number between -90 and 90.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
          <dev:type>
            <maml:name>Double</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="long1">
          <maml:name>startLongitude</maml:name>
          <maml:description>
            <maml:para>Longitude of the first point in DD format. Should be a decimal number between -180 and 180.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
          <dev:type>
            <maml:name>Double</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="lat2">
          <maml:name>endLatitude</maml:name>
          <maml:description>
            <maml:para>Latitude of the second point in DD format. Should be a decimal number between -90 and 90.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
          <dev:type>
            <maml:name>Double</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="long2">
          <maml:name>endLongitude</maml:name>
          <maml:description>
            <maml:para>Longitude of the second point in DD format. Should be a decimal number between -180 and 180.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
          <dev:type>
            <maml:name>Double</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="lat2">
        <maml:name>endLatitude</maml:name>
        <maml:description>
          <maml:para>Latitude of the second point in DD format. Should be a decimal number between -90 and 90.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
        <dev:type>
          <maml:name>Double</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="long2">
        <maml:name>endLongitude</maml:name>
        <maml:description>
          <maml:para>Longitude of the second point in DD format. Should be a decimal number between -180 and 180.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
        <dev:type>
          <maml:name>Double</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="lat1">
        <maml:name>startLatitude</maml:name>
        <maml:description>
          <maml:para>Latitude of the first point in DD format. Should be a decimal number between -90 and 90.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
        <dev:type>
          <maml:name>Double</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="long1">
        <maml:name>startLongitude</maml:name>
        <maml:description>
          <maml:para>Longitude of the first point in DD format. Should be a decimal number between -180 and 180.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Double</command:parameterValue>
        <dev:type>
          <maml:name>Double</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1: Calculates the distance between two points ----</maml:title>
        <dev:code>PS C:\&gt; Get-Distance -startLatitude 52.52 -startLongitude 13.405 -endLatitude 48.8566 -endLongitude 2.3522</dev:code>
        <dev:remarks>
          <maml:para>The example uses the geographic coordinates of two major European cities: Berlin, Germany and Paris, France. The coordinates `52.52` for latitude and `13.405` for longitude represent the approximate location of Berlin. On the other hand, `48.8566` for latitude and `2.3522` for longitude represent the approximate location of Paris. The result is 878 km.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-Distance.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Convert-ToDecimalDegrees</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DmsFolderDelivery</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DmsFolderDelivery</command:noun>
      <maml:description>
        <maml:para>Delivers the DMS folder to a delivery bill</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>There is a simple but flexible document management system (= DMS ) for the ERP system. It is stored on a network-accessible share. For each data object such as articles, addresses, etc. there are subfolders and then for each address in turn the final DMS folder. The `$dmsBaseFolder` is the root of the DMS system. Delivery bills are stored below the delivery address. This function then returns the appropriate folder for a given delivery bill. In this folder specific files to the delivery bill can be stored, for example transmission protocols.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DmsFolderDelivery</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>dmsBaseFolder</maml:name>
          <maml:description>
            <maml:para>Basic folder for the DMS system. For example `\server\release\eulanda\dms`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>dmsBaseFolder</maml:name>
        <maml:description>
          <maml:para>Basic folder for the DMS system. For example `\server\release\eulanda\dms`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1:Returns the DMS folder of a delivery bill -----</maml:title>
        <dev:code>PS C:\&gt; [string]$path= Get-DmsFolderDelivery -deliveryNo 20230515 -dmsBaseFolder '\\server\release\eulanda\dms' -udl "C:\temp\Eulanda_1 JohnDoe.udl"
PS C:\&gt; Write-Host $path
 
# Output
\\server\release\eulanda\dms\address\John Doe\Delivery Note\20230515</dev:code>
        <dev:remarks>
          <maml:para>After calling the function, the variable contains the path for the storage in the DMS system for the delivery bill with the number `20230515`. John Doe in this example would be the name (= field Match) of the delivery address. The access to the database is done via the UDL file which was passed as parameter. The DMS system can only be localized if the DMS base folder is specified.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DmsFolderDelivery.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DmsFolderSalesOrder</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DmsFolderSalesOrder</command:noun>
      <maml:description>
        <maml:para>Delivers the DMS folder to a sales order</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>There is a simple but flexible document management system (= DMS ) for the ERP system. It is stored on a network-accessible share. For each data object such as articles, addresses, etc. there are subfolders and then for each address in turn the final DMS folder. The `$dmsBaseFolder` is the root of the DMS system. Sales orders are stored below the invoice address. This function then returns the appropriate folder for a given sales order. In this folder specific files to the sales order can be stored, for example technical drawings, contract agreements, etc.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DmsFolderSalesOrder</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>dmsBaseFolder</maml:name>
          <maml:description>
            <maml:para>Basic folder for the DMS system. For example `\server\release\eulanda\dms`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>salesOrderNo</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>salesOrderId</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>customerOrderNo</maml:name>
          <maml:description>
            <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>customerOrderNo</maml:name>
        <maml:description>
          <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>dmsBaseFolder</maml:name>
        <maml:description>
          <maml:para>Basic folder for the DMS system. For example `\server\release\eulanda\dms`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>salesOrderId</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>salesOrderNo</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1:Returns the DMS folder of a sales order ------</maml:title>
        <dev:code>PS C:\&gt; [string]$path= Get-DmsFolderSalesOrder -salesOrderNo 30221218 -dmsBaseFolder '\\server\release\eulanda\dms' -udl "C:\temp\Eulanda_1 JohnDoe.udl"
PS C:\&gt; Write-Host $path
 
# Output
\\server\release\eulanda\dms\address\John Doe\Sales Order\30221218</dev:code>
        <dev:remarks>
          <maml:para>After calling the function, the variable contains the path for the storage in the DMS system for the sales order with the number `30221218`. John Doe in this example would be the name (= field Match) of the invoice address. The access to the database is done via the UDL file which was passed as parameter. The DMS system can only be localized if the DMS base folder is specified.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DmsFolderSalesOrder.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-FieldTruncated</command:name>
      <command:verb>Get</command:verb>
      <command:noun>FieldTruncated</command:noun>
      <maml:description>
        <maml:para>Truncates a database field from an ADO recordset</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function truncates a string from a field of a record set. It is usually used in XML data output to keep the code clearly arranged.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-FieldTruncated</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>rs</maml:name>
          <maml:description>
            <maml:para>The ADO record set is passed as parameter `rs`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>fieldname</maml:name>
          <maml:description>
            <maml:para>Field name of an ADO record set</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>maxLen</maml:name>
          <maml:description>
            <maml:para>Maximum length that the text field of the ADO record set may have.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>fieldname</maml:name>
        <maml:description>
          <maml:para>Field name of an ADO record set</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>maxLen</maml:name>
        <maml:description>
          <maml:para>Maximum length that the text field of the ADO record set may have.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>rs</maml:name>
        <maml:description>
          <maml:para>The ADO record set is passed as parameter `rs`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1:Returns a shortened string from an ADO record set -</maml:title>
        <dev:code>PS C:\&gt; [string]$value= Get-FieldTruncated -rs $rs -fieldName 'Match' -maxLen 4</dev:code>
        <dev:remarks>
          <maml:para>For example, if the `Match` field contains the content `John Doe` and it is to be truncated to the maximum length of 4, it returns the string `John`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-FieldTruncated.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-Filename</command:name>
      <command:verb>Get</command:verb>
      <command:noun>Filename</command:noun>
      <maml:description>
        <maml:para>Returns the file name incl. extension</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the file name incl. extension from a fully qualified path.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-Filename</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>The parameter specifies the full path name, including file name and extension.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>The parameter specifies the full path name, including file name and extension.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---------- Example 1:Returns filename of an udl file ----------</maml:title>
        <dev:code>PS C:\&gt; Get-Filename -path "C:\temp\Eulanda_1 JohnDoe.udl"
 
# Outputh
 
Eulanda_1 JohnDoe.udl</dev:code>
        <dev:remarks>
          <maml:para>Returns the file name incl. extension from a fully qualified path. In this example the function result is `Eulanda_1 JohnDoe.udl` if the parameter `path` is passed to the function as `C:\temp\Eulanda_1 JohnDoe.udl`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-Filename.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-FirstIp</command:name>
      <command:verb>Get</command:verb>
      <command:noun>FirstIp</command:noun>
      <maml:description>
        <maml:para>First usable IP address of the subnet</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Get-FirstIp function returns the first usable IP address of the subnet, which can be determined using either a specified network ID or an IP address and subnet mask. If neither of these is provided, the subnet is obtained from the local IP address.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-FirstIp</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>networkId</maml:name>
          <maml:description>
            <maml:para>Specifies the network ID of the subnet.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>Specifies the IP address to be used for obtaining the subnet mask.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>subnet</maml:name>
          <maml:description>
            <maml:para>Specifies the subnet mask of the network.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>cidr</maml:name>
          <maml:description>
            <maml:para>Specifies the subnet mask of the network in CIDR format. If not provided, the subnet is obtained from the IP address.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>cidr</maml:name>
        <maml:description>
          <maml:para>Specifies the subnet mask of the network in CIDR format. If not provided, the subnet is obtained from the IP address.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>Specifies the IP address to be used for obtaining the subnet mask.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>networkId</maml:name>
        <maml:description>
          <maml:para>Specifies the network ID of the subnet.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>subnet</maml:name>
        <maml:description>
          <maml:para>Specifies the subnet mask of the network.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-- Example 1:Determine first usable IP address of the subnet --</maml:title>
        <dev:code>PS C:\&gt; Get-FirstIp -networkId 192.168.178.0 -cidr 24
 
# Output
 
192.168.178.1</dev:code>
        <dev:remarks>
          <maml:para>In this example, a classic home network is specified by using the typical network ID of a Fritzbox. The CIDR corresponds to a complete C class network.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-FirstIp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-GatewayIp</command:name>
      <command:verb>Get</command:verb>
      <command:noun>GatewayIp</command:noun>
      <maml:description>
        <maml:para>Gets the IP address of the local gateway router</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function retrieves the IP address of the local gateway router by using the Get-NetRoute cmdlet to retrieve the routing table information for the IPv4 address family. It then filters the routing table to only include the default route, represented by the DestinationPrefix of "0.0.0.0/0". Finally, it selects the NextHop IP address of the default route, which represents the IP address of the local gateway router.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-GatewayIp</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1:Retrieves the IP address of the gateway ------</maml:title>
        <dev:code>PS C:\&gt; Get-GatewayIp
 
# Output
 
192.168.178.1</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the IP address of the gateway</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-GatewayIp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-Hostname</command:name>
      <command:verb>Get</command:verb>
      <command:noun>Hostname</command:noun>
      <maml:description>
        <maml:para>Returns the hostname from a DNS request</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the hostname from a DNS request, which usually also resolves the IP of the local gateway. Note: If no IP is provided, the function attempts to obtain the local IP address.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-Hostname</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>Specifies the IP address for which to retrieve the host name. If not specified, the local IP address is used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>Specifies the IP address for which to retrieve the host name. If not specified, the local IP address is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------- Example 1:Determins the hostname by a DNS query -------</maml:title>
        <dev:code>PS C:\&gt; Get-Hostname (Get-GatewayIp)
 
# Output
 
fritz.box</dev:code>
        <dev:remarks>
          <maml:para>In this example, the IP address of the local gateway is determined, and then the hostname is obtained through a local DNS query.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-Hostname.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-HtmlEncoded</command:name>
      <command:verb>Get</command:verb>
      <command:noun>HtmlEncoded</command:noun>
      <maml:description>
        <maml:para>Returns an HTML-encoded string</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns an HTML-encoded string, but it can contain simple HTML commands like bold, italics, lists, etc. These remain in the output as HTML.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-HtmlEncoded</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>taggedString</maml:name>
          <maml:description>
            <maml:para>The string may contain simple tagged HTML. This includes, &lt;b&gt;, &lt;i&gt;, &lt;ul&gt;, &lt;li&gt;,&lt;ol&gt;,&lt;p&gt;,&lt;pre&gt; and like headings &lt;h1&gt; to &lt;h5&gt;.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>taggedString</maml:name>
        <maml:description>
          <maml:para>The string may contain simple tagged HTML. This includes, &lt;b&gt;, &lt;i&gt;, &lt;ul&gt;, &lt;li&gt;,&lt;ol&gt;,&lt;p&gt;,&lt;pre&gt; and like headings &lt;h1&gt; to &lt;h5&gt;.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------- Example 1:Encodes a tagged string --------------</maml:title>
        <dev:code>PS C:\&gt; Get-HtmlEncoded -taggedString 'Transferred with umlauts "öäü" &lt;b&gt;and&lt;/b&gt; 30 &gt;= 15'
 
# Output
 
Transferred with umlauts &amp;quot;&amp;#246;&amp;#228;&amp;#252;&amp;quot; &lt;b&gt;and&lt;/b&gt; 30 &amp;gt;= 15</dev:code>
        <dev:remarks>
          <maml:para>In this example, HTML tags like bold with `&lt;b&gt;` are passed through transparently, but other things like a single greater-than sign are encoded. Also special characters like umlauts .</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-HtmlEncoded.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-HtmlMetaData</command:name>
      <command:verb>Get</command:verb>
      <command:noun>HtmlMetaData</command:noun>
      <maml:description>
        <maml:para>Provides an EULANDA specific set of meta information</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Provides EULANDA specific meta information as hash table. These are standard meta fields like `author`, `generator`, `keywords` and `viewport`. With the parameter Description a `description` can be added optionally.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-HtmlMetaData</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>description</maml:name>
          <maml:description>
            <maml:para>The `description` parameter allows an individual output of the metadata. It contains the identically named `description` metafield.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>description</maml:name>
        <maml:description>
          <maml:para>The `description` parameter allows an individual output of the metadata. It contains the identically named `description` metafield.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Returns HTML metadata including the description field.</maml:title>
        <dev:code>PS C:\&gt; Get-HtmlMetadata -description 'This is my special description'
 
# Output
 
Name Value
---- -----
author EULANDA Software GmbH - ERP-Systems - Germany
generator Powershell 7.3.x by function ConvertTo-Html
keywords eulanda, erp, powershell, convertto-html, html
description This is my special description
viewport width=device-width, initial-scale=1.0</dev:code>
        <dev:remarks>
          <maml:para>Here, the `description` parameter was additionally specified. The result is a hash list that can be used directly in the `ConvertTo-Html` function.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-HtmlMetaData.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-HtmlStyle</command:name>
      <command:verb>Get</command:verb>
      <command:noun>HtmlStyle</command:noun>
      <maml:description>
        <maml:para>Provides the EULANDA style for HTML pages and HTML emails</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the default stylesheet delivered with EulandaConnect, which is used for HTML exports or HTML mails. It can be used directly in the `ConvertTo-Html` function.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-HtmlStyle</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------------ Example 1:Returns Eulanda stylesheet ------------</maml:title>
        <dev:code>PS C:\&gt; Get-HtmlSytle
 
&lt;style&gt;
    html {
        margin: 0 auto;
        max-width: 800px;
    }
    body {
        font-family: Arial, Helvetica, sans-serif;
        font-size: 14px;
    }
    h1 {
        font-family: Arial, Helvetica, sans-serif;
        color: #e68a00;
        font-size: 28px;
    }
    h2 {
        font-family: Arial, Helvetica, sans-serif;
        color: #000099;
        font-size: 16px;
    }
    h3 {
        font-family: Arial, Helvetica, sans-serif;
        font-size: 16px;
    }
...
&lt;/style&gt;</dev:code>
        <dev:remarks>
          <maml:para>The function returns the default stylesheet used by `EulandaConnect` for HTML files or HTML.Mails.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-HtmlStyle.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-IniBool</command:name>
      <command:verb>Get</command:verb>
      <command:noun>IniBool</command:noun>
      <maml:description>
        <maml:para>Returns a Boolean variable from an ini file</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the boolean value from an `INI` file where the variable was specified by `section` and `variable`. The name of the `INI` file is fixed with `$global:ini`. If the variable does not exist, `$false` is returned.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-IniBool</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>section</maml:name>
          <maml:description>
            <maml:para>Specifies the name of the section in the INI file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>variable</maml:name>
          <maml:description>
            <maml:para>Specifies the name of the variable within a section of the ini file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>section</maml:name>
        <maml:description>
          <maml:para>Specifies the name of the section in the INI file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>variable</maml:name>
        <maml:description>
          <maml:para>Specifies the name of the variable within a section of the ini file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- Example 1:Returns a boolean from a ini file ---------</maml:title>
        <dev:code>PS C:\&gt; Get-BoolIni -section 'SESSION' -variable 'utf'</dev:code>
        <dev:remarks>
          <maml:para>Returns the value specified for 'utf' in the 'SESSION' section of the ini file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-IniBool.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Read-IniFile</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-Bool</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-IpGeoInfo</command:name>
      <command:verb>Get</command:verb>
      <command:noun>IpGeoInfo</command:noun>
      <maml:description>
        <maml:para>This PowerShell function retrieves geographic information for a specified IP address. The function uses the IP-API service to retrieve the information, which includes details like the country, region, city, latitude, longitude, ISP and more.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>- The function makes a GET request to the IP-API service, passing the IP address as a parameter. The function also includes some additional features:</maml:para>
      <maml:para> - Global Hash Table: The function maintains a global hash table of IP addresses and their corresponding geo-information. This hash table, `$global:geoHashTable`, is accessible for further manipulation or data extraction. The geo-information includes various details such as: - `query`: IP used for the query. - `status`: success or fail. - `country`: Name of the country. - `countryCode`: Two-letter ISO 3166-1 alpha code of the country. - `region`: Region/state short code. - `regionName`: Region/state. - `city`: City name. - `zip`: Postal/Zip code. - `lat`: Latitude. - `lon`: Longitude. - `timezone`: City's timezone. - `isp`: ISP name. - `org`: Organization name. - `as`: AS number and name. - Caching of results: To avoid unnecessary API calls, the function saves the retrieved information in a XML file. Subsequent requests for the same IP address will retrieve the information from the cache instead of making a new API call. - Aging of cache entries: The function checks if the cache entry is older than a specified age (in months). If it is, a new API call is made to update the cache entry. - Waiting time between API calls: To avoid overloading the API, the function waits a specified amount of time (in milliseconds) between API calls. - IP address validation: The function includes some basic checks to validate the IP address and checks if it's a private or reserved IP address.</maml:para>
      <maml:para> To access specific information from the global hashtable `$global:geoHashTable`, simply use the key (in this case, the IP address). For example, to get the country code, you can do the following: `$countryCode = $global:geoHashTable["YourIP"].data.countryCode` . This hashtable also contains `createDate` and `changeDate` properties, which can be accessed in a similar manner: `$createDate = $global:geoHashTable["YourIP"].createDate` or `$changeDate = $global:geoHashTable["YourIP"].changeDate`. Please replace `"YourIP"` with the actual IP address you want to get information for.</maml:para>
      <maml:para> Note: `$global:geoHashTable` contains the most recently retrieved geolocation data for each IP address. If the data for an IP address is not available, you need to call `Get-IpGeoInfo` function first, which will store the data in the hashtable for later use.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-IpGeoInfo</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>The IP address for which to retrieve geographic information. This is a mandatory parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>age</maml:name>
          <maml:description>
            <maml:para>The age (in months) after which a cache entry should be updated. Default is 6 months.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>apiWait</maml:name>
          <maml:description>
            <maml:para>The waiting time (in milliseconds) between API calls. Default is 2000 ms.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>xmlGeoPath</maml:name>
          <maml:description>
            <maml:para>The path to the XML file used for caching. If only a filename is specified (without a path), the file is saved in the '.eulandaconnect' directory in the user's home folder.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>age</maml:name>
        <maml:description>
          <maml:para>The age (in months) after which a cache entry should be updated. Default is 6 months.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>apiWait</maml:name>
        <maml:description>
          <maml:para>The waiting time (in milliseconds) between API calls. Default is 2000 ms.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>The IP address for which to retrieve geographic information. This is a mandatory parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>xmlGeoPath</maml:name>
        <maml:description>
          <maml:para>The path to the XML file used for caching. If only a filename is specified (without a path), the file is saved in the '.eulandaconnect' directory in the user's home folder.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Retrieve the geographic information for an ip address</maml:title>
        <dev:code>PS C:\&gt; $country = Get-IpGeoInfo -ip "8.8.8.8"</dev:code>
        <dev:remarks>
          <maml:para>This will retrieve the geographic information for the IP address "8.8.8.8" and display verbose messages in this case it is 'US'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-IpGeoInfo.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Merge-IpGeoInfo</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-LastIp</command:name>
      <command:verb>Get</command:verb>
      <command:noun>LastIp</command:noun>
      <maml:description>
        <maml:para>Returns the last possible IP for a host for a given submask or cidr</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>These functions allow you to work with IP addresses and subnets. The `Get-LocalIp` function tries to determine the local IP address by matching it with the gateway IP. The `Get-NetworkId` function determines the network ID of a given IP address, subnet, or CIDR. The `Get-MaxHosts` function calculates the maximum number of hosts that can be assigned to a subnet. The `Get-LastIp` function determines the last usable IP address in a given subnet by using the network ID and maximum number of hosts.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-LastIp</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>networkId</maml:name>
          <maml:description>
            <maml:para>Specifies the network ID for which to calculate the last IP address. If not provided, the local IP address will be used to calculate the network ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>Specifies the local IP address for which to calculate the last IP address. If not provided, the function will try to determine the local IP address.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>subnet</maml:name>
          <maml:description>
            <maml:para>Specifies the subnet mask for which to calculate the last IP address. If not provided, the function will try to determine the subnet mask from the local IP address.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>cidr</maml:name>
          <maml:description>
            <maml:para>Specifies the CIDR notation for which to calculate the last IP address. If not provided, the function will try to determine the CIDR notation from the subnet mask.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>cidr</maml:name>
        <maml:description>
          <maml:para>Specifies the CIDR notation for which to calculate the last IP address. If not provided, the function will try to determine the CIDR notation from the subnet mask.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>Specifies the local IP address for which to calculate the last IP address. If not provided, the function will try to determine the local IP address.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>networkId</maml:name>
        <maml:description>
          <maml:para>Specifies the network ID for which to calculate the last IP address. If not provided, the local IP address will be used to calculate the network ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>subnet</maml:name>
        <maml:description>
          <maml:para>Specifies the subnet mask for which to calculate the last IP address. If not provided, the function will try to determine the subnet mask from the local IP address.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Returns the last possible IP for a host for a given cidr</maml:title>
        <dev:code>PS C:\&gt; Get-LastIp -networkId 192.168.178.0 -cidr 24
 
# Output
 
192.168.178.254</dev:code>
        <dev:remarks>
          <maml:para>Returns the last usable IP address of a given subnet, based on the network ID and the CIDR prefix length. If the network ID is not specified, it is determined using the provided IP address and subnet mask, or the local IP and subnet mask. If the CIDR prefix length is not specified, it is determined using the provided subnet mask or the subnet mask of the local IP.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-LastIp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-LocalIp</command:name>
      <command:verb>Get</command:verb>
      <command:noun>LocalIp</command:noun>
      <maml:description>
        <maml:para>Get-LocalIp attempts to determine the local IP address</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Get-LocalIp attempts to determine the local IP address by matching it with the gateway address. It first retrieves the gateway address using the `Get-GatewayIp` function. Then, it retrieves all IPv4 addresses assigned to the network interfaces that have been assigned either manually or through DHCP. For each address, it retrieves the subnet mask using the `Get-Subnet` function and checks if the bitwise AND between the IP address and the subnet mask matches the bitwise AND between the gateway address and the subnet mask. If a match is found, the IP address is returned. If no match is found, the function returns "0.0.0.0".</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-LocalIp</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----------- Example 1:Retrieves the local ip address -----------</maml:title>
        <dev:code>PS C:\&gt; Get-LocalIp
 
# Output
 
192.168.178.10</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the local ip address.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-LocalIp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-LogName</command:name>
      <command:verb>Get</command:verb>
      <command:noun>LogName</command:noun>
      <maml:description>
        <maml:para>Returns the name of a log file</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the name of a log file. The file name has the structure LOG-(Ident)-(DateMask).txt. Ident is a string, if it is not specified it is set to `DEF`. The same is true for the `dateMask`. If `dateMask` is not specified, the default is `yyyy-MM-dd--HH-mm-ss-fff`. For formatting the format switch included in PowerShell is used.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-LogName</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>ident</maml:name>
          <maml:description>
            <maml:para>The identification of the log file name is specified via the `ident` value. The default value is `DEF`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>dateMask</maml:name>
          <maml:description>
            <maml:para>The date mask, for the formation of the file name. The default value is: `yyy-MM-dd--HH-mm-ss-fff`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>dateMask</maml:name>
        <maml:description>
          <maml:para>The date mask, for the formation of the file name. The default value is: `yyy-MM-dd--HH-mm-ss-fff`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>ident</maml:name>
        <maml:description>
          <maml:para>The identification of the log file name is specified via the `ident` value. The default value is `DEF`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- Example 1:Returns a file name for a log file ---------</maml:title>
        <dev:code>PS C:\&gt; Get-LogName
 
# Output
 
LOG-DEF-2023-02-24--14-57-25-855.txt</dev:code>
        <dev:remarks>
          <maml:para>Returns the name for a log file. If no parameters are specified, the respective default values are used.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-LogName.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-LoremIpsum</command:name>
      <command:verb>Get</command:verb>
      <command:noun>LoremIpsum</command:noun>
      <maml:description>
        <maml:para>The Get-LoremIpsum function generates a specified number of paragraphs of lorem ipsum text.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Get-LoremIpsum function generates a specified number of paragraphs of lorem ipsum text, which is commonly used as placeholder text in design and publishing applications. The function uses the "lorem ipsum" text generator to create the text. The generated text is returned as a string.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-LoremIpsum</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>MinParagraphs</maml:name>
          <maml:description>
            <maml:para>MinParagraphs (optional): Specifies the minimum number of paragraphs to generate. If not specified, the default value of 1 is used. The parameter accepts integer values.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>MaxParagraphs</maml:name>
          <maml:description>
            <maml:para>MaxParagraphs (optional): Specifies the maximum number of paragraphs to generate. If not specified, the default value of 5 is used. The parameter accepts integer values.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>MaxParagraphs</maml:name>
        <maml:description>
          <maml:para>MaxParagraphs (optional): Specifies the maximum number of paragraphs to generate. If not specified, the default value of 5 is used. The parameter accepts integer values.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>MinParagraphs</maml:name>
        <maml:description>
          <maml:para>MinParagraphs (optional): Specifies the minimum number of paragraphs to generate. If not specified, the default value of 1 is used. The parameter accepts integer values.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>- The MinParagraphs parameter must be less than or equal to the MaxParagraphs parameter.</maml:para>
        <maml:para>- If both parameters are not specified, the function generates one paragraph of lorem ipsum text by default.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Generates a specified number of paragraphs of lorem ipsum</maml:title>
        <dev:code>PS C:\&gt; Get-LoremIpsum -MinParagraphs 2 -MaxParagraphs 4</dev:code>
        <dev:remarks>
          <maml:para>This example generates 2 to 4 paragraphs of lorem ipsum text and returns the text as a string.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-LoremIpsum.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-MaxHosts</command:name>
      <command:verb>Get</command:verb>
      <command:noun>MaxHosts</command:noun>
      <maml:description>
        <maml:para>The Get-MaxHosts command retrieves the maximum number of hosts for the specified subnet mask</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-MaxHosts` command retrieves the maximum number of hosts for the specified subnet mask or CIDR notation. If neither subnet mask nor CIDR notation is specified, the command uses the local subnet mask to calculate the maximum number of hosts.</maml:para>
      <maml:para>If successful, the command returns the maximum number of hosts as an integer. If an error occurs, it returns `0`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-MaxHosts</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>subnet</maml:name>
          <maml:description>
            <maml:para>Specifies the subnet mask for which to calculate the maximum number of hosts. If not specified, the command attempts to determine the subnet mask using the local IP address and CIDR.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>cidr</maml:name>
          <maml:description>
            <maml:para>Specifies the CIDR notation for the subnet mask. If `subnet` is not specified, the command uses this value to determine the subnet mask.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>cidr</maml:name>
        <maml:description>
          <maml:para>Specifies the CIDR notation for the subnet mask. If `subnet` is not specified, the command uses this value to determine the subnet mask.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>subnet</maml:name>
        <maml:description>
          <maml:para>Specifies the subnet mask for which to calculate the maximum number of hosts. If not specified, the command attempts to determine the subnet mask using the local IP address and CIDR.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:retrieves the maximum number of hosts for the subnet mask 255.255.255.0</maml:title>
        <dev:code>PS C:\&gt; Get-MaxHosts -subnet '255.255.255.0'
 
# Output
 
254</dev:code>
        <dev:remarks>
          <maml:para>This example retrieves the maximum number of hosts for the subnet mask `255.255.255.0`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-MaxHosts.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ModulePath</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ModulePath</command:noun>
      <maml:description>
        <maml:para>Returns the pure path specification to a module name</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the clean path where the module specified by the `Module` parameter is located.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ModulePath</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>module</maml:name>
          <maml:description>
            <maml:para>Name of the module to which the path is to be determined</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>module</maml:name>
        <maml:description>
          <maml:para>Name of the module to which the path is to be determined</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- Example 1:Returns the path to a module name ---------</maml:title>
        <dev:code>PS C:\&gt; Get-ModulePath -module EulandaConnect
 
# Output
 
C:\Users\John\Documents\PowerShell\Modules\EulandaConnect\2.1.11</dev:code>
        <dev:remarks>
          <maml:para>For the module name `EulandaConnect` the path is returned where the module is stored.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-ModulPath.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-MssqlInstances</command:name>
      <command:verb>Get</command:verb>
      <command:noun>MssqlInstances</command:noun>
      <maml:description>
        <maml:para>Provides information about the MSSQL instances and their database files</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function returns various information for each local instance of the MSSQL server as `PSCustomObject`. In addition, the Files property of each object is filled with the file properties of the instance. This includes the date of the last file modification as well as the size of the database.</maml:para>
      <maml:para>The data is mainly accessed via the registry. In addition, the status values of the SQL service and the SQL browser are evaluated. </maml:para>
      <maml:para>If the query is performed with administrative rights, it is also checked whether the firewall has opened the UDP port of the SQL browser and whether there is a firewall rule for the SQL server service.</maml:para>
      <maml:para>The information is additionally displayed on the monitor via the Show parameter.</maml:para>
      <maml:para>&gt; The advantage of the PSCustomObject data type over a hashtable is, for example, the simple access to the property names such as: $instances[1].PatchLevel as well as further processing with Format-Table and Format-List.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-MssqlInstances</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>show</maml:name>
          <maml:description>
            <maml:para>The function displays the most important data on the screen. Additionally it is displayed if the administrative rights are not sufficient to check the firewall rules.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>show</maml:name>
        <maml:description>
          <maml:para>The function displays the most important data on the screen. Additionally it is displayed if the administrative rights are not sufficient to check the firewall rules.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Shows information about the MSSQL instances ----</maml:title>
        <dev:code>PS C:\&gt; $instances= Get-MssqlInstances -show
 
# Output from within the function
 
SERVER SETTINGS FOR: [ SQL2019 ]
 
Instance : SQL2019
Version : 15.0.2000.5
PatchLevel : 15.0.4298.1
Collation : Latin1_General_CI_AS
BinnPath : C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\Binn
DataPath : C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\DATA
BackupPath : C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\Backup
SqlService : Running
BrowserService : Stopped
NamedPipes : True
TcpIp : True
SharedMemory : True
FirewallValid : False
FirewallBrowser : False
FirewallSqlServer : False
 
DATABASE FILES FOR: [ SQL2019 ]
Sizes are shown in MB
 
MdfFile : Eulanda_Doe.mdf
LdfFile : Eulanda_Doe_log.ldf
MdfSize : 6387,0625
LdfSize : 565,4375
TotalSize : 6952,5
LastModified : 2023-03-06 04:42:21
 
MdfFile : Eulanda_John.mdf
LdfFile : Eulanda_John_log.ldf
MdfSize : 2692,75
LdfSize : 0,4921875
TotalSize : 2693,24
LastModified : 2023-03-06 04:37:31
 
Firewall rules was not to check, this requires administrator privileges. For this reason FirewallValid=False.</dev:code>
        <dev:remarks>
          <maml:para>The result is stored in the `Instances` variable. In addition, the Show parameter displays the most important values on the screen.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-MssqlInstances.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-MultipleOptions</command:name>
      <command:verb>Get</command:verb>
      <command:noun>MultipleOptions</command:noun>
      <maml:description>
        <maml:para>Returns a normalized string of the options</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The allowed values are specified in a string array. The first element of the array is the default value, which is returned if a searched value was not found. Via the parameter values, the desired options are specified comma-separated as string. The search is case-insensitive and the result is the notation of the valid options. The function serves to check values e.g. from a configuration file and to return in the notation indicated in the parameter list. In case of wrong values the default value is returned.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-MultipleOptions</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>values</maml:name>
          <maml:description>
            <maml:para>A string with comma-separated words is passed via values. These options are then compared with the array and returned normalized.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>list</maml:name>
          <maml:description>
            <maml:para>An array of strings containing the valid options in the desired notation. The first element of the list is the default value which is returned if an entry in the list was not found.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>list</maml:name>
        <maml:description>
          <maml:para>An array of strings containing the valid options in the desired notation. The first element of the list is the default value which is returned if an entry in the list was not found.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>values</maml:name>
        <maml:description>
          <maml:para>A string with comma-separated words is passed via values. These options are then compared with the array and returned normalized.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Returns the options in the desired notation ----</maml:title>
        <dev:code>PS C:\&gt; Get-MultipleOption -values 'blue,Yellow' -list @('BLACK','WHITE','BLUE','RED','YELLOW')
 
# Output
 
BLUE,YELLOW</dev:code>
        <dev:remarks>
          <maml:para>The option 'blue' is written in lower case, but in the result it is returned in upper case as specified in the list. The option 'Yellow' with capital 'Y' also returns the notation specified in list.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-MultipleOptions.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-NetworkId</command:name>
      <command:verb>Get</command:verb>
      <command:noun>NetworkId</command:noun>
      <maml:description>
        <maml:para>Returns the Network ID from an IP with subnet mask</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-NetworkId` command retrieves the network ID for the specified IP address and subnet mask or CIDR. If no IP address or subnet mask/CIDR is specified, the command uses the local IP address and subnet mask. If successful, the command returns the network ID as a string. </maml:para>
      <maml:para>If an error occurs, it returns `0.0.0.0`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-NetworkId</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>Specifies the IP address for which to retrieve the network ID. If not specified, the command uses the local IP address.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>subnet</maml:name>
          <maml:description>
            <maml:para>Specifies the subnet mask for the specified IP address. If not specified, the command attempts to determine the subnet mask using the local IP address and CIDR.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>cidr</maml:name>
          <maml:description>
            <maml:para>Specifies the CIDR notation for the subnet mask. If `subnet` is not specified, the command uses this value to determine the subnet mask.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>cidr</maml:name>
        <maml:description>
          <maml:para>Specifies the CIDR notation for the subnet mask. If `subnet` is not specified, the command uses this value to determine the subnet mask.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>Specifies the IP address for which to retrieve the network ID. If not specified, the command uses the local IP address.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>subnet</maml:name>
        <maml:description>
          <maml:para>Specifies the subnet mask for the specified IP address. If not specified, the command attempts to determine the subnet mask using the local IP address and CIDR.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1:Returns the Network ID from an IP with subnet mask -</maml:title>
        <dev:code>PS C:\&gt; Get-NetworkId -ip '192.168.178.10' -subnet '255.255.255.0'
 
# Output
 
192.168.178.1</dev:code>
        <dev:remarks>
          <maml:para>This example retrieves the network ID for the IP address `192.168.178.10` and subnet mask `255.255.255.0`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-NetworkId.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-NewNumberFromSeries</command:name>
      <command:verb>Get</command:verb>
      <command:noun>NewNumberFromSeries</command:noun>
      <maml:description>
        <maml:para>Generates a new number for a specific series.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-NewNumberFromSeries` function generates a new number for a specific series in a database using an ADODB connection. The function uses the "cn_NumGetNext" stored procedure and executes it with the series name to get the next available number.</maml:para>
      <maml:para>The function takes the series name as a parameter, and it is expected to be one of the following:</maml:para>
      <maml:para>| Series Name (German) | Series Name (English) | |---|---| | Angebot | Offer | | Auftrag | Order | | Rechnung | Invoice | | Lieferschein | Delivery Note | | Debitor | Debtor | | KasseBeleg | Cash Receipt | | KrAuftrag | Wholesale Order | | Inventurbelege | Inventory Documents | | EDIListen | EDI Lists | | Umbuchungen | Transfers | | Warenbewegungen | Goods Movements | | Wareneingaenge | Goods Receipts |</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-NewNumberFromSeries</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>seriesName</maml:name>
          <maml:description>
            <maml:para>Specifies the name of the series for which a new number is to be generated. The value must be one of the series listed in the description.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>seriesName</maml:name>
        <maml:description>
          <maml:para>Specifies the name of the series for which a new number is to be generated. The value must be one of the series listed in the description.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Please ensure that the necessary resources such as the "cn_NumGetNext" stored procedure and ADODB connection are available and configured correctly.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1: Next Number of series name 'KrAuftrag' ------</maml:title>
        <dev:code>PS C:\&gt; $i = Get-NewNumberFromSeries -seriesName 'KrAuftrag' -udl 'C:\temp\EULANDA_1 JohnDow.udl'</dev:code>
        <dev:remarks>
          <maml:para>In this example, a new number for the 'KrAuftrag' (Wholesale Order) series is generated using a UDL file to establish the ADODB connection.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-NewNumberFromSeries.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-NextIp</command:name>
      <command:verb>Get</command:verb>
      <command:noun>NextIp</command:noun>
      <maml:description>
        <maml:para>The `Get-NextIp` command retrieves the next IP address after the specified IP address by incrementing</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Get-NextIp command retrieves the next IP address after the specified IP address. By default, it retrieves the IP address that immediately follows the specified IP address, but you can specify a different increment value using the `-inc` parameter.</maml:para>
      <maml:para>If successful, the command returns the next IP address as a string. If an error occurs, it returns `0.0.0.0`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-NextIp</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>Specifies the IP address for which to retrieve the next IP address.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>inc</maml:name>
          <maml:description>
            <maml:para>Specifies the increment value to use when calculating the next IP address. The default value is 1.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>inc</maml:name>
        <maml:description>
          <maml:para>Specifies the increment value to use when calculating the next IP address. The default value is 1.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>Specifies the IP address for which to retrieve the next IP address.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:et-NextIp command retrieves the next IP address after the specified IP</maml:title>
        <dev:code>PS C:\&gt; Get-NextIp -ip '192.168.178.1' -inc 14
 
# Output
 
192.168.178.15</dev:code>
        <dev:remarks>
          <maml:para>This example retrieves the IP address that is 14 addresses after `192.168.178.1`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-NextIp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-OldestFile</command:name>
      <command:verb>Get</command:verb>
      <command:noun>OldestFile</command:noun>
      <maml:description>
        <maml:para>Get oldest filename from a directory</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function returns the oldest file of a folder. The parameter `filemask` is specified with path and file mask.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-OldestFile</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>Specifies the path, including the file mask, for which the oldest file should be found.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>Specifies the path, including the file mask, for which the oldest file should be found.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1:Returns the oldest text file from a folder -----</maml:title>
        <dev:code>PS C:\&gt; Get-OldestFile -filemask 'C:\temp\*.txt'
 
# Output
 
logo.txt</dev:code>
        <dev:remarks>
          <maml:para>In this example the oldest text file from the folder `C:\temp` is returned.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-OldestFile.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-Path32</command:name>
      <command:verb>Get</command:verb>
      <command:noun>Path32</command:noun>
      <maml:description>
        <maml:para>Returns the Windows path for 32-bit programs</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function returns the Windows path for 32-bit programs. This differs depending on whether it is a 32-bit or a 64-bit Windows.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-Path32</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1:Returns the program path for 32-bit apps ------</maml:title>
        <dev:code>PS C:\&gt; Get-Path32
 
# Output
 
C:\Program Files (x86)</dev:code>
        <dev:remarks>
          <maml:para>In this example, the command was run from a 64-bit Windows system.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-Path32.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-PropertySql</command:name>
      <command:verb>Get</command:verb>
      <command:noun>PropertySql</command:noun>
      <maml:description>
        <maml:para>Generates the SQL statement used by Get-XmlEulandaProperty</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Creates the SQL command used internally by Get-XmlEulandaProperty. The path where the select statement will retrieve the data is specified through the `-breadcrumbPath` parameter. The table on which the property tree is based is specified through the `-tablename` parameter. Valid values for `-tablename` are `Article`, `Address`, and `Delivery`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-PropertySql</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>breadcrumbPath</maml:name>
          <maml:description>
            <maml:para>Specifies the root of a property tree path starting with a backslash ``. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used the tree from that point.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>tablename</maml:name>
          <maml:description>
            <maml:para>The parameter specifies the name of the table for which the property tree should be exported. Currently, three tables are supported: Article, Address, and Delivery. The valid table names can be retrieved using the `Get-MappingTablename` function, which allows input in both the native and English names.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>breadcrumbPath</maml:name>
        <maml:description>
          <maml:para>Specifies the root of a property tree path starting with a backslash ``. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used the tree from that point.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>tablename</maml:name>
        <maml:description>
          <maml:para>The parameter specifies the name of the table for which the property tree should be exported. Currently, three tables are supported: Article, Address, and Delivery. The valid table names can be retrieved using the `Get-MappingTablename` function, which allows input in both the native and English names.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Creates the SQL command for exporting a property tree</maml:title>
        <dev:code>PS C:\&gt; Get-PropertySql -breadcrumbPath '\Shop' -tablename 'Article'
 
-- Format path 'subpath1\subpath2\subpath3' without leading or trailing backslashes
        DECLARE @BreadcrumbPath VARCHAR(100) = '\Shop';
        SET @BreadcrumbPath = REPLACE(@BreadcrumbPath, '\\', '')
        IF LEFT(@BreadcrumbPath, 1) = '\' SET @BreadcrumbPath = SUBSTRING(@BreadcrumbPath, 2, LEN(@BreadcrumbPath) - 1)
        IF RIGHT(@BreadcrumbPath, 1) = '\' SET @BreadcrumbPath = SUBSTRING(@BreadcrumbPath, 1, LEN(@BreadcrumbPath) - 1)
        SET @BreadcrumbPath = LTRIM(RTRIM(@BreadcrumbPath))
 
 
    DECLARE @ParentId INT = NULL;
    DECLARE @BreadcrumbId INT = NULL;
    DECLARE @Crumb VARCHAR(1024);
 
    SELECT @ParentId=Id From merkmal where tabelle = 'artikel' and merkmaltyp=0 and ParentId is Null
    WHILE LEN(@BreadcrumbPath) &gt; 0
    BEGIN
      SET @Crumb = LEFT(@BreadcrumbPath, CHARINDEX('\', @BreadcrumbPath + '\') - 1);
      SET @BreadcrumbPath = SUBSTRING(@BreadcrumbPath, LEN(@Crumb) + 2, 1024);
      SELECT @ParentId = Id
        FROM Merkmal
        WHERE [Name] = @Crumb AND
          IsNull(ParentId, -1) = IsNull(@ParentId, -1) AND
          Tabelle = 'artikel';
      IF @@ROWCOUNT = 0 SET @ParentId = -1;
    END;
 
    SET @BreadcrumbId = @ParentId;
    -- Result is: @BreadcrumbId
    -- Select the tree starting with the BreadcrumpID. If no ID is provided, select the entire tree.
    WITH CTE AS (
        SELECT
            ID, ParentID, Name, UID,
            CASE WHEN MerkmalTyp = 2 THEN 1 Else MerkmalTyp END [Sort],
            Beschreibung, SqlBedingung, Color
        FROM Merkmal
        WHERE
          ID = @BreadcrumbID
          AND Tabelle = 'artikel'
          AND NOT Name LIKE '.%'
        UNION ALL
        SELECT
          t.ID, t.ParentID, t.Name, t.UID,
          CASE WHEN t.MerkmalTyp = 2 THEN 1 Else MerkmalTyp END [Sort],
          t.Beschreibung, t.SqlBedingung, t.Color
        FROM Merkmal t
          JOIN CTE c ON t.ParentID = c.ID
        WHERE
          t.Tabelle = 'artikel'
          AND NOT t.Name LIKE '.%'
    )
    SELECT ID, ParentID, Name, UID, Sort, Color
    FROM CTE
    ORDER BY ParentId, Sort, Name;</dev:code>
        <dev:remarks>
          <maml:para>The example demonstrates how to use the `Get-PropertySql` cmdlet to generate the SQL command that is internally used by `Get-XmlEulandaProperty`. The `-breadcrumbPath` parameter specifies the path where the select statement retrieves the data, while the `-tablename` parameter specifies the table to which the property tree refers. The generated SQL command is then used to retrieve the property tree data from the database.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-PropertySql.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-PublicIp</command:name>
      <command:verb>Get</command:verb>
      <command:noun>PublicIp</command:noun>
      <maml:description>
        <maml:para>Get the public ip from a outbound website</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function uses an external server's WEB API to determine the public IP address of the upstream router.</maml:para>
      <maml:para>&gt; ATTENTION! Multiple API calls on the same day may result in blockings.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-PublicIp</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1:Get the public ip number also behind a router ---</maml:title>
        <dev:code>PS C:\&gt; Get-PublicIp
 
# Output
 
95.238.49.168</dev:code>
        <dev:remarks>
          <maml:para>This function provides the public IP of the own connection.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-PublicIp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-RemoteDir</command:name>
      <command:verb>Get</command:verb>
      <command:noun>RemoteDir</command:noun>
      <maml:description>
        <maml:para>Retrieves a list of files or directories from an FTP or SFTP server.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-RemoteDir` function is a versatile tool for retrieving a list of files or directories from a remote server. This function supports the FTP, FTPS, and SFTP protocols, allowing a wide range of remote servers to be accessed.</maml:para>
      <maml:para>Authentication can be performed using a username and password, which is commonly used for FTP/FTPS servers. For SFTP servers, a client certificate can be used for a more secure authentication method.</maml:para>
      <maml:para>In addition, the function includes features to adjust the behavior of the request. For instance, the `-activeMode` switch allows FTP connections to use active mode instead of the default passive mode.</maml:para>
      <maml:para>Furthermore, the `-mask` parameter allows to filter the results based on a specific file mask. This can be particularly useful when you're looking for files of a specific type or with a specific pattern in their name.</maml:para>
      <maml:para>Whether you need to list all text files in a directory, find all directories in a certain path, or simply list all files in a directory, `Get-RemoteDir` provides a simple and efficient way to do it.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-RemoteDir</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>dirType</maml:name>
          <maml:description>
            <maml:para>The type of directory to retrieve. Valid values are "file" and "directory". Default is "file".</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">file</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">directory</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>mask</maml:name>
          <maml:description>
            <maml:para>A file mask to filter the results. For example, '*.txt' will only return .txt files.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>he remote folder to retrieve the list from. Default is the root directory.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>dirType</maml:name>
        <maml:description>
          <maml:para>The type of directory to retrieve. Valid values are "file" and "directory". Default is "file".</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>mask</maml:name>
        <maml:description>
          <maml:para>A file mask to filter the results. For example, '*.txt' will only return .txt files.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>he remote folder to retrieve the list from. Default is the root directory.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Get-RemoteDir -server 'ftp.example.com' -user 'username' -password 'password' -dirType 'file' -mask '*.txt'</dev:code>
        <dev:remarks>
          <maml:para>This example retrieves a list of all .txt files from the root directory of the FTP server at ftp.example.com.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-RemoteDir.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-RemoteFileAge</command:name>
      <command:verb>Get</command:verb>
      <command:noun>RemoteFileAge</command:noun>
      <maml:description>
        <maml:para>Retrieves the age of a specified file on a remote server, supporting FTP, FTPS, and SFTP protocols.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-RemoteFileAge` function retrieves the age of a specific file from a remote server, calculated in seconds from the current time. The function supports FTP, FTPS, and SFTP protocols. Authentication can be performed using a username and password, or a certificate for SFTP. The file whose age is to be retrieved is specified by its path and name in the `-remoteFolder` and `-remoteFile` parameters, respectively. This function is also internally used to specify a resume age for the `Send-RemoteFile` function in FTP and FTPS protocols.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-RemoteFileAge</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>Directory on the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>remoteFile</maml:name>
          <maml:description>
            <maml:para>The filename for which the file age should be determined in seconds from now.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>remoteFile</maml:name>
        <maml:description>
          <maml:para>The filename for which the file age should be determined in seconds from now.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>Directory on the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Retrieves the age, in seconds, of a specified file from a specific directory on a remote server using simple authentication</maml:title>
        <dev:code>PS C:\&gt; Get-RemoteFileAge -server "ftp.example.com" -protocol "sftp" -user "username" -password "password" -remoteFolder "/docs" -remoteFile "test.docx"</dev:code>
        <dev:remarks>
          <maml:para>This example retrieves the age of the file "test.docx" located in the "/docs" directory on the SFTP server at "ftp.example.com". The function uses the provided username and password for authentication.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-RemoteFileAge.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-RemoteFileDate</command:name>
      <command:verb>Get</command:verb>
      <command:noun>RemoteFileDate</command:noun>
      <maml:description>
        <maml:para>Retrieves the date of a specified file on a remote server, supporting FTP, FTPS, and SFTP protocols.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-RemoteFileDate` function retrieves the date of a specific file from a remote server using the provided connection parameters. The function supports FTP, FTPS, and SFTP protocols. Authentication can be performed using a username and password, or a certificate for SFTP. The file whose date is to be retrieved is specified by its path and name in the `-remoteFolder` and `-remoteFile` parameters, respectively.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-RemoteFileDate</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>Directory on the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>remoteFile</maml:name>
          <maml:description>
            <maml:para>The filename for which the file date should be determined.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>remoteFile</maml:name>
        <maml:description>
          <maml:para>The filename for which the file date should be determined.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>Directory on the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Retrieves the date of a specified file from a specific directory on a remote server using simple authentication</maml:title>
        <dev:code>PS C:\&gt; Get-RemoteFileDate -server "ftp.example.com" -protocol "sftp" -user "username" -password "password" -remoteFolder "/docs" -remoteFile "test.docx"</dev:code>
        <dev:remarks>
          <maml:para>This example retrieves the date of the file "test.docx" located in the "/docs" directory on the SFTP server at "ftp.example.com". The function uses the provided username and password for authentication.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-RemoteFileDate.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-RemoteFileSize</command:name>
      <command:verb>Get</command:verb>
      <command:noun>RemoteFileSize</command:noun>
      <maml:description>
        <maml:para>Retrieves the size of a specified file on a remote server, supporting FTP, FTPS, and SFTP protocols.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-RemoteFileSize` function retrieves the size, in bytes, of a specific file from a remote server using the provided connection parameters. The function supports FTP, FTPS, and SFTP protocols. Authentication can be performed using a username and password, or a certificate for SFTP. The file whose size is to be retrieved is specified by its path and name in the `-remoteFolder` and `-remoteFile` parameters, respectively.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-RemoteFileSize</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>Directory on the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>remoteFile</maml:name>
          <maml:description>
            <maml:para>The filename for which the file size should be determined in bytes.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>remoteFile</maml:name>
        <maml:description>
          <maml:para>The filename for which the file size should be determined in bytes.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>Directory on the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Retrieves the size of a specified file from a specific directory on a remote server using simple authentication</maml:title>
        <dev:code>PS C:\&gt; Get-RemoteFileSize -server "ftp.example.com" -protocol "sftp" -user "username" -password "password" -remoteFolder "/docs" -remoteFile "test.docx"</dev:code>
        <dev:remarks>
          <maml:para>This example retrieves the size of the file "test.docx" located in the "/docs" directory on the SFTP server at "ftp.example.com". The function uses the provided username and password for authentication.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-RemoteFileSize.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-RemoteNextFilename</command:name>
      <command:verb>Get</command:verb>
      <command:noun>RemoteNextFilename</command:noun>
      <maml:description>
        <maml:para>Finds the oldest file in a directory on a remote server that matches a specified file mask, supporting FTP, FTPS, and SFTP protocols.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-RemoteNextFilename` function retrieves the name of the oldest file in a specified directory on a remote server that matches a given file mask. This can be used to process files in a queue-like manner. The function supports FTP, FTPS, and SFTP protocols. Authentication can be performed using a username and password, or a certificate for SFTP. The directory to search and the file mask to use are specified by the `-remoteFolder` and `-mask` parameters, respectively.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-RemoteNextFilename</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>mask</maml:name>
          <maml:description>
            <maml:para>The 'mask' filters the directory for specific file names, for example, '*.xml'.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>The `remoteFolder` is the directory in which file names matching the `mask` are searched for.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>mask</maml:name>
        <maml:description>
          <maml:para>The 'mask' filters the directory for specific file names, for example, '*.xml'.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>The `remoteFolder` is the directory in which file names matching the `mask` are searched for.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Retrieves the oldest XML file from a specified directory on a remote server using simple authentication</maml:title>
        <dev:code>PS C:\&gt; Get-RemoteNextFilename -server "ftp.example.com" -protocol "sftp" -user "username" -password "password" -mask "*.xml" -remoteFolder "/docs"</dev:code>
        <dev:remarks>
          <maml:para>This example retrieves the oldest XML file from the "/docs" directory on the SFTP server at "ftp.example.com". The function uses the provided username and password for authentication.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-RemoteNextFilename.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ResStr</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ResStr</command:noun>
      <maml:description>
        <maml:para>Returns the string resource in the user's language</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Parallel to the EulandaConnect module, language resources can be stored with the file extension '.resx'. The file name is additionally extended by the language in the .NET notation. For EulandaConnect in German the language file is named EulandaConnect.de-DE.resx. For the US-American language resource it is named EulandaConnect.en-US.resx. Within EulandaConnect language resources are stored with a key so that a call with the desired parameter Key, accordingly displays the resource in the own language. The format resx is a standard format from Microsoft, so any language can be added to a running system. If a matching language file is not found, the US language file is used.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ResStr</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>Key</maml:name>
          <maml:description>
            <maml:para>Key to the desired language resource.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>Key</maml:name>
        <maml:description>
          <maml:para>Key to the desired language resource.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1:Returns the text of the resource for a key -----</maml:title>
        <dev:code>PS C:\&gt; Get-RestStr -key 'OUT_WELCOME_EXECUTIONSTART'
 
# Output
 
Execution start: {0}</dev:code>
        <dev:remarks>
          <maml:para>The output depends on the user's language, and of course whether the language file is available in that language.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-ResStr.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-SalesOrderId</command:name>
      <command:verb>Get</command:verb>
      <command:noun>SalesOrderId</command:noun>
      <maml:description>
        <maml:para>Returns the `Id` for a sales order</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Based on a order no, the Id to a sales order is returned. The Id is used for various functions. Especially for linking tables. The database can be specified via a Connection object, a UDL file or a ConnectionString.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-SalesOrderId</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>salesOrderNo</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>salesOrderId</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>customerOrderNo</maml:name>
          <maml:description>
            <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>customerOrderNo</maml:name>
        <maml:description>
          <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>salesOrderId</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>salesOrderNo</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Returns the Id of the specified sales order ----</maml:title>
        <dev:code>PS C:\&gt; Get-SalesOrderId -salesOrderNo 20230515 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>After executing the command, the function result returns the Id of the sales order to which the sales order number `20230515` belongs. The database is accessed by specifying a UDL file. Instead, an existing Connection object could also be specified.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-SalesOrderId.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ScriptDir</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ScriptDir</command:noun>
      <maml:description>
        <maml:para>Returns the path to the script that will be executed</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>If the path cannot be determined, an attempt is made to obtain the path via the `$PSScriptRoot` runtime variable. If this also fails, the current directory is returned.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ScriptDir</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----------- Example 1:Returns the path of the script -----------</maml:title>
        <dev:code>PS C:\&gt; Get-ScriptDir</dev:code>
        <dev:remarks>
          <maml:para>Returns the path of the calling script.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-ScriptDir.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-SignToolPath</command:name>
      <command:verb>Get</command:verb>
      <command:noun>SignToolPath</command:noun>
      <maml:description>
        <maml:para>Determines the path to Windows signtool.exe</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function returns the path to the signtool.exe under Windows 10 and Windows 11. The path also contains the signtool.exe itself. SignTool is part of the Windows SDK. If there are multiple Windows SDK installations, the newest SignTool will be determined.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-SignToolPath</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1:Gets the path to the current signtool.exe -----</maml:title>
        <dev:code>PS C:\&gt; Get-SignToolPath
 
# Output
 
C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe</dev:code>
        <dev:remarks>
          <maml:para>The result contains the path incl. the program name. The path depends on the version of the Windows SDK.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-SignToolPath.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Approve-Signature</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Install-SignTool</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-SingleOption</command:name>
      <command:verb>Get</command:verb>
      <command:noun>SingleOption</command:noun>
      <maml:description>
        <maml:para>Returns an option in the correct notation</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns an option in the correct notation. The string array list contains the valid option values. The first entry is special in that it is always used when an option is not recognized. This default value is returned in such a case.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-SingleOption</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>value</maml:name>
          <maml:description>
            <maml:para>Value is the option to be set. If it is found in the list of valid options, it will be returned as specified in the list. Differences in case will not cause an error. Only entries not found will then return the first entry, which is the default entry.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>list</maml:name>
          <maml:description>
            <maml:para>An array of strings containing the valid options in the desired notation. The first element of the list is the default value which is returned if an entry in the list was not found.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>list</maml:name>
        <maml:description>
          <maml:para>An array of strings containing the valid options in the desired notation. The first element of the list is the default value which is returned if an entry in the list was not found.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>value</maml:name>
        <maml:description>
          <maml:para>Value is the option to be set. If it is found in the list of valid options, it will be returned as specified in the list. Differences in case will not cause an error. Only entries not found will then return the first entry, which is the default entry.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------- Example 1:Returns a option from valid options --------</maml:title>
        <dev:code>PS C:\&gt; Get-MultipleOption -values 'Navi' -list @('BLACK','WHITE','BLUE','RED','YELLOW')
 
# Output
 
BLACK</dev:code>
        <dev:remarks>
          <maml:para>Because the Navi entry does not appear in the list of correct options, the default value `BLACK` is returned.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-SingleOption.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-Spaces</command:name>
      <command:verb>Get</command:verb>
      <command:noun>Spaces</command:noun>
      <maml:description>
        <maml:para>Returns a string from spaces</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns a string of spaces. The number of spaces is specified by the count parameter.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-Spaces</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>count</maml:name>
          <maml:description>
            <maml:para>Count of blanks to be output</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>count</maml:name>
        <maml:description>
          <maml:para>Count of blanks to be output</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------------------- Example 1Returns spaces -------------------</maml:title>
        <dev:code>PS C:\&gt; (Get-Spaces -count 10)+"This ends here"
 
# Output
 
          This ends here</dev:code>
        <dev:remarks>
          <maml:para>Returns count spaces.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/docs/Get-Spaces.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-StockSql</command:name>
      <command:verb>Get</command:verb>
      <command:noun>StockSql</command:noun>
      <maml:description>
        <maml:para>Creates a SQL command to retrieve stock informations</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Creates an array of strings. The first array element contains the SQL query for the master dataset, second the SQL query contains the query for the detail query and third array element contains the field that creates the link between the queries. The details are dynamically bound to the respective master dataset.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-StockSql</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>filter</maml:name>
          <maml:description>
            <maml:para>The filter is an array of strings and the filtering refers to the master dataset. Each row of the array is added individually to the existing filters via logical AND. By default, items whose item number starts with '.MUSTER' are hidden. For example, a filter could be "BARCODE -ne '4711'".</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>alias</maml:name>
          <maml:description>
            <maml:para>The alias is historically the field 'ArticleNo' (= phys. ARTNUMBER) of the article table. In an XML output the node is always 'ID.ALIAS'. This alias is used to uniquely associate the record and can now refer to another unique field. Currently these are UID, ID, ARTNUMBER and BARCODE. If BARCODE is used, it must be ensured that the field is unique in the database.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>ARTNUMMER</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>qtyStatic</maml:name>
          <maml:description>
            <maml:para>If a value is passed here, it overwrites the actual stock in the output. This has the background that for example a connected online store always has all articles in stock. This is very helpful when testing new systems.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>warehouse</maml:name>
          <maml:description>
            <maml:para>The name of a warehouse can be specified here. In this case it is also a filter, because in this case only the items that are available in this warehouse will be displayed. Warehouses must have been defined within the EULANDA ERP with an account number from 1000-1399.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>legacy</maml:name>
          <maml:description>
            <maml:para>The EULANDA inventory control system historically uses a total stock of all storage locations for the stock quantities. The field name is 'stock available' (= BESTANDVERFUEGBAR). Additionally there are two calculated stock levels. One is 'Stock with unposted sales' (= BESTANDVERFUEGBAR1). This one reduces the actual stock. And as last there is still the stock which contains beside it still the transacted but not yet collected orders; this is the stock with 'purchase orders' (= BESTANDVERFUEGBAR2). If the parameter warehouse is specified, the other two nodes are also output if the legacy switch is set. In this case all have the same content. However, if the parameter warehouse is not passed, then, if legacy is set, the sum of all storage locations and the two calculated nodes are output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>alias</maml:name>
        <maml:description>
          <maml:para>The alias is historically the field 'ArticleNo' (= phys. ARTNUMBER) of the article table. In an XML output the node is always 'ID.ALIAS'. This alias is used to uniquely associate the record and can now refer to another unique field. Currently these are UID, ID, ARTNUMBER and BARCODE. If BARCODE is used, it must be ensured that the field is unique in the database.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>ARTNUMMER</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>filter</maml:name>
        <maml:description>
          <maml:para>The filter is an array of strings and the filtering refers to the master dataset. Each row of the array is added individually to the existing filters via logical AND. By default, items whose item number starts with '.MUSTER' are hidden. For example, a filter could be "BARCODE -ne '4711'".</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>legacy</maml:name>
        <maml:description>
          <maml:para>The EULANDA inventory control system historically uses a total stock of all storage locations for the stock quantities. The field name is 'stock available' (= BESTANDVERFUEGBAR). Additionally there are two calculated stock levels. One is 'Stock with unposted sales' (= BESTANDVERFUEGBAR1). This one reduces the actual stock. And as last there is still the stock which contains beside it still the transacted but not yet collected orders; this is the stock with 'purchase orders' (= BESTANDVERFUEGBAR2). If the parameter warehouse is specified, the other two nodes are also output if the legacy switch is set. In this case all have the same content. However, if the parameter warehouse is not passed, then, if legacy is set, the sum of all storage locations and the two calculated nodes are output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>qtyStatic</maml:name>
        <maml:description>
          <maml:para>If a value is passed here, it overwrites the actual stock in the output. This has the background that for example a connected online store always has all articles in stock. This is very helpful when testing new systems.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>warehouse</maml:name>
        <maml:description>
          <maml:para>The name of a warehouse can be specified here. In this case it is also a filter, because in this case only the items that are available in this warehouse will be displayed. Warehouses must have been defined within the EULANDA ERP with an account number from 1000-1399.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>EXAMPLE 1:Generates SQL commands for a complete warehouse as master/detail</maml:title>
        <dev:code>[string[]]$sql= Get-StockSql -filter @("Barcode &gt;= '1000000'", "Barcode &lt;= '8888889'") -alias 'Barcode' -warehouse 'CHICAGO'
 
-- OUTPUT MASTER $sql[0]
SELECT CONVERT(VARCHAR(100),art.BARCODE) [ID.ALIAS]
FROM [dbo].Lagerort lo
JOIN [dbo].LagerKonto lk on [dbo].lk.Lagerort = lo.id
JOIN [dbo].Artikel [art] ON art.id = lk.artikelId
    AND art.ArtNummer not like '.MUSTER%'
     AND Barcode &gt;= '1000000' AND Barcode &lt;= '8888889'
WHERE lo.id &gt;= 1000
    AND lo.id &lt; 1400
    AND lk.IdentId IS NULL
    AND lk.PlatzId IS NULL
    AND lo.Bezeichnung = 'CHICAGO'
ORDER BY 1
 
-- OUTPUT DETAILS $sql[1]
SELECT lk.Menge [BESTANDVERFUEGBAR]
FROM [dbo].Lagerort lo
JOIN [dbo].LagerKonto lk on [dbo].lk.Lagerort = lo.id
JOIN [dbo].Artikel [art] ON art.BARCODE = '{0}'
WHERE lk.ArtikelId = (SELECT TOP 1 Id FROM [dbo].Artikel WHERE BARCODE = '{0}')
    AND lk.IdentId IS NULL
    AND lk.PlatzId IS NULL
    AND lo.Bezeichnung = 'CHICAGO'
 
-- OUTPUT LINK $sql[2]
ID.ALIAS</dev:code>
        <dev:remarks>
          <maml:para>In this example, SQL commands are generated that output warehouse quantities for the `CHICAGO` warehouse. The reference in the export is realized via the unique field `Barcode`. The reference always has the field name `ID.ALIAS`, which establishes the connection from the master to the detail.</maml:para>
          <maml:para>&gt; With the SQL array as the return value, a data set can then be generated via the `Get-DataFromSql` command, for example, as a nested one.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-StockSql.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DataFromSql.md</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-DataFromSql.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-Subnet</command:name>
      <command:verb>Get</command:verb>
      <command:noun>Subnet</command:noun>
      <maml:description>
        <maml:para>Get-Subnet command retrieves the subnet mask of a specified IP address CIDR</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Get-Subnet command retrieves the subnet mask of the local IP address by default. You can also specify a specific locally available IP address, for example, from a VPN or virtual switch. Alternatively, you can specify a CIDR to convert the subnet mask.</maml:para>
      <maml:para>If no parameters are specified, the command attempts to determine the local IP address and uses the subnet mask from the network interface of the local IP address.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-Subnet</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>cidr</maml:name>
          <maml:description>
            <maml:para>Specifies the CIDR notation for the subnet mask. If both the IP address and CIDR are specified, the CIDR notation is used to calculate the subnet mask.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>localIp</maml:name>
          <maml:description>
            <maml:para>If no parameters are specified, the command attempts to determine the local IP address and uses the subnet mask from the network adapter. If there are multiple local IP addresses, the gateway is evaluated. If the gateway is in the same subnet as one of the locally determined IP addresses, that IP address is used. Otherwise, any locally found IP address is used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>cidr</maml:name>
        <maml:description>
          <maml:para>Specifies the CIDR notation for the subnet mask. If both the IP address and CIDR are specified, the CIDR notation is used to calculate the subnet mask.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>localIp</maml:name>
        <maml:description>
          <maml:para>If no parameters are specified, the command attempts to determine the local IP address and uses the subnet mask from the network adapter. If there are multiple local IP addresses, the gateway is evaluated. If the gateway is in the same subnet as one of the locally determined IP addresses, that IP address is used. Otherwise, any locally found IP address is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1:Retrieve the subnet mask for the local IP address. -</maml:title>
        <dev:code>PS C:\&gt; Get-Subnet
 
# Output
 
255.255.255.0</dev:code>
        <dev:remarks>
          <maml:para>If no parameters are specified, the command attempts to determine the local IP address and uses the subnet mask from the network adapter. If there are multiple local IP addresses, the gateway is evaluated. If the gateway is in the same subnet as one of the locally determined IP addresses, that IP address is used. Otherwise, any locally found IP address is used.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-Subnet.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-SupplierAddressId</command:name>
      <command:verb>Get</command:verb>
      <command:noun>SupplierAddressId</command:noun>
      <maml:description>
        <maml:para>The `Get-SupplierAddressId` function retrieves the latest revision of a supplier's address from a SQL database.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function executes a SQL query that selects the address revision with the highest revision number for each supplier address, effectively fetching the latest revision of the address.</maml:para>
      <maml:para>If the SQL query returns a non-empty result, the function extracts the ID of the address with the highest revision number.</maml:para>
      <maml:para>In summary, `Get-SupplierAddressId` provides a way to retrieve the latest revision of a supplier's address in a SQL database, taking into account a complex table structure and ensuring that all database interactions are secure and robust. It's designed to be flexible and easy to use, with various options for specifying the database connection.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-SupplierAddressId</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>supplierID</maml:name>
          <maml:description>
            <maml:para>This mandatory integer parameter is used to specify the ID of the supplier for which you want to retrieve the latest address revision.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>supplierID</maml:name>
        <maml:description>
          <maml:para>This mandatory integer parameter is used to specify the ID of the supplier for which you want to retrieve the latest address revision.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; $id = Get-SupplierAddressId -supplierID 15 -udl 'C:\temp\Eulanda_1 JohnDoe.udl'</dev:code>
        <dev:remarks>
          <maml:para>Returns the SupplierAdressId with the highest revision of address information.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-SupplierAddressId.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-SupplierId</command:name>
      <command:verb>Get</command:verb>
      <command:noun>SupplierId</command:noun>
      <maml:description>
        <maml:para>The provided function retrieves the SupplierId based on the -addressMatch of an address from the EULANDA ERP database.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Each supplier in the 'Kreditor' table has a special entry called `AdresseId` that links it to a specific address in the 'Adressen' table. This is how the program knows which supplier is associated with which address.</maml:para>
      <maml:para>The `Get-SupplierId` function takes a `-addressMatch`, connects to the database, and looks up which supplier is associated with that address. It then gives you the ID of the supplier.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-SupplierId</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>addressMatch</maml:name>
          <maml:description>
            <maml:para>The parameter `-addressMatch` is a match code in the EULANDA ERP system, which also serves as a search term but as a unique search field. It is practical because it is easily readable and understandable, and is often used to compare data with external systems. The match code is used to search for a specific address, to ensure that the searched address is unique and valid.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>addressMatch</maml:name>
        <maml:description>
          <maml:para>The parameter `-addressMatch` is a match code in the EULANDA ERP system, which also serves as a search term but as a unique search field. It is practical because it is easily readable and understandable, and is often used to compare data with external systems. The match code is used to search for a specific address, to ensure that the searched address is unique and valid.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Returns the supplierId for an addressMatch 'WUERTH'</maml:title>
        <dev:code>PS C:\&gt; $id = Get-SupplierId -addressMatch 'WUERTH' -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>Returns the SupplierId for an address with the matchcode 'WUERTH'. It is important to note that the matchcode is searched in the address table and not in the linked supplier file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-SupplierId.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-TempDir</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TempDir</command:noun>
      <maml:description>
        <maml:para>Returns the path for temporary files</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns the path for temporary files of the logged in user.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-TempDir</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------------- Example 1:Folder for temp files ---------------</maml:title>
        <dev:code>PS C:\&gt; Get-TempDir
 
# Output
 
C:\Users\John\AppData\Local\Temp</dev:code>
        <dev:remarks>
          <maml:para>Returns the path for temporary files.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-TempDir.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-DesktopDir</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-TranslateSection</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TranslateSection</command:noun>
      <maml:description>
        <maml:para>Returns a language section from a continuous text</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function returns a language section from a continuous text. This way of storing languages in a text block is specific for the EULANDA ERP. The text for example of an article can contain several languages. For this the individual sections are provided with an `iso` language separator. This is put in an own line and in square brackets, e.g. `[EN]` for English.</maml:para>
      <maml:para>If the desired language is not found, the text before the first language separator is returned.</maml:para>
      <maml:para>The language separator can be extended additionally. In this case, the sub-delimiter must be specified with a colon from the language delimiter. The text of the sub-separator is completely free and can specify a text. For example [EN: TECHNICS] or [EN: INTERNAL] etc.</maml:para>
      <maml:para>If the `sub` divider is not found, a fixed default value can be specified in the `subDefault` parameter.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-TranslateSection</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>text</maml:name>
          <maml:description>
            <maml:para>The text containing the different languages. For paragraphs are used in the continuous text with CRLF, as it is usual under Windows.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>iso</maml:name>
          <maml:description>
            <maml:para>A two-letter language identifier. `EN` for English, `IT` for Italian `DE` for German, etc.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>sub</maml:name>
          <maml:description>
            <maml:para>Defines a subsection for a language. These are freely selectable and are separated from the actual `iso` language identifier by a colon.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>subDefault</maml:name>
          <maml:description>
            <maml:para>If no subsection is found, a default can be provided for this case.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>iso</maml:name>
        <maml:description>
          <maml:para>A two-letter language identifier. `EN` for English, `IT` for Italian `DE` for German, etc.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>sub</maml:name>
        <maml:description>
          <maml:para>Defines a subsection for a language. These are freely selectable and are separated from the actual `iso` language identifier by a colon.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>subDefault</maml:name>
        <maml:description>
          <maml:para>If no subsection is found, a default can be provided for this case.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>text</maml:name>
        <maml:description>
          <maml:para>The text containing the different languages. For paragraphs are used in the continuous text with CRLF, as it is usual under Windows.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Text example with different languages and a standard text for unknown languages</maml:title>
        <dev:code># Input as $text
 
This is my default text, It is used when no language is found
[EN]
The moon always has the same face
[DE]
Der Mond hat immer das selbe Gesicht
[IT]
La luna ha sempre la stessa faccia
 
PS C:\&gt; Get-TranslateSection -text $text -iso 'IT'
 
# Output
 
La luna ha sempre la stessa faccia</dev:code>
        <dev:remarks>
          <maml:para>This text block contains three languages and one text for unknown languages. If `iso` is specified as Italian, the result is: `La luna ha sempre la stessa faccia`. If the function `Get-TranslateSection` requests French with `FR` as `iso`, this would not be found and accordingly the default text `This is my default text, It is used when no language is found` is returned.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 2:Text example with a subsection, as well as a standard text for unknown languages</maml:title>
        <dev:code># Input as $text
 
[EN]
The moon always has the same face
[EN:TECHNICS]
The moon has a diameter of about 3,474 kilometers
[DE]
Der Mond hat immer das selbe Gesicht
[DE:TECHNICS]
Der Mond hat einen Durchmesser von etwa 3.474 Kilometern
 
PS C:\&gt; $result= Get-MultipleOption -text $text -iso 'EN' -sub 'TECHNICS'
PS C:\&gt; Write-Host $result
 
# Output
 
The moon has a diameter of about 3,474 kilometers</dev:code>
        <dev:remarks>
          <maml:para>The section `TECHNICS`, is searched for and returned in the language section English. The name `TECHNICS` is only an example, any number of sections can be defined in this way. The function here returns `The moon has a diameter of about 3,474 kilometers`.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 3:Like example 2, but there is a section for unknown languages</maml:title>
        <dev:code># Input
 
This is my default text, It is used when no language is found
[:TECHNICS]
No technical information available
[EN]
The moon always has the same face
[EN:TECHNICS]
The moon has a diameter of about 3,474 kilometers
 
PS C:\&gt; $result= Get-MultipleOption -text $text -iso 'FR' -sub 'TECHNICS'
PS C:\&gt; Write-Host $result
 
# Output
 
No technical information available</dev:code>
        <dev:remarks>
          <maml:para>Here, French is specified as the language, but it is not defined. In this case the neutral section is returned. There is a neutral section for `TECHNICS`, so the function returns: `No technical information available`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-TranslateSection.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-UpsellingFromVariants</command:name>
      <command:verb>Get</command:verb>
      <command:noun>UpsellingFromVariants</command:noun>
      <maml:description>
        <maml:para>Returns an array of strings with article numbers that appear in the variants of a master article</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns an array of strings containing the article numbers present in the variants of a master article. If the specified article is already one of these variants, its number is not included in the returned array. This function is intended to populate the upselling fields of the article in the area of the shop extension. If no explicit entries are present there, they are provided by this function.</maml:para>
      <maml:para>The article can be specified using the barcode, article number, article ID or article UID. The database connection is established using one of the three options: ADO-COM object, connection string, or specifying a UDL file.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-UpsellingFromVariants</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Returns an array of strings with variant numbers to be used as upselling items</maml:title>
        <dev:code>PS C:\&gt; Get-UpsellingFromVariants -articleNo '130100' -udl 'C:\temp\Eulanda_1 Truccamo.udl'
 
180105
300107
350102
700105</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to call the `Get-UpsellingFromVariants` function to get an array of variant numbers for the article with the article number `130100`. The function is using a UDL file located at `C:\temp\Eulanda_1 Truccamo.udl` to connect to the database. The returned array contains the variant numbers `180105`, `300107`, `350102`, and `700105`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-UpsellingFromVariants.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaAddress</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaAddress</command:noun>
      <maml:description>
        <maml:para>Creates an XML fragment containing address information based on the specified selection criteria.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Creates an XML fragment with the addresses selected from the database based on the specified selection criteria. The `select` parameter is used to specify the list of columns to be retrieved, while the `filter` parameter is used to specify the filter criteria. The `order` parameter is used to specify the order in which the results are sorted. The `alias` parameter is used to specify an alias for the key field, which is normally the field `match`. The `reorder` and `revers` parameters are used to specify whether the fieldnames should be reordered (alphabetically) or reversed if the records should be in reverse order.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaAddress</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>select</maml:name>
          <maml:description>
            <maml:para>By default, all fields intended for output are retrieved. However, select can be used to specify a comma-separated list of the desired field names.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>filter</maml:name>
          <maml:description>
            <maml:para>The filter is an array of strings and the filtering refers to the master dataset. Each row of the array is added individually to the existing filters via logical AND. By default, records whose match starts with '.MUSTER' are hidden. For example, a filter could be "MATCH &lt;&gt; 'BOND'".</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>alias</maml:name>
          <maml:description>
            <maml:para>The alias is historically the field 'Match' of the address table. In an XML output the node is always 'ID.ALIAS'. This alias is used to uniquely associate the record and can now refer to another unique field. Currently these are UID, ID, and MATCH.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>order</maml:name>
          <maml:description>
            <maml:para>The field by which the output is to be sorted. If nested sorting is required, multiple field names can be specified comma-separated.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>reorder</maml:name>
          <maml:description>
            <maml:para>The list of field names can be sorted in the output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>revers</maml:name>
          <maml:description>
            <maml:para>The output of the record sorting can be done backwards.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>alias</maml:name>
        <maml:description>
          <maml:para>The alias is historically the field 'Match' of the address table. In an XML output the node is always 'ID.ALIAS'. This alias is used to uniquely associate the record and can now refer to another unique field. Currently these are UID, ID, and MATCH.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>filter</maml:name>
        <maml:description>
          <maml:para>The filter is an array of strings and the filtering refers to the master dataset. Each row of the array is added individually to the existing filters via logical AND. By default, records whose match starts with '.MUSTER' are hidden. For example, a filter could be "MATCH &lt;&gt; 'BOND'".</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>order</maml:name>
        <maml:description>
          <maml:para>The field by which the output is to be sorted. If nested sorting is required, multiple field names can be specified comma-separated.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>reorder</maml:name>
        <maml:description>
          <maml:para>The list of field names can be sorted in the output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>revers</maml:name>
        <maml:description>
          <maml:para>The output of the record sorting can be done backwards.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>select</maml:name>
        <maml:description>
          <maml:para>By default, all fields intended for output are retrieved. However, select can be used to specify a comma-separated list of the desired field names.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Retrieves an XML fragment for address fields ----</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaAddress -select 'Name1,Name2,Name3,Strasse,Ort' -filter "Match = 'EULANDA'" -udl "C:\temp\Eulanda_1 Eulanda.udl"
 
&lt;ADRESSELISTE&gt;
    &lt;ADRESSE&gt;
        &lt;ID.ALIAS&gt;EULANDA&lt;/ID.ALIAS&gt;
        &lt;MATCH&gt;EULANDA&lt;/MATCH&gt;
        &lt;NAME1&gt;EULANDA Software GmbH&lt;/NAME1&gt;
        &lt;NAME2&gt;c/o John Doe&lt;/NAME2&gt;
        &lt;NAME3&gt;3rd floor&lt;/NAME3&gt;
        &lt;STRASSE&gt;Beuerbacher Weg 20&lt;/STRASSE&gt;
        &lt;ORT&gt;Hünstetten&lt;/ORT&gt;
    &lt;/ADRESSE&gt;
&lt;/ADRESSELISTE&gt;</dev:code>
        <dev:remarks>
          <maml:para>This example generates an XML fragment containing address information for addresses that match the filter criteria "Match = 'EULANDA'". The resulting XML fragment contains only the columns specified in the `select` parameter.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaAddress.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaArticle</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaArticle</command:noun>
      <maml:description>
        <maml:para>Returns one or more articles as an XML fragment, allowing for filtering, sorting and reordering of the data.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-XmlEulandaArticle` function returns one or more articles as an XML fragment. A comma-separated list of fields can be specified with the `-select` parameter. By default, it uses a set of field names compatible with the classic EULANDA shop interface.</maml:para>
      <maml:para>The `-filter` parameter can be used to specify an array of SQL filter conditions, which are combined with logical AND.</maml:para>
      <maml:para>The `-alias` parameter is set to the article number (`articleNo`) by default, but it can be changed. The alias is output as the `ID.ALIAS` field name in the XML output.</maml:para>
      <maml:para>The output can be sorted by a specific field name using the `-order` parameter. If nothing is specified, the field name of `-alias` is used for sorting.</maml:para>
      <maml:para>The `-reorder` parameter can be used to specify a different order for field names (sorted alphabetically).</maml:para>
      <maml:para>If the output of the datasets should be in reverse order, the `-reverse` switch can be used.</maml:para>
      <maml:para>Subqueries for additional XML fragments are performed for each article. This way, shop extension fields, stock levels, price lists, and breadcrumb paths in which the respective article is contained are added.</maml:para>
      <maml:para>The connection to the database is made via an ADO COM object, a connection string, or a UDL file.</maml:para>
      <maml:para>The fragment is output as an XmlString.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaArticle</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>select</maml:name>
          <maml:description>
            <maml:para>Specifies a comma-separated list of field names to include in the output. Also an `*` for all fields is possible.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>filter</maml:name>
          <maml:description>
            <maml:para>Specifies an array of SQL filter conditions to apply to the output. For example: `-filter "ArtNummer='130100'`. Only native database field names are allowed in the filter conditions.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>alias</maml:name>
          <maml:description>
            <maml:para>Specifies an alternate field name to use as the unique identifier for each record. This field is always output as 'ID.ALIAS' in the XML.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>order</maml:name>
          <maml:description>
            <maml:para>Specifies a field name to sort the output of the articles.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>customerGroups</maml:name>
          <maml:description>
            <maml:para>Specifies the customer groups to use for calculating customer-specific prices based on the discounts associated with the article's discount group and the specified customer groups. This can be a single group or a comma-separated list of groups.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>reorder</maml:name>
          <maml:description>
            <maml:para>Rearranges the field names in alphabetical order.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>revers</maml:name>
          <maml:description>
            <maml:para>Reverses the order of the output records.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>alias</maml:name>
        <maml:description>
          <maml:para>Specifies an alternate field name to use as the unique identifier for each record. This field is always output as 'ID.ALIAS' in the XML.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>customerGroups</maml:name>
        <maml:description>
          <maml:para>Specifies the customer groups to use for calculating customer-specific prices based on the discounts associated with the article's discount group and the specified customer groups. This can be a single group or a comma-separated list of groups.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>filter</maml:name>
        <maml:description>
          <maml:para>Specifies an array of SQL filter conditions to apply to the output. For example: `-filter "ArtNummer='130100'`. Only native database field names are allowed in the filter conditions.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>order</maml:name>
        <maml:description>
          <maml:para>Specifies a field name to sort the output of the articles.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>reorder</maml:name>
        <maml:description>
          <maml:para>Rearranges the field names in alphabetical order.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>revers</maml:name>
        <maml:description>
          <maml:para>Reverses the order of the output records.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>select</maml:name>
        <maml:description>
          <maml:para>Specifies a comma-separated list of field names to include in the output. Also an `*` for all fields is possible.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1:Single article fragment as an xmlString ------</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaArticle -filter "ArtNummer='130100'" -udl 'C:\temp\Eulanda_1 Truccamo.udl'
 
&lt;ARTIKELLISTE&gt;
    &lt;ARTIKEL&gt;
        &lt;ID.ALIAS&gt;130100&lt;/ID.ALIAS&gt;
        &lt;ARTNUMMER&gt;130100&lt;/ARTNUMMER&gt;
        &lt;CHANGEDATE&gt;2023-03-26T15:33:43&lt;/CHANGEDATE&gt;
        &lt;ARTNUMMER&gt;130100&lt;/ARTNUMMER&gt;
        &lt;BARCODE&gt;4028362130100&lt;/BARCODE&gt;
        &lt;MWSTSATZ&gt;22.00&lt;/MWSTSATZ&gt;
        &lt;MWSTGR&gt;3&lt;/MWSTGR&gt;
        &lt;WAEHRUNG&gt;EUR&lt;/WAEHRUNG&gt;
        &lt;GEWICHT&gt;0.0000&lt;/GEWICHT&gt;
        &lt;SHOPEXPORTDATUM&gt;2018-11-12T10:13:23&lt;/SHOPEXPORTDATUM&gt;
        &lt;SHOPFREIGABEFLG&gt;True&lt;/SHOPFREIGABEFLG&gt;
        &lt;AUSLAUFFLG&gt;False&lt;/AUSLAUFFLG&gt;
        &lt;NEUFLG&gt;False&lt;/NEUFLG&gt;
        &lt;SONDERFLG&gt;False&lt;/SONDERFLG&gt;
        &lt;LOESCHFLG&gt;False&lt;/LOESCHFLG&gt;
        &lt;VERPACKEH&gt;1.00&lt;/VERPACKEH&gt;
        &lt;PREISEH&gt;1.00&lt;/PREISEH&gt;
        &lt;EKNETTO&gt;2.16&lt;/EKNETTO&gt;
        &lt;VK&gt;5.95&lt;/VK&gt;
        &lt;BRUTTOFLG&gt;True&lt;/BRUTTOFLG&gt;
        &lt;VKNETTO&gt;4.88&lt;/VKNETTO&gt;
        &lt;VKBRUTTO&gt;5.95&lt;/VKBRUTTO&gt;
        &lt;LAGERTYP&gt;17&lt;/LAGERTYP&gt;
        &lt;URSPRUNGSLAND&gt;DE&lt;/URSPRUNGSLAND&gt;
        &lt;WARENNR&gt;33049900&lt;/WARENNR&gt;
        &lt;VOLUMEN&gt;0.0000&lt;/VOLUMEN&gt;
        &lt;KURZTEXT1&gt;Profi-Aqua Perlglanz-Perlmutt, 12ml&lt;/KURZTEXT1&gt;
        &lt;KURZTEXT2&gt;Madreperla perlato, 12ml&lt;/KURZTEXT2&gt;
        &lt;ULTRAKURZTEXT /&gt;
        &lt;LANGTEXT&gt;
            [DE:SHORT]
            Perlglanz Perlmutt - 12 ml
            [IT:SHORT]
            Brillante madreperla - 12 ml
            [EN:SHORT]
            Pearlised Pearl - 12 ml
            [DE]
            Profi-Aqua perlglanz perlmutt - 12 ml
            [IT]
            Profi-Acqua Brillante madreperla - 12 ml
            [EN]
            Profi-Aqua pearlised pearl - 12 ml
        &lt;/LANGTEXT&gt;
        &lt;INFO /&gt;
        &lt;SHOP&gt;
            &lt;ARTICLETYPE&gt;3&lt;/ARTICLETYPE&gt;
            &lt;MASTERARTICLE&gt;350102-M&lt;/MASTERARTICLE&gt;
            &lt;METATITLE /&gt;
            &lt;METADESCRIPTION /&gt;
            &lt;METAKEYWORDS /&gt;
            &lt;DIMENSIONHEIGHT /&gt;
            &lt;DIMENSIONWIDTH /&gt;
            &lt;DIMENSIONDEPTH /&gt;
            &lt;INFOURLTEXT /&gt;
            &lt;INFOURL /&gt;
            &lt;IMAGE1 /&gt;
            &lt;IMAGE2 /&gt;
            &lt;IMAGE3 /&gt;
            &lt;IMAGE4 /&gt;
            &lt;IMAGE5 /&gt;
            &lt;IMAGE6 /&gt;
            &lt;IMAGE7 /&gt;
            &lt;IMAGE8 /&gt;
            &lt;IMAGE9 /&gt;
            &lt;IMAGE10 /&gt;
            &lt;IMAGE11 /&gt;
            &lt;IMAGE12 /&gt;
            &lt;IMAGE13 /&gt;
            &lt;IMAGE14 /&gt;
            &lt;IMAGE15 /&gt;
            &lt;SUGGESTEDLISTPRICE /&gt;
            &lt;VARIANTDIMENSIONS1 /&gt;
            &lt;VARIANTDIMENSIONS2 /&gt;
            &lt;VARIANTDIMENSIONS3 /&gt;
            &lt;VARIANTDIMENSIONS4 /&gt;
            &lt;VARIANTDIMENSIONS5 /&gt;
            &lt;VARIANTVALUE1&gt;12 ml&lt;/VARIANTVALUE1&gt;
            &lt;VARIANTVALUE2 /&gt;
            &lt;VARIANTVALUE3 /&gt;
            &lt;VARIANTVALUE4 /&gt;
            &lt;VARIANTVALUE5 /&gt;
            &lt;CROSS1 /&gt;
            &lt;CROSS2 /&gt;
            &lt;CROSS3 /&gt;
            &lt;CROSS4 /&gt;
            &lt;CROSS5 /&gt;
            &lt;CROSS6 /&gt;
            &lt;CROSS7 /&gt;
            &lt;CROSS8 /&gt;
            &lt;UP1&gt;180105&lt;/UP1&gt;
            &lt;UP2&gt;300107&lt;/UP2&gt;
            &lt;UP3&gt;350102&lt;/UP3&gt;
            &lt;UP4&gt;700105&lt;/UP4&gt;
            &lt;UP5 /&gt;
            &lt;UP6 /&gt;
            &lt;UP7 /&gt;
            &lt;UP8 /&gt;
            &lt;BASEDIVISOR&gt;0.0000&lt;/BASEDIVISOR&gt;
            &lt;BASEUNIT /&gt;
            &lt;SALESSIZE&gt;12.0000&lt;/SALESSIZE&gt;
            &lt;SALESUNIT&gt;100&lt;/SALESUNIT&gt;
            &lt;SHIPPINGWEIGHT /&gt;
            &lt;SHIPPINGFREE /&gt;
            &lt;VARIANTTEXT1&gt;Size (ml)&lt;/VARIANTTEXT1&gt;
            &lt;VARIANTTEXT2 /&gt;
            &lt;VARIANTTEXT3 /&gt;
            &lt;VARIANTTEXT4 /&gt;
            &lt;VARIANTTEXT5 /&gt;
            &lt;MANUFACTURER&gt;MYSPIEGEL NVK&lt;/MANUFACTURER&gt;
        &lt;/SHOP&gt;
        &lt;LAGER&gt;
            &lt;BESTANDVERFUEGBAR&gt;0.00&lt;/BESTANDVERFUEGBAR&gt;
            &lt;BESTANDVERFUEGBAR1&gt;0.00&lt;/BESTANDVERFUEGBAR1&gt;
            &lt;BESTANDVERFUEGBAR2&gt;0.00&lt;/BESTANDVERFUEGBAR2&gt;
        &lt;/LAGER&gt;
        &lt;PREISLISTE&gt;
            &lt;PREIS&gt;
                &lt;NAME&gt;Reseller&lt;/NAME&gt;
                &lt;WAEHRUNG&gt;EUR&lt;/WAEHRUNG&gt;
                &lt;BRUTTOFLG&gt;False&lt;/BRUTTOFLG&gt;
                &lt;STAFFEL&gt;1&lt;/STAFFEL&gt;
                &lt;MENGEAB&gt;1.00&lt;/MENGEAB&gt;
                &lt;VK&gt;2.16&lt;/VK&gt;
            &lt;/PREIS&gt;
        &lt;/PREISLISTE&gt;
        &lt;MERKMALLISTE&gt;
            &lt;MERKMAL&gt;
                &lt;PFAD&gt;\Profi-Aqua\Make-Up&lt;/PFAD&gt;
            &lt;/MERKMAL&gt;
        &lt;/MERKMALLISTE&gt;
    &lt;/ARTIKEL&gt;
&lt;/ARTIKELLISTE&gt;</dev:code>
        <dev:remarks>
          <maml:para>This function outputs an XML fragment of an article with various subnodes, which are also available as individual PowerShell commands. This XML corresponds to the structure of the original shop interface. In this case, the database is specified via a UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaArticle.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaBreadcrumb</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaBreadcrumb</command:noun>
      <maml:description>
        <maml:para>Get-XmlEulandaBreadcrumb generates an XML fragment containing all breadcrumb paths in which an article is found in a property tree.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function takes various parameters such as `-barcode`, `-articleNo`, `-articleId`, and `-articleUid` to specify the article. The `-breadcrumbPath` parameter specifies the root of the property tree path starting with a backslash ``. The `-tablename` parameter specifies the table that the property tree corresponds to. The function can connect to a database using either the `-conn` parameter, the `-udl` parameter, or the `-connStr` parameter.</maml:para>
      <maml:para>The XML fragment generated by the function contains a list of breadcrumb paths for the specified article.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaBreadcrumb</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>breadcrumbPath</maml:name>
          <maml:description>
            <maml:para>Specifies the root of a property tree path starting with a backslash ``. This parameter is used to search for the corresponding branch in the property tree and retrieve all breadcrumb paths in which the article is included in a fragmental xml format.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>tablename</maml:name>
          <maml:description>
            <maml:para>The parameter specifies the name of the table for which the property tree should be exported. Currently, three tables are supported: Article, Address, and Delivery. The valid table names can be retrieved using the `Get-MappingTablename` function, which allows input in both the native and English names.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>breadcrumbPath</maml:name>
        <maml:description>
          <maml:para>Specifies the root of a property tree path starting with a backslash ``. This parameter is used to search for the corresponding branch in the property tree and retrieve all breadcrumb paths in which the article is included in a fragmental xml format.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>tablename</maml:name>
        <maml:description>
          <maml:para>The parameter specifies the name of the table for which the property tree should be exported. Currently, three tables are supported: Article, Address, and Delivery. The valid table names can be retrieved using the `Get-MappingTablename` function, which allows input in both the native and English names.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:This example generates an XML fragment containing all breadcrumb paths for one article</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaBreadcrumb -articleNo '130100' -breadcrumbPath '\Shop' -tablename 'Article' -udl 'C:\temp\Eulanda_1 JohnDoe.udl'
 
&lt;MERKMALLISTE&gt;
    &lt;MERKMAL&gt;
        &lt;PFAD&gt;\Profi-Aqua\Make-Up&lt;/PFAD&gt;
    &lt;/MERKMAL&gt;
   &lt;MERKMAL&gt;
        &lt;PFAD&gt;\Profi-Aqua\Sensible&lt;/PFAD&gt;
    &lt;/MERKMAL&gt;
&lt;/MERKMALLISTE&gt;</dev:code>
        <dev:remarks>
          <maml:para>This example generates an XML fragment containing all breadcrumb paths in which article number 130100 is found in the `Article` property tree starting at the root `\Shop`. The XML fragment contains a single `MERKMAL` element with the `PFAD` (path) sub-element containing the breadcrumb path.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaBreadcrumb.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaDelivery</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaDelivery</command:noun>
      <maml:description>
        <maml:para>Generates an XML output for the specified delivery note, including the line items.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This operation generates an XML output containing the details of a specific delivery note, along with its associated line items. The generated XML output can be used for data exchange, reporting, or further processing.</maml:para>
      <maml:para>The SQL array specifies the SQL SELECT statement for the database query. The first array element is for the master (delivery note header), and the second array element is for the details (delivery note line items). The array is pre-populated and is generated internally by the `Get-DeliverySql` function.</maml:para>
      <maml:para>&gt; If you want to use a different SELECT statement with different fields or field names, you can derive it by wrapping the respective SQL command in a nested SELECT statement. It is important to note that the output is sorted based on the first specified field.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaDelivery</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>sql</maml:name>
          <maml:description>
            <maml:para>This string array is pre-populated by default with an SQL SELECT statement for the delivery note and the delivery note position, so it does not need to be specified. However, if you want to include a field selection or new fields, such as calculated or combined fields, in the XML, you can specify this SQL statement here as an array. The first element is the master, which is the delivery note header, and the second array element is the SELECT statement to select the corresponding positions. The positions are implicitly sorted by the first field of the position, which is normally the delivery note position. The field name is then ID.ALIAS.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>includeEmpty</maml:name>
          <maml:description>
            <maml:para>An optional switch specifying whether empty values should be included in the output. If this switch is provided, empty values will be used in the output; otherwise, default values will be used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>includeEmpty</maml:name>
        <maml:description>
          <maml:para>An optional switch specifying whether empty values should be included in the output. If this switch is provided, empty values will be used in the output; otherwise, default values will be used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>sql</maml:name>
        <maml:description>
          <maml:para>This string array is pre-populated by default with an SQL SELECT statement for the delivery note and the delivery note position, so it does not need to be specified. However, if you want to include a field selection or new fields, such as calculated or combined fields, in the XML, you can specify this SQL statement here as an array. The first element is the master, which is the delivery note header, and the second array element is the SELECT statement to select the corresponding positions. The positions are implicitly sorted by the first field of the position, which is normally the delivery note position. The field name is then ID.ALIAS.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Generates an XML output for a delivery note. ----</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaDelivery -DeliveryNo 430952 -Udl 'C:\Temp\Eulanda_1 JohnDoe.udl'</dev:code>
        <dev:remarks>
          <maml:para>This operation creates an XML output containing the details of a specific delivery note, including its associated header and line items. The generated XML output is used inside `Export-DeliveryToXml`. Because the switch `-includeEmpty` was set, also empty fields were exported.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaDelivery.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaDeliveryPos</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaDeliveryPos</command:noun>
      <maml:description>
        <maml:para>Generates an XML output for the specified delivery note, with line items only.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This operation generates an XML output containing the details of a specific delivery note, line items only. The generated XML output can be used for data exchange, reporting, or further processing.</maml:para>
      <maml:para>The SQL array specifies the SQL SELECT statement for the database query. The first array element is for the master (delivery note header), and the second array element is for the details (delivery note line items). The array is pre-populated and is generated internally by the `Get-DeliverySql` function.</maml:para>
      <maml:para>&gt; If you want to use a different SELECT statement with different fields or field names, you can derive it by wrapping the respective SQL command in a nested SELECT statement. It is important to note that the output is sorted based on the first specified field.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaDeliveryPos</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>sql</maml:name>
          <maml:description>
            <maml:para>This string array is pre-populated by default with an SQL SELECT statement for the delivery note and the delivery note position, so it does not need to be specified. However, if you want to include a field selection or new fields, such as calculated or combined fields, in the XML, you can specify this SQL statement here as an array. The first element is the master, which is the delivery note header, and the second array element is the SELECT statement to select the corresponding positions. The positions are implicitly sorted by the first field of the position, which is normally the delivery note position. The field name is then ID.ALIAS.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>includeEmpty</maml:name>
          <maml:description>
            <maml:para>An optional switch specifying whether empty values should be included in the output. If this switch is provided, empty values will be used in the output; otherwise, default values will be used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>includeEmpty</maml:name>
        <maml:description>
          <maml:para>An optional switch specifying whether empty values should be included in the output. If this switch is provided, empty values will be used in the output; otherwise, default values will be used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>sql</maml:name>
        <maml:description>
          <maml:para>This string array is pre-populated by default with an SQL SELECT statement for the delivery note and the delivery note position, so it does not need to be specified. However, if you want to include a field selection or new fields, such as calculated or combined fields, in the XML, you can specify this SQL statement here as an array. The first element is the master, which is the delivery note header, and the second array element is the SELECT statement to select the corresponding positions. The positions are implicitly sorted by the first field of the position, which is normally the delivery note position. The field name is then ID.ALIAS.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Generates an XML output for delivery note line items.</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaDeliveryPos -DeliveryNo 430952 -Udl 'C:\Temp\Eulanda_1 JohnDoe.udl'</dev:code>
        <dev:remarks>
          <maml:para>This operation creates an XML output containing the line items of a specific delivery note. The generated XML output is used inside `Get-XmlEulandaDelivery`. Because the switch `-includeEmpty` was set, also empty fields were exported.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaDeliveryPos.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaMetadata</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaMetadata</command:noun>
      <maml:description>
        <maml:para>The `Get-XmlEulandaMetadata` function generates an XML fragment with metadata information for native EULANDA-XML messages.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-XmlEulandaMetadata` function creates an XML fragment containing information about the EULANDA-XML message. This fragment follows the structure described in the ' XmlStructure (../appendix/XmlStructure.md)' document. Only field names listed in the metadata are accepted. The output uses USI8601 as the date format and the American format with a period as the decimal separator for floating-point numbers. The PC name that generated the XML and the logged-in user can be suppressed with switches.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaMetadata</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noPcName</maml:name>
          <maml:description>
            <maml:para>The `-noPcName` parameter is a switch that, if specified, suppresses the output of the computer name in the metadata XML generated by the `Get-XmlEulandaMetadata` function. If this switch is not specified, the computer name will be included in the metadata XML.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noUsername</maml:name>
          <maml:description>
            <maml:para>Parameter `-noUsername` is a switch that can be used with the `Get-XmlEulandaMetadata` function. If this switch is present, the username information will not be included in the metadata XML output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noPcName</maml:name>
        <maml:description>
          <maml:para>The `-noPcName` parameter is a switch that, if specified, suppresses the output of the computer name in the metadata XML generated by the `Get-XmlEulandaMetadata` function. If this switch is not specified, the computer name will be included in the metadata XML.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noUsername</maml:name>
        <maml:description>
          <maml:para>Parameter `-noUsername` is a switch that can be used with the `Get-XmlEulandaMetadata` function. If this switch is present, the username information will not be included in the metadata XML output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Returns the metadata for Eulanda XML format ----</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaMetadata
 
&lt;METADATA&gt;
    &lt;VERSION&gt;2.3.15&lt;/VERSION&gt;
    &lt;GENERATOR&gt;EulandaConnect&lt;/GENERATOR&gt;
    &lt;DATEFORMAT&gt;ISO8601&lt;/DATEFORMAT&gt;
    &lt;FLOATFORMAT&gt;US&lt;/FLOATFORMAT&gt;
    &lt;COUNTRYFORMAT&gt;ISO2&lt;/COUNTRYFORMAT&gt;
    &lt;FIELDNAMES&gt;NATIVE&lt;/FIELDNAMES&gt;
    &lt;DATE&gt;2023-03-22T08:31:10&lt;/DATE&gt;
    &lt;PCNAME&gt;DOE-PC&lt;/PCNAME&gt;
    &lt;USERNAME&gt;JOHN&lt;/USERNAME&gt;
&lt;/METADATA&gt;</dev:code>
        <dev:remarks>
          <maml:para>Returns the metadata for EULANDA XML format. The metadata includes the version number, generator, date format, float format, country format, field names, date and PC/username of the system that generated the XML. The PC/username can be suppressed using switches.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaMetadata.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaProperty</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaProperty</command:noun>
      <maml:description>
        <maml:para>Exports the property tree starting from a certain path as a xml fragment.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Exports the property tree starting from a certain path as a xml fragment in a hierarchical structure. The XML structure is returned as an XML string and has no metadata and also no Eulanda root.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaProperty</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>breadcrumbPath</maml:name>
          <maml:description>
            <maml:para>Specifies the root of a property tree path starting with a backslash ``. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used the tree from that point.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>tablename</maml:name>
          <maml:description>
            <maml:para>The parameter specifies the name of the table for which the property tree should be exported. Currently, three tables are supported: Article, Address, and Delivery. The valid table names can be retrieved using the `Get-MappingTablename` function, which allows input in both the native and English names.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>breadcrumbPath</maml:name>
        <maml:description>
          <maml:para>Specifies the root of a property tree path starting with a backslash ``. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used the tree from that point.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>tablename</maml:name>
        <maml:description>
          <maml:para>The parameter specifies the name of the table for which the property tree should be exported. Currently, three tables are supported: Article, Address, and Delivery. The valid table names can be retrieved using the `Get-MappingTablename` function, which allows input in both the native and English names.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Exporting Property Tree as Fragmental XML with PowerShell</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaProperty -breadcrumbPath '\Produkte' -tablename 'Address' -udl 'C:\temp\Eulanda_1 JohnDoe.udl'
 
&lt;MERKMALBAUM&gt;
    &lt;ADRESSE&gt;
        &lt;MERKMAL&gt;
            &lt;ID&gt;35&lt;/ID&gt;
            &lt;PARENTID&gt;33&lt;/PARENTID&gt;
            &lt;NAME&gt;Produkte&lt;/NAME&gt;
            &lt;UID&gt;{4CEA6D28-A1C4-4978-B94C-0E4DA370CA94}&lt;/UID&gt;
            &lt;SORT&gt;0&lt;/SORT&gt;
            &lt;COLOR /&gt;
            &lt;MERKMAL&gt;
                &lt;ID&gt;1740&lt;/ID&gt;
                &lt;PARENTID&gt;35&lt;/PARENTID&gt;
                &lt;NAME&gt;EULANDA Produktversion&lt;/NAME&gt;
                &lt;UID&gt;{9A34271F-0F1F-4CE4-AC0B-084CB5B75ED5}&lt;/UID&gt;
                &lt;SORT&gt;0&lt;/SORT&gt;
                &lt;COLOR /&gt;
                &lt;MERKMAL&gt;
                    &lt;ID&gt;1746&lt;/ID&gt;
                    &lt;PARENTID&gt;1740&lt;/PARENTID&gt;
                    &lt;NAME&gt;Eulanda 0.0 - ohne Version&lt;/NAME&gt;
                    &lt;UID&gt;{194CEE59-176A-42E4-84C8-EF8A5C29F2BB}&lt;/UID&gt;
                    &lt;SORT&gt;1&lt;/SORT&gt;
                    &lt;COLOR /&gt;
                &lt;/MERKMAL&gt;
                ...</dev:code>
        <dev:remarks>
          <maml:para>This example demonstrates how to export the property tree of an article in a fragmental XML format. The `-breadcrumbPath` parameter specifies the path of the property tree to be exported, starting with the root ``. The `-tablename` parameter specifies the name of the table to which the property tree belongs. The `-udl` parameter specifies the path to the UDL file for the database connection.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaProperty.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaRoot</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaRoot</command:noun>
      <maml:description>
        <maml:para>Get-XmlEulandaRoot creates an XML root node for EULANDA_XML format</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Get-XmlEulandaRoot generates the root node for EULANDA_XML format, which reflects the fields of the main tables of the EULANDA ERP software for exchange between same or foreign systems, such as online shops. The root node is identical for all message types.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaRoot</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---------------- Example 1:Root for Eulanda Xml ----------------</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaRoot
 
&lt;EULANDA&gt;&lt;/EULANDA&gt;</dev:code>
        <dev:remarks>
          <maml:para>Function `Get-XmlEulandaRoot` generates an empty XML node for the EULANDA_XML format used for data exchange between EULANDA ERP-Software and other systems, such as online shops. The root node is identical for all message types and has the name "EULANDA". This node would be "&lt;EULANDA&gt;&lt;/EULANDA&gt;".</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaRoot.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaShop</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaShop</command:noun>
      <maml:description>
        <maml:para>Get-XmlEulandaShop creates an XML fragment with details from the installed shop interface, such as metadata and cross-selling information.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-XmlEulandaShop` function generates an XML fragment for a given article. The article can be specified using parameters `Barcode`, `ArticleId`, `ArticleUid`, or `ArticleNo`. Access to the database can be done using an ADOCom object, a ConnectionString, or a UDL file.</maml:para>
      <maml:para>This function requires the EULANDA shop interface to be installed. This extends the system with the `esolShopArtikel` file, which contains specific things such as metadata, article variants, unit prices, upselling, or cross-selling. The XML fragment is usually generated after the XML of the article but can be generated separately through this function.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaShop</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched for here and its `Id` is returned.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="id">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="uid">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="id">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched for here and its `Id` is returned.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="uid">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1:Generates an XML fragment with shop specific data -</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaShop -articleNo '130100' -udl 'C:\temp\Eulanda_1 Truccamo.udl'
 
&lt;SHOP&gt;
    &lt;ARTICLETYPE&gt;3&lt;/ARTICLETYPE&gt;
    &lt;MASTERARTICLE&gt;350102-MASTER&lt;/MASTERARTICLE&gt;
    &lt;METATITLE /&gt;
    &lt;METADESCRIPTION /&gt;
    &lt;METAKEYWORDS /&gt;
    &lt;DIMENSIONHEIGHT /&gt;
    &lt;DIMENSIONWIDTH /&gt;
    &lt;DIMENSIONDEPTH /&gt;
    &lt;INFOURLTEXT /&gt;
    &lt;INFOURL /&gt;
    &lt;IMAGE1 /&gt;
    &lt;IMAGE2 /&gt;
    &lt;IMAGE3 /&gt;
    &lt;IMAGE4 /&gt;
    &lt;IMAGE5 /&gt;
    &lt;IMAGE6 /&gt;
    &lt;IMAGE7 /&gt;
    &lt;IMAGE8 /&gt;
    &lt;IMAGE9 /&gt;
    &lt;IMAGE10 /&gt;
    &lt;IMAGE11 /&gt;
    &lt;IMAGE12 /&gt;
    &lt;IMAGE13 /&gt;
    &lt;IMAGE14 /&gt;
    &lt;IMAGE15 /&gt;
    &lt;SUGGESTEDLISTPRICE /&gt;
    &lt;VARIANTDIMENSIONS1 /&gt;
    &lt;VARIANTDIMENSIONS2 /&gt;
    &lt;VARIANTDIMENSIONS3 /&gt;
    &lt;VARIANTDIMENSIONS4 /&gt;
    &lt;VARIANTDIMENSIONS5 /&gt;
    &lt;VARIANTVALUE1&gt;12 ml&lt;/VARIANTVALUE1&gt;
    &lt;VARIANTVALUE2 /&gt;
    &lt;VARIANTVALUE3 /&gt;
    &lt;VARIANTVALUE4 /&gt;
    &lt;VARIANTVALUE5 /&gt;
    &lt;CROSS1 /&gt;
    &lt;CROSS2 /&gt;
    &lt;CROSS3 /&gt;
    &lt;CROSS4 /&gt;
    &lt;CROSS5 /&gt;
    &lt;CROSS6 /&gt;
    &lt;CROSS7 /&gt;
    &lt;CROSS8 /&gt;
    &lt;UP1&gt;180105&lt;/UP1&gt;
    &lt;UP2&gt;300107&lt;/UP2&gt;
    &lt;UP3&gt;350102&lt;/UP3&gt;
    &lt;UP4&gt;700105&lt;/UP4&gt;
    &lt;UP5 /&gt;
    &lt;UP6 /&gt;
    &lt;UP7 /&gt;
    &lt;UP8 /&gt;
    &lt;BASEDIVISOR&gt;0.0000&lt;/BASEDIVISOR&gt;
    &lt;BASEUNIT /&gt;
    &lt;SALESSIZE&gt;12.0000&lt;/SALESSIZE&gt;
    &lt;SALESUNIT&gt;100&lt;/SALESUNIT&gt;
    &lt;SHIPPINGWEIGHT /&gt;
    &lt;SHIPPINGFREE /&gt;
    &lt;VARIANTTEXT1&gt;Size (ml)&lt;/VARIANTTEXT1&gt;
    &lt;VARIANTTEXT2 /&gt;
    &lt;VARIANTTEXT3 /&gt;
    &lt;VARIANTTEXT4 /&gt;
    &lt;VARIANTTEXT5 /&gt;
    &lt;MANUFACTURER&gt;MYSPIEGEL NVK&lt;/MANUFACTURER&gt;
&lt;/SHOP&gt;</dev:code>
        <dev:remarks>
          <maml:para>This example generates an XML fragment for the article with the article number '130100' using the UDL file 'C:\temp\Eulanda_1 Truccamo.udl' to access the EULANDA database.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaShop.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaStock</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaStock</command:noun>
      <maml:description>
        <maml:para>Retrieves the stock information of an Eulanda article and returns an XML fragment.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function retrieves the current stock information of an Eulanda article based on the given article barcode, number, ID, or UID, and returns an XML fragment containing the stock information. The function supports multiple ways of specifying the article and the database connection.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaStock</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched for here and its `Id` is returned.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched for here and its `Id` is returned.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1:Retrieves the stock data for an article ------</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaStock -articleNo '12345' -udl 'C:\temp\Eulanda_1 Eulanda.udl'
 
&lt;LAGER&gt;
    &lt;BESTANDVERFUEGBAR&gt;280&lt;/BESTANDVERFUEGBAR&gt;
    &lt;BESTANDVERFUEGBAR1&gt;189&lt;/BESTANDVERFUEGBAR1&gt;
    &lt;BESTANDVERFUEGBAR2&gt;350&lt;/BESTANDVERFUEGBAR2&gt;
&lt;/LAGER&gt;</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the stock information for the article with number '12345' using the UDL file located at 'C:\temp\Eulanda_1 Eulanda.udl'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaStock.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-XmlEulandaTierPrice</command:name>
      <command:verb>Get</command:verb>
      <command:noun>XmlEulandaTierPrice</command:noun>
      <maml:description>
        <maml:para>Retrieves the tier prices for an article from the EULANDA ERP software, either from the regular tier price table or by simulating them based on the article's rebate group and a list of customer groups.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-XmlEulandaTierPrice` function retrieves the tier prices for an article from the EULANDA ERP software by connecting to the SQL database and executing a SQL query. The article can be identified by its barcode, article number, article ID, or article UID. At least one of these parameters must be specified. The function supports three ways of specifying the database connection: a UDL file, a connection string, or a connection object.</maml:para>
      <maml:para>The function can retrieve the tier prices from the regular tier price table or simulate them based on the article's rebate group and a list of customer groups. If the `customerGroups` parameter is specified, the function simulates the tier price structure for the article based on the rebate group and a list of customer groups, and returns the simulated prices as an XML structure. If the `customerGroups` parameter is not specified, the function retrieves the tier prices from the regular tier price table and returns them as an XML structure.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-XmlEulandaTierPrice</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched for here and its `Id` is returned.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>customerGroups</maml:name>
          <maml:description>
            <maml:para>When specifying the `customerGroups` parameter, you can either provide a single customer group or multiple groups separated by commas. If the parameter is specified, the function generates a simulated tier price list based on the discounts of the group(s) provided.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched for here and its `Id` is returned.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>customerGroups</maml:name>
        <maml:description>
          <maml:para>When specifying the `customerGroups` parameter, you can either provide a single customer group or multiple groups separated by commas. If the parameter is specified, the function generates a simulated tier price list based on the discounts of the group(s) provided.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1:Get simulated tier prices for customer groups ---</maml:title>
        <dev:code>PS C:\&gt; Get-XmlEulandaTierPrice -articleNo '1100' -customerGroups 'HA,HB,HC' -udl 'C:\temp\Eulanda_1 JohnDoe.udl'
 
&lt;PREISLISTE&gt;
    &lt;PREIS&gt;
        &lt;NAME&gt;HA&lt;/NAME&gt;
        &lt;WAEHRUNG&gt;EUR&lt;/WAEHRUNG&gt;
        &lt;BRUTTOFLG&gt;0&lt;/BRUTTOFLG&gt;
        &lt;STAFFEL&gt;1&lt;/STAFFEL&gt;
        &lt;MENGEAB&gt;1.00&lt;/MENGEAB&gt;
        &lt;VK&gt;297.5&lt;/VK&gt;
    &lt;/PREIS&gt;
    &lt;PREIS&gt;
        &lt;NAME&gt;HB&lt;/NAME&gt;
        &lt;WAEHRUNG&gt;EUR&lt;/WAEHRUNG&gt;
        &lt;BRUTTOFLG&gt;0&lt;/BRUTTOFLG&gt;
        &lt;STAFFEL&gt;1&lt;/STAFFEL&gt;
        &lt;MENGEAB&gt;1.00&lt;/MENGEAB&gt;
        &lt;VK&gt;262.5&lt;/VK&gt;
    &lt;/PREIS&gt;
    &lt;PREIS&gt;
        &lt;NAME&gt;HC&lt;/NAME&gt;
        &lt;WAEHRUNG&gt;EUR&lt;/WAEHRUNG&gt;
        &lt;BRUTTOFLG&gt;0&lt;/BRUTTOFLG&gt;
        &lt;STAFFEL&gt;1&lt;/STAFFEL&gt;
        &lt;MENGEAB&gt;1.00&lt;/MENGEAB&gt;
        &lt;VK&gt;227.5&lt;/VK&gt;
    &lt;/PREIS&gt;
&lt;/PREISLISTE&gt;</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the tier prices for the article with article number '1100', using the UDL file located at `C:\temp\Eulanda_1 JohnDoe.udl`. The function simulates the tier price structure based on the article's rebate group and the customer groups 'HA', 'HB', and 'HC', and returns the simulated prices as an XML structure.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Get-XmlEulandaTierPrice.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Hide-Extensions</command:name>
      <command:verb>Hide</command:verb>
      <command:noun>Extensions</command:noun>
      <maml:description>
        <maml:para>Hides the 'Hide extension' option in Windows File Explorer</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Windows file explorer hides the file extensions for known files. If this option is not set, it can be set again via Hide-Extensions.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Hide-Extensions</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Hides the extension in Windows file explorer ----</maml:title>
        <dev:code>PS C:\&gt; Hide-Extensions</dev:code>
        <dev:remarks>
          <maml:para>This suppresses the display of file extensions for known files.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Hide-Extensions.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Show-Extensions</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Update-Desktop</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Import-ArticleFromXml</command:name>
      <command:verb>Import</command:verb>
      <command:noun>ArticleFromXml</command:noun>
      <maml:description>
        <maml:para>The `Import-ArticleFromXml` function is used to import article data from an XML source into a EULANDA database.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Import-ArticleFromXml` function is a robust utility designed to handle the importation of article data from an XML source into a EULANDA database. The function is flexible, allowing the XML data to be passed as a string (`xmlString`) or sourced from a file (`path`).</maml:para>
      <maml:para>The function utilizes ADO (ActiveX Data Objects) Recordset objects to interact with the database, facilitating the retrieval, manipulation, and writing of data.</maml:para>
      <maml:para>At the beginning of the function, a connection to the database is established through one of three ways: a direct connection object (`conn`), a UDL file (`udl`), or a connection string (`connStr`). The function performs validation checks to ensure that a valid connection method has been provided and that the XML data is sourced from either `xmlString` or `path`.</maml:para>
      <maml:para>Once the XML data is loaded, it is parsed to extract information about each article, including its properties and related price data. This information is processed and then written into the database. Notably, the function has the ability to discern whether an article already exists within the database. If the article does exist, the function merely updates the existing price data. Conversely, if the article does not exist, the function creates a new database entry and populates it with the article information.</maml:para>
      <maml:para>&gt; A special feature is the processing of the copper metal surcharge DEL. This is transferred in field UserN3 and added to the sales price when the articles are imported. The metal surcharge is always expected per unit. If the article has a price unit greater than 1, the metal surcharge is multiplied by this price unit before it is added. This special feature only comes into effect if the sales price is net, i.e. without VAT.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Import-ArticleFromXml</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>xml</maml:name>
          <maml:description>
            <maml:para>An XML string containing the article data.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>The path to the XML file containing the article data.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>cuSurcharge</maml:name>
          <maml:description>
            <maml:para>The XML import is a general approach to import data natively into the EULANDA ERP system. The format is as far as possible compatible to the EULANDA-ERP software from the year 2000. The copper processing uses a user field UserN3, which contains the copper added value of the article. This is added to the purchase and sales price during import. The price unit of the item is taken into account. If the price unit is specified as more than 1, the value in UserN3 is multiplied by this factor. The UserN3 field, in turn, is maintained by the Datanorm import function and always refers to a unit of the article, so it is independent of the price unit.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>show</maml:name>
          <maml:description>
            <maml:para>Displays a progress bar during execution.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>The path to the XML file containing the article data.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>xml</maml:name>
        <maml:description>
          <maml:para>An XML string containing the article data.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>cuSurcharge</maml:name>
        <maml:description>
          <maml:para>The XML import is a general approach to import data natively into the EULANDA ERP system. The format is as far as possible compatible to the EULANDA-ERP software from the year 2000. The copper processing uses a user field UserN3, which contains the copper added value of the article. This is added to the purchase and sales price during import. The price unit of the item is taken into account. If the price unit is specified as more than 1, the value in UserN3 is multiplied by this factor. The UserN3 field, in turn, is maintained by the Datanorm import function and always refers to a unit of the article, so it is independent of the price unit.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>show</maml:name>
        <maml:description>
          <maml:para>Displays a progress bar during execution.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1: Imports an XML file into the EULANDA ERP Database -</maml:title>
        <dev:code>PS C:\&gt; $datanorm = Convert-FromDatanorm -path "C:\Users\john\Desktop\datanorm\Test\datanorm.001" -cuDel 879
PS C:\&gt; $xml = Convert-DatanormToXml -datanorm $datanorm
PS C:\&gt; Import-ArticleFromXml -xml $xml -udl 'C:\temp\Eulanda_1 johndoe.udl'
 
&lt;EULANDA&gt;
    &lt;METADATA&gt;
        &lt;VERSION&gt;3.2.1&lt;/VERSION&gt;
        &lt;GENERATOR&gt;EulandaConnect&lt;/GENERATOR&gt;
        &lt;DATEFORMAT&gt;ISO8601&lt;/DATEFORMAT&gt;
        &lt;FLOATFORMAT&gt;US&lt;/FLOATFORMAT&gt;
        &lt;COUNTRYFORMAT&gt;ISO2&lt;/COUNTRYFORMAT&gt;
        &lt;FIELDNAMES&gt;NATIVE&lt;/FIELDNAMES&gt;
        &lt;DATE&gt;2023-06-23T22:50:11&lt;/DATE&gt;
        &lt;PCNAME&gt;DADOSTUDIO&lt;/PCNAME&gt;
        &lt;USERNAME&gt;CN&lt;/USERNAME&gt;
    &lt;/METADATA&gt;
    &lt;ARTIKELLISTE&gt;
        &lt;ARTIKEL&gt;
            &lt;ARTNUMMER&gt;8241335&lt;/ARTNUMMER&gt;
            &lt;ARTMATCH&gt;EVB 10/265 A2&lt;/ARTMATCH&gt;
            &lt;BARCODE&gt;4003899170225&lt;/BARCODE&gt;
            &lt;ARTNUMMERERSATZ&gt;456 01 31&lt;/ARTNUMMERERSATZ&gt;
            &lt;VKNETTO&gt;2.57&lt;/VKNETTO&gt;
            &lt;PREISEH&gt;1&lt;/PREISEH&gt;
            &lt;MENGENEH&gt;Stk&lt;/MENGENEH&gt;
            &lt;VERPACKEH&gt;1&lt;/VERPACKEH&gt;
            &lt;RABATTGR&gt;EM01&lt;/RABATTGR&gt;
            &lt;WARENGR&gt;01&lt;/WARENGR&gt;
            &lt;KURZTEXT1&gt;ELTROPA Verdrahtungsbrücke 1ph 265mm sw&lt;/KURZTEXT1&gt;
            &lt;KURZTEXT2&gt;EVB 10/265 A2 10qmm Stift isol&lt;/KURZTEXT2&gt;
            &lt;ULTRAKURZTEXT&gt;ELTROPA Verdrahtungsbrücke 1ph 265mm sw&lt;/ULTRAKURZTEXT&gt;
            &lt;LANGTEXT&gt;ELTROPA Verdrahtungsbrücke 1ph 265mm sw
EVB 10/265 A2 10qmm Stift isol&lt;/LANGTEXT&gt;
            &lt;USERN3&gt;0.18225&lt;/USERN3&gt;
        &lt;/ARTIKEL&gt;
    &lt;/ARTIKELLISTE&gt;
&lt;/EULANDA&gt;</dev:code>
        <dev:remarks>
          <maml:para>Reads a Datanorm file into a PowerShell object. Subsequently, the PowerShell object is converted into an XML file and finally imported into the SQL database of the EULANDA ERP. The database connection is established via a UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Import-ArticleFromXml.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Import-TieredPrices</command:name>
      <command:verb>Import</command:verb>
      <command:noun>TieredPrices</command:noun>
      <maml:description>
        <maml:para>This function imports tiered prices from a CSV or Excel file into a specified price list of the EULANDA ERP system.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Import-TieredPrices function uses an ADO connection to connect to the EULANDA database. It imports tiered prices from a specified CSV or Excel file and updates the database's tiered price table.</maml:para>
      <maml:para>If Excel files should be applied, the `XSLX` format must be used. Also, the ImportExcel PowerShell module must be installed. This can be done at the PowerShell prompt with `Install-Module ImportExcel`. No installed Office is required to import Excel files.</maml:para>
      <maml:para>For `CSV` files, however, field separation with semicolons is expected. The price and quantity fields are expected as from the country setting of the PC. So in Germany for example the comma to separate the cents.</maml:para>
      <maml:para>The file to be imported must contain a column with the article number and at least one price field. The column names are freely selectable, as already mentioned. If no corresponding quantity is specified, `1` is used as default value. This means that the price is used from quantity `1`.</maml:para>
      <maml:para>The parameters `Price1Name` to `Price5Name` are the field names from the file to be imported. The number in the parameter is used to specify the scale in the price list.</maml:para>
      <maml:para>`-price1Name` contains the field name for the first scale and so on. It is not mandatory to start with the first price, in this way every scale from `1` to `5` can be addressed in the ERP system.</maml:para>
      <maml:para>EULANDA supports any number of price lists. By specification of the `-priceList` the price list to be used is selected.</maml:para>
      <maml:para>As a further parameter the file path to the UDL file is needed.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Import-TieredPrices</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="barcode">
          <maml:name>barcodeName</maml:name>
          <maml:description>
            <maml:para>The name of the column that contains the article barcode in the CSV or Excel file. Only one field name from the selection `-articleNoName`, `-articleIdName`, `-barcodeName`, `-articleUidName` may be specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="articleNo">
          <maml:name>articleNoName</maml:name>
          <maml:description>
            <maml:para>The name of the column that contains the article number in the CSV or Excel file. Only one field name from the selection `-articleNoName`, `-articleIdName`, `-barcodeName`, `-articleUidName` may be specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="price4">
          <maml:name>price4Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the fourth price in the CSV or Excel file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="qty4">
          <maml:name>qty4Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the fourth quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="12" aliases="price5">
          <maml:name>price5Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the fifth price in the CSV or Excel file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="13" aliases="qty5">
          <maml:name>qty5Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the fifth quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="14" aliases="none">
          <maml:name>priceList</maml:name>
          <maml:description>
            <maml:para>The name of the price list into which the scale prices are to be imported. The price list can be specified with either `-priceList` or `-priceListId`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="15" aliases="none">
          <maml:name>priceListId</maml:name>
          <maml:description>
            <maml:para>The Id of the price list into which the scale prices are to be imported. The price list can be specified with either `-priceList` or `-priceListId`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="16" aliases="delim">
          <maml:name>csvDelimiter</maml:name>
          <maml:description>
            <maml:para>The CSV delimiter is used with CSV files. The semicolon is used as default. It can be changed via this parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="17" aliases="decimal">
          <maml:name>decimalSeparator</maml:name>
          <maml:description>
            <maml:para>The decimal separator for floating point numbers such as prices or quantities. The value from the operating system is used by default. In Germany, for example, this would be the comma. With this parameter the value can be changed. Especially with CSV files this can be necessary if they use the point like in international files.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="18" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>The path to the CSV or Excel file containing the tiered prices. Only .csv and .xlsx are accepted as file extension. Note that for Excel files, the PowerShell module `ImportExcel` from the PowerShell Gallery must be installed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="19" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="articleId">
          <maml:name>articleIdName</maml:name>
          <maml:description>
            <maml:para>The name of the column that contains the article Id in the CSV or Excel file. Only one field name from the selection `-articleNoName`, `-articleIdName`, `-barcodeName`, `-articleUidName` may be specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="20" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="21" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="articleUid">
          <maml:name>articleUidName</maml:name>
          <maml:description>
            <maml:para>The name of the column that contains the article uid in the CSV or Excel file. Only one field name from the selection `-articleNoName`, `-articleIdName`, `-barcodeName`, `-articleUidName` may be specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="price1">
          <maml:name>price1Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the first price in the CSV or Excel file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="qty1">
          <maml:name>qty1Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the first quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="price2">
          <maml:name>price2Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the second price in the CSV or Excel file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="qty2">
          <maml:name>qty2Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the second quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="price3">
          <maml:name>price3Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the third price in the CSV or Excel file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="qty3">
          <maml:name>qty3Name</maml:name>
          <maml:description>
            <maml:para>The name of the column that contain the third quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="articleId">
        <maml:name>articleIdName</maml:name>
        <maml:description>
          <maml:para>The name of the column that contains the article Id in the CSV or Excel file. Only one field name from the selection `-articleNoName`, `-articleIdName`, `-barcodeName`, `-articleUidName` may be specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="articleNo">
        <maml:name>articleNoName</maml:name>
        <maml:description>
          <maml:para>The name of the column that contains the article number in the CSV or Excel file. Only one field name from the selection `-articleNoName`, `-articleIdName`, `-barcodeName`, `-articleUidName` may be specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="articleUid">
        <maml:name>articleUidName</maml:name>
        <maml:description>
          <maml:para>The name of the column that contains the article uid in the CSV or Excel file. Only one field name from the selection `-articleNoName`, `-articleIdName`, `-barcodeName`, `-articleUidName` may be specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="barcode">
        <maml:name>barcodeName</maml:name>
        <maml:description>
          <maml:para>The name of the column that contains the article barcode in the CSV or Excel file. Only one field name from the selection `-articleNoName`, `-articleIdName`, `-barcodeName`, `-articleUidName` may be specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="19" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="21" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="16" aliases="delim">
        <maml:name>csvDelimiter</maml:name>
        <maml:description>
          <maml:para>The CSV delimiter is used with CSV files. The semicolon is used as default. It can be changed via this parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="17" aliases="decimal">
        <maml:name>decimalSeparator</maml:name>
        <maml:description>
          <maml:para>The decimal separator for floating point numbers such as prices or quantities. The value from the operating system is used by default. In Germany, for example, this would be the comma. With this parameter the value can be changed. Especially with CSV files this can be necessary if they use the point like in international files.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="18" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>The path to the CSV or Excel file containing the tiered prices. Only .csv and .xlsx are accepted as file extension. Note that for Excel files, the PowerShell module `ImportExcel` from the PowerShell Gallery must be installed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="price1">
        <maml:name>price1Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the first price in the CSV or Excel file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="price2">
        <maml:name>price2Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the second price in the CSV or Excel file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="price3">
        <maml:name>price3Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the third price in the CSV or Excel file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="price4">
        <maml:name>price4Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the fourth price in the CSV or Excel file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="12" aliases="price5">
        <maml:name>price5Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the fifth price in the CSV or Excel file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="14" aliases="none">
        <maml:name>priceList</maml:name>
        <maml:description>
          <maml:para>The name of the price list into which the scale prices are to be imported. The price list can be specified with either `-priceList` or `-priceListId`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="15" aliases="none">
        <maml:name>priceListId</maml:name>
        <maml:description>
          <maml:para>The Id of the price list into which the scale prices are to be imported. The price list can be specified with either `-priceList` or `-priceListId`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="qty1">
        <maml:name>qty1Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the first quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="qty2">
        <maml:name>qty2Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the second quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="qty3">
        <maml:name>qty3Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the third quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="qty4">
        <maml:name>qty4Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the fourth quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="13" aliases="qty5">
        <maml:name>qty5Name</maml:name>
        <maml:description>
          <maml:para>The name of the column that contain the fifth quantity in the CSV or Excel file. If the parameter is not specified, the default `1` is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="20" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------- Example 1: Import tiered prices from a csv file -------</maml:title>
        <dev:code>PS C:\&gt; Import-TieredPrices -path 'C:\temp\test.csv' -articleNo 'ArticleNo' -price1 'SalesPrice' -priceList 'Retail' -udl 'C:\temp\Eulanda_1 JohnDoe.udl'
 
ArticleNo;EAN;SalesPreis
40509;4052398405093;31,5
40511;4052398405116;52,5
40510;4052398405109;31,5
20002;4052398200025;231,85
40487;4052398404874;378,57
30305;4052398303054;5,25
30306;4052398303061;13,65
30308;4052398303085;10,5
30309;4052398303092;18,9
30310;4052398303108;25,2
30307;4052398303078;21
40504;4052398405048;550
20096;4052398200964;66,33
20066;4052398200667;66,33</dev:code>
        <dev:remarks>
          <maml:para>This command will import the prices from the `-salesPrice` column of the `test.csv` file into the `Retail` price list of the database specified by the `Eulanda_1 JohnDoe.udl` connection string. The `-articleNo` column is used to match the articles in the database. </maml:para>
          <maml:para>The semicolon is used as field delimiter. This value can be changed via the `-csvDelimiter` parameter. The separation to the cents is specified via the decimal separator, which is read by the operating system. However, one can override this value with `-decimalSeparator`.</maml:para>
          <maml:para>In this sample file, the field `EAN` is ignored. Only one price is inserted in the pricelist as price1.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Import-TieredPrices.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Install-SignTool</command:name>
      <command:verb>Install</command:verb>
      <command:noun>SignTool</command:noun>
      <maml:description>
        <maml:para>Download the Windows SDK, unzip the SignTool and install the SignTool.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function has no other dependences to EulandaConnect module. The download of the Windows SDK and the unpacking of the SignTool as well as the subsequent installation are performed without specifying any parameters. </maml:para>
      <maml:para>The current version of the Windows 11 SDK is always loaded, which can currently (2023/02) also be taken for Windows 10. The download of the SDK also takes a little longer, because it is about 1.5 GB.</maml:para>
      <maml:para>At the end of the installation, the ISO file is deleted unless the `leaveIso` switch has been specified. If the installation is performed, the installer files of the SignTool will be deleted also after installation. </maml:para>
      <maml:para>If no installation is to be performed, this can be specified with the `noInstall` switch, in which case the SignTool installation files will not be deleted. </maml:para>
      <maml:para>The folder name of the SignTools gets the current build number of the SDK. If you don't want a build number in the folder name, this can be specified by the switch `noBuild`. By default the base path for the ISO as well as the folder SignTool is the temp folder. With `isoBasePath` and `signToolBasePath` you can specify your own base path.</maml:para>
      <maml:para>&gt; ATTENTION : &gt; The installation of SignTool, which is executed at the end of the process, requires elevated rights (= administrator rights) to install. If you are unsure you can look at the section in the source code of the module. It does not use any external dependencies. EulandaConnect is also signed with EV, currently the highest level of application signing.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Install-SignTool</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>signToolBasePath</maml:name>
          <maml:description>
            <maml:para>The default base path is the desktop. The folder for the files is SignTool(BuildNo) or just SignTool , if the switch `noBuild` is specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>"$([Environment]::GetFolderPath("Desktop"))"</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>isoBasePath</maml:name>
          <maml:description>
            <maml:para>The default base path is the temp folder .</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>"$([Environment]::GetFolderPath("Desktop"))"</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>url</maml:name>
          <maml:description>
            <maml:para>Specifies the URL where the Windows SDK can be found. The default URL is `https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/`</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>leaveIso</maml:name>
          <maml:description>
            <maml:para>After installation process, the iso image is not deleted.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noBuild</maml:name>
          <maml:description>
            <maml:para>The SignTool path is used without build number, so it is always downloaded in the same folder.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>noInstall</maml:name>
          <maml:description>
            <maml:para>No installation of SignTool will be performed, so SignTool with all installation files will remain in its folder.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>isoBasePath</maml:name>
        <maml:description>
          <maml:para>The default base path is the temp folder .</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>"$([Environment]::GetFolderPath("Desktop"))"</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>leaveIso</maml:name>
        <maml:description>
          <maml:para>After installation process, the iso image is not deleted.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noBuild</maml:name>
        <maml:description>
          <maml:para>The SignTool path is used without build number, so it is always downloaded in the same folder.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>noInstall</maml:name>
        <maml:description>
          <maml:para>No installation of SignTool will be performed, so SignTool with all installation files will remain in its folder.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>signToolBasePath</maml:name>
        <maml:description>
          <maml:para>The default base path is the desktop. The folder for the files is SignTool(BuildNo) or just SignTool , if the switch `noBuild` is specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>"$([Environment]::GetFolderPath("Desktop"))"</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>url</maml:name>
        <maml:description>
          <maml:para>Specifies the URL where the Windows SDK can be found. The default URL is `https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/`</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- Example 1:Install actual version of signtool ---------</maml:title>
        <dev:code>PS C:\&gt; Install-SignTool</dev:code>
        <dev:remarks>
          <maml:para>This installs the current version of signtool. It is loaded from https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Install-SignTool.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Approve-Signature</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-SignToolPath</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Merge-IpGeoInfo</command:name>
      <command:verb>Merge</command:verb>
      <command:noun>IpGeoInfo</command:noun>
      <maml:description>
        <maml:para>`Merge-IpGeoInfo` is a function that merges two XML databases containing IP geographic information. It checks for duplicate IP entries and retains the one with the most recent `ChangeDate`. It helps consolidate and manage your data effectively, ensuring that the final, merged database is up-to-date.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>`Merge-IpGeoInfo` is a PowerShell function designed to merge multiple XML databases created by the `Get-IpGeoInfo` function. When `Get-IpGeoInfo` is used to fetch geographic information about IP addresses, it stores the data in XML format. If you've accumulated multiple XML databases over time, managing them might be complicated.</maml:para>
      <maml:para>This function aims to solve that problem by merging two XML databases into one. The merging process checks for duplicate IP entries between the two databases. When a duplicate is found, the function compares the `ChangeDate` attribute of the IP entry. The IP information with the most recent `ChangeDate` is kept, ensuring that the final, merged database is up-to-date.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Merge-IpGeoInfo</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>xmlFile1</maml:name>
          <maml:description>
            <maml:para>Specifies the path of the first XML file. This file must exist on the disk.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>xmlFile2</maml:name>
          <maml:description>
            <maml:para>Specifies the path of the second XML file. This file must exist on the disk.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>outputFile</maml:name>
          <maml:description>
            <maml:para>Specifies the path of the output file. The cmdlet will create this file, containing the merged IP geolocation information.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>outputFile</maml:name>
        <maml:description>
          <maml:para>Specifies the path of the output file. The cmdlet will create this file, containing the merged IP geolocation information.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>xmlFile1</maml:name>
        <maml:description>
          <maml:para>Specifies the path of the first XML file. This file must exist on the disk.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>xmlFile2</maml:name>
        <maml:description>
          <maml:para>Specifies the path of the second XML file. This file must exist on the disk.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This function is part of a suite of tools designed to manage IP geographic information. Always make sure to have backups of your data and to test the function in a safe environment before deploying it to production.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Merges two xml databases with geo information into a new one</maml:title>
        <dev:code>PS C:\&gt; Merge-IpGeoInfo -FilePath1 'Path\To\First\File.xml' -FilePath2 'Path\To\Second\File.xml' -OutputPath 'Path\To\Merged\File.xml'</dev:code>
        <dev:remarks>
          <maml:para>This command merges the data in `File.xml` located at `Path\To\First` and `File.xml` located at `Path\To\Second`, then writes the resulting merged database to `File.xml` at `Path\To\Merged`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Merge-IpGeoInfo.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-IpGeoInfo</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-ConnStr</command:name>
      <command:verb>New</command:verb>
      <command:noun>ConnStr</command:noun>
      <maml:description>
        <maml:para>Creates a connection string for the OLE DB driver of the SQL server</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Generates a connection string to access a MSSQL Server database using ADO. The 'Microsoft OLE DB Provider for SQL Server' is supported. Either Windows authentication or SQL authentication is used, depending on whether a username and password are provided. Without these two fields, Windows authentication is used, meaning the credentials of the logged-in user are employed.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-ConnStr</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>database</maml:name>
          <maml:description>
            <maml:para>The name of the database to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The name of the MSSQL server. This can also contain the instance name. If one is used, it must be specified with backslah. The name of the server can also be an IP address like 192.168.178.20. If a server is specified, the UDL, Conn and ConnStr parameters are ignored. If the server name is used, there are two methods, Windows authentication and SQL authentication. In the first variant, the user name and password are omitted. The logged-in user is then used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>If the user is specified, a password is also required. SQL authentication is used as authentication and a server name is expected.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to be connected to the database. In any case, this also includes the user name.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>database</maml:name>
        <maml:description>
          <maml:para>The name of the database to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to be connected to the database. In any case, this also includes the user name.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The name of the MSSQL server. This can also contain the instance name. If one is used, it must be specified with backslah. The name of the server can also be an IP address like 192.168.178.20. If a server is specified, the UDL, Conn and ConnStr parameters are ignored. If the server name is used, there are two methods, Windows authentication and SQL authentication. In the first variant, the user name and password are omitted. The logged-in user is then used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>If the user is specified, a password is also required. SQL authentication is used as authentication and a server name is expected.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Generates a connection string based on the database and server instance.</maml:title>
        <dev:code>PS C:\&gt; New-ConnStr -database 'EULANDA_JohnDoe' -Server '.\SQL2019'
 
Provider=SQLOLEDB.1;Data Source=.\SQL2019;Initial Catalog=EULANDA_JohnDoe;Integrated Security=SSPI</dev:code>
        <dev:remarks>
          <maml:para>In this example, using the database name 'EULANDA_JohnDoe' and the local server instance 'SQL2019', the above-mentioned connection string is generated.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-ConnStr.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-Delivery</command:name>
      <command:verb>New</command:verb>
      <command:noun>Delivery</command:noun>
      <maml:description>
        <maml:para>Creates a delivery bill based on a sales order</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This will create a delivery bill. The sales order ID of a completed, i.e. booked order is transferred. In addition, a connection to the ERP database is required. As a result, all deliverable order items are transferred to a delivery bill. The function returns the new delivery bill Id as a result.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-Delivery</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>salesOrderNo</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>salesOrderId</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>customerOrderNo</maml:name>
          <maml:description>
            <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>customerOrderNo</maml:name>
        <maml:description>
          <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>salesOrderId</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>salesOrderNo</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Converts an order into a delivery bill and returns its Id</maml:title>
        <dev:code>PS C:\&gt; [int]$deliveryId
PS C:\&gt; $deliveryId= New-Delivery -salesOrderId 25 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>Here the 25 and a UDL file are transferred as sales order ID. In this case, the order is completely booked into a delivery bill, if the stock level permits this. The new delivery bill ID is returned as the function result.</maml:para>
          <maml:para>&gt; If you switch off the warehouse management completely or for certain articles in the ERP system, no warehouse check is carried out.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-Delivery.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-DeliveryPropertyItem</command:name>
      <command:verb>New</command:verb>
      <command:noun>DeliveryPropertyItem</command:noun>
      <maml:description>
        <maml:para>Sets a new property in the property tree for a delivery</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>In the ERP system, you can set any property for any data object, including a delivery bill. Properties can be stored in structures similar to a tree. A delivery bill can exist in any properties of the tree. Thus, the property also has an ID, the property ID. This function can be used to set a property to a delivery bill specified by either its delivery bill number or its id. The connection to the database can be done either by a connection object, a connection string or the specification of a UDL file.</maml:para>
      <maml:para>You can see what a property tree looks like in Example 1.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-DeliveryPropertyItem</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>propertyId</maml:name>
          <maml:description>
            <maml:para>The property ID is determined directly in the ERP system by clicking on the property name with the right mouse button and noting the displayed ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>propertyId</maml:name>
        <maml:description>
          <maml:para>The property ID is determined directly in the ERP system by clicking on the property name with the right mouse button and noting the displayed ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----------- Example 1:How a property tree looks like -----------</maml:title>
        <dev:code>Delivery Notes/
├─ My Properties/
├─ Delivery Status/
│ ├─ Complete
│ ├─ Over Delivered
│ ├─ Under Delivered
├─ Tracking Information/
│ ├─ Partial Missing
│ ├─ Complete
│ ├─ All Missing
├─ Locked for Retransmission</dev:code>
        <dev:remarks>
          <maml:para>This property tree is just an example. Using this structure, all delivery bills that are assigned to this property can be displayed immediately in the ERP system. Setting these properties can be done via this API. For example, when the tracking data is delivered by the shipping company and imported by a module. For example, if all shipments have tracking, the property `Complete` is set.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>------- Example 2:New Property Item for a Delivery Note -------</maml:title>
        <dev:code>PS C:\&gt; New-DeliveryPropertyItem -propertyId 125 -deliveryNo 20230515 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>This function sets the property, which internally has the Id 25, in the delivery bill with the number 20230515. The database is specified via a UDL file. The property ID is determined directly in the ERP system by clicking on the property name with the right mouse button and noting the displayed ID.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-DeliveryPropertyItem.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-EulException</command:name>
      <command:verb>New</command:verb>
      <command:noun>EulException</command:noun>
      <maml:description>
        <maml:para>Creates a custom exception object</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Creates a custom exception object with an additional parameter for an extended message.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-EulException</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>message</maml:name>
          <maml:description>
            <maml:para>Message as for the standard exception.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>additionalData</maml:name>
          <maml:description>
            <maml:para>Additional data, which is passed to the exception.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>additionalData</maml:name>
        <maml:description>
          <maml:para>Additional data, which is passed to the exception.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>message</maml:name>
        <maml:description>
          <maml:para>Message as for the standard exception.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1:Simple scenario for an extended exception -----</maml:title>
        <dev:code>try {
    Throw [EulException]::new("This is my error with two parameters", "My second parameter")
} catch [EulException] {
    Write-Host "ERROR Message: $_ More info: $($_.Exception.additionalData)" -ForegroundColor Red
    Exit 1
} catch {
    Write-Host "ERROR Message: $_" -ForegroundColor Red
}</dev:code>
        <dev:remarks>
          <maml:para>Show how to get the extended error message from that class.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-EulException.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-EulLog</command:name>
      <command:verb>New</command:verb>
      <command:noun>EulLog</command:noun>
      <maml:description>
        <maml:para>Writes messages to a text file to log events</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>After creating this class, the first thing that is written away is a message 'Initialization'. Messages can be saved during runtime using the Put method. The output file is written to the subfolder 'event' with as tab-delimited text file and eacht entriy is saved with the local time. </maml:para>
      <maml:para>To distinguish that the Pu methods belong to the object just created, a ProcessId is stored. </maml:para>
      <maml:para>In the simplest case the method Put is used with the message as parameter. Alternatively, a level, i.e. the importance, can be specified. If level is not specified, '0' is used as default. If an event group is to be stored, then the parameter Group is to be used. If this is not specified, the default value '(default)' is used.</maml:para>
      <maml:para>The class EulLog should be created in the main script. This way Dispose can be used in the Finlally block. This will write away a message with the text 'Finalization' when the class exits.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-EulLog</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>name</maml:name>
          <maml:description>
            <maml:para>A short message that is automatically written to all put messages.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>Root path for the output file. All files are stored in the subfolder `event` .</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>name</maml:name>
        <maml:description>
          <maml:para>A short message that is automatically written to all put messages.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>Root path for the output file. All files are stored in the subfolder `event` .</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1:Creates EulLog and stores some messages ------</maml:title>
        <dev:code>$evt= New-EulLog 'MySection' 'C:\temp'
try {
    $evt.put("before calculation")
    $i = 5+6
    $evt.put("after calculation")
} finally {
    $evt.dispose()
}
 
2023-02-25 17:37:20 MySection 28668e21-82c6-4906-8ba8-edff3e45647c 0 (default) Initialization
2023-02-25 17:37:20 MySection 28668e21-82c6-4906-8ba8-edff3e45647c 0 (default) before calculation
2023-02-25 17:37:20 MySection 28668e21-82c6-4906-8ba8-edff3e45647c 0 (default) after calculation
2023-02-25 17:37:20 MySection 28668e21-82c6-4906-8ba8-edff3e45647c 0 (default) Finalization</dev:code>
        <dev:remarks>
          <maml:para>The class EulLog is created. This already creates an entry in the output file. Various messages can now be output via the Put method. When the script is terminated, the Finally block ensures that the Dispose method writes away a Closing message. In the output, the time is stored in local notation and also the ProcessId. This makes it easy to filter the messages that originated with a process.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-EulLog.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-PurchaseOrder</command:name>
      <command:verb>New</command:verb>
      <command:noun>PurchaseOrder</command:noun>
      <maml:description>
        <maml:para>The New-PurchaseOrder function creates a new purchase order for a specific supplier in the database.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function takes a supplier ID and the name of the user who processes the order. It then calls a stored procedure "[dbo].[cn_KfNew]" to create a new purchase order. The stored procedure generates a new purchase order ID, which is returned by the function. Afterwards, the function retrieves a new purchase order number from a number series and updates the newly created purchase order with this number.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-PurchaseOrder</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>supplierID</maml:name>
          <maml:description>
            <maml:para>The ID of the supplier for which the purchase order is to be created.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>processedBy</maml:name>
          <maml:description>
            <maml:para>The name of the user who processes the order.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>processedBy</maml:name>
        <maml:description>
          <maml:para>The name of the user who processes the order.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>supplierID</maml:name>
        <maml:description>
          <maml:para>The ID of the supplier for which the purchase order is to be created.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This function requires an ADODB connection to the database. It can either be passed directly via the 'conn' parameter, or indirectly via a UDL file or a connection string.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Creates a new purchase order for a given supplier Id</maml:title>
        <dev:code>PS C:\&gt; $Id = New-PurchaseOrder -supplierID 123 -processedBy "John Doe" -udl 'C:\temp\Eulanda_1 JohnDow.udl'</dev:code>
        <dev:remarks>
          <maml:para>This will create a new purchase order for the supplier with the ID 123. The order will be processed by John Doe.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-PurchaseOrder.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-PurchaseOrderLineItem</command:name>
      <command:verb>New</command:verb>
      <command:noun>PurchaseOrderLineItem</command:noun>
      <maml:description>
        <maml:para>Creates a new purchase order line item in the database by calling the stored procedure.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `New-PurchaseOrderLineItem` function creates a new purchase order line item in the database. It first validates the provided purchase order ID and article ID. It then calls a stored procedure to create the line item, passing the necessary parameters such as quantity. Finally, it returns the ID of the newly created line item.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-PurchaseOrderLineItem</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>purchaseOrderId</maml:name>
          <maml:description>
            <maml:para>The ID of the purchase order that the line item is associated with. This or `-purchaseOrderNo` must be passed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>purchaseOrderNo</maml:name>
          <maml:description>
            <maml:para>The number of the purchase order. This or `-purchaseOrderId` must be passed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>quantity</maml:name>
          <maml:description>
            <maml:para>The quantity of the article in the line item.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Decimal</command:parameterValue>
          <dev:type>
            <maml:name>Decimal</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched by this number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>purchaseOrderId</maml:name>
        <maml:description>
          <maml:para>The ID of the purchase order that the line item is associated with. This or `-purchaseOrderNo` must be passed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>purchaseOrderNo</maml:name>
        <maml:description>
          <maml:para>The number of the purchase order. This or `-purchaseOrderId` must be passed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>quantity</maml:name>
        <maml:description>
          <maml:para>The quantity of the article in the line item.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Decimal</command:parameterValue>
        <dev:type>
          <maml:name>Decimal</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1: Inserts a new line item to a purchase order ----</maml:title>
        <dev:code>PS C:\&gt; $purchaseOrderId = 123
PS C:\&gt; $articleId = 456
PS C:\&gt; $quantity = 3.5
PS C:\&gt; $Id = New-PurchaseOrderLineItem -purchaseOrderId $purchaseOrderId -articleId $articleId -quantity $quantity</dev:code>
        <dev:remarks>
          <maml:para>In this example, a new line item is added to the purchase order with ID 123. The line item is for the article with ID 456, and the quantity is 3.5. The function returns the ID of the newly created line item.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-PurchaseOrderLineItem.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-RemoteFolder</command:name>
      <command:verb>New</command:verb>
      <command:noun>RemoteFolder</command:noun>
      <maml:description>
        <maml:para>Creates a new directory on a remote server, supporting FTP, FTPS, and SFTP protocols.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `New-RemoteFolder` function creates a new directory on a remote server using the provided connection parameters. The function supports FTP, FTPS, and SFTP protocols. Authentication can be performed using a username and password, or a certificate for SFTP. The directory to be created is specified by its path in the `-remoteFolder` parameter. If the specified directory includes subdirectories, they will also be automatically created.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-RemoteFolder</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>The directory to be created on the remote server. Subdirectories will also be automatically created.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>The directory to be created on the remote server. Subdirectories will also be automatically created.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Creates a new directory, including any necessary subdirectories, on a remote server using simple authentication</maml:title>
        <dev:code>PS C:\&gt; New-RemoteFolder -server "ftp.example.com" -protocol "sftp" -user "username" -password "password" -remoteFolder "/newdocs/subfolder"</dev:code>
        <dev:remarks>
          <maml:para>This example creates the directory `/newdocs/subfolder` on the SFTP server at `ftp.example.com`. The function uses the provided username and password for authentication.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-RemoteFolder.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-SalesOrder</command:name>
      <command:verb>New</command:verb>
      <command:noun>SalesOrder</command:noun>
      <maml:description>
        <maml:para>Creates a new sales order</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Based on the ID of the invoice recipient's address, an order header is created and its Id is returned as the function result. The connection to the database is opened by specifying a connection object, which can be a connection, a connection string or a path specification of a UDL file.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-SalesOrder</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>invoiceAddressId</maml:name>
          <maml:description>
            <maml:para>The Id of the billing address</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>invoiceAddressId</maml:name>
        <maml:description>
          <maml:para>The Id of the billing address</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------- Example 1:Creates the order header --------------</maml:title>
        <dev:code>PS C:\&gt; [int]$salesOrderId= New-SalesOrder -invoiceAddressId 25 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>The function is passed the id of an existing address. This address is then the invoice recipient. The other parameter is the database connection. This is done in this example by a UDL file. After creating the header, the Id of the order header is returned as the function result. With this you can add fields to the header data via a further SQL update command. This ID is also needed to add positions to this order.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-SalesOrder.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-Shortcut</command:name>
      <command:verb>New</command:verb>
      <command:noun>Shortcut</command:noun>
      <maml:description>
        <maml:para>Creates a shortcut to the specified file</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>A shortcut is created for the file specified in the `File` parameter. The location of the link is specified via the `link` parameter. If the shortcut already exists, the function is ignored. The name of the link must have the extension `.lnk`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-Shortcut</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>file</maml:name>
          <maml:description>
            <maml:para>File including the complete path.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>link</maml:name>
          <maml:description>
            <maml:para>Path with the name of the link and the `.lnk` file extension.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>file</maml:name>
        <maml:description>
          <maml:para>File including the complete path.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>link</maml:name>
        <maml:description>
          <maml:para>Path with the name of the link and the `.lnk` file extension.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- Example 1:Creates a shortcut to the Desktop ---------</maml:title>
        <dev:code>PS C:\&gt; New-Shortcut -file 'C:\Windows\System32\Notepad.exe' -link "$(Get-DesktopDir)\IamHere.lnk"</dev:code>
        <dev:remarks>
          <maml:para>Sets a link to Windows Notepad and creates it on the desktop.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-Shortcut.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-Snapshot</command:name>
      <command:verb>New</command:verb>
      <command:noun>Snapshot</command:noun>
      <maml:description>
        <maml:para>This PowerShell function named `New-Snapshot` creates a Volume Shadow Copy (snapshot) on a specified drive and makes it accessible through a symbolic link. It is suitable for making backups of open files or compressing directories without errors.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `New-Snapshot` function provides a way to create a snapshot of a given volume or drive in the Windows operating system. A snapshot, or shadow copy, is a copy of a volume or a set of files at a particular point in time. It can be very useful for backing up data, especially open files, or compressing directories without errors, because it provides a frozen image of the files, thereby preventing issues with files being modified during the backup or compression process.</maml:para>
      <maml:para>The function creates a volume shadow copy of the specified volume and returns a data structure containing essential details, such as the shadowID, volume, snapshot path, and symbolic link name. This data structure can be used later as input for the `Remove-Snapshot` function to delete the corresponding snapshot.</maml:para>
      <maml:para>&gt; ATTENTION : The function requires administrative rights! If the function is run without these privileges, an exception is thrown.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-Snapshot</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>volume</maml:name>
          <maml:description>
            <maml:para>The drive where the snapshot is to be created. The parameter must be specified in the format 'Letter:', e.g., 'C:'. If not provided, the system drive is used. Default: `$ENV:SystemDrive`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>symbolicLink</maml:name>
          <maml:description>
            <maml:para>Path to the symbolic link that should provide access to the snapshot. Default: `$volume\ecSnapshot`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>symbolicLink</maml:name>
        <maml:description>
          <maml:para>Path to the symbolic link that should provide access to the snapshot. Default: `$volume\ecSnapshot`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>volume</maml:name>
        <maml:description>
          <maml:para>The drive where the snapshot is to be created. The parameter must be specified in the format 'Letter:', e.g., 'C:'. If not provided, the system drive is used. Default: `$ENV:SystemDrive`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>The function requires administrative rights! If the function is run without these privileges, an exception is thrown.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Creating a snapshot on the D: drive and accessing it through a symbolic link named D:\mySnapshot</maml:title>
        <dev:code>PS C:\&gt; $snaphot = New-Snapshot -volume "D:" -symbolicLink "D:\mySnapshot"
PS C:\&gt; # Your commands like compress that folder
PS C:\&gt; # Get-ChildItem -Path "D:\mySnapshot"
PS C:\&gt; Remove-Snapshot -snapshot $snapshot</dev:code>
        <dev:remarks>
          <maml:para>In this example, the `New-Snapshot` function is used to create a snapshot of the D: drive. The snapshot is accessible through a symbolic link located at `D:\mySnapshot`. You can perform operations such as compressing or copying data within this snapshot directory. After you're done, the `Remove-Snapshot` function is used to delete the snapshot along with the symbolic link.</maml:para>
          <maml:para>Please note that you can add your own specific commands or operations between the creation of the snapshot and the removal of the snapshot. Adjust the paths and parameters as needed for your use case.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-Snapshot.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Remove-Snapshot</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-SymbolicLink</command:name>
      <command:verb>New</command:verb>
      <command:noun>SymbolicLink</command:noun>
      <maml:description>
        <maml:para>Creates a new symbolic link to a target directory or file.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `New-SymbolicLink` function creates a new symbolic link at the specified path. The target can be a directory or a file, depending on the value of the `flag` parameter. It creates a new symbolic link at the specified path using the Windows API, not the `mklink` utility.</maml:para>
      <maml:para>Symbolic links are capable of referencing the GlobalRoot namespace , which means that they can also be used to create links to Volume Shadow Copy Service (VSS) snapshots. This capability makes them suitable for accessing snapshots directly, making this function a valuable component used internally by the `New-Snapshot` cmdlet.</maml:para>
      <maml:para>&gt; ATTENTION : The function requires administrative rights! If the function is run without these privileges, an exception is thrown.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-SymbolicLink</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>symbolicLink</maml:name>
          <maml:description>
            <maml:para>The path where the new symbolic link will be created. This acts as a kind of virtual path. Symbolic links are special files that serve as references or pointers to another files or directories in the file system. They can act as shortcuts, allowing for quick access to the target file or directory without requiring the full path.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>target</maml:name>
          <maml:description>
            <maml:para>The physical path of the target directory or file to which the symbolic link will point. This should be an existing path in your filesystem. When the symbolic link is accessed, the operating system treats it as if it were accessing the target path.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>flag</maml:name>
          <maml:description>
            <maml:para>An optional parameter that specifies whether the target is a directory or a file. The default value is 1, which means the target is a directory. If the target is a file, this parameter should be set to 0.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>flag</maml:name>
        <maml:description>
          <maml:para>An optional parameter that specifies whether the target is a directory or a file. The default value is 1, which means the target is a directory. If the target is a file, this parameter should be set to 0.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>symbolicLink</maml:name>
        <maml:description>
          <maml:para>The path where the new symbolic link will be created. This acts as a kind of virtual path. Symbolic links are special files that serve as references or pointers to another files or directories in the file system. They can act as shortcuts, allowing for quick access to the target file or directory without requiring the full path.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>target</maml:name>
        <maml:description>
          <maml:para>The physical path of the target directory or file to which the symbolic link will point. This should be an existing path in your filesystem. When the symbolic link is accessed, the operating system treats it as if it were accessing the target path.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>The function requires administrative rights! If the function is run without these privileges, an exception is thrown.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------- Example 1: Creates a symbolic link --------------</maml:title>
        <dev:code>PS C:\&gt; New-SymbolicLink -symbolicLink 'C:\MySymbolicLink' -target 'C:\temp'</dev:code>
        <dev:remarks>
          <maml:para>Creates a symbolic link at 'C:\MySymbolicLink' that points to the directory 'C:\temp'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-SymbolicLink.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Remove-SymbolicLink</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-Table</command:name>
      <command:verb>New</command:verb>
      <command:noun>Table</command:noun>
      <maml:description>
        <maml:para>Creates a data table in memory</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Uses the System.Data.DataTable object to create a table with column names. The column names can be passed either as an array of strings or as a comma-separated string. There is an option to append a data type to each column name by extending the name with `/?` For example `MyDate/?DateTime`. The name of the table is created as a global variable.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-Table</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>tableName</maml:name>
          <maml:description>
            <maml:para>Name of the table. This name is used as a global variable.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>columnNames</maml:name>
          <maml:description>
            <maml:para>List of column names passed either as a comma separated list or as an array of strings. Each field name can be given a special data type by appending `/?`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>columnNames</maml:name>
        <maml:description>
          <maml:para>List of column names passed either as a comma separated list or as an array of strings. Each field name can be given a special data type by appending `/?`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>tableName</maml:name>
        <maml:description>
          <maml:para>Name of the table. This name is used as a global variable.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----------- Example 1:Creates a table and adds rows -----------</maml:title>
        <dev:code>PS C:\&gt; New-Table -TableName 'TestTable' -columnNames 'Field1,Field2,Field3/?DateTime'
PS C:\&gt; [void]$TestTable.Rows.Add('John','Doe',$(Get-Date))
PS C:\&gt; [void]$TestTable.Rows.Add('Max','Mustermann','2020-05-20')
PS C:\&gt; $TestTable.Rows[0].Field1
 
# Output
 
John</dev:code>
        <dev:remarks>
          <maml:para>Once created, the added rows can be accessed directly. Here the first added row is used and there the field `Field1` is retrieved.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>--------------- Example 2:Datatype in PowerShell ---------------</maml:title>
        <dev:code>┌─────────────────┬───────────────────────────────────────────────────────────────────┐
│ Type │ Description │
├─────────────────┼───────────────────────────────────────────────────────────────────┤
│ bool │ Boolean with value true or false │
│ switch │ PowerShell switch is like Boolean, but it could be present or not │
│ datetime │ Combination of date and time │
│ timespan │ A time interval │
│ byte │ An 8-bit unsigned integer │
│ sbyte │ An 8-bit signed integer │
│ int32 or int │ 32 bit Integer │
│ uint │ A 32-bit unsigned integer │
│ long │ 64 bit Integer │
│ ulong │ A 64-bit unsigned integer │
│ single or float │ Floating point numbers │
│ double │ Floating point more precise │
│ decimal │ A decimal number with 28-29 significant digits │
│ char │ Single character │
│ string │ Continuous text │
│ null │ Represents a null or undefined value │
│ void │ Represents no value │
│ array │ Array │
│ hashtable │ Is a collection of key and value pairs │
│ xml │ Xml document │
│ guid │ 32 bit GUID like d7872426-c7b8-4161-a132-b5643023e593 │
│ scriptblock │ A block of script code that can be invoked │
│ psobject │ PowerShell object │
│ object │ A generic object │
│ regex │ A regular expression object │
└─────────────────┴───────────────────────────────────────────────────────────────────┘</dev:code>
        <dev:remarks>
          <maml:para>This is an example of data types in PowerShell. Not all of them can be used, but the first part of common data types should work.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-Table.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-TempDir</command:name>
      <command:verb>New</command:verb>
      <command:noun>TempDir</command:noun>
      <maml:description>
        <maml:para>Creates a random folder in the temporary files directory</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Creates a randomly named folder in the temporary files directory and returns its path.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-TempDir</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------------- Example 1:Creates a temp folder ---------------</maml:title>
        <dev:code>PS C:\&gt; New-TempDir
 
# Output
 
C:\Users\John\AppData\Local\Temp\42e18af7-dae8-47ea-a09f-7382727f3611</dev:code>
        <dev:remarks>
          <maml:para>Creates a randomly named folder in the temporary files directory and returns the path to this folder.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/New-TempDir.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Open-Delivery</command:name>
      <command:verb>Open</command:verb>
      <command:noun>Delivery</command:noun>
      <maml:description>
        <maml:para>When opening a delivery note, the reservations are released and it is in edit mode again.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>If the delivery note has been booked but not yet invoiced, it can be reopened using this function. The reservations will be released and the quantities can now be modified.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Open-Delivery</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The `DeliveryId` is the `ID` of the header record of the delivery bill. The `ID` is always unique throughout the table.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The DeliveryNo is the delivery bill number of the record. It is the number used in the business correspondence and of course in the delivery bill itself. It is also unique.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The `DeliveryId` is the `ID` of the header record of the delivery bill. The `ID` is always unique throughout the table.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The DeliveryNo is the delivery bill number of the record. It is the number used in the business correspondence and of course in the delivery bill itself. It is also unique.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---------- Example 1:Open the Delivery Note 202305230 ----------</maml:title>
        <dev:code>PS C:\&gt; Open-Delivery -deliveryNo 202305230 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>Open the delivery note with number 202305230. The database connection is established using the specified UDL file. The delivery note must be booked but not invoiced yet.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Open-Delivery.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Close-Delivery</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Out-Beep</command:name>
      <command:verb>Out</command:verb>
      <command:noun>Beep</command:noun>
      <maml:description>
        <maml:para>Sends a beep to the speaker</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Sends a short sound to the speaker of the Windows PC.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Out-Beep</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------------ Example 1:Sends a sound to the speaker ------------</maml:title>
        <dev:code>PS C:\&gt; Out-Beep</dev:code>
        <dev:remarks>
          <maml:para>Sends a sound to the speaker.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Out-Beep.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Out-Goodbye</command:name>
      <command:verb>Out</command:verb>
      <command:noun>Goodbye</command:noun>
      <maml:description>
        <maml:para>Shows time span of the running script</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Out-Welcome is called at the beginning of a script and Out-Goodbye at the end of the script. This displays at the end the time that the script took for the entire execution between the two commands. There are two switch values with which you can control whether at the end of the script should be output that the execution was successful or with errors.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Out-Goodbye</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>abnormally</maml:name>
          <maml:description>
            <maml:para>The text `Job finished abnormally` is displayed in red at the end of the duration.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>normally</maml:name>
          <maml:description>
            <maml:para>The text `Job finished normally` is displayed in blue at the end of the duration.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>abnormally</maml:name>
        <maml:description>
          <maml:para>The text `Job finished abnormally` is displayed in red at the end of the duration.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>normally</maml:name>
        <maml:description>
          <maml:para>The text `Job finished normally` is displayed in blue at the end of the duration.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Output of the goodby message for successful execution</maml:title>
        <dev:code>PS C:\&gt; Out-Goodbye -normally
 
# Output
 
Execution start: 02/26/2023 09:38:38
Execution end: 02/26/2023 09:38:57
Duration: 18,99 seconds
Job finished normally</dev:code>
        <dev:remarks>
          <maml:para>The output is intended to be called at the end of a script. In this case, the error values can be used to decide whether this should be displayed or not.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Out-Goodbye.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Out-Welcome</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Out-Welcome</command:name>
      <command:verb>Out</command:verb>
      <command:noun>Welcome</command:noun>
      <maml:description>
        <maml:para>Displays an opening output with start time</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Creates the EULANDA logo in the output incl. the start time, the scriptdir name and if available the project name. The start time is stored in the `$startTime` global variable. When leaving with `out-goodby`, the execution time of the script is then also displayed.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Out-Welcome</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>projectScript</maml:name>
          <maml:description>
            <maml:para>The complete script path including the name of the script can be passed here from the main script. From this the project version and the project name are formed and stored in the global variables `$global:projectName` and `$global:projectVersion`. Additionally, as soon as Out-Welcome is called, it changes to this folder. The `$PSCommandPath` automatic variable then gives the desired value in the main script.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>noBanner</maml:name>
          <maml:description>
            <maml:para>Suppresses the banner output of the EULANDA logo.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>noInfo</maml:name>
          <maml:description>
            <maml:para>No additional information is displayed, only, if not suppressed the logo.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>culture</maml:name>
          <maml:description>
            <maml:para>The culture can be changed here script-wide. This also has an immediate effect on the displayed strings if they are read from a resource file. This is for example the case with the information in Out-Welcome. Here English and German are delivered. The culture is specified with `-culture de-DE`, for example.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>culture</maml:name>
        <maml:description>
          <maml:para>The culture can be changed here script-wide. This also has an immediate effect on the displayed strings if they are read from a resource file. This is for example the case with the information in Out-Welcome. Here English and German are delivered. The culture is specified with `-culture de-DE`, for example.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>noBanner</maml:name>
        <maml:description>
          <maml:para>Suppresses the banner output of the EULANDA logo.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>noInfo</maml:name>
        <maml:description>
          <maml:para>No additional information is displayed, only, if not suppressed the logo.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>projectScript</maml:name>
        <maml:description>
          <maml:para>The complete script path including the name of the script can be passed here from the main script. From this the project version and the project name are formed and stored in the global variables `$global:projectName` and `$global:projectVersion`. Additionally, as soon as Out-Welcome is called, it changes to this folder. The `$PSCommandPath` automatic variable then gives the desired value in the main script.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------------- Example 1:Displays an opening output -------------</maml:title>
        <dev:code>PS C:\&gt; Out-Welcome
 
# Output
 
              ________ ____ ___ _ ______ ___
             / ____/ / / / / / | / | / / __ \/ |
            / __/ / / / / / / /| | / |/ / / / / /| |
           / /___/ /_/ / /___/ ___ |/ /| / /_/ / ___ |
          /_____/\____/_____/_/ |_/_/ |_/_____/_/ |_|
             _____ ______
            / ___/____ / __/ /__ ______ _________
            \__ \/ __ \/ /_/ __/ | /| / / __ / ___/ _ \
           ___/ / /_/ / __/ /_ | |/ |/ / /_/ / / / __/
          /____/\____/_/ \__/ |__/|__/\__,_/_/ \___/
 
Version: EulandaConnect v3.2.1
Copyright: © EULANDA Software GmbH. All rights reserved.
                 https://www.github.com/Eulanda/EulandaConnect
Module Path C:\Git\Powershell\EulandaConnect\EulandaConnect.psm1
Execution start: 6/25/2023 12:16:19 PM</dev:code>
        <dev:remarks>
          <maml:para>Displays the welcome screen and some information like the start time and the script path.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Out-Welcome.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Out-Goodbye</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Protect-String</command:name>
      <command:verb>Protect</command:verb>
      <command:noun>String</command:noun>
      <maml:description>
        <maml:para>Encrypts a text using a key</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function is passed a text to encrypt via the `plainText` parameter. The string specified in the key parameter must be either 32 or 16 characters long. Intermediate sizes are padded, but reduce security. If a key is passed that is longer than 32 characters, an exception is thrown. The counterpart to the function is `Unprotect-String`.</maml:para>
      <maml:para>The key must be identical for encryption and decryption.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Protect-String</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>plainText</maml:name>
          <maml:description>
            <maml:para>The free text to be encrypted.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>key</maml:name>
          <maml:description>
            <maml:para>The key that is used for encryption. It should contain either 16 or 32 characters. An exception is thrown for larger values.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>key</maml:name>
        <maml:description>
          <maml:para>The key that is used for encryption. It should contain either 16 or 32 characters. An exception is thrown for larger values.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>plainText</maml:name>
        <maml:description>
          <maml:para>The free text to be encrypted.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------------ Example 1:Encrypts a text using a key ------------</maml:title>
        <dev:code>PS C:\&gt; [string]$protected= Protect-String -plainText 'I am unsecure' -key 'x&amp;=Ogbu7$43lkn4i'
 
# Output
 
76492d1116743f0423413b16050a5345MgB8AC8ATABrAGwAQgA3AFAARABOAEYAQwArAEIATABwAGEAagBGAFUAQQBUAHcAPQA9AHwAMAAyADEAZABhAGQAMQA1ADQAZgBiADQAZABiADMAOQA4AGMANQA1ADIANQA4ADIANgAyAGMAYgBmAGUANQBjAGEAMgAxADMAMAA3ADQAZQAyAGMAYQA0ADAAMgBjAGYAZQA3ADMAMgAyADgANQAwADcANwA3ADQANABmADEANgA=</dev:code>
        <dev:remarks>
          <maml:para>The text `I am unsecure` is encrypted using the key `x&amp;=Ogbu7$43lkn4i` and stored in the variable `$protected`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Protect-String.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Unprotect-String</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Read-IniFile</command:name>
      <command:verb>Read</command:verb>
      <command:noun>IniFile</command:noun>
      <maml:description>
        <maml:para>Reads a classic Windows ini file</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function reads a classic Windows ini file with sections and values into a nested hash table. The values can then be accessed by specifying the section name and the field name. Comments in the ini file are skipped.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Read-IniFile</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>Path to the ini file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">FileInfo</command:parameterValue>
          <dev:type>
            <maml:name>FileInfo</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>Path to the ini file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">FileInfo</command:parameterValue>
        <dev:type>
          <maml:name>FileInfo</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>PowerShell unfortunately does not have a built-in function to process classic INI files. For new projects you will rather use YAML. But for older projects or backwards compatibility this is a viable alternative.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----------------- Example 1:Reads Win.ini file -----------------</maml:title>
        <dev:code>PS C:\&gt; $ini= Read-IniFile -Path C:\Windows\win.ini
PS C:\&gt; $ini
 
# Output
 
Name Value
---- -----
fonts {}
mci extensions {}
Mail {[MAPI, 1]}
extensions {}
files {}
No-Section {}
 
PS C:\&gt; $ini['Mail']['Mapi']
 
# Output
 
1</dev:code>
        <dev:remarks>
          <maml:para>Reads the Windows ini file into the $ini variable. Then you can access the `MAPI` label of the `Mail` section and read the value.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Read-IniFile.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-IniBool</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Read-VersionFromSynopsis</command:name>
      <command:verb>Read</command:verb>
      <command:noun>VersionFromSynopsis</command:noun>
      <maml:description>
        <maml:para>Get the version number from the synopsis of a ps1 file</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The synopsis normally does not contain a version number. However, it has become common practice to store this in the .NOTES area. If a valid version number is found there, it will be returned. The version number must be stored there in the form: `Version 1.5.2` etc. The PowerShell file is specified in the path parameter. The maximum number of lines to search the synopsis at the beginning of the file can be specified in `maxLines`. The default value is 250 lines.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Read-VersionFromSynopsis</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>Path to the PowerShell ps1 file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>maxLines</maml:name>
          <maml:description>
            <maml:para>The max. quantity of lines which are read. If the version is not found, the function returns 0.0.-1.-1</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>maxLines</maml:name>
        <maml:description>
          <maml:para>The max. quantity of lines which are read. If the version is not found, the function returns 0.0.-1.-1</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>Path to the PowerShell ps1 file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------- Example 1:Read the Version number --------------</maml:title>
        <dev:code>PS C:\&gt; [version]$v = Read-VersionFromSynopsis -path "$PsScriptRoot\MyProject.ps1"
 
# Output
 
1.5.2</dev:code>
        <dev:remarks>
          <maml:para>The PowerShell file `MyProject.ps1` is read and searched for the version entry.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Read-VersionFromSynopsis.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Receive-RemoteFile</command:name>
      <command:verb>Receive</command:verb>
      <command:noun>RemoteFile</command:noun>
      <maml:description>
        <maml:para>The Receive-RemoteFile function provides a convenient way to download files from a remote server using FTP, FTPS and SFTP.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Receive-RemoteFile function allows downloading a file from a remote server using FTP, FTPS (explicit), or SFTP. It supports authentication with a username and password, where the password can be provided as clear text or as a SecureString. For SFTP transfers, it also supports using a certificate. The function provides options for specifying the remote file's name, the local folder for storing the downloaded file, and other parameters related to the transfer.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Receive-RemoteFile</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="none">
          <maml:name>localFolder</maml:name>
          <maml:description>
            <maml:para>The local folder where the file should be downloaded.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="none">
          <maml:name>localFile</maml:name>
          <maml:description>
            <maml:para>The local file that is to be downloaded from the remote server via FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>resumeAge</maml:name>
          <maml:description>
            <maml:para>The resumeAge parameter is currently not utilized for compatibility reasons. It was intended to specify how old, in seconds, an interrupted download can be, allowing the download to be resumed from the point of interruption. However, the current behavior is that the file is always overwritten completely in case of an interruption.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>resumeRetries</maml:name>
          <maml:description>
            <maml:para>The number of attempts made to download a file that was interrupted during the download process.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>Directory on the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
          <maml:name>remoteFile</maml:name>
          <maml:description>
            <maml:para>The filename on the remote server that should be downloaded.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="none">
        <maml:name>localFile</maml:name>
        <maml:description>
          <maml:para>The local file that is to be downloaded from the remote server via FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="none">
        <maml:name>localFolder</maml:name>
        <maml:description>
          <maml:para>The local folder where the file should be downloaded.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
        <maml:name>remoteFile</maml:name>
        <maml:description>
          <maml:para>The filename on the remote server that should be downloaded.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>Directory on the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>resumeAge</maml:name>
        <maml:description>
          <maml:para>The resumeAge parameter is currently not utilized for compatibility reasons. It was intended to specify how old, in seconds, an interrupted download can be, allowing the download to be resumed from the point of interruption. However, the current behavior is that the file is always overwritten completely in case of an interruption.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>resumeRetries</maml:name>
        <maml:description>
          <maml:para>The number of attempts made to download a file that was interrupted during the download process.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Downloads a file by ftp protocol from a remote server using simple authentication</maml:title>
        <dev:code>PS C:\&gt; Receive-RemoteFile -server "ftp.example.com" -protocol "ftp" -user "username" -password "password" -remoteFolder "/path/to/remote" -remoteFile "file.txt" -localFolder "C:\Downloads" -localFile "downloaded_file.txt"</dev:code>
        <dev:remarks>
          <maml:para>This example demonstrates how to download a file from an FTP server using the specified username and password. The file named "file.txt" located in the remote folder "/path/to/remote" is downloaded and saved as "downloaded_file.txt" in the local folder "C:\Downloads".</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Receive-RemoteFile.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Remove-DeliveryPropertyItem</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>DeliveryPropertyItem</command:noun>
      <maml:description>
        <maml:para>Removes the delivery bill from the properties list</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>In the ERP system, you can remove a property for a delivery bill. The delivery bill is specified either by its delivery note number or its ID. The connection to the database is made via a connection object, a connection string or the specification of a UDL file.</maml:para>
      <maml:para>You can see what a property tree looks like in Example 1.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Remove-DeliveryPropertyItem</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>propertyId</maml:name>
          <maml:description>
            <maml:para>The property ID is determined directly in the ERP system by clicking on the property name with the right mouse button and noting the displayed ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>propertyId</maml:name>
        <maml:description>
          <maml:para>The property ID is determined directly in the ERP system by clicking on the property name with the right mouse button and noting the displayed ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----------- Example 1:How a property tree looks like -----------</maml:title>
        <dev:code>Delivery Notes/
├─ My Properties/
├─ Delivery Status/
│ ├─ Complete
│ ├─ Over Delivered
│ ├─ Under Delivered
├─ Tracking Information/
│ ├─ Partial Missing
│ ├─ Complete
│ ├─ All Missing
├─ Locked for Retransmission</dev:code>
        <dev:remarks>
          <maml:para>This property tree is just an example. Using this structure, all delivery bills that are assigned to this property can be displayed immediately in the ERP system. Removing these properties can be done via this API.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 2:Removes a property with the specified propertyId from the delivery bill</maml:title>
        <dev:code>PS C:\&gt; Remove-DeliveryPropertyItem -propertyId 125 -deliveryNo 20230515 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>In this example, the property with id 25 is removed from the property tree for the delivery bill with number 20230515. The connection to the database is made via the specified UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Remove-DeliveryPropertyItem.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Remove-ItemWithRetry</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>ItemWithRetry</command:noun>
      <maml:description>
        <maml:para>Delete a file with wait until it is no longer locked</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function deletes the file specified with the -Path parameter. If the file is locked, the function waits until the lock is removed. The maximum waiting time is 50 seconds.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Remove-ItemWithRetry</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>path</maml:name>
          <maml:description>
            <maml:para>Path incl. filename.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>path</maml:name>
        <maml:description>
          <maml:para>Path incl. filename.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------------- Example 1:Deletes a file with retry -------------</maml:title>
        <dev:code>PS C:\&gt; Remove-ItemWithRetry -Path C:\temp\test.txt</dev:code>
        <dev:remarks>
          <maml:para>Deletes the text file `test.txt` in the folder c:\temp , If this is currently in use, the function waits up to 50 seconds and repeats the deletion request during this time.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Remove-ItemWithRetry.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Remove-RemoteFile</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>RemoteFile</command:noun>
      <maml:description>
        <maml:para>Removes a specified file from a remote server, supporting FTP, FTPS, and SFTP protocols.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Remove-RemoteFile` function deletes a specific file from a remote server using the provided connection parameters. The function supports FTP, FTPS, and SFTP protocols. Authentication can be performed using a username and password, or a certificate for SFTP. The file to be deleted is specified by its path and name in the `-remoteFolder` and `-remoteFile` parameters, respectively.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Remove-RemoteFile</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>The path to the folder on the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>remoteFile</maml:name>
          <maml:description>
            <maml:para>The file that should be deleted on the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>remoteFile</maml:name>
        <maml:description>
          <maml:para>The file that should be deleted on the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>The path to the folder on the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Deletes a file on a remote server using simple authentication</maml:title>
        <dev:code>PS C:\&gt; Remove-RemoteFile -server "ftp.example.com" -protocol "sftp" -user "username" -password "password" -remoteFolder "/docs" -remoteFile "test.docx"</dev:code>
        <dev:remarks>
          <maml:para>This example removes the file "test.docx" located in the "/docs" directory on the SFTP server at "ftp.example.com". The function uses the provided username and password for authentication.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Remove-RemoteFile.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Remove-RemoteFingerprint</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>RemoteFingerprint</command:noun>
      <maml:description>
        <maml:para>Remove the remote fingerprint from the local cache.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function helps in managing the fingerprint data of remote servers that have been cached locally. It is particularly useful in scenarios where the remote server's fingerprint has changed due to reasons such as re-installation, updates, or any other modifications. The function removes the stored fingerprint data of the specified remote server from the local cache, allowing the updated fingerprint data to be reacquired in the next connection attempt.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Remove-RemoteFingerprint</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>Specifies the hostname or IP address of the remote server whose fingerprint needs to be removed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>Specifies the protocol of the remote server whose fingerprint needs to be removed. Currently, only the SFTP protocol is supported, which is also the default if no protocol is specified.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>Specifies the protocol of the remote server whose fingerprint needs to be removed. Currently, only the SFTP protocol is supported, which is also the default if no protocol is specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>Specifies the hostname or IP address of the remote server whose fingerprint needs to be removed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1: Removes the fingerprint from local cache -----</maml:title>
        <dev:code>PS C:\&gt; Remove-RemoteFingerprint -server "example.com"</dev:code>
        <dev:remarks>
          <maml:para>This command removes the SFTP fingerprint of the server `example.com` from the local cache.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Remove-RemoteFingerprint.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Remove-RemoteFolder</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>RemoteFolder</command:noun>
      <maml:description>
        <maml:para>Removes a specified folder from a remote server, supporting FTP, FTPS, and SFTP protocols.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Remove-RemoteFolder` function is a versatile tool for deleting a specified directory from a remote server. It supports FTP, FTPS, and SFTP protocols, making it adaptable to various server configurations.</maml:para>
      <maml:para>The function uses basic authentication (username and password) for server access. When working with SFTP, there's an option for certificate-based authentication. The `-activeMode` switch is available for servers that require active mode FTP.</maml:para>
      <maml:para>To utilize this function, specify the server's address, the protocol (FTP, FTPS, or SFTP), the port number, the desired mode (active or passive, with passive as the default), the path to the SSH private key (if using SFTP), your username and password, and the path of the directory you wish to remove from the server.</maml:para>
      <maml:para>Ensure the directory specified for deletion is empty, as the function might not execute successfully otherwise.</maml:para>
      <maml:para>This function provides no return output if the operation is successful and throws an exception if an error occurs.</maml:para>
      <maml:para>The function's usability is subject to the server's policy, network conditions, and the necessary permissions to perform the deletion operation on the target server.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Remove-RemoteFolder</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>The path to the folder on the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>The path to the folder on the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Removing a directory on an SFTP server using basic authentication credentials</maml:title>
        <dev:code>PS C:\&gt; Remove-RemoteFile -server "ftp.example.com" -protocol "sftp" -user "username" -password "password" -remoteFolder "/docs"</dev:code>
        <dev:remarks>
          <maml:para>This example demonstrates the process of deleting the "/docs" directory from the SFTP server located at "ftp.example.com". It involves a function that utilizes the given username and password for authentication purposes. It's crucial to note that in order for the command to be executed successfully, the target directory must be devoid of any files or subdirectories; it must be empty.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Remove-RemoteFolder.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Remove-Snapshot</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>Snapshot</command:noun>
      <maml:description>
        <maml:para>The `Remove-Snapshot` function deletes a snapshot that was previously created with `New-Snapshot`.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Remove-Snapshot` function serves to delete a snapshot (or volume shadow copy) that was previously created on a specified drive and accessed via a symbolic link. This function essentially undoes the operations performed by the `New-Snapshot` function. The function ensures that it is being run with administrator privileges, as deleting a shadow copy requires such rights.</maml:para>
      <maml:para>&gt; ATTENTION : The function requires administrative rights! If the function is run without these privileges, an exception is thrown.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Remove-Snapshot</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>snapshot</maml:name>
          <maml:description>
            <maml:para>The snapshot to be removed. This parameter accepts only the function return value from `New-Snapshot`. This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>snapshot</maml:name>
        <maml:description>
          <maml:para>The snapshot to be removed. This parameter accepts only the function return value from `New-Snapshot`. This parameter is mandatory.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>The function requires administrative rights! If the function is run without these privileges, an exception is thrown.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title> Example 1: Removes a snapshot created prior with New-Snapshot </maml:title>
        <dev:code>PS C:\&gt; Remove-Snapshot -snapshot $snapshot</dev:code>
        <dev:remarks>
          <maml:para>In this example, the `Remove-Snapshot` function is used to remove a snapshot previously created with `New-Snapshot`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Remove-Snapshot.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>New-Snapshot</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Remove-SymbolicLink</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>SymbolicLink</command:noun>
      <maml:description>
        <maml:para>Removes an existing symbolic link.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Remove-SymbolicLink` function removes a symbolic link at the specified path, if it exists. The function verifies that the provided path indeed points to a symbolic link before trying to remove it. If the path points to a normal file or directory or if the symbolic link does not exist, the function will not perform the deletion and instead will inform the user about the situation. Like its counterpart, the `New-SymbolicLink` function, this function also requires administrative privileges. If the function is run without these privileges, an exception is thrown. </maml:para>
      <maml:para>&gt; ATTENTION : The function requires administrative rights! If the function is run without these privileges, an exception is thrown.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Remove-SymbolicLink</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>symbolicLink</maml:name>
          <maml:description>
            <maml:para>The path to the symbolic link that is to be removed. This should be a previously created symbolic link.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>symbolicLink</maml:name>
        <maml:description>
          <maml:para>The path to the symbolic link that is to be removed. This should be a previously created symbolic link.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>The function requires administrative rights! If the function is run without these privileges, an exception is thrown.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------- Example 1: Removes a symbolic link --------------</maml:title>
        <dev:code>PS C:\&gt; Remove-SymbolicLink -symbolicLink 'C:\MySymbolicLink'</dev:code>
        <dev:remarks>
          <maml:para>Removes the symbolic link at 'C:\MySymbolicLink', if it exists and is indeed a symbolic link.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Remove-SymbolicLink.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>New-SymbolicLink</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Rename-MssqlDatabase</command:name>
      <command:verb>Rename</command:verb>
      <command:noun>MssqlDatabase</command:noun>
      <maml:description>
        <maml:para>Rename any MSSQL database including the logical, physical as well as the file names on the hard disk</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function renames any MSSQL database. This with inclusion of the logical- physical as well as the file names on the hard disk. </maml:para>
      <maml:para>The authorization to the SQL server can be done via the server name and optionally user name and password, and alternatively via a connection string, a UDL file or an already instantiated connection object.</maml:para>
      <maml:para>The database name is specified via the `oldName` parameter and the new name via `newName`. </maml:para>
      <maml:para>Administrative rights on the SQL server are required to execute the function. During the conversion the database is set to single user operation. In case of errors the function generates an exception.</maml:para>
      <maml:para>The function uses the ADO com object to establish the connection and is therefore specially designed for Windows systems.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Rename-MssqlDatabase</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>oldName</maml:name>
          <maml:description>
            <maml:para>The existing name of the database to be changed in the name.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>newName</maml:name>
          <maml:description>
            <maml:para>The new name of the MSSQL database. If it is a database of the EULANDA ERP system it must start with EULANDA_.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The name of the MSSQL server can be specified with its name or IP4 number. An instance name can also be specified via a backslash.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The user name for authentication to the MSSQL server. Here the SQL_Server must support the mixed authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>Connection to the MSSQL server can also be done via `server`, `user` and `password` if the server is set up for mixed authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>newName</maml:name>
        <maml:description>
          <maml:para>The new name of the MSSQL database. If it is a database of the EULANDA ERP system it must start with EULANDA_.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>oldName</maml:name>
        <maml:description>
          <maml:para>The existing name of the database to be changed in the name.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>Connection to the MSSQL server can also be done via `server`, `user` and `password` if the server is set up for mixed authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The name of the MSSQL server can be specified with its name or IP4 number. An instance name can also be specified via a backslash.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The user name for authentication to the MSSQL server. Here the SQL_Server must support the mixed authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---------- Example 1:Renaming Database to EULANDA_Doe ----------</maml:title>
        <dev:code>PS C:\&gt; Rename-MssqlDatabase -oldName 'EULANDA_JohnDoe' -newName 'EULANDA_Doe' -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>In this example, the authentication to the SQL server is done via the UDL file. It does not matter whether the database to be renamed is specified in the UDL file. The only important thing here is that the server and, if applicable, the instance are specified here. Access is then either via user name with password, or via Windows authentication if user and password are not specified in the UDL file. After execution of the function the database, which was called `EULANDA_JohnDoe` before, is renamed to `EULANDA_Doe`, incl. internal logical and physical names. The database files (MDF+LDF) on the hard disk are also renamed.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Rename-MssqlDatabase.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Rename-RemoteFile</command:name>
      <command:verb>Rename</command:verb>
      <command:noun>RemoteFile</command:noun>
      <maml:description>
        <maml:para>Renames or moves a file on a remote server using the specified FTP, FTPS or SFTP protocol.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function uses the specified protocol (FTP, FTPS or SFTP) to connect to a remote server and perform a rename or move operation on a specified file. The original location and name of the file are specified by the `remoteFolder` and `remoteFile` parameters.</maml:para>
      <maml:para>If `newRemoteFolder` is specified, the file will be moved to this folder. If `newRemoteFile` is also specified, the file will be renamed to this name in the new folder. If `newRemoteFolder` is not specified, but `newRemoteFile` is, the file will be renamed in its current folder.</maml:para>
      <maml:para>Credentials to access the server are provided via the `user` and `password` parameters. The `protocol` parameter determines whether FTP, FTPS or SFTP is used for the operation, with the default being FTP.</maml:para>
      <maml:para>The `activeMode` switch can be used to enable FTP active mode instead of the default passive mode. If using SFTP and the server requires a certificate for authentication, the `certificate` parameter can be used to provide the path to the certificate file.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Rename-RemoteFile</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>Is the folder on the remote server where the file to be renamed is located.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>remoteFile</maml:name>
          <maml:description>
            <maml:para>The remote file that is to be renamed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>newFolder</maml:name>
          <maml:description>
            <maml:para>If the `newFolder` is specified, the file given by `newFile` will be moved into this folder. If the folder is not specified, the file in the old folder will simply be renamed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
          <maml:name>newFile</maml:name>
          <maml:description>
            <maml:para>The new name for the remote file. If no filename is specified, the existing file is simply moved to the new location specified in `newFolder`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
        <maml:name>newFile</maml:name>
        <maml:description>
          <maml:para>The new name for the remote file. If no filename is specified, the existing file is simply moved to the new location specified in `newFolder`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>newFolder</maml:name>
        <maml:description>
          <maml:para>If the `newFolder` is specified, the file given by `newFile` will be moved into this folder. If the folder is not specified, the file in the old folder will simply be renamed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>remoteFile</maml:name>
        <maml:description>
          <maml:para>The remote file that is to be renamed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>Is the folder on the remote server where the file to be renamed is located.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1: Moves and renames a file on ftp server ------</maml:title>
        <dev:code>PS C:\&gt; Rename-RemoteFile -server "ftp.example.com" -protocol "ftp" -user "user" -password "password" -remoteFolder "/path/to/old/folder" -remoteFile "oldfile.txt" -newRemoteFolder "/path/to/new/folder" -newRemoteFile "newfile.txt"</dev:code>
        <dev:remarks>
          <maml:para>This example renames and moves the file "oldfile.txt" from "/path/to/old/folder" to "/path/to/new/folder" and renames it to "newfile.txt" on the FTP server "ftp.example.com" using the provided username and password.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Rename-RemoteFile.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Rename-RemoteFolder</command:name>
      <command:verb>Rename</command:verb>
      <command:noun>RemoteFolder</command:noun>
      <maml:description>
        <maml:para>The `Rename-RemoteFolder` cmdlet is used to rename a folder on a remote server using various protocols such as FTP, FTPS, or SFTP.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Rename-RemoteFolder` cmdlet allows you to rename a folder on a remote server. You can specify the server address or hostname, the protocol to use (such as FTP, FTPS, or SFTP), the port number, and the necessary authentication details (username and password). By default, passive mode is used for FTP or FTPS connections, but you can enable active mode using the `-activeMode` switch. If you are using SFTP with certificate-based authentication, you can provide the path to a certificate file using the `-certificate` parameter.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Rename-RemoteFolder</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>Is the folder on the remote server that should be renamed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>newFolder</maml:name>
          <maml:description>
            <maml:para>The new name for the remote folder.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>newFolder</maml:name>
        <maml:description>
          <maml:para>The new name for the remote folder.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>Is the folder on the remote server that should be renamed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1: Rename a remote folder with basic authentication -</maml:title>
        <dev:code>PS C:\&gt; Rename-RemoteFolder -server "ftp.example.com" -protocol "ftps" -port 21 -user "username" -password "password" -remoteFolder "/old_folder" -newFolder "/new_folder"</dev:code>
        <dev:remarks>
          <maml:para>This example renames the folder named `/old_folder` to `new_folder` on the remote server "ftp.example.com" using FTPS (FTP over SSL) on port 21. The command uses for the username and password for authentication.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Rename-RemoteFolder.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Resize-Image</command:name>
      <command:verb>Resize</command:verb>
      <command:noun>Image</command:noun>
      <maml:description>
        <maml:para>Changes the image size proportionally for jpg files</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function changes the image size of jpg files proportionally. Via the parameters `maxWidth` and `maxHeight` the maximum size is specified. Depending on which dimension of the image is larger, this side is then set to the maximum value and the other side is proportionally adjusted to this size. If no dimension is specified, the default value of 1200 is used. If no output path is specified, or if the output path is the same as the input path, the `modifier` is appended to the image name. The default value for the modifier is '-resized'. The quality of the resizing can be specified in the range 10 to 100. The default is 65.</maml:para>
      <maml:para>If a directory containing jpg files is passed via pipes to the function, it is useful to specify an output path. Otherwise the name of the image is modified by the `modifier`. If the switch `passthru` is set, the new file names are returned as the function result.</maml:para>
      <maml:para>The function is based on the Windows COM object `WIA.ImageFile` and `WIA.ImageProcess`. These are not installed by Windows Setup by default, but can be activated as a feature at any time. This is also possible on Windows servers. The setting is: `User Interface and Infrastructure`.</maml:para>
      <maml:para>&gt; If the destination image already exists, it will be overwritten. If the destination folder does not exist, it will not be created. Recursive piping is not supported, nor is the specification of non-Jpeg files.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Resize-Image</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="none">
          <maml:name>pathIn</maml:name>
          <maml:description>
            <maml:para>The fully qualified input path of a image file, if piping is not used.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>pathOut</maml:name>
          <maml:description>
            <maml:para>The fully qualified output path of the new image. If the piping function is used, the output path must be specified without a filename.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>maxHeight</maml:name>
          <maml:description>
            <maml:para>The max height of the new image in pixel. The default value is 1200. Values from 32 to 5000 are possible.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>maxWidth</maml:name>
          <maml:description>
            <maml:para>The max width of the new image in pixel. The default value is 1200. Values from 32 to 5000 are possible.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>modifier</maml:name>
          <maml:description>
            <maml:para>To avoid conflicts a `modifier` changes the file name of the new image. the default is `-resized`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>passthru</maml:name>
          <maml:description>
            <maml:para>If this switch is set, the new filenames are returned as a object array of file names.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>quality</maml:name>
          <maml:description>
            <maml:para>The image quality of the new image. The higher the value, the better the quality, but the larger the file size. The default value is 65. Values from 10-100 are possible.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>maxHeight</maml:name>
        <maml:description>
          <maml:para>The max height of the new image in pixel. The default value is 1200. Values from 32 to 5000 are possible.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>maxWidth</maml:name>
        <maml:description>
          <maml:para>The max width of the new image in pixel. The default value is 1200. Values from 32 to 5000 are possible.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>modifier</maml:name>
        <maml:description>
          <maml:para>To avoid conflicts a `modifier` changes the file name of the new image. the default is `-resized`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>passthru</maml:name>
        <maml:description>
          <maml:para>If this switch is set, the new filenames are returned as a object array of file names.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="none">
        <maml:name>pathIn</maml:name>
        <maml:description>
          <maml:para>The fully qualified input path of a image file, if piping is not used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>pathOut</maml:name>
        <maml:description>
          <maml:para>The fully qualified output path of the new image. If the piping function is used, the output path must be specified without a filename.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>quality</maml:name>
        <maml:description>
          <maml:para>The image quality of the new image. The higher the value, the better the quality, but the larger the file size. The default value is 65. Values from 10-100 are possible.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1:Resizes a image to the default size of 1200 pixels -</maml:title>
        <dev:code>PS C:\&gt; Resize-Image -pathIn C:\temp\john.jpg</dev:code>
        <dev:remarks>
          <maml:para>The function resizes the image if a side is larger than the maximum width or height, where the default is 1200 pixels. No output path is specified, so the result is saved in the input folder, but with a modifier so that the new file is named C:\temp\john-resized.jpg.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Resize-Image.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Select-OutdatedFilenames</command:name>
      <command:verb>Select</command:verb>
      <command:noun>OutdatedFilenames</command:noun>
      <maml:description>
        <maml:para>Selects outdated filenames based on a specified basename and extension.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Select-OutdatedFilenames function filters a list of filenames based on a given basename and extension. It then selects the outdated filenames by comparing the date portion in the filenames. The number of outdated filenames to be retained can be specified using the 'history' parameter.</maml:para>
      <maml:para>You can use the function by providing the array of filenames to filter, the basename to match, and the extension to match. Optionally, you can specify the number of outdated filenames to retain using the `history` parameter. The function will return the filtered and selected outdated filenames.</maml:para>
      <maml:para>The function is helpful when you have a list of filenames with a specific format and you want to filter and select only the outdated filenames based on the basename and extension.</maml:para>
      <maml:para>Filename should follow the pattern 'yyyy-MM-dd-HH-mm-ss-ffff'. The expected filenames should have the following format: `(basename)-yyyy-MM-dd-HH-mm-ss-ffff(.extension)`. For example, `MyDatabase-2023-05-15-10-30-0001.zip`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Select-OutdatedFilenames</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>filenames</maml:name>
          <maml:description>
            <maml:para>Specifies an array of filenames to filter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>basename</maml:name>
          <maml:description>
            <maml:para>Specifies the basename that the filenames should start with.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>extension</maml:name>
          <maml:description>
            <maml:para>Specifies the file extension that the filenames should end with, including the extension point.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>history</maml:name>
          <maml:description>
            <maml:para>(Optional) Specifies the number of outdated filenames to retain. Defaults to 3.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>basename</maml:name>
        <maml:description>
          <maml:para>Specifies the basename that the filenames should start with.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>extension</maml:name>
        <maml:description>
          <maml:para>Specifies the file extension that the filenames should end with, including the extension point.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>filenames</maml:name>
        <maml:description>
          <maml:para>Specifies an array of filenames to filter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>history</maml:name>
        <maml:description>
          <maml:para>(Optional) Specifies the number of outdated filenames to retain. Defaults to 3.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>$filenames = @('MyDatabase-2023-05-15-10-30-0001.zip', 'OtherFile.txt', 'MyDatabase-2023-05-15-11-45-0002.zip')
$selectedFiles = Select-OutdatedFilenames -Filenames $filenames -basename 'MyDatabase' -extension '.zip' -history 1</dev:code>
        <dev:remarks>
          <maml:para>This example selects the outdated filenames from the given list of filenames. It filters the filenames based on the specified basename 'MyDatabase' and the extension '.zip'. The 'history' parameter is set to 1, indicating that the one most recent outdated filename(s) should be retained.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Select-OutdatedFilenames.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Send-Mail</command:name>
      <command:verb>Send</command:verb>
      <command:noun>Mail</command:noun>
      <maml:description>
        <maml:para>Sends an email via Send-MailMessage, but with some additions</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Today's mail servers work with encryption and also with encrypted user password. This wrapper uses different TLS versions and converts the user with password to creditals.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Send-Mail</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>from</maml:name>
          <maml:description>
            <maml:para>The e-mail address of the sender e.g. 'john doe&lt;jd@outlook.com&gt;'</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>to</maml:name>
          <maml:description>
            <maml:para>Recipient of the e-mail. The string supports multiple recipients, they can be specified separated by comma.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="none">
          <maml:name>secPassword</maml:name>
          <maml:description>
            <maml:para>The SecPassword is an encrypted password, it is used in combination with the user name to authorize the SMTP server when sending the e-mail.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">SecureString</command:parameterValue>
          <dev:type>
            <maml:name>SecureString</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="none">
          <maml:name>credential</maml:name>
          <maml:description>
            <maml:para>Creditals is a combination of username and password, both securely encoded. This is the new method preferred by Microsoft. For example, if the data are specified via username and password, they are automatically converted to creditals.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>PSCredential</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="12" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The default port on the SMTP server was 25, but with SSL and TSL there are other common ports. These are for example 587 for TLS and 465 for SSL. Many SMTP servers today even use port 25 again and expect a TSL connection there.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>25</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="13" aliases="DNO">
          <maml:name>deliveryNotificationOption</maml:name>
          <maml:description>
            <maml:para>Indicates that an acknowledgement of receipt is desired from the recipient, but this is usually not done.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">OnSuccess</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">OnFailure</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Delay</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Never</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="14" aliases="none">
          <maml:name>subject</maml:name>
          <maml:description>
            <maml:para>The email subject</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="15" aliases="none">
          <maml:name>body</maml:name>
          <maml:description>
            <maml:para>The e-mail text can be specified either ASCII or in HTML. This is controlled by the switch BodyAsHtml.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="16" aliases="none">
          <maml:name>attachment</maml:name>
          <maml:description>
            <maml:para>Files incl. path. If several files are specified, they must be separated by commas.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>cc</maml:name>
          <maml:description>
            <maml:para>Recipient in copy (= carbon copy). The string supports multiple copy recipients, which can be specified separated by commas.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>bcc</maml:name>
          <maml:description>
            <maml:para>Recipients in blind copy, here these recipients are not visibly displayed to the normal recipients. The string supports multiple recipients, which can be specified separated by commas.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>replyTo</maml:name>
          <maml:description>
            <maml:para>Reply address if different from the sender.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>$from</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="server">
          <maml:name>smtpServer</maml:name>
          <maml:description>
            <maml:para>Mail receiving server, this must be an SMTP server. The server can be specified using a DNS resolvable name such as `mail.doe.com` or its IP number. For IP numbers, only IP is currently accepted.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>priority</maml:name>
          <maml:description>
            <maml:para>The possible values are `normal`, `high` and `low`. If the priority is set to `high`, for example, a red exclamation mark is displayed in the overview list in `Outlook` for these e-mails.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">Normal</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">High</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Low</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Normal</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>encoding</maml:name>
          <maml:description>
            <maml:para>The encoding of the special characters in the e-mail. Nowadays, most emails are sent with utf8 encoding. This encoding allows the representation of most special characters.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">utf8NoBOM</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ascii</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">bigendianunicode</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">bigendianutf32</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">oem</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">unicode</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">utf7</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">utf8</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">utf8BOM</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">utf8NoBOM</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">utf32</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Utf8</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The user is the name with which you authorize yourself at the SMTP server when sending the e-mail.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password is used in combination with the user name to authorize the SMTP server when sending the e-mail. It is specified unencrypted.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="useHtml">
          <maml:name>bodyAsHtml</maml:name>
          <maml:description>
            <maml:para>The main e-mail text can be interpreted as standard ASCII or as HTML. Here, an HTML e-mail does not necessarily have to contain all the elements of an HTML web page, but can for example start directly with a paragraph '&lt;p&gt;Text&lt;/p&gt;'.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>useSsl</maml:name>
          <maml:description>
            <maml:para>SSL encryption is no longer state of the art and is generally only used for in-house solutions. The switch is therefore usually not set. Instead, encryption with one of the TLS standards is automatically negotiated.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="16" aliases="none">
        <maml:name>attachment</maml:name>
        <maml:description>
          <maml:para>Files incl. path. If several files are specified, they must be separated by commas.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>bcc</maml:name>
        <maml:description>
          <maml:para>Recipients in blind copy, here these recipients are not visibly displayed to the normal recipients. The string supports multiple recipients, which can be specified separated by commas.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="15" aliases="none">
        <maml:name>body</maml:name>
        <maml:description>
          <maml:para>The e-mail text can be specified either ASCII or in HTML. This is controlled by the switch BodyAsHtml.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="useHtml">
        <maml:name>bodyAsHtml</maml:name>
        <maml:description>
          <maml:para>The main e-mail text can be interpreted as standard ASCII or as HTML. Here, an HTML e-mail does not necessarily have to contain all the elements of an HTML web page, but can for example start directly with a paragraph '&lt;p&gt;Text&lt;/p&gt;'.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>cc</maml:name>
        <maml:description>
          <maml:para>Recipient in copy (= carbon copy). The string supports multiple copy recipients, which can be specified separated by commas.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="none">
        <maml:name>credential</maml:name>
        <maml:description>
          <maml:para>Creditals is a combination of username and password, both securely encoded. This is the new method preferred by Microsoft. For example, if the data are specified via username and password, they are automatically converted to creditals.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="13" aliases="DNO">
        <maml:name>deliveryNotificationOption</maml:name>
        <maml:description>
          <maml:para>Indicates that an acknowledgement of receipt is desired from the recipient, but this is usually not done.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>encoding</maml:name>
        <maml:description>
          <maml:para>The encoding of the special characters in the e-mail. Nowadays, most emails are sent with utf8 encoding. This encoding allows the representation of most special characters.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Utf8</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>from</maml:name>
        <maml:description>
          <maml:para>The e-mail address of the sender e.g. 'john doe&lt;jd@outlook.com&gt;'</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password is used in combination with the user name to authorize the SMTP server when sending the e-mail. It is specified unencrypted.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="12" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The default port on the SMTP server was 25, but with SSL and TSL there are other common ports. These are for example 587 for TLS and 465 for SSL. Many SMTP servers today even use port 25 again and expect a TSL connection there.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>25</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>priority</maml:name>
        <maml:description>
          <maml:para>The possible values are `normal`, `high` and `low`. If the priority is set to `high`, for example, a red exclamation mark is displayed in the overview list in `Outlook` for these e-mails.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Normal</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>replyTo</maml:name>
        <maml:description>
          <maml:para>Reply address if different from the sender.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>$from</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="none">
        <maml:name>secPassword</maml:name>
        <maml:description>
          <maml:para>The SecPassword is an encrypted password, it is used in combination with the user name to authorize the SMTP server when sending the e-mail.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">SecureString</command:parameterValue>
        <dev:type>
          <maml:name>SecureString</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="server">
        <maml:name>smtpServer</maml:name>
        <maml:description>
          <maml:para>Mail receiving server, this must be an SMTP server. The server can be specified using a DNS resolvable name such as `mail.doe.com` or its IP number. For IP numbers, only IP is currently accepted.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="14" aliases="none">
        <maml:name>subject</maml:name>
        <maml:description>
          <maml:para>The email subject</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>to</maml:name>
        <maml:description>
          <maml:para>Recipient of the e-mail. The string supports multiple recipients, they can be specified separated by comma.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>useSsl</maml:name>
        <maml:description>
          <maml:para>SSL encryption is no longer state of the art and is generally only used for in-house solutions. The switch is therefore usually not set. Instead, encryption with one of the TLS standards is automatically negotiated.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The user is the name with which you authorize yourself at the SMTP server when sending the e-mail.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------- EXAMPLE 1:Sends an email with two attachments --------</maml:title>
        <dev:code>$global:mailParams = @{
    From = 'john@doe.com'
    Port = 587
    Server = '192.168.178.100'
    User = doe
    Password = "pwd"
    Priority = "high"
    Encoding = "utf8"
    DNO = 'none'
    useSsl = $false
    BodyAsHtml = $true
}
 
Send-Email @global:mailParams
    -priority 'Normal'
    -to "cn@eulanda.de"
    -Subject 'This is a test from jonny'
    -Body "\&lt;h1\&gt;My Headline\&lt;/h1\&gt;\&lt;p\&gt;Today i am fine!\&lt;/p\&gt;"
    -Attachment ("C:\temp\foo.ini,C:\temp\readme.txt").Split(',')</dev:code>
        <dev:remarks>
          <maml:para>This is an example for the use of a hashlist for the standard configuration in order to set only the remaining information as individual parameters when sending e-mails.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Send-Mail.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://adamtheautomator.com/send-mailmessage</maml:linkText>
        <maml:uri>https://adamtheautomator.com/send-mailmessage</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://adamtheautomator.com/powershell-get-credential</maml:linkText>
        <maml:uri>https://adamtheautomator.com/powershell-get-credential</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://stackoverflow.com/questions/53785662/why-does-send-mailmessage-fail-to-send-using-starttls-over-port-587</maml:linkText>
        <maml:uri>https://stackoverflow.com/questions/53785662/why-does-send-mailmessage-fail-to-send-using-starttls-over-port-587</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://www.codyhosterman.com/2016/06/force-the-invoke-restmethod-powershell-cmdlet-to-use-tls-1-2</maml:linkText>
        <maml:uri>https://www.codyhosterman.com/2016/06/force-the-invoke-restmethod-powershell-cmdlet-to-use-tls-1-2</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Send-RemoteFile</command:name>
      <command:verb>Send</command:verb>
      <command:noun>RemoteFile</command:noun>
      <maml:description>
        <maml:para>The Send-RemoteFile function allows uploading a file to a remote server using FTP, FTPS (explicit), or SFTP.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Send-RemoteFile function allows uploading a file to a remote server using FTP, FTPS (explicit), or SFTP. It supports authentication with a username and password, where the password can be provided as clear text or as a SecureString. For SFTP transfers, it also supports using a certificate. In addition, FTP and FTPS support resuming an interrupted upload. The Send-RemoteFile function provides a convenient way to upload files to a remote server using various protocols.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Send-RemoteFile</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="none">
          <maml:name>localFolder</maml:name>
          <maml:description>
            <maml:para>The local folder where the file to be uploaded is located.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="none">
          <maml:name>localFile</maml:name>
          <maml:description>
            <maml:para>The local file that is to be uploaded to the remote server via FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>resumeAge</maml:name>
          <maml:description>
            <maml:para>The maximum age of a file in seconds whose upload was interrupted.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>resumeRetries</maml:name>
          <maml:description>
            <maml:para>The number of attempts made to upload a file that was interrupted during the upload process.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>Directory on the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
          <maml:name>remoteFile</maml:name>
          <maml:description>
            <maml:para>The filename that the file should be named as when uploaded to the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="11" aliases="none">
        <maml:name>localFile</maml:name>
        <maml:description>
          <maml:para>The local file that is to be uploaded to the remote server via FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="10" aliases="none">
        <maml:name>localFolder</maml:name>
        <maml:description>
          <maml:para>The local folder where the file to be uploaded is located.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
        <maml:name>remoteFile</maml:name>
        <maml:description>
          <maml:para>The filename that the file should be named as when uploaded to the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>Directory on the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>resumeAge</maml:name>
        <maml:description>
          <maml:para>The maximum age of a file in seconds whose upload was interrupted.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>resumeRetries</maml:name>
        <maml:description>
          <maml:para>The number of attempts made to upload a file that was interrupted during the upload process.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Uploads a file by ftp protocol on a remote server using simple authentication</maml:title>
        <dev:code>PS C:\&gt; Send-RemoteFile -server "ftp.example.com" -protocol "ftp" -user "username" -password "password" -localFolder 'C:\temp' -localFile 'test.txt' -remoteFolder '/EULANDA' -remoteFile 'others.txt'</dev:code>
        <dev:remarks>
          <maml:para>This example demonstrates how to upload a file to an FTP server using the specified username and password.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Send-RemoteFile.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Send-TelegramMap</command:name>
      <command:verb>Send</command:verb>
      <command:noun>TelegramMap</command:noun>
      <maml:description>
        <maml:para>Sends a location via a Telegram message, visualized on a map based on given latitude and longitude or IP address.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Send-TelegramMap` function sends a Telegram message presenting a location on a map. The location is specified by a pair of latitude and longitude coordinates or an IP address. When the IP address is used, the function `Get-IpGeoInfo` determines the location data via a REST API.</maml:para>
      <maml:para>A valid Telegram API token and a chat ID are required to send the map. The token authenticates the sender as a valid Telegram bot, and the chat ID specifies the recipient, which can be a private chat, a group, or a channel.</maml:para>
      <maml:para>For more secure transmission, there are options to send the token as an encrypted string or a secure string. There is also an option to refer to a file path containing the secure string version of the token. To disable automatic content type detection, use the `-disableNotification` switch.</maml:para>
      <maml:para>If neither latitude and longitude nor IP address are provided, the function attempts to retrieve the current public IP address using the `Get-PublicIp` function.</maml:para>
      <maml:para>Upon successful execution, the function outputs an object that includes the sent message's details.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Send-TelegramMap</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>token</maml:name>
          <maml:description>
            <maml:para>Specifies the Telegram bot token required for authentication. To obtain a token, you need to create a bot on Telegram by following the instructions provided in the Telegram Bot API documentation.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="eToken">
          <maml:name>encryptedToken</maml:name>
          <maml:description>
            <maml:para>This is an encrypted string created from your Telegram bot token. To create an encrypted token from your plaintext token, you can use the `ConvertTo-SecureString` and `ConvertFrom-SecureString` cmdlets in PowerShell 7.</maml:para>
            <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="sToken">
          <maml:name>secureToken</maml:name>
          <maml:description>
            <maml:para>This is a secure string version of your Telegram bot token. The secure string is a string type that provides a measure of security by preventing the value from being displayed or converted to an unencrypted string. To create a secure token from your plaintext token, you can use the `ConvertTo-SecureString` cmdlet. </maml:para>
            <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">SecureString</command:parameterValue>
          <dev:type>
            <maml:name>SecureString</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="path">
          <maml:name>pathToToken</maml:name>
          <maml:description>
            <maml:para>This is the path to an XML file holding a secure string version of your Telegram bot token. You can create such a file by exporting a secure token to an XML file using the `Export-Clixml` cmdlet.</maml:para>
            <maml:para>A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="id">
          <maml:name>chatId</maml:name>
          <maml:description>
            <maml:para>Specifies the chat ID to which the message will be sent. The chat ID can be either the unique identifier for a private chat or the identifier for a group or channel. Create a Telegram group and add the bot to the group to send messages to the group members.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="lat">
          <maml:name>latitude</maml:name>
          <maml:description>
            <maml:para>Latitude of the first point in DD format. Should be a decimal number between -90 and 90.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Single</command:parameterValue>
          <dev:type>
            <maml:name>Single</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="lon">
          <maml:name>longitude</maml:name>
          <maml:description>
            <maml:para>Longitude of the first point in DD format. Should be a decimal number between -180 and 180.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Single</command:parameterValue>
          <dev:type>
            <maml:name>Single</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>Specifies the IP address for which is necessary to retrieve the longitudes and latitudes from a GEO database. If no longitude and latitude and also no IP address are specified, `Get-PublicIp` tries to get the current public IP address.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">IPAddress</command:parameterValue>
          <dev:type>
            <maml:name>IPAddress</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="noNotify">
          <maml:name>disableNotification</maml:name>
          <maml:description>
            <maml:para>An optional switch to disable the automatic content type detection.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="id">
        <maml:name>chatId</maml:name>
        <maml:description>
          <maml:para>Specifies the chat ID to which the message will be sent. The chat ID can be either the unique identifier for a private chat or the identifier for a group or channel. Create a Telegram group and add the bot to the group to send messages to the group members.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="noNotify">
        <maml:name>disableNotification</maml:name>
        <maml:description>
          <maml:para>An optional switch to disable the automatic content type detection.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="eToken">
        <maml:name>encryptedToken</maml:name>
        <maml:description>
          <maml:para>This is an encrypted string created from your Telegram bot token. To create an encrypted token from your plaintext token, you can use the `ConvertTo-SecureString` and `ConvertFrom-SecureString` cmdlets in PowerShell 7.</maml:para>
          <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>Specifies the IP address for which is necessary to retrieve the longitudes and latitudes from a GEO database. If no longitude and latitude and also no IP address are specified, `Get-PublicIp` tries to get the current public IP address.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">IPAddress</command:parameterValue>
        <dev:type>
          <maml:name>IPAddress</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="lat">
        <maml:name>latitude</maml:name>
        <maml:description>
          <maml:para>Latitude of the first point in DD format. Should be a decimal number between -90 and 90.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Single</command:parameterValue>
        <dev:type>
          <maml:name>Single</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="lon">
        <maml:name>longitude</maml:name>
        <maml:description>
          <maml:para>Longitude of the first point in DD format. Should be a decimal number between -180 and 180.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Single</command:parameterValue>
        <dev:type>
          <maml:name>Single</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="path">
        <maml:name>pathToToken</maml:name>
        <maml:description>
          <maml:para>This is the path to an XML file holding a secure string version of your Telegram bot token. You can create such a file by exporting a secure token to an XML file using the `Export-Clixml` cmdlet.</maml:para>
          <maml:para>A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="sToken">
        <maml:name>secureToken</maml:name>
        <maml:description>
          <maml:para>This is a secure string version of your Telegram bot token. The secure string is a string type that provides a measure of security by preventing the value from being displayed or converted to an unencrypted string. To create a secure token from your plaintext token, you can use the `ConvertTo-SecureString` cmdlet. </maml:para>
          <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">SecureString</command:parameterValue>
        <dev:type>
          <maml:name>SecureString</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>token</maml:name>
        <maml:description>
          <maml:para>Specifies the Telegram bot token required for authentication. To obtain a token, you need to create a bot on Telegram by following the instructions provided in the Telegram Bot API documentation.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Steps to create a Telegram bot and obtain the token:</maml:para>
        <maml:para>1. Open the Telegram app on your device or visit the Telegram website: https://telegram.org/. 2. Search for the bot named "BotFather" in the Telegram search and start a conversation with it. 3. Follow the instructions provided by BotFather to create a new bot. You will be asked to provide a name for the bot, such as "MyAwesomeBot," and a username that must end with "Bot," for example, "AwesomeBot" (the complete username will be "@MyAwesomeBot"). 4. Once you have successfully created the bot, BotFather will provide you with a token. The token will be a combination of numbers and letters and will look something like this: "123456789:ABCdefGhIjKlmnoPQRstUvWXyz". 5. Make sure to take note of the token you receive as you will need it to authenticate with the Telegram API and send messages using your bot.</maml:para>
        <maml:para>This is a basic guide to obtaining a Telegram bot token using BotFather. Please note that Telegram may have made changes to the user interface or the process, so it's advisable to consult the official Telegram documentation or online resources for updated information and guides if any changes have been made.</maml:para>
        <maml:para>Important: Treat your bot token as a password and do not share it with others. The token grants access to your bot and should be kept secure.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Send the location of the ip address via SendLocation</maml:title>
        <dev:code>PS C:\&gt; Send-TelegramMap --token 'your_token' -chatId 'your_chatId' -ip '5.1.80.40'</dev:code>
        <dev:remarks>
          <maml:para>The function sends a Telegram message in the form of a map. The longitude and latitude of the flag that marks the location in the map is determined from the IP number in this case. Via the function Get-IpGeoInfo, this data is determined via a REST api. A valid Telegram Api token is required, as well as a chat ID to which the map should be sent. At the end of the document there is a simple instruction how to get such a personal token from Telegram.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Send-TelegramMap.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Send-TelegramMessage</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Send-TelegramPhoto</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Send-TelegramMessage</command:name>
      <command:verb>Send</command:verb>
      <command:noun>TelegramMessage</command:noun>
      <maml:description>
        <maml:para>Sends a message via Telegram API, without requiring a locally installed Telegram app. The function is compatible with PowerShell 5.1 and PowerShell Core versions 7.x and above.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Send-TelegramMessage` function allows you to send messages using the Telegram API, a cloud-based instant messaging service. It is particularly useful for sending server status updates or notifications as instant messages to a designated group, eliminating the need for a locally installed Telegram app.</maml:para>
      <maml:para>This function is designed to work with the Telegram Bot API to send messages from a PowerShell script. It supports both PowerShell 5.1 and higher versions, including PowerShell 7 . The function takes various parameters to configure the message, such as the chat ID, the message text, the parse mode, and whether to disable notifications.</maml:para>
      <maml:para>It accepts the bot token in several ways, including as a plaintext string, an encrypted string, a secure string, or a path to a file containing the token. For security reasons, the function purges the token from memory after it is used.</maml:para>
      <maml:para>The `parseMode` parameter can be set to either `html` or `markdown`, allowing you to format the message text accordingly.</maml:para>
      <maml:para>The function returns a boolean value, `true` if the message was sent successfully, and `false` if there was an error.</maml:para>
      <maml:para>&gt; How to generate a secureToken , an encryptedToken , or an XML file with a secureToken is described in another document. Once it becomes available, it will be linked under related links .</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Send-TelegramMessage</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>token</maml:name>
          <maml:description>
            <maml:para>Specifies the Telegram bot token required for authentication. To obtain a token, you need to create a bot on Telegram by following the instructions provided in the Telegram Bot API documentation.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="eToken">
          <maml:name>encryptedToken</maml:name>
          <maml:description>
            <maml:para>This is an encrypted string created from your Telegram bot token. To create an encrypted token from your plaintext token, you can use the `ConvertTo-SecureString` and `ConvertFrom-SecureString` cmdlets in PowerShell 7.</maml:para>
            <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="sToken">
          <maml:name>secureToken</maml:name>
          <maml:description>
            <maml:para>This is a secure string version of your Telegram bot token. The secure string is a string type that provides a measure of security by preventing the value from being displayed or converted to an unencrypted string. To create a secure token from your plaintext token, you can use the `ConvertTo-SecureString` cmdlet. </maml:para>
            <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">SecureString</command:parameterValue>
          <dev:type>
            <maml:name>SecureString</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="path">
          <maml:name>pathToToken</maml:name>
          <maml:description>
            <maml:para>This is the path to an XML file holding a secure string version of your Telegram bot token. You can create such a file by exporting a secure token to an XML file using the `Export-Clixml` cmdlet.</maml:para>
            <maml:para>A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="id">
          <maml:name>chatId</maml:name>
          <maml:description>
            <maml:para>Specifies the chat ID to which the message will be sent. The chat ID can be either the unique identifier for a private chat or the identifier for a group or channel. Create a Telegram group and add the bot to the group to send messages to the group members.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>message</maml:name>
          <maml:description>
            <maml:para>Specifies the text of the message to be sent. You can include plain text or formatted text using HTML or Markdown syntax, depending on the specified parse mode.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="mode">
          <maml:name>parseMode</maml:name>
          <maml:description>
            <maml:para>(Optional) Specifies the parsing mode for the message. Valid values are 'HTML' and 'Markdown'. By default, the parse mode is set to 'HTML'. When using HTML parse mode, you can use a subset of HTML tags to format the message. When using Markdown parse mode, you can use Markdown syntax to format the message.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">html</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">markdown</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="noNotify">
          <maml:name>disableNotification</maml:name>
          <maml:description>
            <maml:para>(Optional) Disables notification for the message. By default, notifications are enabled, and the recipient will receive a notification for the sent message.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="id">
        <maml:name>chatId</maml:name>
        <maml:description>
          <maml:para>Specifies the chat ID to which the message will be sent. The chat ID can be either the unique identifier for a private chat or the identifier for a group or channel. Create a Telegram group and add the bot to the group to send messages to the group members.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="noNotify">
        <maml:name>disableNotification</maml:name>
        <maml:description>
          <maml:para>(Optional) Disables notification for the message. By default, notifications are enabled, and the recipient will receive a notification for the sent message.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="eToken">
        <maml:name>encryptedToken</maml:name>
        <maml:description>
          <maml:para>This is an encrypted string created from your Telegram bot token. To create an encrypted token from your plaintext token, you can use the `ConvertTo-SecureString` and `ConvertFrom-SecureString` cmdlets in PowerShell 7.</maml:para>
          <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>message</maml:name>
        <maml:description>
          <maml:para>Specifies the text of the message to be sent. You can include plain text or formatted text using HTML or Markdown syntax, depending on the specified parse mode.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="mode">
        <maml:name>parseMode</maml:name>
        <maml:description>
          <maml:para>(Optional) Specifies the parsing mode for the message. Valid values are 'HTML' and 'Markdown'. By default, the parse mode is set to 'HTML'. When using HTML parse mode, you can use a subset of HTML tags to format the message. When using Markdown parse mode, you can use Markdown syntax to format the message.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="path">
        <maml:name>pathToToken</maml:name>
        <maml:description>
          <maml:para>This is the path to an XML file holding a secure string version of your Telegram bot token. You can create such a file by exporting a secure token to an XML file using the `Export-Clixml` cmdlet.</maml:para>
          <maml:para>A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="sToken">
        <maml:name>secureToken</maml:name>
        <maml:description>
          <maml:para>This is a secure string version of your Telegram bot token. The secure string is a string type that provides a measure of security by preventing the value from being displayed or converted to an unencrypted string. To create a secure token from your plaintext token, you can use the `ConvertTo-SecureString` cmdlet. </maml:para>
          <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">SecureString</command:parameterValue>
        <dev:type>
          <maml:name>SecureString</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>token</maml:name>
        <maml:description>
          <maml:para>Specifies the Telegram bot token required for authentication. To obtain a token, you need to create a bot on Telegram by following the instructions provided in the Telegram Bot API documentation.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Boolean</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>Returns $true if the message was sent successfully, otherwise $false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Steps to create a Telegram bot and obtain the token:</maml:para>
        <maml:para>1. Open the Telegram app on your device or visit the Telegram website: https://telegram.org/. 2. Search for the bot named "BotFather" in the Telegram search and start a conversation with it. 3. Follow the instructions provided by BotFather to create a new bot. You will be asked to provide a name for the bot, such as "MyAwesomeBot," and a username that must end with "Bot," for example, "AwesomeBot" (the complete username will be "@MyAwesomeBot"). 4. Once you have successfully created the bot, BotFather will provide you with a token. The token will be a combination of numbers and letters and will look something like this: "123456789:ABCdefGhIjKlmnoPQRstUvWXyz". 5. Make sure to take note of the token you receive as you will need it to authenticate with the Telegram API and send messages using your bot.</maml:para>
        <maml:para>This is a basic guide to obtaining a Telegram bot token using BotFather. Please note that Telegram may have made changes to the user interface or the process, so it's advisable to consult the official Telegram documentation or online resources for updated information and guides if any changes have been made.</maml:para>
        <maml:para>Important: Treat your bot token as a password and do not share it with others. The token grants access to your bot and should be kept secure.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1: Sends a simple HTML message via Telegram API ---</maml:title>
        <dev:code>PS C:\&gt; Send-TelegramMessage -token 'your_token' -chatId 'your_chatId' -message 'Server status: All systems operational.'</dev:code>
        <dev:remarks>
          <maml:para>This example sends the message "Server status: All systems operational." using the specified Telegram bot token and chat ID. The message will be sent in the default HTML parse mode. It is an ideal way to send server status updates as instant messages to a designated Telegram group without requiring a locally installed Telegram app.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title> Example 2: Sends a Markdown formated message via Telegram API </maml:title>
        <dev:code>PS C:\&gt; Send-TelegramMessage -token 'your_token' -chatId 'your_chatId' -message 'Attention: **Critical** error occurred in the system.' -parseMode 'markdown'</dev:code>
        <dev:remarks>
          <maml:para>This example sends the message "Attention: Critical error occurred in the system." using the specified Telegram bot token and chat ID with Markdown parse mode. The message will be rendered with appropriate formatting on the recipient's devices. It allows you to send important server notifications as instant messages to the designated Telegram group.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Send-TelegramMessage.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Send-TelegramPhoto</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Send-TelegramMap</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Send-TelegramPhoto</command:name>
      <command:verb>Send</command:verb>
      <command:noun>TelegramPhoto</command:noun>
      <maml:description>
        <maml:para>Sends a photo with a caption via Telegram API, without requiring a locally installed Telegram app. The function is compatible with PowerShell 5.1 and PowerShell Core versions 7.x and above.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function allows the user to send a photo using the Telegram API, a cloud-based instant messaging service. It is particularly useful for sending server status updates or notifications as instant messages to a designated group, eliminating the need for a locally installed Telegram app.</maml:para>
      <maml:para>This function is designed to work with the Telegram Bot API to send messages from a PowerShell script. It supports both PowerShell 5.1 and higher versions, including PowerShell 7 . The function takes various parameters to configure the message, such as the chat ID, the message text, the parse mode, and whether to disable notifications.</maml:para>
      <maml:para>It accepts the bot token in several ways, including as a plaintext string, an encrypted string, a secure string, or a path to a file containing the token. For security reasons, the function purges the token from memory after it is used.</maml:para>
      <maml:para>The `parseMode` parameter can be set to either `html` or `markdown`, allowing you to format the message text accordingly.</maml:para>
      <maml:para>The function returns a boolean value, `true` if the message was sent successfully, and `false` if there was an error.</maml:para>
      <maml:para>&gt; How to generate a secureToken , an encryptedToken , or an XML file with a secureToken is described in another document. Once it becomes available, it will be linked under related links .</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Send-TelegramPhoto</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>token</maml:name>
          <maml:description>
            <maml:para>Specifies the Telegram bot token required for authentication. To obtain a token, you need to create a bot on Telegram by following the instructions provided in the Telegram Bot API documentation.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="eToken">
          <maml:name>encryptedToken</maml:name>
          <maml:description>
            <maml:para>This is an encrypted string created from your Telegram bot token. To create an encrypted token from your plaintext token, you can use the `ConvertTo-SecureString` and `ConvertFrom-SecureString` cmdlets in PowerShell 7.</maml:para>
            <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="sToken">
          <maml:name>secureToken</maml:name>
          <maml:description>
            <maml:para>This is a secure string version of your Telegram bot token. The secure string is a string type that provides a measure of security by preventing the value from being displayed or converted to an unencrypted string. To create a secure token from your plaintext token, you can use the `ConvertTo-SecureString` cmdlet. </maml:para>
            <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">SecureString</command:parameterValue>
          <dev:type>
            <maml:name>SecureString</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="path">
          <maml:name>pathToToken</maml:name>
          <maml:description>
            <maml:para>This is the path to an XML file holding a secure string version of your Telegram bot token. You can create such a file by exporting a secure token to an XML file using the `Export-Clixml` cmdlet.</maml:para>
            <maml:para>A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="id">
          <maml:name>chatId</maml:name>
          <maml:description>
            <maml:para>Specifies the chat ID to which the message will be sent. The chat ID can be either the unique identifier for a private chat or the identifier for a group or channel. Create a Telegram group and add the bot to the group to send messages to the group members.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>caption</maml:name>
          <maml:description>
            <maml:para>An string that represents the caption to be displayed with the photo.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>uri</maml:name>
          <maml:description>
            <maml:para>The URI of the photo to be sent. This could be either a local file or an internet resource URL.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="mode">
          <maml:name>parseMode</maml:name>
          <maml:description>
            <maml:para>(Optional) Specifies the parsing mode for the message. Valid values are 'HTML' and 'Markdown'. By default, the parse mode is set to 'HTML'. When using HTML parse mode, you can use a subset of HTML tags to format the message. When using Markdown parse mode, you can use Markdown syntax to format the message.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">html</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">markdown</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="noDetection">
          <maml:name>disableContentTypeDetection</maml:name>
          <maml:description>
            <maml:para>An optional switch to disable the automatic content type detection.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="noNotify">
          <maml:name>disableNotification</maml:name>
          <maml:description>
            <maml:para>(Optional) Disables notification for the message. By default, notifications are enabled, and the recipient will receive a notification for the sent message.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>caption</maml:name>
        <maml:description>
          <maml:para>An string that represents the caption to be displayed with the photo.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="id">
        <maml:name>chatId</maml:name>
        <maml:description>
          <maml:para>Specifies the chat ID to which the message will be sent. The chat ID can be either the unique identifier for a private chat or the identifier for a group or channel. Create a Telegram group and add the bot to the group to send messages to the group members.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="noDetection">
        <maml:name>disableContentTypeDetection</maml:name>
        <maml:description>
          <maml:para>An optional switch to disable the automatic content type detection.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="noNotify">
        <maml:name>disableNotification</maml:name>
        <maml:description>
          <maml:para>(Optional) Disables notification for the message. By default, notifications are enabled, and the recipient will receive a notification for the sent message.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="eToken">
        <maml:name>encryptedToken</maml:name>
        <maml:description>
          <maml:para>This is an encrypted string created from your Telegram bot token. To create an encrypted token from your plaintext token, you can use the `ConvertTo-SecureString` and `ConvertFrom-SecureString` cmdlets in PowerShell 7.</maml:para>
          <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="mode">
        <maml:name>parseMode</maml:name>
        <maml:description>
          <maml:para>(Optional) Specifies the parsing mode for the message. Valid values are 'HTML' and 'Markdown'. By default, the parse mode is set to 'HTML'. When using HTML parse mode, you can use a subset of HTML tags to format the message. When using Markdown parse mode, you can use Markdown syntax to format the message.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="path">
        <maml:name>pathToToken</maml:name>
        <maml:description>
          <maml:para>This is the path to an XML file holding a secure string version of your Telegram bot token. You can create such a file by exporting a secure token to an XML file using the `Export-Clixml` cmdlet.</maml:para>
          <maml:para>A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="sToken">
        <maml:name>secureToken</maml:name>
        <maml:description>
          <maml:para>This is a secure string version of your Telegram bot token. The secure string is a string type that provides a measure of security by preventing the value from being displayed or converted to an unencrypted string. To create a secure token from your plaintext token, you can use the `ConvertTo-SecureString` cmdlet. </maml:para>
          <maml:para>Creating an encrypted string in PowerShell 5 is considerably more complicated. A separate document will be provided with detailed information on this process, which will be available under the related links when it becomes available.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">SecureString</command:parameterValue>
        <dev:type>
          <maml:name>SecureString</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>token</maml:name>
        <maml:description>
          <maml:para>Specifies the Telegram bot token required for authentication. To obtain a token, you need to create a bot on Telegram by following the instructions provided in the Telegram Bot API documentation.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>uri</maml:name>
        <maml:description>
          <maml:para>The URI of the photo to be sent. This could be either a local file or an internet resource URL.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Boolean</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>Returns $true if the message was sent successfully, otherwise $false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Steps to create a Telegram bot and obtain the token:</maml:para>
        <maml:para>1. Open the Telegram app on your device or visit the Telegram website: https://telegram.org/. 2. Search for the bot named "BotFather" in the Telegram search and start a conversation with it. 3. Follow the instructions provided by BotFather to create a new bot. You will be asked to provide a name for the bot, such as "MyAwesomeBot," and a username that must end with "Bot," for example, "AwesomeBot" (the complete username will be "@MyAwesomeBot"). 4. Once you have successfully created the bot, BotFather will provide you with a token. The token will be a combination of numbers and letters and will look something like this: "123456789:ABCdefGhIjKlmnoPQRstUvWXyz". 5. Make sure to take note of the token you receive as you will need it to authenticate with the Telegram API and send messages using your bot.</maml:para>
        <maml:para>This is a basic guide to obtaining a Telegram bot token using BotFather. Please note that Telegram may have made changes to the user interface or the process, so it's advisable to consult the official Telegram documentation or online resources for updated information and guides if any changes have been made.</maml:para>
        <maml:para>Important: Treat your bot token as a password and do not share it with others. The token grants access to your bot and should be kept secure.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---------- Example 1: Sends a photo via Telegram API ----------</maml:title>
        <dev:code>PS C:\&gt; Send-TelegramPhoto -token "123456789:ABCdefGhIjKlmnoPQRstUvWXyz" -chatId "-713022389" -caption "My simple caption..." -uri 'c:\temp\logo.png'</dev:code>
        <dev:remarks>
          <maml:para>In this example, the function `Send-TelegramPhoto` is called with a token, a chatId, a caption, and a URI to the photo that you want to send. The URI in this case is a local file, 'c:\temp\logo.png'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Send-TelegramPhoto.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Send-TelegramMessage</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Send-TelegramMap</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Set-DeliveryQty</command:name>
      <command:verb>Set</command:verb>
      <command:noun>DeliveryQty</command:noun>
      <maml:description>
        <maml:para>Change the delivery quantities</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function is special because it can change several delivery quantities in one even already booked delivery bill. This option has only recently become available. In this case, the delivery bill is briefly set to the `Capture` mode. The associated order is also modified, as are the stock journals. Afterwards, the entire chain involved is closed again. If the changed delivery bill is to be closed as well, `Close-Delivery` must be called explicitly. After changing the quantities, the delivery bill is closed in any case.</maml:para>
      <maml:para>&gt; Via specific extensions (= customizing), delivery bills can be automatically transmitted electronically to a logistics provider during posting. When changing the quantities at this point, this delivery bill is of course not transmitted again. When is something like this needed? For example, when working with external warehouses, such as logistics companies. The delivery bill is sent as a delivery order to the logistician, but for some reason not enough goods are available. In this case, a correction of the delivery bill can be made from such a feedback, without the need for a cancellation with complete re-creation. The delivery note keeps the same ID and the process can be mapped cleanly.</maml:para>
      <maml:para>&gt; This function is based on a strongly extended SQL-API within EULANDA and requires version 8.5.58 or newer of the ERP system. If this function is called in older systems, unwanted effects will occur.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Set-DeliveryQty</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>quantities</maml:name>
          <maml:description>
            <maml:para>The passed quantity object is an array containing hash tables. Each hash table consists of a pair of 'articleNo 'and 'qty'.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Array</command:parameterValue>
          <dev:type>
            <maml:name>Array</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>bookingInfo</maml:name>
          <maml:description>
            <maml:para>The transfer postings provide warehouse journals with adjustment postings. Here you can specify a short text that will be stored in these entries.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>bookingInfo</maml:name>
        <maml:description>
          <maml:para>The transfer postings provide warehouse journals with adjustment postings. Here you can specify a short text that will be stored in these entries.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>quantities</maml:name>
        <maml:description>
          <maml:para>The passed quantity object is an array containing hash tables. Each hash table consists of a pair of 'articleNo 'and 'qty'.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Array</command:parameterValue>
        <dev:type>
          <maml:name>Array</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1:Change to line Items in a delivery note (dynamic) -</maml:title>
        <dev:code># Dynamic filling of the structure e.g. with lists
$quantities = @()
 
# First article quantity to change
$hash = @{}
$hash['articleNo'] = '4711'
$hash['qty'] = 5
$quantities += $hash
 
# Second article quantity to change
$hash = @{}
$hash['articleNo'] = '0815'
$hash['qty'] = 3
$quantities += $hash
 
# Change the quantities in absolute
Set-DeliveryQty -quantities $quantities -deliveryNo 430220 -bookingInfo "CONFIRM 1Z5468131" -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>This example refers to a fictitious delivery bill with the number `430220`. It contains at least two line items, one with the article number `4711` and one with the article number `0815`. The line item with the article `4711` must contain a quantity greater than `5` and the line item with the article `0815` must contain a quantity greater than `3`.</maml:para>
          <maml:para>The quantity object passed is an array containing two hash tables. Each hash table consists of a pair of item number and quantity. The quantity is then the new quantity of the delivery bill line item.</maml:para>
          <maml:para>The posting text for the necessary correction postings in the warehouse journal should be short and contain a reference to the forwarding message.</maml:para>
          <maml:para>The database is specified here via a UDL file, but it is also possible to pass the ADO connection object or a connection string directly.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-- Example 2:Change to line Items in a delivery note (static) --</maml:title>
        <dev:code># Static specification of the structure
$quantities =@(@{articleNo='4711'; qty=5}, @{articleNo='0815'; qty=3})
 
# Change the quantities in absolute
Set-DeliveryQty -quantities $quantities -deliveryNo 430220 -bookingInfo "CONFIRM 1Z5468131" -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>The same happens as in example one, except that the array is filled statically here - the effect is absolutely identical.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Set-DeliveryQty.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Set-StockQty</command:name>
      <command:verb>Set</command:verb>
      <command:noun>StockQty</command:noun>
      <maml:description>
        <maml:para>Changes the stock quantity of items</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The stock of several articles can be set to a new absolute value using this function. By specifying a warehouse account, either the standard warehouse `1000` or one of the additional warehouses can be addressed.</maml:para>
      <maml:para>In the latter case, the multi-warehouse system must be activated in the ERP software so that the accounts up to and including account `1399` can be addressed.</maml:para>
      <maml:para>At the end of the posting, a warehouse document is created for which a posting text can be specified. The booking information is specified via the parameter `bookingInfo`.</maml:para>
      <maml:para>The connection to the SQL database is done via a connection object, a connection string or the specification of a UDL file.</maml:para>
      <maml:para>The quantities and article numbers are passed via an array parameter, which contains hash table pairs as elements. Each of these hash tables contains a pair of `articleNo` and `qty`.</maml:para>
      <maml:para>This function does not allow the addition of articles that have a serial number or the batch numbers.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Set-StockQty</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>quantities</maml:name>
          <maml:description>
            <maml:para>The passed quantity object is an array containing hash tables. Each hash table consists of a pair of 'articleNo 'and 'qty'.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Array</command:parameterValue>
          <dev:type>
            <maml:name>Array</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>stockGroup</maml:name>
          <maml:description>
            <maml:para>Stockgroup is the account number of the storage location. It is in the range of 1000-1399 in the warehouse management system of the ERP system.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>bookingInfo</maml:name>
          <maml:description>
            <maml:para>The transfer postings provide warehouse journals with adjustment postings. Here you can specify a short text that will be stored in these entries.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>bookingInfo</maml:name>
        <maml:description>
          <maml:para>The transfer postings provide warehouse journals with adjustment postings. Here you can specify a short text that will be stored in these entries.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>quantities</maml:name>
        <maml:description>
          <maml:para>The passed quantity object is an array containing hash tables. Each hash table consists of a pair of 'articleNo 'and 'qty'.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Array</command:parameterValue>
        <dev:type>
          <maml:name>Array</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>stockGroup</maml:name>
        <maml:description>
          <maml:para>Stockgroup is the account number of the storage location. It is in the range of 1000-1399 in the warehouse management system of the ERP system.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Change stock quantity absolutely for different articles</maml:title>
        <dev:code># Dynamic filling of the structure e.g. with lists
PS C:\&gt; $quantities = @()
 
# First article quantity to change
PS C:\&gt; $hash = @{}
PS C:\&gt; $hash['articleNo'] = '4711'
PS C:\&gt; $hash['qty'] = 5
PS C:\&gt; $quantities += $hash
 
# Second article quantity to change
PS C:\&gt; $hash = @{}
PS C:\&gt; $hash['articleNo'] = '0815'
PS C:\&gt; $hash['qty'] = 3
PS C:\&gt; $quantities += $hash
 
# Change the quantities in absolute
PS C:\&gt; Set-StockQty -quantities $quantities -stockGroup 1000 -bookingInfo "Interim inventory" -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>In this example the quantity array is filled programmatically. Here, for example, a CSV file with inventory data could be processed, whereby a hashtable pair is added to the array line by line. The standard warehouse is addressed by the warehouse group `1000`. The posting text should be short but still meaningful. The connection to the SQL database is done here via a UDL file. Keep in mind that you could also pass a connection string or an already instantiated ADO connection object instead.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Set-StockQty.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Set-TrackingNo</command:name>
      <command:verb>Set</command:verb>
      <command:noun>TrackingNo</command:noun>
      <maml:description>
        <maml:para>Adds further tracking numbers to the delivery bill</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The tracking numbers specified in the trackingNo array are stored in the delivery bill. If tracking numbers were already present, they will be added. Duplicate tracking numbers are removed and the tracking numbers are sorted in descending order. The number of shipments is automatically supplemented by added tracking numbers and the shipping date is set to the current date.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Set-TrackingNo</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>trackingNo</maml:name>
          <maml:description>
            <maml:para>The tracking numbers are passed in an array. Each individual tracking number is of type string.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Array</command:parameterValue>
          <dev:type>
            <maml:name>Array</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>deliveryId</maml:name>
          <maml:description>
            <maml:para>The delivery note is searched for by its ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>deliveryNo</maml:name>
          <maml:description>
            <maml:para>The delivery note is found via its delivery note number.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>deliveryId</maml:name>
        <maml:description>
          <maml:para>The delivery note is searched for by its ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>deliveryNo</maml:name>
        <maml:description>
          <maml:para>The delivery note is found via its delivery note number.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>trackingNo</maml:name>
        <maml:description>
          <maml:para>The tracking numbers are passed in an array. Each individual tracking number is of type string.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Array</command:parameterValue>
        <dev:type>
          <maml:name>Array</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Add two tracking numbers to a delivery note ----</maml:title>
        <dev:code>PS C:\&gt; $trackingNo = @('1Z456655626','1Z94336654')
PS C:\&gt; Set-TrackingNo -trackingNo $trackingNo -deliveryNo 430220 -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>In this example, two tracking numbers are added to delivery bill `430220`. The SQL database is specified via a UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Set-TrackingNo.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Show-Extensions</command:name>
      <command:verb>Show</command:verb>
      <command:noun>Extensions</command:noun>
      <maml:description>
        <maml:para>Shows the file extensions like txt, exe etc. of known extension in the file explorer</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Windows File Explorer hides the file extensions for known files. If you want to show them, this function can change them for you.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Show-Extensions</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1:Shows the file extensions in the file explorer ---</maml:title>
        <dev:code>PS C:\&gt; Show-Extensions</dev:code>
        <dev:remarks>
          <maml:para>Enables the display of file extensions for known files.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Show-Extensiom.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Hide-Extensions</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Update-Desktop</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Show-MsgBox</command:name>
      <command:verb>Show</command:verb>
      <command:noun>MsgBox</command:noun>
      <maml:description>
        <maml:para>Displays the Windows message box, for example the Yes/No box</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Windows dialog box allows to display a text with heading and to perform simple queries like Yes/No, Ok/Cancel etc.. Additionally, one of the predefined icons can be used or it can be determined which button is the default button, i.e. returned on Enter. </maml:para>
      <maml:para>Which buttons are displayed is specified by the parameter `btn`. The possible values are: `mbOk`, `mbOkCancel`, `mbAbortRetryIgnore`, `mbYesNoCancel`, `mbYesNo` and `mbRetryCancel`.</maml:para>
      <maml:para>The function returns an integer value as result , where the possible return values are predefined as global variables. These are: `mbrOk`, `mbrCancel`, `mbrYes`, `mbrNo`, `mbrAbort`, `mbrRetry`, `mbrIgnore`, `mbrTryAgain` and `mbrContinue`.</maml:para>
      <maml:para>If nothing is specified for the `icon` parameter, no special icon is displayed. Otherwise the following icon values are predefined: `mbStop`, `mbQuestion`, `mbWarning` and `mbInfo`.</maml:para>
      <maml:para>If you want to specify the default button, this can be done with the parameter `btnDef`. The following values are predefined: `mbButton1`, `mbButton2`, `mbButton3` and `mbButton4`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Show-MsgBox</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>prompt</maml:name>
          <maml:description>
            <maml:para>The `prompt` parameter can be used to pass the displayed text.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>btn</maml:name>
          <maml:description>
            <maml:para>The parameter can be used to determine which button combination is to be displayed. The possible values are: `mbOk`, `mbOkCancel`, `mbAbortRetryIgnore`, `mbYesNoCancel`, `mbYesNo` and `mbRetryCancel`.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">0</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">1</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">2</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">3</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">4</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">5</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>title</maml:name>
          <maml:description>
            <maml:para>The `title` parameter can be used to specify the title of the dialog box.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>icon</maml:name>
          <maml:description>
            <maml:para>This parameter can be used to specify whether an icon is to be displayed in the dialog box and also which one. The following icons are available for selection: `mbStop`, `mbQuestion`, `mbWarning` and `mbInfo`.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">0</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">16</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">32</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">48</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">64</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>btnDef</maml:name>
          <maml:description>
            <maml:para>If several default buttons are displayed, it is possible to specify which one is the default button. This is the button that should be triggered when Enter is pressed. The following values are predefined: `mbButton1`, `mbButton2`, `mbButton3` and `mbButton4`.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">0</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">256</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">512</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">768</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>btn</maml:name>
        <maml:description>
          <maml:para>The parameter can be used to determine which button combination is to be displayed. The possible values are: `mbOk`, `mbOkCancel`, `mbAbortRetryIgnore`, `mbYesNoCancel`, `mbYesNo` and `mbRetryCancel`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>btnDef</maml:name>
        <maml:description>
          <maml:para>If several default buttons are displayed, it is possible to specify which one is the default button. This is the button that should be triggered when Enter is pressed. The following values are predefined: `mbButton1`, `mbButton2`, `mbButton3` and `mbButton4`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>icon</maml:name>
        <maml:description>
          <maml:para>This parameter can be used to specify whether an icon is to be displayed in the dialog box and also which one. The following icons are available for selection: `mbStop`, `mbQuestion`, `mbWarning` and `mbInfo`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>prompt</maml:name>
        <maml:description>
          <maml:para>The `prompt` parameter can be used to pass the displayed text.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>title</maml:name>
        <maml:description>
          <maml:para>The `title` parameter can be used to specify the title of the dialog box.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>&gt; ATTENTION! &gt; The display of the `Show-MsgBox` dialog is not suitable for unattended use, because the box expects user input and the script stops until a button is pressed.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1:Displays a Yes No box and asks for the button ---</maml:title>
        <dev:code>PS C:\&gt; If ((Show-MsgBox -prompt 'Is your name John?' -btn $mbYesNo) -eq $mbrYes) { Write-Host "Hello John"}</dev:code>
        <dev:remarks>
          <maml:para>In this example the Windows dialog box is displayed and you are asked if your name is 'John'. If you answer with the button 'Yes' you will be greeted with your name and 'Hello John' will be displayed on the monitor.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Show-MsxBox.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Show-MsgBoxYes</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Show-MsgBoxYes</command:name>
      <command:verb>Show</command:verb>
      <command:noun>MsgBoxYes</command:noun>
      <maml:description>
        <maml:para>Displays the Windows message box with `yes` and `no` buttons</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>A dialog box is displayed that shows a Yes / No question. If the `Yes` button is pressed, `true` is returned, otherwise `false`.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Show-MsgBoxYes</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>prompt</maml:name>
          <maml:description>
            <maml:para>The `prompt` parameter can be used to pass the displayed text.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>prompt</maml:name>
        <maml:description>
          <maml:para>The `prompt` parameter can be used to pass the displayed text.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>ATTENTION! The display of the `Show-MsgBox` dialog is not suitable for unattended use, because the box expects user input and the script stops until a button is pressed.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1:Displays a Yes No box and asks for the button ---</maml:title>
        <dev:code>PS C:\&gt; If (Show-MsgBoxYes -prompt 'Is your name John?') { Write-Host "Hello John"}</dev:code>
        <dev:remarks>
          <maml:para>In this example the Windows dialog box is displayed and you are asked if your name is 'John'. If you answer with the button 'Yes' you will be greeted with your name and 'Hello John' will be displayed on the monitor.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Show-MsgBoxYes.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Show-MsgBox</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Split-LogFile</command:name>
      <command:verb>Split</command:verb>
      <command:noun>LogFile</command:noun>
      <maml:description>
        <maml:para>This function is designed to split large log files into smaller, more manageable parts based on a specified file size limit.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function is designed to read and process large log files by splitting them into smaller files. The splitting is guided by a defined maximum file size parameter. </maml:para>
      <maml:para>The Split-LogFile function is particularly ideal for use with FileZilla Server logs, though it can effectively handle a variety of other log file systems as well. </maml:para>
      <maml:para>The function provides the flexibility to reprocess a folder of previously split log files into a new one with a different maximum file size. This might be useful in situations where storage requirements or readability needs change over time. </maml:para>
      <maml:para>Another key feature of this function is its ability to handle any residual data from previous executions. If the function is run again after an earlier execution, it can recognize an incompletely filled file from the earlier run, and continue from where it left off.</maml:para>
      <maml:para>The output file names include a timestamp and a file counter to ensure uniqueness, thus making it easy to track the chronological sequence of the split files.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Split-LogFile</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>inputPath</maml:name>
          <maml:description>
            <maml:para>The path of the log file(s) to be split. It can include a file mask (e.g., "C:\temp\filezilla-server.*.log"). Mandatory parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>outputFolder</maml:name>
          <maml:description>
            <maml:para>The path of the folder where the split files will be stored. Mandatory parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>outputMask</maml:name>
          <maml:description>
            <maml:para>The naming pattern for the split files. Default value is "filezilla-server.{0}-{1}.log".</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>dateMask</maml:name>
          <maml:description>
            <maml:para>The date format to be used in the names of the split files. Default value is "yyyy-MM-dd-HH-mm-ss-ffff".</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>maxFileSize</maml:name>
          <maml:description>
            <maml:para>The maximum size limit for the split files. Default value is 2MB.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>dateMask</maml:name>
        <maml:description>
          <maml:para>The date format to be used in the names of the split files. Default value is "yyyy-MM-dd-HH-mm-ss-ffff".</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>inputPath</maml:name>
        <maml:description>
          <maml:para>The path of the log file(s) to be split. It can include a file mask (e.g., "C:\temp\filezilla-server.*.log"). Mandatory parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>maxFileSize</maml:name>
        <maml:description>
          <maml:para>The maximum size limit for the split files. Default value is 2MB.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>outputFolder</maml:name>
        <maml:description>
          <maml:para>The path of the folder where the split files will be stored. Mandatory parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>outputMask</maml:name>
        <maml:description>
          <maml:para>The naming pattern for the split files. Default value is "filezilla-server.{0}-{1}.log".</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Split logfiles into smaller or bigger ones in a chronological order</maml:title>
        <dev:code>PS C:\&gt; Split-LogFile -inputPath "C:\temp\filezilla-server.*.log" -outputFolder "C:\temp\Output" -maxFileSize 2MB</dev:code>
        <dev:remarks>
          <maml:para>This example demonstrates the usage of the Split-LogFile function. Here, the function splits all files that match the pattern "filezilla-server.*.log" in the "C:\temp" directory. The split files are stored in the "C:\temp\Output" directory, and each split file will not exceed 2MB in size.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Split-LogFile.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-Administrator</command:name>
      <command:verb>Test</command:verb>
      <command:noun>Administrator</command:noun>
      <maml:description>
        <maml:para>Returns true if the user has administrative rights</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function can be used to test whether the logged-in user has administrative rights on the PC.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-Administrator</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Tests if the user has administrative rights ----</maml:title>
        <dev:code>PS C:\&gt; if (Test-Administrator) { Write-Host 'You have administrative rights' }</dev:code>
        <dev:remarks>
          <maml:para>If the user has administrative rights on the PC, the following message is displayed on the screen: `You have administrative rights`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-Administrator.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-ArticlePropertyItem</command:name>
      <command:verb>Test</command:verb>
      <command:noun>ArticlePropertyItem</command:noun>
      <maml:description>
        <maml:para>Checks if there is an entry in the property tree for a specific article</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>If the property is set for the article, the function returns false, otherwise false. The article is specified by its id. The searched property is the id of the folder in the property tree. This is obtained in the ERP system by displaying the properties for this entry with the right mouse button. The SQL database can be accessed via an existing ADO connection object, a connection string or the path to a UDL file.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-ArticlePropertyItem</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>barcode</maml:name>
          <maml:description>
            <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>articleNo</maml:name>
          <maml:description>
            <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched for here and its `Id` is returned.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>articleId</maml:name>
          <maml:description>
            <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>articleUid</maml:name>
          <maml:description>
            <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>propertyId</maml:name>
          <maml:description>
            <maml:para>The property ID is determined directly in the ERP system by clicking on the property name with the right mouse button and noting the displayed ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>articleId</maml:name>
        <maml:description>
          <maml:para>The `ArticleId` is a unique key in the table. It is normally only used internally to link tables together.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>articleNo</maml:name>
        <maml:description>
          <maml:para>The `ArticleNo` is a unique alphanumeric field in the ERP system. If the value is set, then the article is searched for here and its `Id` is returned.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>articleUid</maml:name>
        <maml:description>
          <maml:para>A UID (Unique Identifier) is a unique identifier assigned to a specific record in a database. In the context of EULANDA ERP software, each article is assigned a UID to uniquely identify it, regardless of its name, number, or other properties. The UID is usually automatically generated by the database and has a fixed length and formatting to ensure its uniqueness. The `articleUid` parameter is used to specify the UID of the article to retrieve the record.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>barcode</maml:name>
        <maml:description>
          <maml:para>The barcode (= GTIN) is a field in the article table which is not defined as a unique field by default. However, if you want to achieve a reliable search, the field should be set to uniqueness in the database beforehand.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>propertyId</maml:name>
        <maml:description>
          <maml:para>The property ID is determined directly in the ERP system by clicking on the property name with the right mouse button and noting the displayed ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----------- Example 1:How a property tree looks like -----------</maml:title>
        <dev:code>Articles/
├─ My Properties/
├─ Shop Catalog/
│ ├─ Hardware
│ ├─ Software
│ ├─ Books
├─ Colors/
│ ├─ Red
│ ├─ Green
│ ├─ Blue
├─ Special Flag</dev:code>
        <dev:remarks>
          <maml:para>This property tree is only an example. Based on this structure, all articles assigned to this property can be displayed immediately in the ERP system, so it is a kind of filter. However, these filters can also be used when printing, exporting or displaying a product online.</maml:para>
          <maml:para>Setting these properties can be done manually or through this API. For example, it can be determined whether an article should be transferred to an online store system or not.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---- Example 2: Checks if an article has a certain property ----</maml:title>
        <dev:code>PS C:\&gt; [bool]$blue = (Test-ArticlePropertyItem -propertyId 125 -articleId 3623 -udl "C:\temp\Eulanda_1 JohnDoe.udl")</dev:code>
        <dev:remarks>
          <maml:para>Here it is checked whether the article has the color blue or not. The ID for the blue property must be looked up in the ERP system beforehand. In this way, each article can be checked for this property. The database is accessed by specifying the UDL file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-ArticlePropertyItem.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-Console</command:name>
      <command:verb>Test</command:verb>
      <command:noun>Console</command:noun>
      <maml:description>
        <maml:para>Tests whether the current PowerShell session is running in a console or RDP session.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Test-Console function tests whether the current PowerShell session is running in a console or RDP session by checking the Win32_LogonSession class for RDP sessions. If an RDP session is detected, the function returns False. Otherwise, it returns True.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-Console</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Boolean</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1: Tests PowerShell runs in a physical console ---</maml:title>
        <dev:code>PS C:\&gt; Test-Console</dev:code>
        <dev:remarks>
          <maml:para>Test whether the current PowerShell session is running in a console or RDP session.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-Console.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-HasProperty</command:name>
      <command:verb>Test</command:verb>
      <command:noun>HasProperty</command:noun>
      <maml:description>
        <maml:para>Tests if an object has a certain property</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This can be used to test whether an object has a certain property.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-HasProperty</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>inputVar</maml:name>
          <maml:description>
            <maml:para>Object to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>propertyName</maml:name>
          <maml:description>
            <maml:para>Property to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>inputVar</maml:name>
        <maml:description>
          <maml:para>Object to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>propertyName</maml:name>
        <maml:description>
          <maml:para>Property to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Test if the Error object has the `ScriptLineNumber` property</maml:title>
        <dev:code>try {
    $a= 5
    $b= 0
    $c = $a / $b
} catch {
    if (Test-HasProperty -inputVar $_.InvocationInfo -propertyName "ScriptLineNumber") {
        $line = $_.InvocationInfo.ScriptLineNumber
    } else {
        $line = 'unknown'
    }
    Write-Host "ERROR at Line: $line. Message: $_" -ForegroundColor Red
}</dev:code>
        <dev:remarks>
          <maml:para>The error object does not have the `ScriptLineNumber` property in every case. With `Test-HasProperty`, for example, it can be checked whether the property exists and whether it can be used.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-HasProperty.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-IpAddress</command:name>
      <command:verb>Test</command:verb>
      <command:noun>IpAddress</command:noun>
      <maml:description>
        <maml:para>This function validates whether a given string is a valid IPv4 address.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Test-IpAddress` function is used to determine whether a given string is a valid IPv4 address or not. The function uses a regular expression pattern to match the input string against the IPv4 addressing format.</maml:para>
      <maml:para>The function checks if the input string matches the format of an IPv4 address. If the string is a valid IPv4 address, the function will return `true`. If the string does not match the format of an IPv4 address, the function will return `false`.</maml:para>
      <maml:para>The function checks the format of an IPv4 address but does not verify whether the address is in use or reachable. Please ensure that the input is an IPv4 address. This function will not work correctly for an IPv6 address.</maml:para>
      <maml:para>The IPv4 addressing format used for validation by this function is as per the standards defined by the Internet Engineering Task Force (IETF).</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-IpAddress</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>This parameter expects the string that will be checked for validity as an IPv4 address.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>This parameter expects the string that will be checked for validity as an IPv4 address.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----------- Example 1: Checks whether -ip is a valid -----------</maml:title>
        <dev:code>PS C:\&gt; Test-IpAddress -Ip '260.1.2.3'</dev:code>
        <dev:remarks>
          <maml:para>In this example, the function checks whether '260.1.2.3' is a valid IPv4 address. Since 260 is outside the range of an octet (0-255), the function will return `false`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-IpAddress.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-Numeric</command:name>
      <command:verb>Test</command:verb>
      <command:noun>Numeric</command:noun>
      <maml:description>
        <maml:para>Tests if a string contains only numeric characters, with the option to allow zero.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Test-Numeric function tests if a given string contains only numeric characters (digits and optional decimal points). The function also provides an option to allow zero as a valid numeric value. The function returns a boolean value indicating whether the string is a valid numeric value or not.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-Numeric</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>value</maml:name>
          <maml:description>
            <maml:para>The string value to be tested for numeric characters.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>allowZero</maml:name>
          <maml:description>
            <maml:para>A switch parameter that indicates if zero is allowed as a valid numeric value. By default, zero is not allowed.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>allowZero</maml:name>
        <maml:description>
          <maml:para>A switch parameter that indicates if zero is allowed as a valid numeric value. By default, zero is not allowed.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>value</maml:name>
        <maml:description>
          <maml:para>The string value to be tested for numeric characters.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Boolean</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------- Example 1: Tests if `45x` is a numeric value --------</maml:title>
        <dev:code>PS C:\&gt; Test-Numeric -value '45x'</dev:code>
        <dev:remarks>
          <maml:para>Returns 'False' as the string '45x' contains a non-numeric character.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-Numeric.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-PrivateIp</command:name>
      <command:verb>Test</command:verb>
      <command:noun>PrivateIp</command:noun>
      <maml:description>
        <maml:para>Tests whether the specified IP belongs to a private network.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function tests whether the specified IP number belongs to a private network. A total of three private networks have been reserved that are not routed to the Internet.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-PrivateIp</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>IP address to test for.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>IP address to test for.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1:Testing if the IP belongs to a private address ---</maml:title>
        <dev:code>PS C:\&gt; Test-PrivateIp -ip '192.168.178.1'</dev:code>
        <dev:remarks>
          <maml:para>The function returns `true` in this case, because the IP `192.168.178.1` belongs to a private network.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-PrivateIp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-RemoteFile</command:name>
      <command:verb>Test</command:verb>
      <command:noun>RemoteFile</command:noun>
      <maml:description>
        <maml:para>Checks if a file exists on the remote server, supporting FTP, FTPS, and SFTP protocols.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function checks if a file exists on a remote server, supporting the FTP, FTPS (explicit), and SFTP protocols. For SFTP, authentication is supported through username and password or via a certificate. If a certificate is used, the password is considered as a passphrase. Passwords can be provided as plaintext or as a SecureString. For FTP and FTPS, a passive transfer is usually performed, which is always useful when the client is behind a firewall or a NAT router. Alternatively, the active mode can be used.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-RemoteFile</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>The path to the folder on the remote server where the `remoteFile` is to check for existence.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>remoteFile</maml:name>
          <maml:description>
            <maml:para>The file on the remote server to check for existence.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>remoteFile</maml:name>
        <maml:description>
          <maml:para>The file on the remote server to check for existence.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>The path to the folder on the remote server where the `remoteFile` is to check for existence.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--- Example 1: Tests if the file exists on the remote server ---</maml:title>
        <dev:code>PS C:\&gt; Test-RemoteFile -server 'myftp.eulanda.eu' -protocol 'sftp' -user 'johndoe' -password '4711' -remoteFolder '/EULANDA' -remoteFile 'test.txt'</dev:code>
        <dev:remarks>
          <maml:para>The function returns true if the file `test.txt` exists on the remote server in folder `/EULANDA`. For authentication, a plaintext password is used along with a username.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-RemoteFile.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-RemoteFolder</command:name>
      <command:verb>Test</command:verb>
      <command:noun>RemoteFolder</command:noun>
      <maml:description>
        <maml:para>Checks if a directory exists on the remote server, supporting FTP, FTPS, and SFTP protocols.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function checks if a directory exists on a remote server, supporting the FTP, FTPS (explicit), and SFTP protocols. For SFTP, authentication is supported through username and password or via a certificate. If a certificate is used, the password is considered as a passphrase. Passwords can be provided as plaintext or as a SecureString. For FTP and FTPS, a passive transfer is usually performed, which is always useful when the client is behind a firewall or a NAT router. Alternatively, the active mode can be used.</maml:para>
      <maml:para>&gt; Please note the requirements and information about FTP, FTPS, and SFTP, as well as SecureString, which we have summarized under Sftp (../appendix/Sftp.md). There you will also find examples for creating a compatible certificate.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-RemoteFolder</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>server</maml:name>
          <maml:description>
            <maml:para>The address or hostname of the remote server to connect to.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>protocol</maml:name>
          <maml:description>
            <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">ftp</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">ftps</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">sftp</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>port</maml:name>
          <maml:description>
            <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>certificate</maml:name>
          <maml:description>
            <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>user</maml:name>
          <maml:description>
            <maml:para>The username to use for authentication with the remote server.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>password</maml:name>
          <maml:description>
            <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>remoteFolder</maml:name>
          <maml:description>
            <maml:para>The path to the folder on the remote server to check for existence.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>activeMode</maml:name>
          <maml:description>
            <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>activeMode</maml:name>
        <maml:description>
          <maml:para>If specified, this switch enables active mode for the FTP or FTPS connection. By default, passive mode is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>certificate</maml:name>
        <maml:description>
          <maml:para>The path to a certificate file for authentication, if using SFTP with certificate-based authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>password</maml:name>
        <maml:description>
          <maml:para>The password to use for authentication with the remote server. This can be provided as plaintext or as a SecureString.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>port</maml:name>
        <maml:description>
          <maml:para>The port number to connect to on the remote server. This typically defaults to 21 for FTP and FTPS, or 22 for SFTP if not specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>protocol</maml:name>
        <maml:description>
          <maml:para>The protocol to use for the connection, such as FTP, FTPS, or SFTP.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>remoteFolder</maml:name>
        <maml:description>
          <maml:para>The path to the folder on the remote server to check for existence.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>server</maml:name>
        <maml:description>
          <maml:para>The address or hostname of the remote server to connect to.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>user</maml:name>
        <maml:description>
          <maml:para>The username to use for authentication with the remote server.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Tests if the directory 'EULANDA' exists on the remote server</maml:title>
        <dev:code>PS C:\&gt; Test-RemoteFolder -server 'myftp.eulanda.eu' -protocol 'sftp' -user 'johndoe' -password '4711' -remoteFolder '/EULANDA'</dev:code>
        <dev:remarks>
          <maml:para>The function returns true if the directory /EULANDA exists on the remote server. For authentication, a plaintext password is used along with a username.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-RemoteFolder.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-ReservedIp</command:name>
      <command:verb>Test</command:verb>
      <command:noun>ReservedIp</command:noun>
      <maml:description>
        <maml:para>This function checks whether a given IP address is a part of the reserved IP address ranges. The IP address must be passed as a string.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Test-ReservedIP` function is a utility that is designed to evaluate if an IP address belongs to the reserved IP address ranges, which include private networks, loopback addresses, and other specific ranges reserved for documentation and example code, network benchmark tests, IETF protocol assignments, etc.</maml:para>
      <maml:para>The function checks whether the given IP address falls within any of the predefined IP ranges. If the address matches any of these ranges, the function returns `true`; otherwise, it returns `false`.</maml:para>
      <maml:para>This function only checks if an IP address is within the reserved ranges. It does not perform any network operations using the IP address, such as pinging or opening a network connection.</maml:para>
      <maml:para>The list of reserved IP ranges used by the function includes commonly known ranges such as private networks (10.0.0.0 - 10.255.255.255, 172.16.0.0 - 172.31.255.255, 192.168.0.0 - 192.168.255.255) and loopback addresses (127.0.0.0 - 127.255.255.255), among others.</maml:para>
      <maml:para>Please note that these ranges are as per the standards defined by the Internet Engineering Task Force (IETF) and the Internet Assigned Numbers Authority (IANA) as of the date of function creation.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-ReservedIp</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>ip</maml:name>
          <maml:description>
            <maml:para>This parameter expects the IP address to be checked as a string.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>ip</maml:name>
        <maml:description>
          <maml:para>This parameter expects the IP address to be checked as a string.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1: Tests if the ip is a reserved ip address -----</maml:title>
        <dev:code>PS C:\&gt; Test-ReservedIP -ip '127.0.0.0'</dev:code>
        <dev:remarks>
          <maml:para>In the above example, the IP address '127.0.0.0' is a loopback address, and so it is part of the reserved IP ranges. Therefore, the function will return `true`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-ReservedIp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-SalesOrder</command:name>
      <command:verb>Test</command:verb>
      <command:noun>SalesOrder</command:noun>
      <maml:description>
        <maml:para>Checks the customer order number to see if the order already exists.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The customer order number is used to check whether the sales order already exists. Usually this field is used to import orders from external systems, such as an online store system. A check can be used to prevent the same order from being created a second time. Ideally, this field can be marked as unique in the ERP database beforehand.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-SalesOrder</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>salesOrderNo</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>salesOrderId</maml:name>
          <maml:description>
            <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>customerOrderNo</maml:name>
          <maml:description>
            <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type `ADODB.Connection`. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type `ADODB.Connection`. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A ConnectionString can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>customerOrderNo</maml:name>
        <maml:description>
          <maml:para>This is the customer's order number. It is typically passed from an external system, such as an online shop system, to the ERP (Enterprise Resource Planning) system as a unique reference. It should be noted that this value is not defined as unique in the ERP system's database itself.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>salesOrderId</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderId` is the `ID` of the header record of the sales order. The `ID` is always unique throughout the table.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>salesOrderNo</maml:name>
        <maml:description>
          <maml:para>The `SalesOrderNo` is the userfriendly `number` of the header record of the sales order. The `number` is always unique throughout the table. Only one of the parameters can be specified, either -salesOrderId or -salesOrderNo.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Checks if a sales order for the customer order number already exists</maml:title>
        <dev:code>PS C:\&gt; [bool]$orderExists= (Test-SalesOrder -customerOrderNo 5025 -udl "C:\temp\Eulanda_1 JohnDoe.udl")</dev:code>
        <dev:remarks>
          <maml:para>The function returns true if the order with customer order number 5025 already exists. The SQL database is accessed via a UDL file. Alternatively, an ADO connection object or a connection string are also possible.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-SalesOrder.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-ShopExtension</command:name>
      <command:verb>Test</command:verb>
      <command:noun>ShopExtension</command:noun>
      <maml:description>
        <maml:para>Tests whether the Shop extension is installed in the EULANDA ERP software by checking the existence of the `esolArtikelShop` table in the SQL database.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Test-ShopExtension` function checks whether the Shop extension is installed in the EULANDA ERP software by connecting to the SQL database and querying the existence of the `esolArtikelShop` table. If the table exists, the extension is installed; otherwise, it is not.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-ShopExtension</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>conn</maml:name>
          <maml:description>
            <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>udl</maml:name>
          <maml:description>
            <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>connStr</maml:name>
          <maml:description>
            <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>conn</maml:name>
        <maml:description>
          <maml:para>The connection can be established via an existing ADO object of the type 'ADODB.Connection'. If the connection is already open, it remains open even after the function has been executed. If it was closed, it will be closed again after the function has been executed.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>connStr</maml:name>
        <maml:description>
          <maml:para>A `ConnectionString` can be specified here, with which a database can be opened.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>udl</maml:name>
        <maml:description>
          <maml:para>Alternatively to a connection, a string to a UDL file can be specified. In this case an ADO object is created and closed again at the end of the function.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Boolean</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; [bool]$ShopInstalled= Test-ShopExtension -udl "C:\temp\Eulanda_1 JohnDoe.udl"</dev:code>
        <dev:remarks>
          <maml:para>Tests whether the Shop extension is installed in the SQL Server using the UDL file located at `C:\temp\Eulanda_1 JohnDoe.udl`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-ShopExtension.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-Verbose</command:name>
      <command:verb>Test</command:verb>
      <command:noun>Verbose</command:noun>
      <maml:description>
        <maml:para>Tests if the verbose switch is set</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Tests if the verbose switch is set.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-Verbose</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---------- Example 1:Tests if verbose mode is active ----------</maml:title>
        <dev:code>PS C:\&gt; if (Test-Verbose) { Write-Host 'We are in verbose mode' }</dev:code>
        <dev:remarks>
          <maml:para>When the verbose switch is active, the following message is displayed: `We are in verbose mode`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-Verbose.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-Website</command:name>
      <command:verb>Test</command:verb>
      <command:noun>Website</command:noun>
      <maml:description>
        <maml:para>This PowerShell function is a script for comprehensive website exploration and analysis, designed to operate non-recursively for memory efficiency. Source code on GitHub (https://github.com/Eulanda/EulandaConnect/blob/master/source/public/Test-Website.ps1).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Test-Website` function is designed to provide in-depth analysis of a website, including link validity, page indexing status, and `noFollow` link identification. The function uses a queue-based approach for memory efficiency, avoiding recursion while processing URLs. It checks for broken links, provides a comprehensive list of all pages on the website, identifies pages marked as 'noIndex' and links marked as `noFollow`, and checks if the robots settings of the web server are set to restrict indexing.</maml:para>
      <maml:para>The `Test-Website` function is a comprehensive tool for website exploration and analysis. Designed to be memory efficient, it operates non-recursively, utilizing a queue instead of recursion for URL processing. Here are the main functions it provides:</maml:para>
      <maml:para>1. Identifying broken links : The function scans all the links of a website and identifies whether they are functional or broken. 2. Providing a list of all pages on a site : The function crawls through each page on the website, providing a comprehensive list of all the discovered pages. 3. Identifying pages marked as `noIndex` : The function checks if pages have specific directives (in HTML headers or meta tags) preventing search engines from indexing them. It returns a list of all pages marked as `noIndex`. 4. Checking for `noFollow` links : It checks for links on the site that are flagged as `noFollow`, indicating to search engines not to follow the link for indexing. 5. Web Server Robots settings : The function inspects if the robots settings of the web server (header) restrict indexing.</maml:para>
      <maml:para>Here is a brief overview of its process:</maml:para>
      <maml:para>- Initializes hash tables for visited URLs, `noIndex` pages, `noFollow` links, and broken links.</maml:para>
      <maml:para>- Starts a while loop to visit every URL in the queue.</maml:para>
      <maml:para>- Normalizes each URL and checks if it has been visited before.</maml:para>
      <maml:para>- Processes each unvisited URL, gets the web response, and reads its headers.</maml:para>
      <maml:para>- Checks for `noIndex` directives in the headers or meta tags of the HTML.</maml:para>
      <maml:para>- Extracts all links in the document and checks for `noFollow` attributes.</maml:para>
      <maml:para>- Handles relative links and only enqueues links belonging to the same domain.</maml:para>
      <maml:para>- Catches exceptions for broken links and logs them.</maml:para>
      <maml:para>- Returns a final object with properties for visited URLs, `noIndex` pages, `noFollow` links, and broken links.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-Website</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>url</maml:name>
          <maml:description>
            <maml:para>This parameter expects the URL of the website to be analyzed as input. This is a mandatory parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>show</maml:name>
          <maml:description>
            <maml:para>This is a switch parameter. If this parameter is passed, the function will output detailed processing information to the console in real time.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>show</maml:name>
        <maml:description>
          <maml:para>This is a switch parameter. If this parameter is passed, the function will output detailed processing information to the console in real time.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>url</maml:name>
        <maml:description>
          <maml:para>This parameter expects the URL of the website to be analyzed as input. This is a mandatory parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1: Shows broken links and more for a given url ----</maml:title>
        <dev:code>PS C:\&gt; $myResult = Test-Website -url "https://eulandaconnect.eulanda.eu/" -show
PS C:\&gt; Write-Host "NoIndex tag found: $($myResult.noIndex.count)"
PS C:\&gt; if ($myResult.noIndex.count -gt 0) { $myResult.noIndex | ForEach-Object { Write-Host "NoIndex: $_" } }
 
# Result
...
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Get-DesktopDir
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Show-Extensions
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Update-Desktop
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Close-Delivery
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Out-Goodbye
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Unprotect-String
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Get-IniBool
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Hide-Extensions
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Show-MsgBoxYes
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Show-MsgBox
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Protect-String
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Convert-DataToXml
Processing: https://eulandaconnect.eulanda.eu/docs/Functions/Remove-RemoteFile
Processing: https://eulandaconnect.eulanda.eu/docs/Appendix/Fields
SUMMARY of the website analysis
===============================
Pages found: 558
NoIndex tag found: 0
NoFollow tag found: 0
Broken links found: 1
Broken: http://eulandaconnect.eulanda.eu/docs/Functions/Test-Website/ -&gt; https://eulandaconnect.eulanda.eu/%27</dev:code>
        <dev:remarks>
          <maml:para>This will crawl through the website at ' https://eulandaconnect.eulanda.eu/ (https://eulandaconnect.eulanda.eu/)', showing the processing details as it goes. It will then provide a summary of the analysis, including the total number of pages found, pages with `noIndex` tags, links with `noFollow` attributes, and broken links. The result is also stored in the `$myResult` variable for further inspection.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-Website.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-XmlSchema</command:name>
      <command:verb>Test</command:verb>
      <command:noun>XmlSchema</command:noun>
      <maml:description>
        <maml:para>Tests an xml schema against an xml file</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Tests whether an XML file conforms to its schema.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-XmlSchema</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>xmlFile</maml:name>
          <maml:description>
            <maml:para>Name incl. path to the xml file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>schemaFile</maml:name>
          <maml:description>
            <maml:para>Name incl. path to the xsd schema file.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>schemaFile</maml:name>
        <maml:description>
          <maml:para>Name incl. path to the xsd schema file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>xmlFile</maml:name>
        <maml:description>
          <maml:para>Name incl. path to the xml file.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1:Tests if the xml file is valid against the specified schema</maml:title>
        <dev:code>PS C:\&gt; if (Test-XmlSchema -xmlFile 'C:\temp\article.xml' -schemaFile 'C:\temp\article.xsd' ) { Write-Host 'XML file is valid' } else { 'XML file is not valid' }</dev:code>
        <dev:remarks>
          <maml:para>This can be used to test whether the XML file corresponds to the specified schema.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Test-XmlSchema.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Unprotect-String</command:name>
      <command:verb>Unprotect</command:verb>
      <command:noun>String</command:noun>
      <maml:description>
        <maml:para>Decrypts a text using a key</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function is passed an encrypted text via the `protectedText` parameter. This was previously encrypted with `Protect-String`. The `key` parameter must be either 32 or 16 characters long. Intermediate sizes are padded, but reduce security. If a key longer than 32 characters is passed, an exception is thrown. The counterpart to this function is `protect-string`.</maml:para>
      <maml:para>The key must be identical for encryption and decryption.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Unprotect-String</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>protectedText</maml:name>
          <maml:description>
            <maml:para>The encrypted text to be decrypted.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>key</maml:name>
          <maml:description>
            <maml:para>The key that is used for encryption. It should contain either 16 or 32 characters. An exception is thrown for larger values.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>key</maml:name>
        <maml:description>
          <maml:para>The key that is used for encryption. It should contain either 16 or 32 characters. An exception is thrown for larger values.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>protectedText</maml:name>
        <maml:description>
          <maml:para>The encrypted text to be decrypted.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------- Example 1:Entschlüsseln des Textes --------------</maml:title>
        <dev:code>PS C:\&gt; [string]$protected= '76492d1116743f0423413b16050a5345MgB8AC8ATABrAGwAQgA3AFAARABOAEYAQwArAEIATABwAGEAagBGAFUAQQBUAHcAPQA9AHwAMAAyADEAZABhAGQAMQA1ADQAZgBiADQAZABiADMAOQA4AGMANQA1ADIANQA4ADIANgAyAGMAYgBmAGUANQBjAGEAMgAxADMAMAA3ADQAZQAyAGMAYQA0ADAAMgBjAGYAZQA3ADMAMgAyADgANQAwADcANwA3ADQANABmADEANgA='
PS C:\&gt; [string]$plain= Unprotect-String -protectedText $protected -key 'x&amp;=Ogbu7$43lkn4i'
 
# Output
 
I am unsecure</dev:code>
        <dev:remarks>
          <maml:para>The encrypted text is passed to the function with the original key and decrypted. The result is then `I am unsecure`, i.e. the value originally passed with `Protect-String`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Unprotect-String.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Protect-String</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Update-Desktop</command:name>
      <command:verb>Update</command:verb>
      <command:noun>Desktop</command:noun>
      <maml:description>
        <maml:para>Sends a refresh message to the windows desktop</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Update-Desktop function operates as if you were pressing the F5 key on your Windows desktop. It refreshes the icons and their labels on the desktop. This function is used implicitly by the Hide-Extensions and Show-Extensions functions.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Update-Desktop</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------------- Example 1:Refreshes the desktop ---------------</maml:title>
        <dev:code>PS C:\&gt; Upate-Desktop</dev:code>
        <dev:remarks>
          <maml:para>Refreshes the desktop.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Update-Desktop.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Hide-Extensions</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Show-Extensions</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Use-Culture</command:name>
      <command:verb>Use</command:verb>
      <command:noun>Culture</command:noun>
      <maml:description>
        <maml:para>Performs any function in the context of another culture</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function can be used to format dates or numbers in the context of a different culture. For example, the output of the date in French format.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Use-Culture</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>culture</maml:name>
          <maml:description>
            <maml:para>Specification of the culture in .NET format. `de-DE` for German, `en-US` for English US-American etc.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">CultureInfo</command:parameterValue>
          <dev:type>
            <maml:name>CultureInfo</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>script</maml:name>
          <maml:description>
            <maml:para>The script must always be specified in curly brackets.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ScriptBlock</command:parameterValue>
          <dev:type>
            <maml:name>ScriptBlock</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>culture</maml:name>
        <maml:description>
          <maml:para>Specification of the culture in .NET format. `de-DE` for German, `en-US` for English US-American etc.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">CultureInfo</command:parameterValue>
        <dev:type>
          <maml:name>CultureInfo</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>script</maml:name>
        <maml:description>
          <maml:para>The script must always be specified in curly brackets.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ScriptBlock</command:parameterValue>
        <dev:type>
          <maml:name>ScriptBlock</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------------- Example 1:Date output in french ---------------</maml:title>
        <dev:code>PS C:\&gt; Use-Culture -culture 'fr-FR' -script { $(Get-Date) }
 
# Output
 
dimanche 26 février 2023 15:51:53</dev:code>
        <dev:remarks>
          <maml:para>The date output is in a culture different from Windows. This makes it easy to provide data exports for another country or to read them.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Use-Culture.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Write-XmlMetadata</command:name>
      <command:verb>Write</command:verb>
      <command:noun>XmlMetadata</command:noun>
      <maml:description>
        <maml:para>Writes a EULANDA metablock via XmlWriter</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The function writes a EULANDA specific meta data block into a xml writer object. This function is called implicitly by `Convert-DataToXml` among others.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Write-XmlMetadata</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>writer</maml:name>
          <maml:description>
            <maml:para>An instance of the object System.XML.XmlWriter</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
          <dev:type>
            <maml:name>Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>strCase</maml:name>
          <maml:description>
            <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>strCase</maml:name>
        <maml:description>
          <maml:para>By setting the parameter `strCase` you can influence the output. If the parameter is omitted or set to `none`, no further conversion is performed. With `lower` the output is converted to lowercase, with `upper` to uppercase and with `capitalize` the first letter of a word is output in uppercase.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>writer</maml:name>
        <maml:description>
          <maml:para>An instance of the object System.XML.XmlWriter</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object</command:parameterValue>
        <dev:type>
          <maml:name>Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1:Writes metadata using the xml writer object ----</maml:title>
        <dev:code>$encoding = [System.Text.Encoding]::UTF8
$settings = New-Object System.Xml.XmlWriterSettings
$settings.Indent = $true
$settings.IndentChars = " "
$settings.Encoding = $encoding
$stream = New-Object System.IO.MemoryStream
$writer = [System.XML.XmlWriter]::Create($stream, $settings)
 
# Start with the root node
$writer.WriteStartDocument()
$writer.WriteStartElement('EULANDA')
$writer = Write-XmlMetadata -writer $writer -strCase 'upper'
...
 
&lt;EULANDA&gt;
    &lt;METADATA&gt;
        &lt;VERSION&gt;1.22&lt;/VERSION&gt;/VERSION&gt;
        &lt;GENERATOR&gt;EulandaConnect&lt;/GENERATOR&gt;
        &lt;DATEFORMAT&gt;ISO8601&lt;/DATEFORMAT&gt;
        &lt;FLOATFORMAT&gt;US&lt;/FLOATFORMAT&gt;
        &lt;COUNTRYFORMAT&gt;ISO2&lt;/COUNTRYFORMAT&gt;
        &lt;FIELDNAMES&gt;NATIVE&lt;/FIELDNAMES&gt;
        &lt;DATE&gt;2023-02-16T13:05:12&lt;/DATE&gt;
        &lt;PCNAME&gt;PC4ALL&lt;/PCNAME&gt;
        &lt;USERNAME&gt;DOE&lt;/USERNAME&gt;
    &lt;/METADATA&gt;
&lt;/EULANDA&gt;</dev:code>
        <dev:remarks>
          <maml:para>The metadata is written in conjunction with the xml writer object.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/Eulanda/EulandaConnect/blob/master/docs/Write-XmlMetaData.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Convert-DataToXml</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
</helpItems>