Core Server and Clients

Topics:

This section provides detailed descriptions of new features for the core server and clients.

Keeping Browser Cache Files Separate for Each Release

The Web Console browser cache files for each server build will be stored separately. This means that multiple Web Console sessions using the same browser will not impact each other. Therefore, you will not have to clear the browser cache to switch between multiple servers using the same machine and browser.

To implement separate cache files, each Web Console URL will automatically be invoked using a unique identifier. For example, if you enter the following URL:

http://mypcname:8021/wc/bcstart.html

The URL will automatically be issued with a unique identifier. For example:

http://mypcname:8021/A4643588A8A7C435/wc/bcstart.html

All other URLs generated by web connections to the server will use the same identification string.

Returning a JSON Answer Set Using the SOAP Listener

Using the Simple Object Access Protocol (SOAP) Listener, you can run report requests or DataMigrator flows using RESTful Web Service calls. The answer set is returned in JSON format.

The following steps describe how to configure and use the SOAP Listener to make the web service calls and return the answer set.

  1. First, configure the SOAP Listener.

    On the Workspace tab, right-click the Special Services and Listeners folder, point to New, and then click SOAP.

    The Listener Configuration page opens, as shown in the following image.

  2. Enter the SOAP Listener port and click Save and Restart Listener.
  3. Place the procedure to run in an application directory in the APP PATH of the Reporting Server.

    Assuming you created the WebFOCUS Retail tutorial in the ibisamp application, the following FOCEXEC can be created in ibisamp to demonstrate the JSON Answer Set feature. If you created the WebFOCUS Retail tutorial in another application name, substitute application names where applicable.

    TABLE FILE WF_RETAIL_LITE
    SUM
      COGS_US
    BY BRAND
    BY PRODUCT_CATEGORY
    BY PRODUCT_SUBCATEG
    IF PRODUCT_CATEGORY EQ '&CATEGORY'
    END

    Note that the request has an IF test that requires a value for the variable &CATEGORY. You will supply the parameter name and value as part of the URL.

  4. In a browser window, enter a URL in the following form.
    http://host:port/rest/app/proc?param=value ...

    where:

    host

    Is the Reporting Server host name.

    port

    Is the SOAP Listener port number.

    app

    Is the application that contains the procedure. This application must be on the APP PATH of the Reporting Server.

    proc

    Is the procedure name and extension.

    param

    Is a parameter name.

    value

    Is the parameter value.

For example, to run the retail_ws.fex procedure with the parameter &CATEGORY=Accessories, in the ibisamp application, on the host localhost, enter the following URL and press Enter.

http://localhost:8050/rest/ibisamp/retail_ws.fex?CATEGORY=Accessories

The following answer set is returned in JSON format. In this answer set, after the message header information and report statistics, each row is listed in an array named rows. The array of all rows is enclosed in square brackets ([ ]). Each row is enclosed in curly braces ({ }) and separated from the other rows by a comma (,). The rows consist of fieldname:value pairs separated by commas. Alphanumeric values are enclosed in double quotation marks (").

{ "_ibi_Report" : {"Messages" : [ "0 NUMBER OF RECORDS IN TABLE=       10  LINES=     10"],
"rows" : [
 { "BRAND" : "Audio Technica" , "PRODUCT_CATEGORY" : "Accessories" , 
  "PRODUCT_SUBCATEG" : "Headphones" , "COGS_US" :             38000.00}, 
 { "BRAND" : "Denon" , "PRODUCT_CATEGORY" : "Accessories" ,
  "PRODUCT_SUBCATEG" : "Headphones" , "COGS_US" :             25970.00}, 
 { "BRAND" : "Grado" , "PRODUCT_CATEGORY" : "Accessories" ,
  "PRODUCT_SUBCATEG" : "Headphones" , "COGS_US" :             21930.00}, 
 { "BRAND" : "Logitech" , "PRODUCT_CATEGORY" : "Accessories" ,
  "PRODUCT_SUBCATEG" : "Universal Remote Controls" , "COGS_US" :             61432.00}, 
 { "BRAND" : "Niles Audio" , "PRODUCT_CATEGORY" : "Accessories" ,
  "PRODUCT_SUBCATEG" : "Universal Remote Controls" , "COGS_US" :             73547.00}, 
 { "BRAND" : "Pioneer" , "PRODUCT_CATEGORY" : "Accessories" ,
  "PRODUCT_SUBCATEG" : "Headphones" , "COGS_US" :             16720.00}, 
 { "BRAND" : "Samsung" , "PRODUCT_CATEGORY" : "Accessories" ,
  "PRODUCT_SUBCATEG" : "Charger" , "COGS_US" :              5405.00}, 
 { "BRAND" : "Sennheiser" , "PRODUCT_CATEGORY" : "Accessories" ,
  "PRODUCT_SUBCATEG" : "Headphones" , "COGS_US" :             78113.00}, 
 { "BRAND" : "Sony" , "PRODUCT_CATEGORY" : "Accessories" ,
  "PRODUCT_SUBCATEG" : "Charger" , "COGS_US" :              3168.00}, 
 { "BRAND" : "Sony" , "PRODUCT_CATEGORY" : "Accessories" ,
  "PRODUCT_SUBCATEG" : "Headphones" , "COGS_US" :             18592.00} 
         ] 
} 
}

Automatic Java Lookup on Windows

The server has an automatic Java lookup feature on Windows to enable the Java Listener to start without any direct server configuration steps.

At server startup time, if no explicit JAVA_HOME or JDK_HOME variables are set either at the system environment level or in the server environment configuration file (EDACONF\bin\edaenv.cfg), the Windows registry will be searched for an applicable Java JDK or JRE release (currently 1.7 or higher) and the appropriate variable will be set.

This feature assumes that a Java installation has been done using the Oracle Windows JRE or JDK installation tool (which sets the Windows registry) prior to running the server (but the server itself requires no configuration).

EDAMAIL Support for Carbon Copy and Blind Carbon Copy

The EDAMAIL command now supports carbon copy (cc) and blind carbon copy (bcc) options.

The syntax is:

EDAMAIL to=tadrlist1, 	 
[toaddr=tadrlist2], 	 
[cc=cadrlist2,] 	 
[ccaddr=cadrlist2,] 	 
[bccaddr=bcadrlist,] 	 
[from=fadr1], 	 
[fromaddr=fadr2], 	 
[replyto=radr], 	 
[importance={low|normal|high}], 	 
[subject=string], 	 
[flags={a|A|i}], 	 
[filetype=extension], 	 
[filename=file], 	 
[message=bodymessage]

where:

to=tadr1

Is the email recipient displayed by the user email client (and used in an email client Reply To All, if a toaddr header is not supplied). Multiple addresses are allowed, using a semi-colon as the address separator. A comma (,) is also allowed as a separator, if the overall address string is enclosed in single quotation marks (').

If the to parameter is used in conjunction with toaddr, the value of to may be an arbitrary string, such as "Group Managers", which most email clients will display as a pseudo title in the To field, without displaying the actual addresses used in the toaddr parameter. A forced blank can be supped for the To field by using to="".

toaddr=tadrlist2

Is the email recipient. If not supplied, SMTP servers will use the to header. Email clients will use the toaddr value in an email client Reply To All. Multiple addresses are allowed, using a semi-colon as the address separator. A comma (,) is also allowed as a separator, if the overall address string is enclosed in single quotation marks (').

cc=cadrlist1

Is the carbon copy recipient displayed by the user email client (and used in an email client Reply To All, if a ccaddr header is not supplied). Multiple addresses are allowed, using a semi-colon as the address separator. A comma (,) is also allowed as a separator, if the overall address string is enclosed in single quotation marks (').

If the cc parameter is used in conjunction with ccaddr, the value of cc may be an arbitrary string, such as "Group Managers", which most email clients will display as a pseudo title in the Cc field, without displaying the actual addresses used in the ccaddr parameter. A forced blank can be supped for the Cc field by using to="".

ccaddr=cadrlist2

Is the carbon copy recipient. If not supplied, SMTP servers will use the cc header. Email clients will use the ccaddr value in an email client Reply To All. Multiple addresses are allowed, using a semi-colon as the address separator. A comma (,) is also allowed as a separator, if the overall address string is enclosed in single quotation marks (').

bccaddr=bcadrlist

Is the blind carbon copy recipient. Email clients will use the bccaddr value in an email client Reply To All. Multiple addresses are allowed, using a semi-colon as the address separator. A comma (,) is also allowed as a separator, if the overall address string is enclosed in single quotation marks (').

from=fadr1

Is the email sender displayed by the email client (and used in an email client Reply, unless overridden by a fromaddr or Reply To header). If the from parameter is used in conjunction with fromaddr, the from value may be an arbitrary string, such as The Boss, which most email clients will display as a pseudo title in the From field, and will not display the actual address used in the fromaddr parameter.

fromaddr=fadr2

Is the email sender. If not supplied, most email clients will use the From header when doing a reply.

replyto=radr

Is the email sender. If not supplied, most email clients will use the fromaddr or from parameter value.

importance={low|normal|high}

Is the email importance level for email clients that support importance flags. Valid values are high, normal, and low.

subject=string

Is the email subject string. If the subject string contains a comma (,), the string must be enclosed in quotation marks (').

flags=value

If set to a or A, it indicates that a file specified with the filename and filetype parameters is to be sent as an attachment. If set to i, the file is included as the body of the email.

filetype=extension

Defines the data file type for an email message body that uses a file as an attachment. Any application file type or ddname is valid, including MASTER, FOCEXEC, HTML, TEXT, and so on. Leave the parameter out to use the inline email message body feature.

message=bodymessage

Is the inline data stream containing the email message body. If used, it must be the last parameter in the EDAMAIL command. To use the inline data stream feature, the filetype and filename parameters cannot be supplied. The data stream may also be spread onto multiple lines if EDAMAIL is used with the EX -LINES {n|*} feature.

If an inline data stream message body is spread across multiple lines in the procedure, the resulting email is a single line of output. Multi-line message bodies are respected when the message body from a file option is used.

Example: Mailing an HTML File as a Message Body Using Carbon Copy and Blind Carbon Copy

TABLE FILE file1
PRINT A B C
ON TABLE HOLD AS MYFILE FORMAT HTML
END
EX EDAMAIL to=Managers,toaddr=user1@corp1.com;user2@corp1.com,
cc=Subordinates,ccaddr=user3@corp1.com,bccaddr=boss@corp1.com,
from=support1@corp1.com,subject=File1 Report, filetype=HTML,
filename=MYFILE

WebFOCUS

Feedback