GetFilesFromFTPServer.ds

Review the GetFilesFromFTPServer.ds referenced script files when scheduling inventory imports.

Note: This code is provided as a sample. It isn't a supported part of the SiteGenesis application.

/**
 * Connected to FTP server.
 *
 * @input Hostname   : String    The host name
 * @input Username   : String    The user name
 * @input Password   : String    The password
 * @input Directory  : String    The directory
 * @input sampleLogger  : Object Sample logger input for Sample logger
 * @output sampleLogger : Object Sample logger debug output for Sample logger
 * @output sampleError  : Object Sample error error output for Sample logger
 */
importPackage(dw.system);
importPackage(dw.net);



// Sample Logging ImportScript
importScript("bc_sample:library/common/libContext.ds");
importScript("bc_sample:library/utility/exception/libsampleException.ds");
importScript("bc_sample:library/utility/logging/libLog.ds");



function execute(pdict: PipelineDictionary): Number {
    // Sample Logging var
    var _context: String = new Context("GetFilesFromFTPServer.ds");
    var _logger: Log = Log.getLogger(pdict);

    var scriptName: String = "bc_sample:pipelets/impex/GetFilesFromFTPServer.ds";

    if (Logger.isDebugEnabled()) {

        Logger.debug(scriptName + ": BEGIN");
    }

    //*** get script parameters ***//
    var host: String = pdict.Hostname;
    var userName: String = pdict.Username;
    var password: String = pdict.Password;

    var ftpClient: FTPClient = new FTPClient();
    var connectedFlag: Boolean = false;

    try {

        connectedFlag = ftpClient.connect(host, userName, password);
    } catch (e) {
        // Sample Logging wrap error into custom exception
        var exception: sampleException = new sampleException(_context, scriptName + ': Error connecting to FTP server: ' + +host + '\n' + e.message, e);

        // Sample Logging call into error handler
        _logger.error(_context, scriptName + ': Error connecting to FTP server: ' + +host + '\n' + e.message + exception);
        pdict.sampleError = exception;

        return PIPELET_ERROR;
    }

    if (connectedFlag) {

        if (Logger.isDebugEnabled()) {

            _logger.debug(_context, scriptName + ': Connected to host: ' + host);
        }

        try {

            /*var files = ftpClient.list();
   for each (var file : FTPFileInfo in files) {
   
    Logger.debug("---> " + file.name);
   }*/

            ftpClient.disconnect();

            if (Logger.isDebugEnabled()) {

                _logger.debug(_context, scriptName + ': Disconnected from host: ' + host);
            }
        } catch (e) {

            _logger.error(_context, scriptName + ': FTP opreration failed: ' + e.message);

            return PIPELET_ERROR;
        }
    } else {

        if (Logger.isDebugEnabled()) {

            _logger.debug(_context, scriptName + ': Could not connect to host: ' + host);
        }

        return PIPELET_ERROR;
    }

    //*** set script output parameters ***//


    if (Logger.isDebugEnabled()) {

        _logger.debug(_context, scriptName + ": END");
    }

    return PIPELET_NEXT;
}