Tuesday 7 May 2024

Creating and Consuming a .Net Library for SFTP Connection in Dynamics 365 Finance & Operations (Part-1)


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.


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.

No comments:

Post a Comment

How to Get Customer Free Text Invoice "Totals" form field value with X++ in D365FO

Customer free text invoices are an essential aspect of financial management in D365FO. In this blog, I have compiled all the code needed to ...