15-Mar-2022 =========================== WPS ANALYTICS RELEASE NOTES =========================== Version 4.4.1-GA-release (4.4.1.0.5305-GA-release) Information about important fixes and enhancements delivered in the latest version of WPS Analytics. In this document, text shown between paired angle brackets is variable, and can be replaced by required text. For example, indicates that you should specify the required path-name to a device. ======================================================================= CONTENTS ======================================================================= - What's new - Known issues - Upgrade notes - Deprecated Functionality - Closed issues - Getting support ======================================================================= WHAT'S NEW ======================================================================= General ======= - WPS version 4.4 onwards is available for purchase under Altair Units using Altair Licensing. - WPS Analytics now distributes and uses the OpenJDK Java Runtime Environment version 11. - The SASHELP.SLKWXL catalog can now be specified to either the CMPLIB system option or the FCMP procedure INLIB option and the following functions invoked in a program: - ACCRINT_SLK - ACCRINTM_SLK - AMORDEGRC_SLK - AMORLINC_SLK - AVEDEV_SLK - CEILING_SLK - COUPDAYBS_SLK - COUPDAYSNC_SLK - COUPNCD_SLK - COUPNUM_SLK - COUPPCD_SLK - DATDIF4_SLK - DB_SLK - DISC_SLK - DOLLARDE_SLK - DOLLARFR_SLK - DURATION_SLK - EFFECT_SLK - EVEN_SLK - FACTDOUBLE_SLK - FLOOR_SLK - MDURATION_SLK - ODD_SLK - ODDFPRICE_SLK - ODDFYIELD_SLK - ODDLPRICE_SLK - ODDLYIELD_SLK - PRICE_SLK - PRICEDISC_SLK - PRICEMAT_SLK - PRODUCT_SLK - RECEIVED_SLK - TBILLEQ_SLK - TBILLPRICE_SLK - TBILLYIELD_SLK - VARP_SLK - YIELD_SLK - YIELDDISC_SLK - YIELDMAT_SLK Workbench ========= Workflow -------- - This release includes the following new features: - The Hub group now includes: - The Program Inputs block. - The Program Results block. - The Import group now includes: - The JSON Import block. - The Parameter Import block. - The Data Preparation group now includes: - The Deduplicate block. - The Text Transform block. - Data Preparation group blocks that contain a single Input port can now be inserted between two connected blocks in an existing Workflow. - The Hub API Executions view is introduced. - The Database Explorer view can now be used to connect to Google BigQuery, Teradata, and Hadoop database servers. - The MLP block. A seed value for the random number generator can now be specified to initialize weights when training the model. - When invoking WPS Hub programs, a file or URL input stream can now be specified as a parameter value. - If the Promptable setting is specified for a Workflow parameter, the value of the parameter can be entered or modified in the Configure Parameter dialog box during Workflow execution. - The following Workflow parameter types are now supported in the Filter block, Mutate block, and Query block: - Choice - Date - Datetime - Float - Integer - Password - Time - Workflow parameters can be used as Hub parameters in executable deployment services programs. - Variables from a dataset can now be grouped together and stored as a variable list: - Variable lists are created in the Create variable list dialog box from the Data Profiler. - To use a variable list, click Apply variable lists in the variable selection panel in the supported Workflow blocks. - The Workflow Settings tab can now be used to: - Import a variable list into the Workflow. - Export, modify or delete an existing variable list from the Workflow. - This release includes enhancements to the following features: - The Chart Builder block can now draw line plots and bar charts on the same axis. - The Hub Program block is superseded by the Program Inputs and Program Results blocks for defining input variables to, and results from, a deployment services program.. - The Transpose block. - Can now be used for columns-to-rows or rows-to-columns transposition. System options ============== - System options for which the state can be set by prepending NO, such as CLEANUP/NOCLEANUP, can now be set by specifying YES and NO, ON and OFF, or TRUE and FALSE. For example: - CLEANUP, CLEANUP=YES, CLEANUP=ON are equivalent. - NOCLEANUP, CLEANUP=NO, and CLEANUP=OFF are equivalent. - The following system options have been added at this release: - CARDSLEADINGTABSTOPS - CONFIGFONTMVS - FILECONTAINERCACHESIZE - MASKDBCONNECTIONSTRINGS - MFILE - NOFLE - ODSSTYLE - ORACLEZEROPRECISIONNUMFMT - PAGESOUTPUT - SCANDEFAULTMODIFIERS - SFTPCMDENCODING - SKIPCARRIAGECONTROLSINSTRINGS - SQLIPASSTHRUINGENMAXRECS - STSUFFIX - WPSCOMABORT - XCMD Global statements ================= - The following global statement has been enhanced at this release: - FILENAME DISK now supports the following option: - IGNOREDOSEOF - FILENAME EMAIL now supports the following ATTACHMENT option: - INLINED - FILENAME SFTP now supports the following options: - CMD - CMDENCODING - CMDFILE - LSL - FILENAME ZIP now supports the following options: - DEBUG - GZIP Formats and informats ===================== - The following informats have been added at this release: - B8601DJ - ENGDFDE - STIMER - WEEKU - WEEKV - WEEKW Output Delivery System ====================== - The following destination has been added at this release: - ODS POWERPOINT - The ODSLIST and ODSTEXT procedures now support: - The DATA option of the procedure statement. - The FORMAT option of the ITEM and P statements. - The CELLSTYLE statement. - The TRANSLATE statement. - The ODS EXCEL destination now supports: - The GROUP_ROWS option. - The GROUP_ROWS_COLLAPSE option. DATA step ========= - The following functions have been added at this release: - KUPDATES - KCOMPOSE - KDECOMPOSE - KDECOMPOSEC - KISCOMPOSED - KISDECOMPOSED - KISDECOMPOSEDC - LOGISTIC - MONOTONIC - RENAME - WAKEUP General procedures ================== - The following general procedures have been enhanced at this release: - COMPARE. Now supports the QUOTELABEL option. - CONTENTS. Now supports the ORDER option. - EXPORT. Now supports the DBLABEL option. - FORMAT. Now supports the NOPRINT option. - FREQ. The TABLES statement now supports the BINOMIAL option. - HTTP. - Now supports the OAUTH_BEARER option. - Now supports the DEBUG statement. - IMPORT. Now supports the ENDCOL, ENDROW, STARTCOL, and STARTROW statements. - PRINT. The PROC PRINT statement now supports the GRAND_LABEL and NOSUMLABEL options. - REPORT. Now supports the SPANROWS option. - TABULATE. The TABLE statement now supports the NOCELLMERGE option. Macros ====== - The following automatic macro variables have been added at this release: - SYS_PROCHTTP_STATUS_CODE - SYS_PROCHTTP_STATUS_PHRASE - SYSODSPATH Graphing procedures =================== - The following graphing procedures have been enhanced at this release: - SGPANEL. Now supports the TEXT statement. - SGPLOT. Now supports the TEXT, XAXISTABLE, and YAXISTABLE statements. Statistical procedures ====================== - The following procedures have been added at this release: - MCMC - ORTHOREG - The following statistical procedures have been enhanced at this release: - LOGISTIC. Now supports the UNITS statement. - STDIZE. Now supports the OPREFIX and SPREFIX options. Operational Research procedures =============================== - The following procedure has been added at this release: - OPTLP Time Series procedures ====================== - The following procedures have been added at this release: - VARMAX - MDC Data engines ============ The following data engine has been enhanced at this release. Google BigQuery --------------- - The following options are now supported using the ODBC data engine: - BULKLOAD - BL_DATAFILE - BL_DEFAULT_DIR - BL_DELETE_DATAFILE DB2 --- - Now supports the DEFER option. - Now supports the DBSASTYPE dataset option. MARIADB ------- - Now supports the DEFER option. - Now supports the DBSASTYPE dataset option. MYSQL ----- - Now supports the DEFER option. - Now supports the DBSASTYPE dataset option. NETEZZA ------- - Now supports the DEFER option. ODBC ------- - Now supports the DEFER option. - Now supports the DBSASTYPE dataset option. ORACLE ------- - Now supports the DBSASTYPE dataset option. POSTGRESQLM ----------- - Now supports the DEFER option. SNOWFLAKE -------- - The following options are now supported: - AUTHENTICATOR - AUTHENTICATOR_URL - BL_LOAD_TRIM_SPACE - BL_LOAD_OVERWRITE_STAGE_FILE - DEFER - PRIVATE_KEY_PATH - PRIVATE_KEY_PASSPHRASE - Now supports the DBSASTYPE dataset option. SQLSERVER --------- - Now supports the DEFER option. - Now supports the DBSASTYPE dataset option. SYBASEIQ -------- - Now supports the DEFER option. - Now supports the DBSASTYPE dataset option. TERADATA -------- - Now supports the FBUFSIZE dataset option. ======================================================================= WPS Analytics known issues and getting support ======================================================================= This section contains information about known issues in this version of WPS Analytics and how to get technical support. ----------------------------------------------------------------------- Critical known issues ----------------------------------------------------------------------- None ----------------------------------------------------------------------- Known issues ----------------------------------------------------------------------- None ======================================================================= Upgrade Notes ======================================================================= The following change affects the use of WPS Analytics on Microsoft Windows and Linux platforms. - eGit is no longer supplied with WPS Workbench and, if required, must now be separately installed using the Install Software manager. 32-bit WPS Analytics for Microsoft Windows ------------------------------------------ - Support for this architecture has been removed from this version of WPS Analytics. - Upgrade to the 64-bit architecture version to continue using WPS Analytics on Microsoft Windows. - An upgrade to the 64-bit version of third-party software might be required to continue using that software with WPS Analytics. - The 64-bit version of WPS Analytics for Microsoft Windows can be downloaded from the World Programming website. 32-bit WPS Analytics for Linux ------------------------------ - Support for this architecture has been removed from this version of WPS Analytics. - Upgrade to the 64-bit architecture version to continue using WPS Analytics on supported Linux platforms. - An upgrade to the 64-bit version of third-party software might be required to continue using that software with WPS Analytics. - The 64-bit version of WPS Analytics for Linux can be downloaded from the World Programming website. The following changes affect the operation of the SAS language elements, and might cause your programs to stop working with errors. You should make the appropriate changes to your programs if they contain the language elements described. - An array specified in a SAS language program can no longer have an array name of PUT or PUTLOG. If either keyword is used as an array name, the name and any references to the array by name must be changed to a different name before running your program. DATA step function - KUPDATEB ----------------------------- - If the function is invoked and all arguments are specified: KUPDATEB (string, position, n, replacement) The n argument must now be numeric. Specifying a string argument to n in this case will cause the function to fail. ======================================================================= Deprecated Functionality ======================================================================= None ======================================================================= Closed Issues ======================================================================= General ======= - Dataset variable names are now converted to single-byte encodings. - The VALIDVARNAME system option now works as expected in DATA step statements. - WPS Analytics now works as expected with the third-party ZeeDrive product. - Duplicate error messages created when procedures are invoked are now only reported once in the log. - Lists are no longer supported in procedure statements. - FILENAME DDEX. Date, time and datetime values formatted using the DATE_FORMAT option now work as expected. - FILENAME statements, LRECL option. The record length specified must now between 1 byte and 1e8 bytes inclusive. This applies to the CATALOG, FTP, HADOOP, HTTP, PIPE, SFTP and SOCKET filename statements. - INPUT statement. When formatted input is used, now correctly uses a string informat when writing the value into a temporary array element. - LIBNAME XML. Relative path locations are now supported in the PATH element for a COLUMN specified in an XMLMAP file. - Specifying multiple LIBNAME JSON statements referencing the same JSON file now only generates a single dataset. - The content of a string literal is no longer output to the log if that string literal exceeds 262 characters and the QUOTELENMAX system option is specified. - The IN operator now functions as expected when comparing a string to a list of strings that might contain characters encoded with bytes of 0x80 or above. - WPS Analytics now supports Python version 3.10 - WPS Analytics has been updated to use Apache Log4j version 2.17.1 - A new configuration file location has been added and is available to all users of WPS Analytics on Windows platforms. The file is processed when WPS Analytics is invoked on the command line. The file location is 'C:\ProgramData\World Programming\WPS\4\wps.cfg'. - The CD option of FILENAME SFTP now correctly handles both filenames with spaces, and an empty string. Core ==== System options -------------- - The NOXCMD option now prevents the use of a batch file and executable commands with the FILENAME SFTP statement. - The FULLSTIMER option now outputs the timestamp value on Windows platforms. Formats and informats --------------------- - WEEKU, WEEKV, and WEEKW formats now apply format to dates at the beginning and end of the range allowable in WPS. - WEEKU, WEEKV, and WEEKW formats now add trailing spaces to fill the specified width. - The W.d and Z formats now display small negative values as -0 (minus zero) rather than 0 (zero). - The B8601DT informat now supports a minimum width of 15. DATA step ========= General ------- - The MERGE statement now accurately merges datasets where the dataset names are specified using wildcard characters. Functions and CALL routines --------------------------- - ANYXXX and NOTXXX group of functions now accurately processes whitespace characters. - CALL IS8601_CONVERT routine. When invoked in a procedure that allows function calls, the argument specified to contain the returned value must now be a variable rather than a constant value. - GETOPTION function. Can now be used to retrieve password options. - HTMLDECODE function: - Now accurately decodes multibyte character strings and numeric entities. - Now decodes & copy; to (c), ® to (r), and ™ to TM - HTMLENCODE function: - Now encodes (c) to ©, (r) to ® and TM to ™ - Now validates the parameter passed to the OPTION argument when using multiple-byte character sets. - Now accurately encodes multibyte character strings and numeric entities. - NOTNAME and NOTFIRST functions: Now only accept the characters A-Z and a-z in v7 identifiers. - The LOGPDF, LOGCDF and LOGSDF logistic distribution functions now return the correct value rather than a missing value if the result is less than CONSTANT ('LOGSMALL') - The LOWER function is now supported, and is an alias of the LOWCASE function. - The UPPER function is now supported, and is an alias of the UPCASE function. - The LAG0(value) function now always returns the specified value. - The DIF0(value) function now always returns 0 (zero). - Multibyte functions: - KCOMPARE function: - Now pads the shorter of the two strings being compared. - If the compared strings are different, now returns the position of the first differing character rather than 1. - Now accurately returns when the comparison strings contain characters from the supplementary plane. - KCOMPRESS function: - Now accurately processes whitespace characters. - Now accurately removes the specified characters when the source string contains multibyte characters from the supplementary plane. - KINDEX function. Now accurately returns the first position of a specified character when the source string contains multibyte characters from the supplementary plane. - KINDEXC function. Now accurately returns the first position of a specified character when the source string contains multibyte characters from the supplementary plane. - KLEFT function: - Now removes any leading Shift Out (SO) and Shift In (SI) characters. - Now adds the correct number of trailing spaces to a string containing both leading whitespace and one or more characters with Unicode code points higher than U+FFFF. - Now accurately processes whitespace characters. - KLENGTH function: - Now returns the position of the last character that is not a literal space. - Now accurately identifies the source string length when the string contains multibyte characters from the supplementary plane. - KRIGHT function. Now accurately processes whitespace characters. - The KSUBSTR function: - If the length specified to the function is 0 (zero) or less, a note is now written to the log and the whole of the source string from the start point is returned. - Now accurately returns substrings where the source string contains characters from the supplementary plane. - KSCAN function: - Now accurately returns text where the source string contains characters from the supplementary plane. - The tilde (~) character is no longer supported as a default character delimiter. - KSUBSTRB function. The specified position and length are now moved to a character boundary if the values would truncate multibyte characters. - KTRIM function. Now accurately processes whitespace characters. - KTRANSLATE function: - Now fails and writes a warning to the log if a to-string is specified without specifying a from-string. - Now accurately translates strings that contain multibyte characters from the supplementary plane. - KTRUNCATE. Now supports a start-position argument that identifies the point in the string from which to truncate. - KUPDATE function: - Now replaces all content from the specified start position if the length argument is not supplied. - Now accurately supports length argument. - Now accurately counts the number of characters in multibyte character strings. - Now returns a Missing value if a negative value is specified to the length argument. - KUPDATEB function: - Now replaces all content from the specified start position if the length argument is not supplied. - Now has a 200 character default length for the returned string. - KVERIFY function: Now accurately identifies the position of the searched for character when the source string contains multibyte characters from the supplementary plane. - Distribution functions: - Geometric distribution functions now return the accurate value for p=1. - RAND("NORMAL"). Now validates that the standard deviation is positive. - RAND("LOGNORMAL"). Now supports the log-scale and shape arguments. - RAND("NEGBINOMIAL", 0.5, 1e20). No longer causes an infinite loop - RAND("GEOMETRIC") will now return integers. Macros ====== - Macro names for statement style macros are now limited to eight characters. - Infinite recursion checks are now improved when macros are expanded and invoked. - Comments can now be used in macro code. - Macro statements now function as expected in name and date literals. - The %SYSFUNC macro function now correctly undoes macro quoting sequences in the invoked function arguments that contain hex, data, name, time, datetime, and bitstring values. - The %SYSEVALF function now correctly converts strings longer than 32 characters to numeric values. Data engines ============ POSTGRESQL ---------- - When creating a column from a variable with the W.d format, a DECIMAL(w,0) column is created if d is 0. Otherwise, a DECIMAL(w-1,d) column is created. SQLSERVER --------- - Now correctly imports columns containing characters that map to UTF-8 encodings greater than 2 bytes long. - The sqlsvr32.dll driver for SQL Server connections using either LIBNAME SQLSRVER or LIBNAME ODBC is no longer supported. To connect to an SQL Server database now requires an ODBC version 3.x compatible driver. SYBASEIQ -------- - The BL_DATAFILE option now works as expected. TERADATA -------- - Bulk-loading functionality using TPT now loads TIMESTAMP and TIME fields. ODS === EXCEL ----- - Sub-cell rich text formatting can now be applied within a cell. - Column spanning now works as expected. - Formatting gaps are now removed from headers and footers in a sheet. - The EMBED_TITLES_ONCE and EMBED_FOOTNOTES_ONCE options now work as expected. - Now converts leading tabs in variables to cell indents if the ASIS option is specified. - BY-variable substitution in now supported in the SHEET_LABEL and SHEET_NAME options when SHEET_INTERVAL=BYGROUP is specified. - User-defined formats are now more accurately converted on output. - Specified styles can now be changed between invocations. - Non-numeric values now have the GENERAL format applied rather than TEXT. - Auto-filter options are no longer applied to empty columns when multiple tables appear on the same sheet. PDF --- - Output had been updated to prevent the page number and titles from being overwritten by batch output. General Procedures ================== CONTENTS -------- - The Centiles option of the PROC CONTENTS statement now works as expected. COPY ---- - Specifying OBS=0 will now reset the library members. FCMP ---- - User-defined functions and call routine names are now limited to using Roman letters, Arabic numerals and underscores. - The READ_ARRAY function now creates an array when a single variable is specified. FORMAT ------ - An error is now written to the log when the content of a specified label cannot be converted to a numeric value. FREQ ---- - WPS Log output for the SCOROUT option is now suppressed when scoring statistics are not specified. - The LABEL statement now requires the following syntax: LABEL VarName = label; An error occurs if no equals sign is specified. - Now accurately processes the ALL option for the TABLES statement. HTTP ---- - Now downloads and processes files where the content length might be greater than the available memory resource. - Now always attaches body text, even if empty, to the request when submitting a POST request. MEANS ----- - Gridded table format now works as expected for HTML, MSOFFICE2K and PDF destinations. PDSCOPY ------- - Accurate record counts are now written into the ISPF statistics when copying PDS and PDSE members. REPORT ------ - The PROC REPORT statement now supports the CONTENTS option. SQL --- - Column labels containing quotation marks are now supported when specifying a view using the CREATE VIEW statement. - The VALIDVARNAME system option is now works as expected. - Implicit-passthrough IN clauses now supports sort-merge joins. - When using implicit passthrough, trailing spaces are now removed from strings to enable the target database to perform comparisons between string literals and variable-length character fields. TABULATE -------- - Now creates header columns for each sub-table when multiple tables are written to output. TEMPLATE -------- - The DEFINE TABLE statement now supports multibyte labels as column headers. Graphing procedures =================== General ------- - Errors in the kernel density estimates are now accurately detected when all the values in a kernel density plot are the same. - Graph tick lines are now integer values. Machine Learning procedures =========================== OPTIMALBIN ---------- - Now outputs a predictive power table. - Now allows multibyte variable names and multibyte data in the input dataset. - A separate 'missings' bin (where the specified binning variable contains missing values) is now only included in calculations if the bin is not empty. MLP --- - No longer fails if the TRAININGSETORDERSEED sub-option of the MODEL statement is set to zero. Statistical procedures ====================== CLUSTER ------- - The format associated with ID variable is now used when constructing a name for an observation with missing values in the OUTTREE dataset. GENMOD ------ - Programming statements that result in an error now return a missing value. - Errors generated by functions and other Statements are now handled as expected. GLIMMIX ------- - Now works as expected when fitting a null model. - The memory usage during computation of asymptotic covariance matrix of the covariance parameters has been reduced. - Specifying the LSMEANS statement to calculate least square mean values now generates more accurate results when WEIGHT or the FREQ variable contains missing values. GLM --- - Specifying the LSMEANS statement to calculate least square mean values now generates more accurate results when WEIGHT or the FREQ variable contains missing values. - Specifying the MANOVA statement now more accurately calculates partial correlation p-values. - Multivariate analysis results are not displayed when the hypothesis test matrix has zero degrees of freedom. LOGISTIC -------- - The ODS output table Logistic.Type3 is now renamed to Logistic.ModelANOVA - Now ensures the final covariance matrix is positive. - The Stat.Logistic.ModelBuildingSummary table template now translates MISSING__ values to a blank in printed output. - All variables in the dataset associated with the SCORE statement are now applied to each by-group model when this dataset does not contain any of the by-group variables. - The OUPUT option now writes out additional rows that specify the exact set of levels being modelled. This issue only affects logistic models that use a GLM effect encoding and contains effects of the form A*B. MEANS ----- - Specifying the OUTPUT statement now writes the correct labels for Q1 and Q3 statistical options. MIXED ----- - The memory usage during computation of asymptotic covariance matrix has been reduced. - The DDFM=SATTERTHWAITE option now functions as expected. - Specifying the LSMEANS statement to calculate least square mean values now generates more accurate results when WEIGHT or the FREQ variable contains missing values. NLIN ---- - CALL routines now function as expected when invoked in the procedure. NLMIXED ------- - Programming statements that result in an error now return a missing value. - Errors generated by functions and other Statements are now handled as expected. TREE ---- - Root nodes that have a zero frequency are now ignored when output clusters are computed for the output dataset. Workbench ========= General ------- - Changes made to files available through a remote server connection in File explorer can now be uploaded to the remote server. - The dataset viewer now supports case-sensitive and case-insensitive searching when filtering datasets. Workflow -------- - Dataset variable names can be converted to valid SAS language variable names during import. - The character parameter type has been renamed to the String parameter type. - Zip file artifacts are now only created when published to WPS Hub through the Hub block. - An executable deployment services program can now include workflows that contain the Database Import or Database Export blocks. z/OS ==== - An error is now generated when reading a concatenation with an unknown PDS member. - DATA step, FILE statement. When a model file reference is specified with the DCB option, the block size from the model file is now used rather than the default block size for the output device. - There is now improved detection of the use of EAV disks for WPD library storage on z/OS. EAV volumes are currently not supported for library storage. - The SOURCE procedure now correctly starts processing option keywords starting at column five. WPS Hub ======= - Triggers can now be set to run programs as another user, if the user impersonation feature is enabled. - The H2 database is recommended for evaluation purposes only. ======================================================================= Getting Support ======================================================================= How you access technical support for WPS Analytics software depends on how you purchased your software. All WPS Analytics users are able to use the user-to-user forum available at https://support.worldprogramming.com. You are welcome to use the forum to ask questions, post answers and share advice and best practices with other users. If you hold a commercial Standard Edition annual license for WPS Analytics, you are also able to use the technical support ticketing system available at: https://www.worldprogramming.com/my-account/support/tickets. (c) 2022 World Programming, an Altair Company