Skip to main content

FTP from Axapta

FTP from Axapta From Axaptapedia
from Development Axapta by (Dahlsgaard Jan)
add at the class declaration of the WinInet class the following:
DLLFunction _internetConnect;
DLLFunction _ftpGetFile;
DLLFunction _ftpPutFile;
and this in the 'new':
_internetConnect = new DLLFunction(_winInet,"InternetConnectA");
_internetConnect.returns(ExtTypes::DWORD);
_internetConnect.arg(ExtTypes::DWORD);
_internetConnect.arg(ExtTypes::STRING);
_internetConnect.arg(ExtTypes::DWORD);
_internetConnect.arg(ExtTypes::STRING);
_internetConnect.arg(ExtTypes::STRING);
_internetConnect.arg(ExtTypes::DWORD);
_internetConnect.arg(ExtTypes::DWORD);
_internetConnect.arg(ExtTypes::DWORD);

_ftpGetFile = new DLLFunction(_winInet,"FtpGetFileA");
_ftpGetFile.returns(ExtTypes::DWORD);
_ftpGetFile.arg(ExtTypes::DWORD);
_ftpGetFile.arg(ExtTypes::STRING);
_ftpGetFile.arg(ExtTypes::STRING);
_ftpGetFile.arg(ExtTypes::DWORD);
_ftpGetFile.arg(ExtTypes::DWORD);
_ftpGetFile.arg(ExtTypes::DWORD);
_ftpGetFile.arg(ExtTypes::DWORD);

_ftpPutFile = new DLLFunction(_winInet,"FtpPutFileA");
_ftpPutFile.returns(ExtTypes::DWORD);
_ftpPutFile.arg(ExtTypes::DWORD);
_ftpPutFile.arg(ExtTypes::STRING);
_ftpPutFile.arg(ExtTypes::STRING);
_ftpPutFile.arg(ExtTypes::DWORD);
_ftpPutFile.arg(ExtTypes::DWORD);
and the following methods:
int internetConnect(str 60 _server, str 99 _userName, str 99 _password )
{
return
_internetConnect.call(_handle,_server,0,_userName,_password,1,0,0);
}
int FtpGetFile(int _hdl, str 255 _remoteFile, str 255 _localFile)
{
return
_FtpGetFile.call(_hdl,_remoteFile,_localFile,false,0,#FTP_TRANSFER_TYPE_BINARY,0);
}

int FtpPutFile(int _hdl, str 255 _localFile, str 255 _remoteFile)
{
return
_FtpPutFile.call(_hdl,_localFile,_remoteFile,#FTP_TRANSFER_TYPE_BINARY,0);
}

boolean ftpSetCurrentDirectory(str _name)
{
DLLFunction setCurrentDirectory = new DLLFunction(winInetDLL, 'FtpSetCurrentDirectoryA');
;

if (connectHandle == 0)
return false;

setCurrentDirectory.returns(ExtTypes::DWord);

setCurrentDirectory.arg(ExtTypes::DWord,
ExtTypes::String);

return setCurrentDirectory.call(connectHandle, _name) != 0;
}
use the internetconnect method to connect ftp server, ftpgetfile, ftpputfile to get and put files, and ftpSetCurrentDirectory for change current diectory

Popular posts from this blog

Passing values between form and class

Class name is EmplDuplication and Form is EmplTable . void clicked() {    MenuFunction mf;    args args = new Args();    ;     args.record(EmplTable);     mf = new menufunction(identifierstr(EmplDuplication), MenuItemType::Action); mf.run(args); } Meanwhile, in the main() method of the EmplDuplication class, we need to put this Axapta x++ code to get the datasource: static void main(Args args) {     EmplDuplication EmplDuplication; EmplTable localEmplTable; ;     if(args.record().TableId == tablenum(EmplTable)) localEmplTable = args.record();     ... }

Credit Note [Dynamics AX] using X++

This post will help to create credit note for a sales order based on the invent lot id. All the invoices raised for a particular sales line – Lot Id will be raised back as a credit note. Information on Credit Note: A credit note or credit memorandum (memo) is a commercial document issued by a seller to a buyer. The seller usually issues a Credit Memo for the same or lower amount than the invoice, and then repays the money to the buyer or sets it off against a balance due from other transactions Below Code will help to create credit note for all the invoices raised against the sales line -lot id. Please note: This code can be customized as per your requirements. This is just a template to help creating credit note using X++ code. Please test the code before use. static void SR_CreateCreditNote_Sales(Args _args) { // Coded by Sreenath Reddy CustInvoiceTrans custInvoiceTrans; Dialog dialog = new Dialog(“Create credit note – for sales.”); DialogField dfInv...