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="1" 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="2" 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="3" 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>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="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="3" 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>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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" 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: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="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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>breadcrumbRoot</maml:name>
          <maml:description>
            <maml:para>Specifies the root of a property tree path. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used for the tree starting from this 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: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="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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>breadcrumbRoot</maml:name>
        <maml:description>
          <maml:para>Specifies the root of a property tree path. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used for the tree starting from this 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: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="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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>breadcrumbRoot</maml:name>
          <maml:description>
            <maml:para>Specifies the root of a property tree path. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used for the tree starting from this 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: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="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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>breadcrumbRoot</maml:name>
        <maml:description>
          <maml:para>Specifies the root of a property tree path. This parameter is used to search for the corresponding branch in the property tree and retrieve its ID. The retrieved ID is used for the tree starting from this 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: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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>force</maml:name>
          <maml:description>
            <maml:para>If the parameter is set, the SQL browser service will be started if it was not started. However, if the service is disabled, then an exception is thrown.</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>force</maml:name>
        <maml:description>
          <maml:para>If the parameter is set, the SQL browser service will be started if it was not started. However, if the service is disabled, then an exception is thrown.</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>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