SFTP Functions

Overview

Contains multiple Smart Services for interacting with a remote file server via SFTP, FTP, or SCP.  Using these services, an Appian application can be configured to send and receive files, folders, and metadata in a process.  Features support for zlib compression.

Key Features & Functionality

Smart Services included:

  • SFTP:
    • Send File Over SFTP
    • Receive File Over SFTP
    • Get Remote Folder Contents Over SFTP
    • Create Folder Over SFTP
    • Remove File Over SFTP
    • Receive Files In Folder Over
    • SFTP Rename File Over SFTP
  • SCP:
    • Send File Over SCP
    • Receive File Over SCP
  • FTP:
    • Send File Over FTP
    • Receive File Over FTP
    • Get Remote Folder Contents Over FTP
    • Receive Files In Folder Over FTP
    • Remove File Over FTP
    • Rename File Over FTP
  • FTPS
    • Get Remote Folder Contents Over FTPS
    • Receive File Over FTPS
    • Receive Files In Folder Over FTPS
    • Send File Over FTPS

Functions:

  • getfoldercontentsoverftp
  • getfoldercontentsoverftps
  • getfoldercontentsoversftp
  • All smart services in the package use Secure Credentials Store.
Anonymous
  • - have already done that, this version is not supporting and also existing processes are failing.

  • Hi Lokesh,

    While we tried to resolve the issue, we found that the file path would be wrong in your case. You should include the '\' to denote the parent folder or you can include any folder location here. If you still have the issue, please forward the steps to reproduce with inputs.

  • can you please reply , how we can resolve this above issue, i am using send file over SFTP smart service, and after version updation to 2.0.0, it is failing

  • while using the latest version 2.0.0  for this plugin, my existing process is getting failed with the error message ---Error copying the Appian document to the remote server. See the application server log for more details. Error Message: No such file or directory and this working as expected on the 1.7.0 version.
    kindly, lets us know, how to resolve this kind of issue.

  • It seems like there is an invalid filename. What are the sftpServerFilePath and documentName parameters you are passing in?

    Are you perhaps trying to pull a file that doesn't have an extension?

  • I'm also running into same issue 

    2020-10-12 17:52:03,309 [Appian Work Item - 10843 - execution01 : UnattendedJavaActivityRequest] ERROR com.appiancorp.process.engine.UnattendedJavaActivityRequest - An error occurred while executing activity: id=268465328, classname=com.appian.ps.plugins.sftpsmartservices.ReceiveFileOverSFTPBasic
    java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(String.java:1927)
    at com.appian.ps.plugins.sftpsmartservices.ReceiveFileOverSFTPBasic.run(ReceiveFileOverSFTPBasic.java:103)
    at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:131)
    at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:52)
    at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:131)
    at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:125)
    at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:25)
    at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:125)
    at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:83)
    at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:55)
    at com.appiancorp.process.engine.ContinuationRequest.executeOuter(ContinuationRequest.java:71)
    at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:100)
    at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36)
    at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:93)
    at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:239)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

    Code at 103: ReceiveFileOverSFTPBasic

    if (documentName.lastIndexOf('.') == -1)
    documentName += remote_filename.substring(remote_filename
    .lastIndexOf('.'));

  • I see that there is a single Send File over FTP, but there doesn't seem to be a smart service for sending a single file over FTPS.  This would most likely have to be an enhancement to the plugin.

  • Can you include the stack trace from the tomcat-stdout.log to get more information on what is throwing this exception?

  • Is your variable that you are saving the output of the rule into a multiple? That smart service returns two arrays files[] and directories[]