Hi,
I am looking into the plugin community.appian.com/.../sftp-smart-services to see if it is a viable option to send flat files (.csv files) from Appian Cloud to an on-premise location. The plugin has a "Remote File Path" parameter that it takes. Can this be used for our use case ?
Thanks,
Raj
Discussion posts and replies are publicly visible
If your remote location is a S/FTP server, or a server supporting SCP, then yes that plugin should work. The on-premise location would have to be available over the internet or over an Appian Cloud VPN.
Thank you Justin. This is helpful.
Hello Justin,
I have been trying this out with my personal computer (over the internet and running SSH - so SFTP enabled as can also be confirmed via sftp command from command prompt). My personal computer is serving as an on-premise location that is available over the internet. The Appian Cloud environmnent is our harbourvest development server harbourvestdev.appiancloud.com. I am trying to use the "Send File Over SFTP - Basic Credentials" but it does not work. The logs indicate
============================================================================
2019-10-14 21:57:51,891 [Appian Work Item - 42626 - execution00 : UnattendedJavaActivityRequest] ERROR com.appiancorp.process.engine.UnattendedJavaActivityRequest - An error occurred while executing activity: id=3922, classname=com.appian.ps.plugins.sftpsmartservices.SendFileOverSFTPBasiccom.appiancorp.suiteapi.process.exceptions.SmartServiceException: userMsg[error.sftp_conn=Error establishing SFTP connection. Confirm your hostname, username and password. See application server log for more details. Error Message: java.net.ConnectException: Connection timed out (Connection timed out)] at com.appiancorp.suiteapi.process.exceptions.SmartServiceException$Builder.build(SmartServiceException.java:145) at com.appian.ps.plugins.sftpsmartservices.SendFileOverSFTPBasic.createException(Unknown Source) at com.appian.ps.plugins.sftpsmartservices.SendFileOverSFTPBasic.run(Unknown Source) 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:35) at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:84) 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)Caused by: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection timed out (Connection timed out) at com.jcraft.jsch.Util.createSocket(Util.java:349) at com.jcraft.jsch.Session.connect(Session.java:215) at com.jcraft.jsch.Session.connect(Session.java:183) ... 17 moreCaused by: java.net.ConnectException: Connection timed out (Connection timed out) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at com.jcraft.jsch.Util.createSocket(Util.java:343)
For hostname I am using the IP address of my machine. I also do not have any firewall running.
Please advise. I understood your earlier comment to mean that the on-premise location can just be available over the internet also which is the case here.
Hi, Are you able to identify the issue for connection timeout while having a SFTP connection?