-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGet-DmsFolderDelivery.ps1
More file actions
82 lines (75 loc) · 3.51 KB
/
Get-DmsFolderDelivery.ps1
File metadata and controls
82 lines (75 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
function Get-DmsFolderDelivery {
[CmdletBinding()]
param (
[parameter(Mandatory = $false)]
[ValidateScript({ Test-ValidateId -id $_ })]
[int]$deliveryId
,
[parameter(Mandatory = $false)]
[ValidateScript({ Test-ValidateNo -no $_ })]
[int]$deliveryNo
,
[Parameter(Mandatory = $false)]
[ValidateScript({ Test-ValidateConn -conn $_ })]
$conn
,
[Parameter(Mandatory = $false)]
[ValidateScript({ Test-ValidatePathUDL -path $_ })]
[string]$udl
,
[Parameter(Mandatory = $false)]
[ValidateScript({ Test-ValidateConnStr -connStr $_ })]
[string]$connStr
)
begin {
Write-Verbose -Message ((Get-ResStr 'STARTING_FUNCTION') -f $myInvocation.Mycommand)
Test-ValidateSingle -validParams (Get-SingleDeliveryKeys) @PSBoundParameters
Test-ValidateSingle -validParams (Get-SingleConnection) @PSBoundParameters
New-Variable -Name 'addressPath' -Scope 'Private' -Value ([string]'')
New-Variable -Name 'deliveryPath' -Scope 'Private' -Value ([string]'')
New-Variable -Name 'match' -Scope 'Private' -Value ([string]'')
New-Variable -Name 'myConn' -Scope 'Private' -Value ($null)
New-Variable -Name 'rs' -Scope 'Private' -Value ($null)
New-Variable -Name 'sql' -Scope 'Private' -Value ([string]'')
New-Variable -Name 'sqlFrag' -Scope 'Private' -Value ([string]'')
New-Variable -Name 'result' -Scope 'Private' -Value ([string]'')
$initialVariables = Get-CurrentVariables -Debug:$DebugPreference
}
process {
$myConn = Get-Conn -conn $conn -udl $udl -connStr $connStr
if ($deliveryNo) {
[string]$sqlFrag = "lf.KopfNummer = $deliveryNo"
} else {
[string]$sqlFrag = "lf.Id = $deliveryId"
}
[string]$match = ""
[int]$deliveryNo = 0
[string]$sql = @"
SELECT
(SELECT ladr.Match FROM Lieferschein [lf] JOIN Adresse [ladr] ON lf.AdresseId = ladr.Id AND $sqlFrag) AS [Match],
(SELECT lf.KopfNummer FROM Lieferschein [lf] JOIN Adresse [ladr] ON lf.AdresseId = ladr.Id AND $sqlFrag) AS [DeliveryNo],
(SELECT Valtext FROM cnf_RegValues('\VENDOR\esol\MODULES\DMS\DATAOBJECTS\Eulanda.Adresse') WHERE Name = 'FolderPath') AS [AddressPath],
(SELECT Valtext FROM cnf_RegValues('\VENDOR\esol\MODULES\DMS\DATAOBJECTS\Eulanda.Lieferschein') WHERE Name = 'FolderPath') AS [DeliveryPath],
(SELECT Valtext FROM cnf_RegValues('\VENDOR\esol\MODULES\DMS') WHERE Name = 'BaseFolder') AS [BaseFolder]
"@
$rs = $Null
$rs = $myConn.Execute($sql)
if ($rs) {
if (! $rs.eof) {
$match = $rs.fields('Match').value
$deliveryNo = $rs.fields('DeliveryNo').value
$addressPath = $rs.fields('AddressPath').value
$deliveryPath = $rs.fields('DeliveryPath').value
$baseFolder = $rs.fields('BaseFolder').value
}
} else {
throw ((Get-ResStr 'DELIVERYNOTE_NOT_FOUND_CONDITION') -f $sqlFrag, $myInvocation.Mycommand)
}
[string]$result = "$baseFolder\$addressPath\$match\$deliveryPath\$deliveryNo"
}
end {
Get-CurrentVariables -InitialVariables $initialVariables -Debug:$DebugPreference
Return $result
}
# Test: Get-DmsFolderDelivery -dmsBaseFolder 'C:\dms' -deliveryId 28096 -udl 'C:\temp\Eulanda_1 Eulanda.udl' -debug
}