One of a very common requirements for any ERP systems is to have FTP file upload support to upload files from AX to FTP server. We do have many libraries, tools available to do that. However, it is best to have native X++ code without referencing any DLLs to upload your files to FTP from AX. Following code shows the example of uploading files to FTP.
The code written below can be easily used to upload files, However, if you have to process this as a batch you need to consider that batch runs on server/CIL and for this you need to set permissions and also if that still doesn't work, you can change the method to static server.
The code written below can be easily used to upload files, However, if you have to process this as a batch you need to consider that batch runs on server/CIL and for this you need to set permissions and also if that still doesn't work, you can change the method to static server.
private server static void
sendToFTP()
{
System.Object ftpo;
System.Object ftpResponse;
System.Net.FtpWebRequest request;
System.IO.StreamReader reader;
System.IO.Stream requestStream;
System.Byte[] bytes;
System.Text.Encoding utf8;
System.Net.FtpWebResponse response;
System.Object credential;
HOSInventParameters
hosInventParameters;
int
fileCount;
System.Array files;
int
i;
str
nextFile;
Filename filepath;
Filename fileType,fileNameString;
FileNameType pattern
= '*.TXT';
FileName ftpFileName,fileName;
select
firstOnly custInventParameters;
new
InteropPermission(InteropKind::ClrInterop).assert();
files =
System.IO.Directory::GetFiles(custInventParameters.PartsFileLocation, pattern);
if
(files)
{
fileCount
= files.get_Length();
for(i=0;
i < fileCount; i++)
{
nextFile = files.GetValue(i);
[filepath, filename, fileType] = fileNameSplit(nextFile);
fileNameString= filename + fileType;
ftpFileName = custInventParameters.PartsFTPAddress + '/'
+ custInventParameters.PartsFTPLocation + '/'
+ fileNameString;
reader = new
System.IO.StreamReader(nextFile);
utf8 = System.Text.Encoding::get_UTF8();
bytes = utf8.GetBytes( reader.ReadToEnd() );
reader.Close();
// little workaround to get around the casting in
.NET
ftpo = System.Net.WebRequest::Create(ftpFileName);
request = ftpo;
credential = new System.Net.NetworkCredential(custInventParameters.PartsUserId,custInventParameters.PartsFTPPassword);
request.set_Credentials(credential);
request.set_ContentLength(bytes.get_Length());
request.set_Method('STOR');
// "Bypass" a HTTP Proxy (FTP transfer through a
proxy causes an exception)
// request.set_Proxy(
System.Net.GlobalProxySelection::GetEmptyWebProxy() );
requestStream = request.GetRequestStream();
requestStream.Write(bytes,0,bytes.get_Length());
requestStream.Close();
ftpResponse = request.GetResponse();
response = ftpResponse;
info(response.get_StatusDescription());
}
}
CodeAccessPermission::revertAssert();
}
Hi, Could please share the code for the below.
ReplyDeleteAX 2012 upload file to FTP from Client Form button click event
AX 2012 upload file to secured FTP from Client Form button click event
ReplyDeleteHi, Anybody can help me with code to upload file(XML) to SFTP.
ReplyDeleteThanks
supreme clothing
ReplyDeletesupreme clothing
off white clothing
golden goose
off white clothing
bape hoodie
off white hoodie
stephen curry shoes
yeezy boost 350
yeezy gap hoodie
Respect and I have a super supply: kitchen upgrades on a budget
ReplyDelete