MFiles.psm1
# REST-Dokumentation siehe https://wiki.kalaidos.ch/x/LMLnAw und https://wiki.kalaidos.ch/x/hh8rB function New-MFilesObject { [CmdletBinding(DefaultParameterSetName = "NoFile")] param( [Parameter(ParameterSetName = "NoFile", HelpMessage = "Uid des neuen Objekts (kann nur mit Vault-Admin-Rechten gesetzt werden)")] [Parameter(ParameterSetName = "FileByPath", HelpMessage = "Uid des neuen Objekts (kann nur mit Vault-Admin-Rechten gesetzt werden)")] [Parameter(ParameterSetName = "FileByContent", HelpMessage = "Uid des neuen Objekts (kann nur mit Vault-Admin-Rechten gesetzt werden)")] $Uid, [Parameter(Mandatory, ParameterSetName = "NoFile", HelpMessage = "Objekt-Typ")] [Parameter(Mandatory, ParameterSetName = "FileByPath", HelpMessage = "Objekt-Typ")] [Parameter(Mandatory, ParameterSetName = "FileByContent", HelpMessage = "Objekt-Typ")] [string]$ObjectType, [Parameter(Mandatory, ParameterSetName = "NoFile", HelpMessage = "Objekt-Klasse")] [Parameter(Mandatory, ParameterSetName = "FileByPath", HelpMessage = "Objekt-Klasse")] [Parameter(Mandatory, ParameterSetName = "FileByContent", HelpMessage = "Objekt-Klasse")] [string]$ObjectClass, [Parameter(Mandatory, ParameterSetName = "NoFile", HelpMessage = "Metadaten-Werte")] [Parameter(Mandatory, ParameterSetName = "FileByPath", HelpMessage = "Metadaten-Werte")] [Parameter(Mandatory, ParameterSetName = "FileByContent", HelpMessage = "Metadaten-Werte")] [PSCustomObject]$Properties, [Parameter(Mandatory,ParameterSetName = "FileByPath", HelpMessage = "Dateiname für den Dateiinhalt")] [Parameter(Mandatory,ParameterSetName = "FileByContent", HelpMessage = "Dateiname für den Dateiinhalt")] [string]$SingleFileName, [Parameter(Mandatory,ParameterSetName = "FileByPath", HelpMessage = "Pfad, aus welchem der Dateiinhalt gelesen werden soll")] [string]$SingleFileSource, [Parameter(Mandatory,ParameterSetName = "FileByContent", HelpMessage = "Dateiinhalt für das Single File (byte array)")] [byte[]]$SingleFileContent, [Parameter(ParameterSetName = "FileByPath", HelpMessage = "Übergebene Datei in das PDF/A-Format konvertieren")] [Parameter(ParameterSetName = "FileByContent", HelpMessage = "Übergebene Datei in das PDF/A-Format konvertieren")] [switch]$ConvertToPdfA, [Parameter(ParameterSetName = "FileByPath", HelpMessage = "Texterkennung ausführen, damit Volltextsuche möglich wird")] [Parameter(ParameterSetName = "FileByContent", HelpMessage = "Texterkennung ausführen, damit Volltextsuche möglich wird")] [switch]$PerformOcr ) process{ $Body = [PSCustomObject]@{ "Objecttype" = $ObjectType; "Objectclass" = $ObjectClass; "Properties" = $Properties; }; if ($PSBoundParameters.ContainsKey("Uid")) { $Body | Add-Member -MemberType NoteProperty -Name "ObjectGuid" -Value (ConvertTo-WeeduGuid $Uid); } if ($PSBoundParameters.ContainsKey("SingleFileName")) { if ($PSBoundParameters.ContainsKey("SingleFileSource") -and -not $PSBoundParameters.ContainsKey("SingleFileContent")) { $SingleFileContent = [System.IO.File]::ReadAllBytes($SingleFileSource); } if (-not $SingleFileContent) { Write-Error "Wenn eine SingleFileName angegeben wird, muss entweder eine SingleFileSource oder ein SingleFileContent angegeben werden." return; } $SingleFileValue = [PSCustomObject]@{ "Filename" = $SingleFileName; "Data" = [System.Convert]::ToBase64String($SingleFileContent) } $Body | Add-Member -MemberType NoteProperty -Name "SingleFile" -Value $SingleFileValue; } return Invoke-Weedu -Uri "/rest/MFilesObject/Generic?performOCR=$PerformOcr&convertToPdf=$ConvertToPdfA" -Method POST -Body $body; } } function New-MFilesDocument { [CmdletBinding(DefaultParameterSetName = "FileByPath")] param( [Parameter(ParameterSetName = "FileByPath", HelpMessage = "Uid des neuen Objekts (kann nur mit Vault-Admin-Rechten gesetzt werden)")] [Parameter(ParameterSetName = "FileByContent", HelpMessage = "Uid des neuen Objekts (kann nur mit Vault-Admin-Rechten gesetzt werden)")] $Uid, [Parameter(Mandatory, ParameterSetName = "FileByPath", HelpMessage = "Dokument-Klasse")] [Parameter(Mandatory, ParameterSetName = "FileByContent", HelpMessage = "Dokument-Klasse")] [string]$DocumentClass, [Parameter(Mandatory, ParameterSetName = "FileByPath", HelpMessage = "Metadaten-Werte")] [Parameter(Mandatory, ParameterSetName = "FileByContent", HelpMessage = "Metadaten-Werte")] [PSCustomObject]$Properties, [Parameter(Mandatory, ParameterSetName = "FileByPath", HelpMessage = "Dateiname für den Dateiinhalt")] [Parameter(Mandatory, ParameterSetName = "FileByContent", HelpMessage = "Dateiname für den Dateiinhalt")] [string]$SingleFileName, [Parameter(Mandatory, ParameterSetName = "FileByPath", HelpMessage = "Pfad, aus welchem der Dateiinhalt gelesen werden soll")] [string]$SingleFileSource, [Parameter(Mandatory, ParameterSetName = "FileByContent", HelpMessage = "Dateiinhalt für das Single File (byte array)")] [byte[]]$SingleFileContent, [Parameter(ParameterSetName = "FileByPath", HelpMessage = "Übergebene Datei in das PDF/A-Format konvertieren")] [Parameter(ParameterSetName = "FileByContent", HelpMessage = "Übergebene Datei in das PDF/A-Format konvertieren")] [switch]$ConvertToPdfA, [Parameter(ParameterSetName = "FileByPath", HelpMessage = "Texterkennung ausführen, damit Volltextsuche möglich wird")] [Parameter(ParameterSetName = "FileByContent", HelpMessage = "Texterkennung ausführen, damit Volltextsuche möglich wird")] [switch]$PerformOcr ) process{ New-MFilesObject -Uid $Uid ` -ObjectType "MFBuiltInObjectTypeDocument" ` -ObjectClass $DocumentClass ` -Properties $Properties ` -SingleFileName $SingleFileName ` -SingleFileSource $SingleFileSource ` -SingleFileContent $SingleFileContent ` -ConvertToPdfA $ConvertToPdfA ` -PerformOcr $PerformOcr; } } Export-ModuleMember -function New-MFilesObject Export-ModuleMember -function New-MFilesDocument |