Introduction
In today's interconnected systems, secure file transfers are critical. SFTP (Secure File Transfer Protocol), which utilizes SSH (Secure Shell) for enhanced security, is commonly used for this purpose. In this blog, I will guide you through creating a .Net library to establish an SFTP connection and demonstrate how to integrate this library into a Dynamics 365 Finance & Operations (D365FO) environment.
Step 1: Create a .Net Class Library
First, start by creating a .Net class library. This library will be responsible for handling the SFTP connection.
Step 2: Add Necessary NuGet Packages
For handling SFTP operations, add the following packages to your project:
Renci.SshNet
– Provides the basic functionality for SFTP connections.Microsoft.Bcl.AsyncInterfaces
– Required for async support in .Net Standard 2.0 projects.
Note: You can install these packages via NuGet Package Manager or using the Package Manager Console.
Step 3: Implement SFTP Connection Logic
Implement the SFTP connection logic within your library. Create methods for connecting to the SFTP server, as well as for listing directories, downloading, and moving files.
Use the following code snippet for Getting directory, files and moves them after executing in the related folder.
Step 4: Build and Deploy the Library
After implementing the necessary functionality in your .Net library, build the project. Navigate to the bin\Debug
or bin\Release
folder, depending on your build configuration, and locate the generated DLLs. Select the highlighted DLLs from .Net project as shown below.
Step 5: Integrate with Dynamics 365 FO
To use your new library within Dynamics 365 FO, you need to import the DLLs into your project. Copy the DLLs from your .Net project's output folder to the AOSService->PackageLocalDirectory->Your Model Bin folder of your AX extension. This makes the library available to your AX project.
Step 6: Consume the Library in D365FO
Now, you can invoke the methods from your SFTP library within your D365FO codebase. You might need to handle any threading considerations, depending on how D365FO consumes external libraries.
Conclusion
By following these steps, you have created a reusable .Net library capable of handling SFTP operations and integrated it within Dynamics 365 FO, enhancing your application’s ability to interact securely with external systems through file transfers. This integration not only secures data transmission but also extends the functionality of your D365FO environment efficiently.