forked from aacnsilva/SFTPManagement
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSFTPManagement.txt
92 lines (83 loc) · 5.1 KB
/
SFTPManagement.txt
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
83
84
85
86
87
88
89
90
91
92
OBJECT Codeunit 50000 SFTPManagement
{
OBJECT-PROPERTIES
{
Date=18/12/19;
Time=12:21:09;
Modified=Yes;
Version List=AntonioSilva;
}
PROPERTIES
{
OnRun=VAR
SFTPSession@1000 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.Session";
BEGIN
// ********************** EXAMPLE **********************
// OpenSFTPSession(SFTPSession, 'uri', 'username', 'password', 'sshkey_notmandatory');
// PutFilesSFTP(SFTPSession, 'C:\Textfile.txt', '/SFTPFolder/');
// GetFilesSFTP(SFTPSession,'/SFTPFolder/', 'C:\SFTP\');
// SynchronizeDirectoriesSFTP(SFTPSession, 'C:\SFTP\', '/');
// CloseSFTPSession();
END;
}
CODE
{
LOCAL PROCEDURE OpenSFTPSession@93(VAR pSFTPSession@1000 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.Session";pHostName@1002 : Text;pUserName@1003 : Text;pPassword@1004 : Text;pSSHHostKey@1005 : Text);
VAR
SFTPSessionOptions@1001 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.SessionOptions";
SFTPProtocol@1006 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.Protocol";
BEGIN
WITH SFTPSessionOptions DO BEGIN
SFTPSessionOptions := SessionOptions();
Protocol := SFTPProtocol.Sftp;
HostName := pHostName;
UserName := pUserName;
Password := pPassword;
IF pSSHHostKey = '' THEN
GiveUpSecurityAndAcceptAnySshHostKey(TRUE)
ELSE
SshHostKeyFingerprint := pSSHHostKey;
END;
pSFTPSession := pSFTPSession.Session();
pSFTPSession.Open(SFTPSessionOptions);
END;
LOCAL PROCEDURE CloseSFTPSession@100(VAR pSFTPSession@1000 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.Session");
BEGIN
pSFTPSession.Dispose();
END;
LOCAL PROCEDURE PutFilesSFTP@104(VAR pSFTPSession@1000 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.Session";FromLocalPath@1004 : Text;ToRemotePath@1005 : Text);
VAR
SFTPTransferOptions@1002 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.TransferOptions";
SFTPTransferOperationResult@1001 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.TransferOperationResult";
SFTPTransferMode@1003 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.TransferMode";
BEGIN
SFTPTransferOptions := SFTPTransferOptions.TransferOptions();
SFTPTransferOptions.TransferMode := SFTPTransferMode.Binary;
SFTPTransferOperationResult := pSFTPSession.PutFiles(FromLocalPath, ToRemotePath, FALSE, SFTPTransferOptions);
SFTPTransferOperationResult.Check();
END;
LOCAL PROCEDURE GetFilesSFTP@105(VAR pSFTPSession@1002 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.Session";FromRemotePath@1001 : Text;ToLocalPath@1000 : Text);
VAR
SFTPTransferOptions@1005 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.TransferOptions";
SFTPTransferOperationResult@1004 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.TransferOperationResult";
SFTPTransferMode@1003 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.TransferMode";
BEGIN
SFTPTransferOptions := SFTPTransferOptions.TransferOptions();
SFTPTransferOptions.TransferMode := SFTPTransferMode.Binary;
SFTPTransferOperationResult := pSFTPSession.GetFiles(FromRemotePath, ToLocalPath, FALSE, SFTPTransferOptions);
SFTPTransferOperationResult.Check();
END;
LOCAL PROCEDURE SynchronizeDirectoriesSFTP@106(VAR pSFTPSession@1000 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.Session";LocalPath@1006 : Text;RemotePath@1005 : Text);
VAR
SFTPSyncMode@1003 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.SynchronizationMode";
SFTPSyncCriteria@1002 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.SynchronizationCriteria";
SFTPSyncResult@1001 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.SynchronizationResult";
SFTPTransferOptions@1004 : DotNet "'WinSCPnet, Version=1.6.5.10071, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf'.WinSCP.TransferOptions";
BEGIN
SFTPSyncResult := pSFTPSession.SynchronizeDirectories(SFTPSyncMode.Local, LocalPath, RemotePath, FALSE, FALSE, SFTPSyncCriteria.Time, SFTPTransferOptions);
SFTPSyncResult.Check();
END;
BEGIN
END.
}
}