EFT Server Web Services

In EFT Server Enterprise edition, Web Services allows you to initiate EFT Server workflow from an external application such as an enterprise scheduler. The WebService interface follows the model of ASP.NET Web services, providing a page for the services definition document (WSDL) and an HTML form that can be used to test available service methods. Access to Web Services requires authentication with a COM-enabled Server Administrator account; without proper authentication and COM privileges, EFT Server returns a 401 Unauthorized HTTP error to the requestor.

An SSL certificate is required to use Web Services, because EFT Server sends the HTTP Web Services requests via HTTPS. EFT Server allows you to turn on Web Services without selecting the HTTPS check box, but it checks for an SSL certificate, because it will automatically redirect HTTP to HTTPS. Even when the HTTPS check box is not selected, Web Services requests are handled by the HTTPS engine (port 443 listener, by default), but other HTTPS requests will still get the 503 Service unavailable response.

Web Services is enabled in the Site's Listener Settings area. Refer to Enabling Web Services for the procedure for enabling Web Services on the Site.

Requests to any /WebService URL is logged to the text log and ARM database just as any other HTTP request. A request that does not match the /WebService/InvokeEventRule URL or that does not include the required parameters, results in a 400 Bad Request HTTP error.

The /WebService page displays a list of Web services available with EFT Server. This page is generated from an HTML page in EFT Server installation folder, in a subfolder called WebServices.

By default, the following files are installed in:

C:\Program Files\GlobalSCAPE\EFT\web\public\EFTClient\WebServices

icon_info.gif

EFT Server uses a template for the WSDL to construct the final WSDL. External tools can use the WSDL by pointing to the URL that deploys the WSDL file at

http://localhost/WebService/InvokeEventRule?wsdl, where "localhost" is the IP address, computer name, or DNS name that points to the EFT Server service that is hosting the web service.

How EFT Server Supports Web Services

EFT Server supports both POST and GET HTTP requests to "/WebService/InvokeEventRule" with two parameters "EventRuleName" and "EventParams" and triggers an Event Rule that is specified in the "EventName" as a synchronous operation. Web Services supports the REST invocation model, supporting both POST and GET methods for invocation.

  1. If an input is missing any of "EventRuleName" or "EventParams" it returns an HTTP 400 error.

  2. If both "EventRuleName" and "EventParams" are presented but:

    1. "EventRuleName" is wrong (no Event Rule exists with such name), it returns .xml with result code of -1.

    2. "EventParams" are incorrect (wrong variable names, too many, too few), EFT Server looks for Rule variables in the input and replaces those values with found ones. All additional variables are ignored. If a Rule variable is not found in URL then it will be set to "N/A." The result code in .xml will be the Event execution result code.

icon_info.gif

Requests to any /WebService URL is logged to the text log and ARM system just as any other HTTP request.

HTTP GET

The following is a sample HTTP GET request and response. Replace the placeholders with actual values.

GET /WebService/InvokeEventRule?EventRuleName=string&EventParams=string HTTP/1.1 Host: localhost

HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <int xmlns="http://mydomain/ ">int</int>

HTTP POST

The following is a sample HTTP POST request and response. Replace the placeholders with actual values.

POST /WebService/InvokeEventRule HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: length EventRuleName=string&EventParams=string

HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <int xmlns="http://mudomain/ ">int</int>

Web Services Timeout

The Web Services timeout is set to 60 seconds. You can change the timeout value with the following registry setting:

[HKEY_LOCAL_MACHINE\SOFTWARE\GlobalSCAPE Inc.\EFT Server 4.0]

"WebServiceTimeout"=dword:<value, in seconds>

If this value is absent, the default is 60 seconds. This value is checked for each Web Service connection, so the EFT Server Service does not need to be restarted for this setting to take effect.

Related Topic

Executing Event Rules Using Web Services

Enabling Web Services