14-Mar-2022 =========================== NOTES DE PUBLICATION DE WPS =========================== Version 4.1.10-GA-release (4.1.10.0.18452-GA-release) Informations à propos des correctifs et améliorations importantes apportées dans la nouvelle version de WPS. Dans ce document, le texte figurant entre chevrons est variable, et peut être remplacé par le texte requis. Par exemple, indique que vous devez spécifier le nom de chemin d'un répertoire ou dispositif. ======================================================================= SOMMAIRE ======================================================================= - Nouveautés - Problèmes connus - Notes de mise à niveau - Mises à jour non documentées - Problèmes résolus - Obtenir de l'aide ======================================================================= NOUVEAUTÉS ======================================================================= Workflows ========= Cette version apporte de nombreuses améliorations aux workflows pour accroître l'utilisabilité et les performances, notamment : - Vous pouvez désormais ajouter des commentaires à un workflow. - Vous pouvez créer des références à des sources de données locales. - Vous pouvez utiliser des références de source de données de base de données (libname) définies de manière centralisée et stockées dans WPS Hub. - L'analyse de corrélation a été ajoutée au Profileur de données. - Le bloc Jointure a été mis à jour et permet désormais de créer visuellement des connexions entre les ensembles de données en entrée. - Le bloc de filtre prend désormais en charge les filtres simples et avancés. - Les blocs de langage Python, R et SAS affichent désormais les ensembles de données en entrée et les variables disponibles dans la boîte de dialogue de configuration. - Il est désormais possible d'instancier plusieurs moteurs Workflow pour permettre d'exécuter plusieurs workflows en parallèle. - Le bloc d'arbre décisionnel comporte des onglets supplémentaires. L'onglet Table contient une représentation tabulaire de l'arbre. L'onglet Scoring contient la valeur de probabilité en sortie en langage SAS ou SQL. - Le bloc d'arbre décisionnel permet désormais d'exporter la représentation tabulaire de l'arbre décisionnel vers un fichier Excel (.xlsx). - Le bloc Importer un fichier texte permet désormais d'importer des données délimitées depuis des fichiers, quelle que soit leur extension. - Si vous copiez et collez plusieurs blocs à la fois, leurs positions relatives sont conservées. - Il est désormais possible d'exporter vers un fichier le code SAS sous-jacent créé lors de la création d'un workflow. - Il est désormais possible de sélectionner plusieurs variables dans un bloc Arbre décisionnel et de spécifier leur traitement. - Vous pouvez désormais dupliquer un bloc de workflow depuis son menu contextuel. - Dans le bloc Mutation, vous pouvez désormais faire glisser les fonctions et variables jusqu'à l'éditeur d'expressions. - Le bloc Analyser les modèles prend désormais en charge les variables continues. - Dans le bloc Base de données : - Vous pouvez désormais configurer SSL pour MySQL. - Diverses améliorations ont été apportées à la configuration ODBC afin de faciliter la configuration des bases de données. Cette version inclut de nouveaux blocs : - Pour importer : - Importer une base de données - Pour la préparation des données : - Agrégat - Regroupement par classe - Rang - Échantillonnage - Tri - Blocs de code : - SQL - Pour la formation des modèles : - Forêt d'arbres décisionnels - Régression linéaire - MLP - Pour exporter : - Créateur de graphiques - Exportation de fichier délimité - Exportation vers Excel Moteurs de données ================== Les moteurs de données suivants ont été améliorés pour cette version. Oracle ------ - Prend désormais en charge toutes les pages de code ORACLE. - A été modifié pour créer des tables temporaires GLOBAL. - L'option DBCOMMIT permet désormais d'effectuer plusieurs validations. ODBC ---- - DBINDEX est désormais pris en charge dans ACCESS ODBC (ACCESS 2013 et ACCESS 2016 uniquement). - Peut désormais se connecter à Amazon Athena Query Service. SQLSERVER --------- - Pour SQLSERVER multi-thread, l'option de génération SQL INSERT_SQL est désormais prise en charge. Fonctions d'étape DATA ====================== Les fonctions d'étape DATA suivantes ont été ajoutées dans cette version : - JARO - JAROWINKLER - NGRAM - SYSEXIST - EUROCURR Les fonctions d'étape DATA suivantes ont été améliorés pour cette version : - Toutes les fonctions formule de Wald fonction prennent désormais en charge l'option Lambda. Mises à jour d'ODS (système de livraison des sorties) ===================================================== - Le jeu de balises ExcelXP prend désormais en charge les options suivantes : - BLACKANDWHITE - CENTER_HORIZONTAL - EMBED_FOOTNOTES_ONCE - PAGES_FITHEIGHT - PAGES_FITWIDTH - La destination ODS EXCEL est désormais prise en charge pour les fichiers au format .xlsx. - Les procédures graphiques utilisent désormais un compteur global pour générer les noms de fichier d'image. LISTING ------- - La destination ODS LISTING a été retravaillée pour améliorer ses performances et ajouter des options. La destination LISTING est expérimentale et a été ajoutée dans cette version. Pour la tester, contactez support@worldprogramming.com pour demander de l'aide. - Une instruction ODS LISTING vide ferme désormais un fichier de liste ouvert et nommé. Options système =============== Les options système suivantes ont été ajoutées pour cette version : - CONNECTPAGEBREAK - CONNECTTIMEOUT - CONNECTTRANSCODEWARNINGS - CONSIDERXLSXCOLWIDTHS - DB2PLAN - DBIDIRECTEXEC - DYNAMICNOBS - EMAILMASQUERADEHOST - FILECONTAINERCACHESIZE - HUB_AUTOLIBS - HUB_TOKEN - LEGACYDB2ENGINE - LEGACYNETEZZAENGINE - LEGACYODBCENGINE - LEGACYORACLEENGINE - LEGACYSQLSERVERENGINE - LEGACYSQLSERVRENGINE - LEGACYSQLSVRENGINE - LINKINITSTMT - LINKTERMSTMT - NETEZZACHARCOLUMNTYPE - ODSLISTINGDEST - PREFERLEGACYTABLETEMPLATES - SCANDEFAULTMODIFIERS - TAGSETSTREAMVARSIZE - TLS_CACERTS - TLS_HOSTVALIDATION - WPDDASDLIBNAMEINFO - WPSCOMENCRYPTKEY - WPSSCATTERCOMP - WPSSCATTERLIMIT1 - WPSSCATTERLIMIT2 Macros ====== - Le format &=nom-variable de développement de variable de macro est désormais pris en charge. - Il est désormais possible d'utiliser les instructions de macro suivantes dans un programme en langage SAS hors d'un bloc #%MACRO...%MEND : - %IF - %THEN - %ELSE - %DO, notamment %DO itératif, %DO %WHILE, et %DO %UNTIL - %END Procédures générales ==================== La procédure générale suivante a été ajoutée dans cette version : - FONT Les procédures générales suivantes ont été améliorées dans cette version : - REPORT - Les instructions DEFINE prennent désormais en charge : - ID - PROBT (alias de PRT) - MODE - Bloc de code COMPUTE : La justification par défaut de l'instruction LINE est désormais CENTER. - NOPRINT - OPTIONS - Prend désormais en charge les détails de WHERE. - PYTHON - Vous pouvez désormais spécifier des arguments en ligne de commande pour l'instruction EXECUTE. - R - Vous pouvez désormais spécifier des arguments en ligne de commande pour l'instruction EXECUTE. - FORMAT - La sortie de l'instruction PICTURE est désormais justifiée à droite. - TABULATE Prend désormais en charge EXCLNPWGT. - TRANSPOSE Les espaces entrants et sortants dans les noms de variable sont retirés, même si l'option système VALIDVARNAME=ANY est définie. - UNIVARIATE : l'instruction HISTOGRAM prend désormais en charge : - MAXNBIN - NROWS - NCOLS Procédures graphiques =================== Les procédures graphiques suivantes ont été ajoutées dans cette version : - GINSIDE - GPROJECT - SGPLOT - SGPANEL Procédures d'apprentissage automatique ============================== Les procédures d'apprentissage automatique suivantes ont été ajoutées dans cette version : - DECISIONFOREST - SEGMENT Recherche opérationnelle ======================== La procédure de recherche opérationnelle suivante a été ajoutée dans cette version : - LP Contrôle qualité ================ La procédure de contrôle qualité suivante a été ajoutée dans cette version : - CAPABILITY Procédures statistiques ======================= Les procédures statistiques suivants ont été ajoutés dans cette version : - ASSOCRULES - GAM - LP - PLAN - QUANTREG - ROBUSTREG - RSREG - TPSPLINE - Les procédures suivantes ont été améliorées dans cette version : - NPARWAY1 - Prend désormais en charge l'instruction EXACT. - SURVEYSELECT - Utilise désormais par défaut l'algorithme Mersenne Twister pour générer des échantillons. - Prend désormais en charge l'instruction FREQ. - L'instruction PROC SURVEYSELECT prend désormais en charge les options suivantes : - GROUPS - METHOD. Les méthodes suivantes sont désormais prises en charge : - BALBOOT - BERNOULLI - POISSON - PPS - PPS_BREWER - PPS_MURTHY - PPS_SAMPFORD - PPS_SEQ - PPS_SYS - PPS_WR - SEQ_POISSON - SRS - SYS - RANUNI, qui permet de reproduire les résultats générés à l'aide de WPS version 4.0. - REP, avec la nouvelle option REPNAME = nom - ROUND - STRATUMSEED - L'instruction STRATA prend désormais en charge les options suivantes : - ALLOC - ALLOCMIN - ALPHA - COST - MARGIN - NOSAMPLE - STATS - GENMOD - L'instruction MODEL prend désormais en charge les options TRUNC et NOTRUNC. Voir la section « Mises à jour non documentées » des présentes Notes de diffusion pour plus d'informations. Procédures de série temporelle ============================== La procédure de série temporelle suivante a été ajoutée dans cette version : - AUTOREG Workbench ========= Les fonctionnalités suivantes ont été ajoutées dans cette version : - Vous pouvez désormais faire glisser un fichier de la vue Explorateur de fichiers pour le déposer dans une bibliothèque. - Vous pouvez désormais spécifier dans Préférences qu'il faut effacer le journal à chaque exécution d'un programme ou d'une étape. - Vous pouvez désormais ouvrir les bases de données chiffrées et inviter à entrer une clé avec une boîte de dialogue. - Vous pouvez désormais exécuter l'étape où se trouve le curseur à l'aide des options « Exécuter l’étape » ou « Exécuter l’étape sur » du menu contextuel de l'éditeur de programme. - Il est désormais possible d'ouvrir les ensembles de données chiffrés depuis les vues Explorateur de fichiers, Explorateur de serveurs et Explorateur de projets. - De nouveaux raccourcis permettent d'ouvrir les vues dans l'explorateur système depuis les vues Explorateur de projets et Explorateur de fichiers. - De nouveaux raccourcis permettent d'ouvrir les vues dans l'explorateur système depuis le menu contextuel de l'onglet Éditeur. WPS Communicate =============== Les modifications suivantes ont été apportées pour cette version : - Vous pouvez désormais imbriquer les blocs RSUBMIT et ENDRSUBMIT. - Chaque envoi depuis le Workbench est marqué dans la sortie du journal avec horodatage avant et après, ainsi que le nom de l'utilisateur distant, pour plus de facilité. - Le côté client vérifie désormais la version du serveur afin de déterminer si les fonctionnalités de chiffrement et de compression sont présentes, et signale une erreur si elles ne le sont pas. - Vous pouvez désormais utiliser des variables de macro dans l'instruction LOG dans les programmes. ======================================================================= Problèmes connus de WPS et assistance ======================================================================= Cette section contient des informations à propos des problèmes connus de cette version de WPS et indique comment accéder au support technique. ----------------------------------------------------------------------- Problèmes critiques connus ----------------------------------------------------------------------- Aucun ----------------------------------------------------------------------- Problèmes majeurs connus ----------------------------------------------------------------------- ODBC ==== La mise à jour ou la suppression de ligne à l'aide du moteur ODBC utilise désormais des modifications par curseur à l'aide de la clause "WHERE CURRENT OF" prise en charge par certains pilotes ODBC. Cette fonctionnalité n'est actuellement disponible que pour les connexions DB2 et SQL Server utilisant le moteur de bibliothèque ODBC. Procédure Python ================ Lorsque vous utilisez la procédure Python, tout appel de programme Python qui arrête l'interpréteur Python – comme sys.exit() ou os.exit() – arrête le traitement dans WPS, et il est nécessaire de redémarrer le serveur WPS. DBCS/Multi-octets ================= - Les sessions utilisant les codes DBCS/multi-octets ne sont pas prises en charge sur z/OS. - UTF-16 avec détection automatique de l'ordre des octets à partir de l'indicateur d'ordre des octets (BOM) pour le codage des fichiers externes n'est pas pris en charge. En revanche, les codes explicites UTF-16BE et UTF-16LE sont pris en charge, et peuvent tolérer le BOM. - Les performances peuvent être problématiques avec certains formats, informats et fonctions. - Pour l'instant, le moteur WPS pour SAND ne prend pas en charge les codes multi-octets. ----------------------------------------------------------------------- Problèmes majeurs connus ----------------------------------------------------------------------- Workbench ========= - Si vous faites glisser un fichier de la vue Explorateur de fichiers à la vue Explorateur de projets, il est désormais ouvert. - L'analyseur de code ne gère pas les fichiers dans lesquels les lignes se terminent par des nombres ; il s'agit en général de programmes pour mainframe. - Si vous tentez d'appliquer une licence à un serveur qui a été spécifié sur un chemin ne contenant pas d'installation de WPS, l'application de licence échoue, mais pas « proprement », et des messages signalant des erreurs inconnues apparaissent. - Sur Linux, il arrive que des boîtes de dialogue soient cachées derrière d'autres fenêtres. - Sur Linux, le bouton Parcourir, utilisé pour changer un moteur préexistant sur un serveur distant Windows afin qu'il pointe vers l'installation du logiciel sur la VM distante, ne fonctionne pas. - L'aperçu d'importation de fichier peut tronquer les données, car les lignes renvoyées par la limite de lignes d'aperçu peuvent ne pas comporter les informations suffisantes pour déterminer la longueur d'une variable. Nommage des fichiers ==================== - Si vous créez ou renommez un fichier sur le système d'exploitation Windows et que ce fichier contient des caractères qu'il est impossible de représenter avec la page de code de la session WPS en cours, les caractères qu'il est impossible de représenter sont remplacés ou omis. Par défaut, ils sont remplacés. Cela ne concerne que l'affichage dans les procédures et fonctions WPS. Par exemple, si vous utilisez la procédure DATASETS pour dresser la liste des membres d'une bibliothèque, les noms de fichier contenant des caractères non représentables apparaissent avec des caractères de substitution. Toutefois, vous ne pouvez exécuter aucune opération utilisant le nom du fichier, car celui-ci ne représente pas le nom de fichier réel. - Vous pouvez modifier la manière dont WPS gère ces noms de fichier à l'aide de l'option système CHARTRANUNMAPPABLE ; vous pouvez, par exemple, spécifier que ces caractères doivent être remplacés par un caractère d'échappement, ou ignorés. Moteurs de données – Multithread ================================ NETEZZA ------- Si vos programmes en langage SAS utilisent l'instruction LIBNAME pour la connexion à Netezza, et que l'instruction contient l'une des options suivantes, vous devez remplacer NETEZZA par NETEZZAOLD dans l'instruction LIBNAME. - DELETE_MULT_ROWS - IGNORE_READ_ONLY_COLUMNS - STRINGDATES - UPDATE_MULT_ROWS - USE_ODBC_CL - UTILCONN_TRANSIENT ODBC ---- Si vos programmes en langage SAS utilisent l'instruction LIBNAME pour la connexion à ODBC, et que l'instruction contient l'une des options suivantes, vous devez remplacer ODBC par ODBCOLD dans l'instruction LIBNAME. - BL_LOG - BL_OPTIONS - BULKLOAD - BCP - CURSORTYPE - DELETE_MULT_ROWS - INSERT_SQL - KEYSET_SIZE - QUERY_TIMEOUT - QUOTE_CHAR - STRINGDATES - UPDATE_MULT_ROWS - UPDATE_SQL - USE_ODBC_CL - UTILCONN_TRANSIENT SQLSERVER --------- Si vos programmes en langage SAS utilisent l'instruction LIBNAME pour la connexion à SQL Server, et que l'instruction contient l'une des options suivantes, vous devez remplacer SQLSERVER par SQLSERVEROLD dans l'instruction LIBNAME. - CURSOR_TYPE - DELETE_MULT_ROWS - INSERT_SQL - KEYSIZE_SET - QUERY_TIMEOUT - QUOTE_CHAR - STRINGDATES - UPDATE_MULT_ROWS - UPDATE_SQL - USE_ODBC_CL - UTILCONN_TRANSIENT Configuration du broker pour les services WPS Web ================================================= - Il est fortement recommandé de ranger les paramètres de configuration du fichier broker.cfg situé dans //web/cgi-bin de telle sorte que TOUS les paramètres nommés 'WPSPowered*' (où * est un caractère générique) apparaissent avant les paramètres 'Service' dans ce même fichier. Instructions ECHO dans les fichiers .bashrc avec WPS Link ========================================================= Si vos scripts d'initialisation de shell répètent du texte lors d'une connexion non interactive, le démarrage de WPS Link échoue. Il convient donc de supprimer les instructions ECHO, ou de les rendre conditionnelles à l'interactivité du shell, comme dans les exemples suivants : * Vérifier le marqueur « interactif » Par exemple : case $- in *i*) echo "Ceci est un shell interactif"; esac * Utiliser l'outil tty pour détecter un shell interactif Par exemple : if tty > /dev/null 2>&1 do echo "Nous avons une session interactive" fi * Vérifier la valeur de la variable d'environnement $SSH_TTY if [ "$SSH_TTY" ] then echo "Nous avons une session interactive" fi Composants d'étape DATA JAVAOBJ sur z/OS ======================================== Le composant d'étape DATA JAVAOBJ n'est pris en charge sur z/OS que si WPS est invoqué via l'interface USS. WPS recherche les classes Java à charger dans les répertoires nommés dans la variable d'environnement CLASSPATH, qui existe lors de l'exécution via l'interface USS, mais pas lors de l'exécution via TSO ou en tant que travail soumis. Moteur de données XLSX sur z/OS =============================== Le moteur de données XLSX n'est pris en charge sur z/OS que si WPS est invoqué via l'interface USS. ======================================================================= Notes de mise à niveau ======================================================================= ----------------------------------------------------------------------- Option YEARCUTOFF ----------------------------------------------------------------------- - La valeur par défaut de l'option système YEARCUTOFF est désormais 1926. La plage par défaut de dates à deux chiffres va désormais du 1er janvier 1926 au 31 décembre 2025. En raison de ce changement, toute fonctionnalité de WPS Analytics pour laquelle une valeur d'année sur deux chiffres est spécifiée – par exemple, la fonction d'étape DATA MDY() – peut générer un résultat différent. Pour rétablir le comportement des versions antérieures de WPS Analytics, spécifiez la valeur 1920 pour l'option système YEARCUTOFF. ----------------------------------------------------------------------- Mise à niveau de l'espace de travail ----------------------------------------------------------------------- - La première fois que vous ouvrez dans WPS Workbench 4.1 un espace de travail créé à l'aide d'une version antérieure de WPS Workbench, une boîte de dialogue peut vous demander de confirmer la mise à jour automatique de l'espace de travail. Ceci permet au Workbench de lire l'espace de travail correctement. Ces mises à jour automatiques ne devraient pas poser de problème. ======================================================================= Mises à jour non documentées ======================================================================= Procédure GENMOD ================ - PROC GENMOD sait désormais ajuster une distribution de Poisson, une binomiale négative, négative binomial, Poisson avec zéro augmenté, binomiale négative avec zéro augmenté ou distribution géométrique si des nombres non entiers sont spécifiés à la place d'entiers. - Les options TRUNC et NOTRUNC ont été ajoutées à l'instruction MODEL spécifiant ces distributions. TRUNC spécifie que des entiers sont utilisés, et que les non-entiers sont tronqués pour en faire des entiers. Spécifiez NOTRUNC pour utiliser les nombres décimaux. La valeur par défaut est NOTRUNC. ======================================================================= Fonctionnalités déconseillées ======================================================================= Il est déconseillé d'utiliser les fonctionnalités suivantes à partir de cette version, et elles cesseront d'exister dans une version ultérieure de WPS Analytics. Il vous faut modifier tous les programmes en langage SAS utilisant ces fonctionnalités afin d'utiliser l'alternative recommandée : - Instruction ODS OLDHTML - Utilisez l'instruction ODS HTML - Instruction LIBNAME ORACLEOLD - Utilisez l'instruction LIBNAME ORACLE - Instruction LIBNAME DB2OLD - Utilisez l'instruction LIBNAME DB2 - La prise en charge du pilote ODBC SQLSRV32 va être supprimée. Nous vous conseillons d'installer et d'utiliser le pilote ODBC Microsoft pour SQL Server. ======================================================================= Problèmes résolus ======================================================================= WPS Core ======== Général ------- - L'étape DATA effectue désormais correctement la concaténation des chaînes incluant des membres de tableau (array). - Un programme peut désormais contenir des caractères non-imprimables. Ces derniers ne sont plus remplacés par des espaces. - Les clés de chiffrement (telles que celles fournies à l'option d'ensemble de données ENCRYPTKEY ou l'option système ENCRYPTKEY) sont désormais illisibles dans le journal. - Un message d'erreur apparaît désormais si un nom de variable de macro est utilisé dans les routines CALL de l'étape DATA. - Les performances sont améliorées lors de l'utilisation d'un catalogue compilé volumineux de macros. - WPS Analytics est désormais distribué avec OpenJDK. - L'option d'authentification PLAIN a été ajoutée pour les serveurs EMAIL SMTP. - WPS Analytics ne reste pas coincé dans une boucle infinie lorsqu'une macro est appelée avec un paramètre nommé indéfini. - Une note est désormais ajoutée dans le journal lorsqu'une valeur manquante est utilisée comme numérateur ou dénominateur dans une division. - Les dérivées de fonction placées dans des instructions IF ELSE imbriquées sont désormais calculées correctement. - Le nombre d'enregistrements remplacés à l'aide de l'instruction MODIFY est désormais indiqué correctement. - La validité des noms d'ensemble de données en une et deux parties est désormais vérifiée afin de s'assurer que la valeur de l'option système DATASTMTCHK est respectée. - Il est désormais possible d'utiliser WPS Analytics avec R version 4. - Spécifier la variable système _LAST_ ne cause plus l'échec de WPS Analytics si la bibliothèque référencée n'est plus valide. - WPS Analytics n'échoue plus si un composant HITER fait référence à un composant HASH supprimé. - Le calcul de la taille des blocs d'exécution du tri est désormais correct lors du tri d'un ensemble de données contenant exactement 2 observations. FILENAME URL ------------ - Traite désormais les valeurs numériques supérieures à 2^31 venant du serveur en utilisant des représentations 64 bits. Utilitaire Cleanwork -------------------- - Utilitaire sur Windows : - Prend désormais en charge les options -f (forcer), -v (détaillé) et -n (liste). - Prend désormais en charge l'option -ff pour sélectionner un répertoire temporaire de manière plus effective que l'option -f. Fichiers de configuration ------------------------- - Le fichier de configuration par défaut wps.cfg pour Windows utilise désormais la variable d'environnement CSIDL_MYDOCUMENTS au lieu de CSIDL_PERSONAL comme emplacement par défaut de SASUSER. - Les options système dont le nom contient le caractère « _ » (tiret de soulignement) sont désormais autorisées dans un fichier de configuration. Macros ====== - Si l'option système MCOMPILENOTE est définie sur AUTOCALL ou CALL, le message de compilation de la macro indique désormais le bon nombre d'instructions. - L'instruction %LET a désormais une limite de récursion maximale de 1000000 éléments. - Les options DESC et MINDELIMITER des définitions de macro acceptent désormais qu'il y ait une espace entre l'option et sa valeur. - Les noms de macro de type instruction sont désormais limités à huit caractères. - La détection des récursions infinies a été améliorée lorsque les macros sont développées et invoquées. - Il est désormais possible d'utiliser les commentaires dans le code de macro. Macro de remplacement de texte ------------------------------ - Une extension autoréférencée exacte supprime désormais la macro référencée. - Un nom de macro remplace désormais uniquement les correspondances exactes, et le nom ne doit pas dépasser les 8 caractères. Par exemple, MACRO abcdefgh % ne correspond plus à « abcdefgh » et « abcdefghijklm ». - Les définitions de macro auto-récursives sont désormais développées correctement. - Dans certains cas, le fait de spécifier des directives macro à développement de texte comme des instructions globales peut causer une erreur lors de l'évaluation. Options système --------------- - Il est désormais possible de concaténer correctement les emplacements AUTOEXEC en utilisant APPEND et INSERT. - IMPORTDELIMTRIM est une nouvelle option système permettant de spécifier comment la procédure IMPORT gère les valeurs dans un fichier CSV importé où les virgules sont suivies d'un espace. - INPUTCASTNUMTOCHAR est une nouvelle option système permettant de spécifier le traitement de l'instruction INPUT. - NOS99NOMIG fonctionne désormais comme prévu. - VALIDVARNAME=ANY fonctionne désormais correctement. - Lorsque ERRORABEND est spécifié, une erreur de mémoire insuffisante lors de l'analyse d'un programme en langage SAS cause désormais correctement un événement ABEND. - Il est désormais possible de lire correctement un ensemble de données utilisant un index créé lorsque la valeur d'IBUFSIZE était inférieure à la valeur actuelle. - L'alias WPSCOMPR peut désormais être utilisé pour l'option système WPSCOMPROTOCOL. Instructions globales --------------------- - Vous pouvez désormais spécifier s'il faut qu'un message d'erreur soit renvoyé pour les codes de réponse d'échec SMTP générés par FILENAME EMAIL. - WPS finit désormais l'opération correctement si une instruction %INCLUDE est suivie par OPTIONS LRECL. - Vous pouvez désormais contrôler le comportement de WPS si un serveur de messagerie plante lors de l'utilisation de FILENAME EMAIL SMTP. L'ensemble de données SMTPRESPONSE dresse la liste des codes de retour du serveur et des comportements WPS correspondants. Les réactions par défaut sont indiquées dans l'ensemble de données SMTPRESPONSE de la bibliothèque SASHELP. Vous pouvez spécifier des réactions personnalisées aux codes de retour dans l'ensemble de données SMTPRESPONSE de la bibliothèque SASUSER, qui est lu avant l'ensemble de données de SASHELP. Les variables de macro SYSSMTPREPLYCODE et SYSSMTPREPLYTEXT sont désormais disponibles. Elles sont configurées avec le code SMTP et le code adaptés en cas de plantage du serveur de messagerie. - RESETLINE fonctionne désormais correctement comme une instruction globale. - FILENAME HTTP n'a plus besoin d'envoyer le numéro de port dans l'en-tête de requête HOST:. - FILENAME FTP utilise désormais le fichier .netrc sur les plates-formes LINUX. - FILENAME URL traite désormais les valeurs numériques supérieures à 2^31 venant du serveur en utilisant des représentations 64 bits. Ensembles de données -------------------- - Il est désormais possible de trier un ensemble de données sans qu'un problème de mémoire insuffisante survienne. La performance de la compression RLE dans les ensembles de données WPD3 a été améliorée. - Il est désormais possible d'avoir des noms d'ensemble de données d'une longueur supérieure à 32 caractères. Vues d'ensemble de données -------------------------- - DICTIONARY.VIEWS et SASHELP.VIEW présentent désormais le moteur de vue correctement. - Le nom de la vue est inclus dans la sortie depuis l'instruction DESCRIBE. Composants d'étape DATA ----------------------- - Le composant HASH n'échoue plus dans certains cas. Instructions d'étape DATA ------------------------- - L'instruction SET fonctionne désormais correctement lorsqu'elle est utilisée avec les options RENAME et WHERE. - Il ne survient plus d'erreur lors du traitement de chaînes de vues contenant des variables avec des noms de format spécifiés. - Si l'instruction LIST est spécifiée, et que la sortie s'étend à une page ultérieure, la règle de page est désormais placée correctement. - RENAME fonctionne désormais comme prévu lorsqu'il est spécifié comme l'instruction d'étape DATA RENAME ou dans les instructions KEEP ou DROP. - Il est désormais possible possible d'utiliser les options KEY et END ensemble sur l'instruction SET avec le résultat attendu. - Il est désormais possible d'utiliser l'option _FILE_ de l'instruction FILE lors de l'accès à un ensemble de données VSAM. - Il est désormais possible d'utiliser l'option _INFILE_ de l'instruction INFILE lors de l'accès à un ensemble de données VSAM. - Il n'est désormais possible de déclarer les composants d'étape DATA qu'une seule fois par étape. Fonctions d'étape DATA ---------------------- - RAND('BERNOULLI') renvoie désormais les bonnes valeurs, 1 pour la réussite et 0 en cas d'échec. - RAND('UNIFORM') renvoie désormais correctement une valeur de x où 0 < x < 1. - Les fonctions LOGCDF et LOGSDF renvoient désormais le bon résultat pour l'option NORMALMIX. - La fonction ROUND effectue désormais correctement les arrondis si la partie décimale du nombre à arrondir tombe dans l'epsilon de la fonction. - Il n'y a désormais plus de limite inférieure sur la valeur en entrée dans les fonctions de distribution JOHNSON SU. - JOHNSONSB - LOGPDF renvoie désormais 0 (zéro) si une entrée est hors de la plage admise. - EUROCURR contient désormais les taux de change fixes utilisés lorsque l'euro a remplacé lats en Lettonie et le litas en Lituanie. - La fonction de distribution TWEEDIE ne renvoie plus de valeur manquante si les arguments facultatifs ne sont pas spécifiés. - Un message d'erreur apparaît désormais si un nom de variable de macro est utilisé dans les routines CALL de l'étape DATA. - La fonction SUBPAD n'écrit plus hors des plages admises, ce qui corrompait la mémoire. - La fonction HTMLDECODE décode désormais correctement l'entité HTML  . - La fonction HOLIDAY renvoie désormais la date correcte lorsque UKEASTERMONDAY est spécifié. - Les fonctions URLENCODE() et URLDECODE() depuis et vers UTF-8 ou fonctionnent entièrement avec la page de code de session, selon la valeur de l'option système URLENCODING. - La fonction FINANCE('COUPDAYSNC') calcule désormais correctement lorsque l'argument de base est 0 (zéro). - Les fonctions basées sur la calculent désormais correctement les distributions de Poisson, binomiale, multivariée, T et binomiale négative contenant un très grand nombre d'événements. - Les fonctions de distribution géométrique renvoient désormais la valeur exacte de p=1. - RAND("NORMAL"). Confirme désormais que l'écart type est positif. - RAND("GEOMETRIC") renvoie désormais des entiers. - Fonction GETOPTION. Permet désormais d'extraire les options de mot de passe. - Les fonctions de distribution logistique LOGPDF, LOGCDF et LOGSDF renvoient désormais la bonne valeur plutôt qu'une valeur manquante si le résultat est inférieur à CONSTANT ('LOGSMALL'). Formats et informats -------------------- - Il ne survient plus d'erreur si : - Les formats ont une longueur zéro. - Un format long est spécifié avec w.d. - Un message d'erreur est envoyé sur la sortie journal en cas de dépassement du nombre maximum de caractères dans le format. - Le format B8601DT exige désormais une longueur minimale de 15 caractères, correspondant au format le plus court pour le format de base ISO 8601 yyyymmddThhmmss. - NENGO a été mis à jour afin de permettre le formatage des dates de la nouvelle ère. - Le nouveau format IEEE permet d'appliquer le format IEEE à virgule flottante aux nombres. - Lorsque vous utilisez l'instruction d'étape DATA INPUT, un avertissement est désormais généré si le format $VARYING est appliqué à une variable de type numérique inféré. - Les formats appliqués aux nombres négatifs sortent désormais des astérisques (*) plutôt que 0 (zéro) si la largeur spécifiée est insuffisante pour la valeur de la variable. - Les informats B8601LZ et E8601LZ sortent désormais une valeur horaire décalée correcte. - Le format ANYDTDTM interprète désormais correctement le format MMM DD YYYY HH:MM:SS. - Les formats WEEKU, WEEKV et WEEKW s'appliquent désormais aux dates au début et à la fin de la plage autorisée dans WPS. - Les formats WEEKU, WEEKV et WEEKW ajoutent désormais correctement des espaces en fin de chaîne pour atteindre la largeur requise. Moteurs de bibliothèque ======================= - Le moteur de la bibliothèque XML fonctionne désormais dans le bon ordre lors de l'arrêt du programme. - Le moteur JSON permet désormais de désactiver la génération de l'ensemble de données ALLDATA à l'aide de l'option NOALLDATA. Moteurs de données ================== - Le transfert direct implicite transmet désormais correctement les chaînes entre guillemets sérialisées. - Les dates maximum et minimum autorisées de sont désormais gérées correctement. - Le spooling est désormais disponible. La manière dont il est utilisé dépend du moteur. Pour plus d'informations, consultez le document WPS Reference for Language Elements. - Les valeurs TIMESTAMP antérieures au 01 janvier 1582 sont désormais renvoyées comme valeurs manquantes lorsqu'elles sont extraites via les connexions de base de données DB2, Oracle ou ODBC. ORACLE ------ - Dans le moteur de données ORACLE : - L'option DB_LENGTH_SEMANTICS_BYTE gère désormais correctement les tailles des caractères des pages de code du serveur. - L'instruction UPDATEBUFF fonctionne désormais correctement. - Les insertions/mises à jour de champs binaires fonctionnent désormais correctement dans Oracle sur le produit Windows 32 bits. - Il est également possible d'utiliser un mot réservé ORACLE dans PROC SQL lors de l'interrogation d'une base de données ORACLE. Pour empêcher que l'alias ne signale une erreur et n'arrête la requête, il est désormais entouré de guillemets. - Le moteur de données ORACLE effectue désormais correctement les opérations suivantes : - gérer la situation lorsqu'aucune variable n'est spécifiée pour SELECT, mais que le moteur doit toujours extraire chaque enregistrement sélectionné ; - lier les colonnes de caractères et de binaires lorsque les données sont lues et placées dans des champs d'une taille inférieure à la longueur de la colonne ; - faire revenir en arrière un curseur de lecture séquentielle Oracle. ORACLEOLD --------- - ORACLEOLD peut désormais insérer des données dans une table à l'aide de PROC APPEND quand le nom de la colonne est un mot-clé Oracle. ODBC ---- - Les options COMPLETE, REQUIRED, PROMPT et NOPROMPT fonctionnent désormais correctement avec MySQL et DB2. - Les options COMPLETE et REQUIRED fonctionnent désormais correctement avec SQLServer. - Prend désormais en charge les transactions avec Google BigQuery. - Le moteur ODBC prend désormais en charge : - DBINDEX dans ACCESS ODBC (ACCESS 2013 et ACCESS 2016 uniquement). - PROMPT, NOPROMPT, COMPLETE et REQUIRED dans MySQL. - COMPLETE, REQUIRED et PROMPT avec fenêtre contextuelle dans DB2. - REQUIRED et COMPLETE avec fenêtre contextuelle dans SQL Server. NETEZZA ------- - Lors du chargement en bloc des données, les types de colonnes CHAR, VARCHAR et LONG VARCHAR utilisent désormais la page de code internationale Latin 9 ; les types de colonnes NCHAR, NVARCHAR et LONG NVARCHAR utilisent désormais la page de code internationale UTF-8. SQLSERVER --------- - Prend désormais en charge les options suivantes : - DBSLICE - DBSLICEPARM - INSERT_SQL ACCESS ------ - Il est désormais possible d'exporter des nombres formatés sans décimales (par exemple, w.), même si le nombre comporte des décimales. EXCEL ----- - Un message d'avertissement apparaît si un fichier source contient des caractères Shift-JIS non mappables. DB2 --- - DB2 sur z/OS permet désormais SPOOL=YES|NO|DBMS. - Sait désormais joindre des colonnes. PostgreSQL ---------- - Les données sont désormais chargées correctement dans Postgres lorsque BULKLOAD=YES est spécifié. Teradata DB ----------- - Toutes les connexions restantes sont désormais closes lorsqu'une session se déconnecte d'une base de données Teradata. XLSX ---- - Plusieurs bibliothèques fonctionnent désormais comme prévu lorsqu'elles sont concaténées dans une nouvelle instruction LIBNAME XLSX. ODS === - Les valeurs FORMAT non valides dans les modèles TTI causent désormais un avertissement. - Si les modèles de table contiennent des expressions incorrectes, aucun avertissement n'apparaît dans le journal. - Le type de sortie du jeu de balises MSOFFICE est désormais correctement défini sur HTML. - La sortie pour les caractères UNICODE non valides est désormais cohérente sur toutes les destinations de sortie. - Les instructions START et END des modèles HEADER et FOOTER acceptent désormais les variables. - L'instruction TRANSLATE n'est plus ignorée si elle est définie dans le modèle du parent. - LISTING gère désormais mieux les cellules de table chevauchant les lignes. - MARKUP : - Applique désormais les valeurs FONTSIZE comme des tailles de police relatives. - Si les valeurs FONTSIZE sont hors de la plage admise, un message d'erreur apparaît dans le journal. - ODS EXCEL et EXCELXP réduisent désormais les titres et notes de bas de page spécifiés pour les ajuster lorsque les sous-options TITLES_SHRINK_TO_FIT et FOOTERS_SHRINK_TO_FIT sont utilisées. - Les formats définis par l'utilisateur prennent désormais en charge les valeurs d'attribut de style. - Les options GTITLE et GFOOTNOTE peuvent désormais supprimer les titre/note de bas de page dans la sortie écrite vers une destination ODS. EXCELXP ------- - offre de nouvelles options d'impression ; - affiche correctement les données lorsque SHEET_INTERVAL change ; - n'ajoute plus une ligne vide entre un texte spécifié par TITLE ou FOOTNOTE et une table ; - PDF gère désormais correctement l'alignement du titre et des notes de bas de page sr l'élément de style de titre du système. - Les caractères de tabulation dans les sous-options sont désormais analysés correctement. PDF --- - Ne déclenche plus un avertissement s'il échoue à retirer une ressource de police. - Gère désormais correctement les caractères non imprimables. Procédures générales ==================== APPEND ------ - Lorsque l'ensemble de données est une table DB2, les index de paramètre sont désormais définis correctement. CATALOG ------- - L'instruction NEW fonctionne désormais correctement quand le catalogue cible existe déjà. - L'instruction EXCHANGE fonctionne désormais correctement avec des catalogues nouvellement créés. COMPARE ------- - Les variables qui contiennent des différences manquantes et non manquantes ne sont désormais comptées qu'une seule fois dans les résultats. - Le nom de champ d'identifiant est désormais utilisé plutôt que le libellé lors de la production des informations de résumé. CONTENTS -------- - Les options OUTZEROVARDATASETS et NOOUTZEROVARDATASETS ont été ajoutées à l'instruction PROC CONTENTS. Elles déterminent comment le contenu d'ensembles de données vides apparaît lors de leur création. - Le nom de champ d'identifiant est désormais utilisé plutôt que le libellé lors de la production des informations de résumé. COPY ---- - La gestion des entrées de fichier de catalogue par LRECL RECFM a été améliorée. - S'effectue désormais correctement si des catalogues spécifiés avec les formats d'enregistrement autres que « S » sont copiés. DATASETS -------- - Accepte désormais les caractères génériques deux-points (comme « ABC: ») ou basés sur des plages (tels que « TMP4-TMP7 »). - Prend désormais en charge MEMTYPE=DATA. Ceci peut être utilisé lorsqu'un seul nom de membre de bibliothèque est spécifié, et remplace le type de membre par défaut pour ce nom de membre. C'est désormais l'option par défaut ; il est nécessaire d'actualiser les programmes utilisant l'ancienne option par défaut. - Inclut désormais les programmes d'étape data dans la liste en sortie. DELETE ------ - Accepte désormais les caractères génériques deux-points (comme « ABC: ») ou basés sur des plages (tels que « TMP4-TMP7 »). - Les fichiers sont désormais exportés correctement lorsque les noms de variable contiennent des guillemets droits simples ou doubles. - L'option LIBRARY spécifie désormais une bibliothèque par défaut. Les noms de membre individuels peuvent remplacer cette valeur par défaut. EXPORT ------ - Effectue désormais correctement une exportation vers XLSX lorsque le nom de fichier est entre guillemets. - Exporte désormais les fichiers temporaires sans ajouter d'extension de fichier. FREQ ---- - Quand une observation contient une pondération négative, seules les valeurs de fréquence sont calculées. - Donne désormais des résultats cohérents, au lieu de résultats dépendant de l'ordre d'entrée des données. - Utilise désormais correctement les formats définis par l'utilisateur dans la sortie. - Traite désormais correctement l'option ALL pour l'instruction TABLES. IMPORT ------ - Les fichiers sont désormais importés correctement lorsque les noms de variable contiennent des guillemets droits simples ou doubles. HTTP ---- - Utilise la chaîne d'agent utilisateur par défaut WPS/URL, pour correspondre au comportement des autres clients HTTP WPS. - Permet à l'option USERAGENT de contrôler la chaîne d'agent utilisateur envoyée dans la demande HTTP. - Gère désormais correctement les en-têtes multiples fournis par l'utilisateur. IMPORT ------ - La nouvelle option DELIMTRIM permet de spécifier comment traiter les valeurs des fichier CSV importés où les virgules sont suivies d'un espace. - Les fichiers sont désormais exportés correctement lorsque les noms de variable contiennent des guillemets droits simples ou doubles. - PROC IMPORT importe désormais les fichiers UTF-8 contenant des caractères UTF-8 non valides. JSON ---- - Écrit maintenant une valeur nulle lorsque . (valeur manquante) est spécifié dans l'instruction WRITE VALUES. MEANS ----- - Le calcul de la statistique de mode d'une variable de classe ne contenant aucune observation valide ne cause plus l'échec du moteur de traitement. - Tronque désormais les variables de fréquence aux valeurs entières lors du calcule des centiles. - Il est désormais possible de créer l'itérateur BY et de traiter 0 (zéro) enregistrements lorsqu'aucun ensemble de données n'est pour l'option DATA. - La valeur par défaut pour l'option QMARKERS sur l'instruction PROC MEANS est désormais 5 plutôt que 0 (zéro). - Ajoute désormais la statistique SUMWGT à la sortie lorsqu'une variable de pondération est spécifiée dans l'instruction VAR. - Si vous spécifiez l'instruction OUTPUT, WPS écrit désormais les libellés corrects pour les options statistiques Q1 et Q3. OPTIONS ------- - DEFINE OPTION prend désormais en charge les détails de WHERE. - LOGNUMBERFORMAT formate désormais le nombre correctement avec des virgules. - OPTION=SCANDEFAULTMODIFIERS renvoie désormais correctement une description du texte. - L'option LONG DEFINE VALUE affiche désormais la valeur correcte du nombre maximal de caractères dans une chaîne. PYTHON ------ - Les types de données des dates en entrée sont désormais conservés correctement dans un DataFrame Pandas. PRINT ----- - L'option SUMLABEL peut désormais utiliser les libellés de variable BY au lieu des noms. - Prend désormais en charge la valeur MINIMUM pour l'instruction WIDTH. - Pour les modèles de table, l'option désactivant PDF PRINT=off fonctionne désormais correctement. - Applique désormais le format de la variable BY à la ligne SUM. - Ne réimprime plus les en-têtes de colonne après chaque "N = décompte" si l'option N est définie et que toutes les variables BY sont des colonnes d'identifiant. - Le format de la variable BY est désormais conservé dans les lignes SUM. - L'option PAGEBY est désormais possible avec les variables ID. - Sort désormais le nombre correct de chiffres après la virgule pour les valeurs avec des puissances exactes de 2. PWENCODE -------- - Place désormais la chaîne chiffrée dans la variable de macro globale _PWENCODE. REPORT ------ - Prend en charge SKIP pour les listes anciennes. - Ne cause plus d'erreur de catalogue corrompu si un ensemble de données contient des spécifications de format numérique simples. - Produit une ligne même si elle est vide (null). - Prend en charge les options « overline » (OL) et « underline » (UL) de l'instruction BREAK. - Positionne correctement les tables sur la page. - Rejette désormais une instruction COLUMN où un en-tête chevauchant ne peut pas identifier les colonnes à sortir, et donne un avertissement dans le journal. - Prend en charge l'option ID de l'instruction DEFINE. - Prend en charge le bon alignement pour l'instruction REPORT LINE des destinations LISTING. - L'option système [NO]CENTER n'a aucun effet sur le positionnement : - LINE 'texte'; écrit le texte au centre de la ligne de la page - LINE @1 'texte'; écrit le texte en commençant à la 1ère colonne de texte - La mise en forme a été améliorée lorsque la largeur du format, COLWIDTH, le titre unique, le retour à la ligne de l'en-tête et la prise en charge des caractères répétés sont spécifiés. - Si vous spécifiez HEADLINE, le rendu sur plusieurs ligne a été amélioré. - Si vous spécifiez LABEL=" ", la valeur LABEL existante est effacée. - Permet désormais aux colonnes non imprimables qui surviennent avant la dernière colonne imprimable pour affecter le style pour la ligne de la table. SUMMARY ------- - N'échoue plus si une variable inconnue est spécifiée pour l'instruction FREQ. TABULATE -------- - ODS NEWLISTING fonctionne désormais correctement lors de la sortie de tables couvrant plusieurs pages. - Sort désormais le nombre correct de tables lorsque les options PRELOADFMT et EXCLUSIVE sont utilisées ensemble dans l'instruction CLASS. TEMPLATE -------- - Si vous triez la liste des modèles à l'aide de l'option LIST , le tri ne tient pas compte de la casse des caractères. - L'instruction PRINT est désormais implémentée pour le modèle FOOTER. - Le message d'erreur fait désormais référence à l'instruction DEFINE FOOTER. TRANSPOSE --------- - Prend désormais en compte l'option système VALIDVARNAME. UNIVARIATE ---------- - Est désormais plus robuste lors de l'ajustement d'une courbe. - Calcule désormais correctement les noyaux triangulaires. - L'ajustement de la courbe est désormais correct lorsque les paramètres spécifiés sont estimés. - La distribution GAMMA prend désormais en compte l'option ALPHAINITIAL. - Les options QQPLOT ROTATE et PCTLAXIS fonctionnent désormais ensemble correctement. - Les instructions PPPLOT, PROBPLOT et QQPLOT permettent désormais de ne spécifier qu'une seule distribution. - Pour l'instruction PROBPLOT, l'échelle de l'axe X est désormais correcte. - Pour les instructions PPPLOT, PROBPLOT et QQPLOT, une ligne n'est tracée que si elle est demandée. - L'instruction PPPLOT ne trace désormais le point le plus haut que si plusieurs observations ont la même valeur. - Les courbes de densité à noyau sont désormais libellées correctement. - L'option KERNEL de l'instruction HISTOGRAM fonctionne désormais correctement si toutes les valeurs des données sont identiques. - Les tracés ne sont plus tracés deux fois. - OVERLAY est désormais pris en compte. - Un message d'erreur apparaît si le type d'option est non valide. - L'option W2(SLOPE) de QQPLOT et PROBPLOT est désormais prise en compte. - Positionne désormais correctement les tracés générés par l'instruction CDFPLOT. - Les options NEXTRVAL ou ALL (qui définit NEXTRVAL=5) ne causent plus d'erreur si l'ensemble de données comporte moins de deux fois plus d'observations que la valeur choisie. - Les ensembles de données spécifiés pour OUTHISTOGRAM ou OUTKERNEL sont désormais appliqués correctement. - N'affecte plus de manière incorrecte les ensembles de données OUTHISTOGRAM ou OUTKERNEL lorsqu'il y a plusieurs instructions HISTOGRAM qui s'appliquent à des variables spécifiées, et non à toutes les variables. - Vous pouvez désormais fournir une liste de valeurs à l'option ROUND. La valeur d'arrondi que vous spécifiez est désormais appliquée correctement. - La vitesse et l'exactitude du calcul des quantiles IGAUSS ont été améliorées. - Ne crée plus de classes d'histogramme vides si le point extrême se trouve sur une limite de classe, et qu'il y a des erreurs d'arrondi. - Crée désormais des chemins ODS corrects pour tous les graphiques et tables liées aux diagrammes. - Les tests de qualité de l'ajustement fonctionnent désormais correctement. - L'évaluation numérique des dérivées est désormais traitée correctement dans les structures si-alors-sinon. - Il n'y a désormais plus de limite inférieure sur la valeur en entrée dans les fonctions de distribution de Johnson. - Les options NOVTICK et NOHTICK de l'instruction CDFPLOT désactivent désormais les valeurs et les libellés des graduations. - Si une instruction CLASS et une instruction HISTOGRAM sont spécifiées avec les options HANG et KERNEL, le rendu des graphiques est désormais correct. - Des messages sont désormais ajoutés au journal si l'instruction HISTOGRAM contient une variable ne figurant pas dans la liste de variables VAR ou n'étant pas une variable par défaut. - Les classes d'histogramme : - sont désormais étendues pour couvrir toutes les données si MIDPOINTS ou ENDPOINTS sont spécifiés de manière incorrecte ; - ne peuvent être spécifiées qu'avec des points centraux espacés régulièrement, et listés dans l'ordre croissant ; - sont désormais mieux traités lorsque le nombre de classes à tracer est démesuré. - Les ensembles de données qu'il est possible de créer à partir des objets en sortie comportent désormais des colonnes en plus de celles représentées dans les sorties ODS. Les colonnes ne sont pas affichées dans les sorties ODS telles que HTML et PDF. Les colonnes suivantes sont ajoutées : - "Varname" dans tous les ensembles de données. - "Class" dans tous les ensembles de données si l'instruction CLASS est définie. - "Histogram" et "Distribution" dans tous les ensembles de données concernant les distributions si l'instruction HISTOGRAM est définie. - "Histogram" dans tous les autres ensembles de données ne concernant pas les distributions si l'instruction HISTOGRAM est définie. - "Kernel" dans tous les ensembles de données concernant les estimations de densité par noyau. - L'option NOPRINT désactive désormais correctement l'impression depuis la seule instruction PROC UNIVARIATE, sans affecter l'instruction HISTOGRAM. - Les conditions utilisées pour la moyenne et l'écart type de la distribution de Pareto généralisée sont désormais correctes. - Fonctionne désormais correctement désormais correctement avec des ensembles de données séquentiels. - Ne cause plus de plantages ou de sorties non valides lorsqu'il y a beaucoup de valeurs manquantes.  - Utilise désormais la valeur mu0 spécifiée lors du test des valeurs moyennes tronquées et winsorisées. - La valeur calculée complète de la valeur p de Shapiro-Wilk est désormais affichée dans la table Tests de normalité. SORT ---- - L'ensemble de données en sortie a désormais le même état de compression que l'ensemble de données en entrée si COMPRESS=BINARY est défini au niveau global. APPSRV ------ - Superpose désormais un message sur l'erreur. Procédures graphiques ===================== Général ------- - La validité du catalogue et de l'entrée est vérifiée avant les procédures graphiques. GPLOT - Prend désormais en charge plusieurs instructions PLOT dans un même bloc RUN. Procédure SQL ============= - La procédure SQL sait désormais effectuer correctement les opérations suivantes : - placer une clause SELECT corrélée lorsque la requête externe contient une ou des jointures ; - gérer l'égalité modifiée comme une condition de jointure ; - définir la longueur de variables non équivalentes dans les opérations SET : - évaluer les expressions après UNION JOIN ; - résoudre : - les références de variable corrélées ; - les colonnes d'éléments SELECT corrélées ; - les requêtes imbriquées sur le même nom de table ; - les alias SELECT ITEM dans les clauses GROUP BY lorsqu'ils ont le même nom que les colonnes dans les tables source ; - sérialiser : - les conditions tout-vrai et tout-faux lors d'un transfert direct implicite ; - une clause IN vide dans un transfert direct implicite tel que la base de données peut toujours l'évaluer ; - remettre des instructions DELETE aux moteurs de base de données lorsque : - une fonction d'étape DATA renvoyant une valeur de type caractère est utilisée dans la clause WHERE ; - une sous-requête non corrélée est utilisée dans la clause WHERE ; - traiter les chaînes de vues, notamment celles créées par l'instruction DATA et la procédure SQL, contenant des variables avec des noms de format spécifiés. - Complète les opérations définies avec un nombre de champs différent des deux côtés. - Affiche la raison d'une erreur d'E/S. - Joint les vues inline. - Fournit des libellés aux colonnes calculées dans les vues si aucun libellé n'est fourni. - Si une option de base de données WHERE est spécifiée, les clauses WHERE sont désormais prises en compte. - Les messages d'erreur si la syntaxe de SELECT est incorrecte ont été améliorés. - L'ensemble de données en sortie n'est plus marqué comme trié lorsqu'une requête comportant une instruction DISTINCT a été sérialisée vers une bases de données. - La précédence des opérateurs pour la syntaxe WHERE NOT x IN (1,2,3) est désormais équivalente à celle de WHERE x NOT IN (1,2,3). - Une erreur est signalée si les noms de corrélation de table dans une requête sont ambigus. - L'état des fonctions aléatoires est désormais réinitialisé entre les invocations de la procédure. - N'utilise que le format BEST(8) pour écrire les valeurs numériques dans les variables de macro INTO de l'instruction SELECT. - L'instruction EXECUTE (requête) BY exécute désormais correctement la requête lorsqu'une connexion de base de données automatique est créée pour cette requête. - Renvoie un message d'erreur si la procédure tente de renvoyer une valeur à une variable de macro en lecture seule. - Les jointures MATCH et SPRINGFIELD fonctionnent désormais comme prévu. - Préserve les formats appliqués à l'ensemble de données source lors de la création d'un nouvel ensemble de données. - ALTER TABLE définit désormais correctement les informations de l'option de tri. - Les options LIKE et ESCAPE de l'instruction WHERE avec une table CREATE VIEW fonctionne désormais comme prévu. - Les libellés de colonne contenant des guillemets sont désormais pris en charge lorsque vous spécifiez une vue à l'aide de l'instruction CREATE VIEW. - L'utilisation d'une clause WHERE dans une requête pour VIEW fonctionne désormais correctement. - Spécifier une variable inexistante dans une instruction CASE ne cause plus la déconnexion de WPS Analytics du serveur de base de données. - L'option système VALIDVARNAME est désormais appliquée correctement. - Lorsque vous utilisez le transfert direct implicite, les espaces sortants sont supprimés des chaînes pour permette à la base de données cible d'effectuer des comparaisons par rapport aux champs de caractères à longueur variable. Procédures d'apprentissage automatique ====================================== DECISIONFOREST -------------- - Dans la procédure DECISIONFOREST, l'instruction PROC DECISIONFOREST inclut désormais l'option CLASSCOMB, qui indique comment combiner les probabilités prédites par chaque arbre dans une forêt de classification. DECISIONTREE ------------ - L'instruction CODE passe désormais les noms de variable comme des valeurs de chaîne littérales dans le code de scoring. MLP --- - L'instruction CODE passe désormais les noms de variable comme des valeurs de chaîne littérales dans le code de scoring. - N'échoue plus si la sous-option TRAININGSETORDERSEED de l'instruction MODEL est définie sur zéro. Procédures statistiques ======================= Général ------- - Les calculs d'ajustement de comparaison ont été améliorés dans l'instruction ESTIMATE des procédures LIFEREG, LOGISTIC, PHREG, et PROBIT : - La valeur p à deux côtés ajustée et les intervalles de confiance pour la méthode ADJUST=SIMULATE. - Les résultats d'ajustement pour la méthode ADJUST=SCHEFFE. - Les résultats d'ajustement lorsqu'il y a des entrées non évaluables dans la matrice de contraste L. - La variable est désormais définie correctement s'il y a une erreur de syntaxe lors de l'analyse de la procédure GENMOD, NLIN ou PHREG. BIN --- - Si les variables en entrée sont spécifiées en tant que chaînes littérales, les noms qui apparaissent dans la colonne Variable regroupée par classe de la table Mapping dans les sorties ODS correspondent désormais aux noms de variable de l'ensemble de données en sortie. CORRESP ------- - Fonctionne désormais correctement quand le nombre d'observations dans l'ensemble de données en entrée est supérieur à la taille de la table Burt obtenue lors de l'exécution de MCA avec l'instruction VAR. FACTOR ------ - Prend désormais correctement une matrice de covariance ou de corrélation créée à partir d'une procédure CORR comme ensemble de données en entrée. GENMOD ------ - Calcule désormais correctement la probabilité χ² associée à l'instruction ESTIMATE. - L'option STDRESDEV de l'instruction OUTPUT renvoie désormaisune valeur calculée au lieu de renvoyer une valeur manquante. - L'existence des fonctions VARIANCE et DEVIANCE est désormais vérifiée si DIST=USER est spécifié. - L'ordre de tri de réponse par défaut est désormais INTERNAL si un modèle multinomial distribué avec réponse numérique est spécifié. - L'option RORDER prend désormais en charge FREQ et INTERNAL. - La valeur de l'option AGGREGATE est désormais prise en compte lors du calcul des statistiques de déviance TYPE1. - L'instruction FREQ interagit désormais normalement avec les distributions. - L'instruction CODE passe désormais les noms de variable comme des valeurs de chaîne littérales dans le code de scoring. - Le test de la convergence hessienne utilise la matrice hessienne de l'itération précédente au lieu de celle associée aux estimations de paramètre actuelles. - Les erreurs générées par les fonctions et autres instructions sont désormais gérées correctement. GLM --- - Les mises à jour MERGEDLEGEND n'affectent plus la légende dans MEANPLOT. - L'option ADJUST de l'instruction LSMEANS fonctionne désormais comme prévu lorsque la matrice de contraste comporte des entrées qu'il n'est pas possible d'estimer. - Spécifier l'instruction LSMEANS pour calculer les valeurs de moyenne des moindres carrés génère désormais un résultat plus exact quand la variable WEIGHT ou FREQ contient des valeurs manquantes. GLMSELECT --------- - La méthode LASSO indique désormais correctement les degrés de liberté dans une table ANOVA. - Il est désormais possible de sélectionner plusieurs variables d'effet quand l'option NOINT est utilisée avec les méthodes de sélection FORWARD et STEPWISE. - N'échoue plus en cas de sélection de modèle vers l'arrière avec des régresseurs à dépendance linéaire. KDE --- - Génère désormais des chemins de tracé corrects pour les graphiques bivariés. LIFEREG ------- - Effectue désormais correctement des calculs de limite de confiance à précision égale, simultanés et non paramétriques. - Les tracés de survie sont désormais étiquetés correctement. - Peut désormais utiliser un ensemble de données OUTEST calculé auparavant pour l'option INEST d'une invocation de procédure ultérieure. LIFETEST -------- - N'échoue plus si l'instruction STRATA contient une variable comportant un format en entrée associé. LOGISTIC -------- - Les performances ont été améliorées. - N'échoue plus si une instruction BY et l'option OUTROC sont utilisés ensemble. - Les statistiques χ² Wald de type 3 sont désormais calculées correctement lorsque la fonction de lien GLOGIT est spécifiée. - Effectue désormais les opérations suivantes : - Trouver les variables qui contiennent des caractères non valides en langage SAS dans l'ensemble de données INEST. - Définir la bonne catégorie de référence lors du chargement d'un modèle logistique contenant l'option LINK=GLOGIT depuis un fichier. - L'instruction CODE passe désormais les noms de variable comme des valeurs de chaîne littérales dans le code de scoring. - L'équation dans les tables de dépendance linéaire est désormais limitée à 2000 caaractères. - La table de sortie ODS Logistic.Type3 a été renommée Logistic.ModelANOVA - Fait désormais de sorte que la matrice de covariance finale est positive. MI -- - Ne crée plus d'ensembles de données ayant des noms de variable en double. MIANALYZE --------- - La table ParameterEstimates comporte désormais des libellés de champ avec une limite de confiance de 95 %. - La procédure ne se bloque plus dans une boucle sans fin. - Fonctionne désormais correctement si l'instruction MODELEFFECTS n'est pas incluse avec chaque effet d'un modèle. - Elle associe désormais correctement les paramètres PARMINFO dans plusieurs imputations. - Ne produit plus un ensemble de données vide si l'ensemble de données en entrée ne comporte pas les informations nécessaires. MIXED ----- - L'option ADJUST de l'instruction LSMEANS fonctionne désormais comme prévu lorsque la matrice de contraste comporte des entrées qu'il n'est pas possible d'estimer. - N'arrive plus à court de mémoire lors de l'ajustement de modèles GLM volumineux. - N'échoue plus lorsqu'un terme de zéro de la fonction est spécifié comme effet répété dans l'instruction REPEATED. - Crée désormais une matrice de variance-covariance quand l'option DDFM=KENWARDROGER est spécifiée dans l'instruction MODEL. - Spécifier l'instruction LSMEANS pour calculer les valeurs de moyenne des moindres carrés génère désormais un résultat plus exact quand la variable WEIGHT ou FREQ contient des valeurs manquantes. MLP --- - Les messages d'erreur générés par l'option INITWEIGHTS ont été mis à jour. - Ecrit désormais un ensemble de données d'historique final contenant l'historique jusqu'à l'état complet final inclus. - L'ensemble de données d'historique fournit désormais des mesures d'erreur normalisées. NLIN ---- - Signale désormais le nombre d'observations plus précisément lorsque des groupes BY sont utilisés. - L'instruction DER de la procédure NLIN ne cause plus d'échec de l'assertion si la casse du paramètre de modèle spécifié ne correspond pas à celle du paramètre de modèle, ou si le paramètre n'est pas spécifié. Désormais, une erreur survient. - Les variables BY ne causent plus d'échec si elles ne sont pas les premières dans l'ensemble de données. - La variable (dépendante) de modèle peut désormais être de type caractère. - Les instructions SUM sont désormais affichées correctement lorsque l'option LIST de l'instruction PROC NLIN est spécifiée. NLMIXED ------- - Les erreurs générées par les fonctions et autres instructions sont désormais gérées correctement. NPAR1WAY -------- - Le test à deux échantillons et la sortie des tables StatFactoid ont été reformatés pour améliorer la lisibilité. - La sortie ODS spécifie désormais que les scores moyens ont été utilisés pour les liens s'il y a des liens. OPTIMALBIN ---------- - Ne supprime plus les observations manquantes ; les observations manquantes ne sont abandonnées que si l'option EXCLUDEMISS est spécifiée. PHREG ----- - Les courbes de survie ajustées directes groupées sont désormais étiquetées correctement. - Affiche désormais correctement les tables de coefficient. - Fonctionne désormais comme prévu avec covariance singulière et sélection du modèle vers l'arrière. POWER ----- - Les tests utilisant l'instruction ONESAMPLEFREQ et plusieurs options MARGIN sont désormais signalés correctement. PROBIT ------ - L'instruction CODE passe désormais les noms de variable comme des valeurs de chaîne littérales dans le code de scoring. REG --- - L'option START de l'instruction MODEL doit désormais être supérieure à zéro lorsque CP, ADJRSQ ou RSQUARE est spécifié pour l'option SELECTION. STANDARD -------- - Il est désormais possible de spécifier l'option REPLACE seule ; dans ce cas, les valeurs manquantes sont remplacées par la moyenne calculée. TTEST ----- - Fonctionne désormais correctement si la même variable est appariée. - PROC TEST ne produit plus de valeurs manquantes pour un test de ratio à 2 échantillons lorsque la moyenne est négative. - Les statistiques à modèle croisé affichent désormais le nombre correct de périodes. VARCLUS ------- - Prend désormais correctement une matrice de covariance ou de corrélation créée à partir d'une procédure CORR comme ensemble de données en entrée. Procédures de contrôle qualité ============================== CAPABILITY ---------- - L'option NOPRINT désactive désormais correctement l'impression depuis la seule instruction PROC UNIVARIATE, sans affecter l'instruction HISTOGRAM. - Vous pouvez désormais spécifier une graine aléatoire (option EDFSEED) à utiliser pour la génération de nombres aléatoires pour les tests de qualité de l'ajustement de toutes les distributions. - Utilise désormais les bons noms de colonne dans la sortie ODS produite pour la table de mesures de base. - Quand la procédure est invoquée sur z/OS, la convergence d'une fonction BETA incomplète s'effectue désormais correctement. - Les tracés WEIBULL2 placent désormais les lignes de spécification au bon emplacement. z/OS ==== - Sur z/OS, le code généré lorsque l'optimisateur est à son niveau le plus élevé est désormais correct. - Pour réduire la quantité de mémoire utilisée par les procédures de traitement des données, les bibliothèques de conversion de jeu de caractères ICU ne sont chargées que si nécessaire. - Si un ensemble de données WORK n'est pas spécifié, un ensemble de données temporaire est utilisé. - La coloration des messages du journal fonctionne désormais correctement. - Pendant le chargement d'un ensemble de données, le client WPS gère désormais correctement le message du serveur dans le journal. - Les options RLS interagissent désormais correctement entre elles. - Il est désormais possible de lire séquentiellement les ensembles de données lors de l'utilisation de RLS VSAM. - Prend désormais en charge CSSMPT pour les e-mails sans pièces jointes et n'ayant que du contenu inline. - RSUBMIT n'échoue plus lors de la connexion à un serveur AIX. - Les procédures UPLOAD et DOWNLOAD transmises d'un client z/OS à un serveur AIX fonctionnent désormais correctement. - WPS parvient désormais à lire une configuration si la valeur d'une option AUTOEXEC sur une instruction APPEND ou INSERT contient des parenthèses. - La fonction MODULEN fonctionne désormais correctement. - Le traitement de l'option CONFIG pour JREOPTIONS n'est pas cumulatif. Il faut utiliser APPEND et INSERT pour prendre en charge des opérations additives. - TSOWPS CLIST forme désormais les membres de la concaténation utilisée pour l'affectation DD en utilisant la séquence { fichier-config-installation, fichier-config-utilisateur }. Auparavant, la séquence utilisée était { fichier-config-utilisateur, fichier-config-installation }. Ceci empêche la modification locale des options système protégées. - WPS peut désormais utiliser plus de quatre processeurs. - L'interruption anormale d'E/S IEC1451I 413-18 ne survient plus lorsqu'une étape de données écrit un ensemble de données sur une bande vierge. - Utiliser une instruction LIBNAME avec un chemin d'accès vide génère désormais un message d'avertissement. - La valeur de l'option SERVER du nom de bibliothèque DB2 est converti automatiquement en majuscules. - Les arguments de ligne de commande incorrects passés au TSO WPS de démarrage sur z/OS peuvent causer un échec incorrect. - Il n'y a plus d'événement ABEND lors de la lecture d'un fichier MVS avec un exit utilisateur INFILE ou FILE et l'option DSCB ou CCHHR. - La variable DSCB est remplie de vides lorsqu'il est impossible de lire un DSCB pour un ensemble de données MVS référencé par une instruction INFILE ou FILE dans une étape DATA. - Les options système STARTTLS sont désormais prises en charge. - Les messages et les instructions EXIT dans le programme d'installation de RINST REXX ont été renumérotées. - TSOWPS CLIST lie désormais les cartes de sortie DD lorsqu'il est en mode DMR. - TSOWPS CLIST fournit désormais une liaison pour SASLOG en mode DMR. - L'option DMRSAVEOUTPUT permet désormais des liaisons par défaut pour toutes les sorties non liées. - Une interruption abend E/S B37 dans une étape DATA est désormais traitée comme prévu lors de la fermeture d'une étape DATA. - FILEBLKSIZE(3490E) prend désormais en charge des tailles jusqu'à 256 ko. - Une instruction FILENAME déclarée à un HLQ à un seul élément, et fait considérer le HLQ comme un nom DD, fonctionne désormais comme prévu. - La bibliothèque SASDASD peut désormais contenir des fichiers compressés avec zéro pages. - Ne cause plus une erreur de mémoire insusffisante si le nom du format est incorrect. - L'envoi de pièces jointes fonctionne désormais comme prévu. - Les instructions avec FILENAME incorrect échouent désormais correctement. - WPS génère désormais une erreur lors de la lecture d'une concaténation avec un membre PDS inconnu. - Il y a désormais une détection améliorée de l'utilisation des disques EAV pour le stockage des bibliothèques WPD sur z/OS. Les volumes EAV ne sont actuellement pas pris en charge pour le stockage des bibliothèques. WPS Communicate =============== - Les procédures UPLOAD et DOWNLOAD permettent désormais de charger et télécharger des ensembles de données très larges. - Les procédures UPLOAD et DOWNLOAD peuvent désormais utiliser des caractères génériques à n'importe quelle position d'un nom de fichier. - Le numéro de port du serveur WPS Communicate est désormais stocké dans la variable automatique TCPPORTSERVER. WPS Web ======= - Les valeurs de délai d'expiration du gestionnaire de charge (load manager) sont désormais correctes. Workbench ========= - Il est désormais possible d'exporter manuellement un ensemble de données WPD depuis la perspective de langage SAS en utilisant Citrix. - L'assistant d'importation permet désormais d'importer via une connexion distante. - La visionneuse de grille de données se comporte désormais correctement lors de la visualisation d'ensembles de données avec filtre et tri des colonnes si la compression est activée. - L'importation de fichiers xlsx gère désormais correctement les guillemets dans un en-tête de colonne. - La mise en page des sorties ODS NEWLISTING contenant des caractères Unicode est désormais correcte. Workflow ======== - Le bloc Mutation ne s'exécute désormais que si le nom des variables est spécifié. - Le rapport du Profileur de données reflète désormais le nom du libellé du bloc d'ensemble de données (si le Profileur de données était ouvert sur un bloc). Sinon, il indique le nom de l'ensemble de données. - Le bloc Imputation requiert désormais un pourcentage exprimé sous forme de fraction pour la moyenne winsorisée et la moyenne tronquée. ======================================================================= Obtenir de l'aide ======================================================================= La façon dont vous accédez au support technique dépend directement de comment vous avez acheté votre logiciel WPS. Soyez assuré que votre licence WPS inclut toujours assistance et maintenance. Si vous avez fait un achat standard du logiciel WPS, vous avez une licence d'abonnement annuel qui vous donne droit à un nombre illimité de mises à jour pendant les douze mois de validité de la licence. Vous bénéficiez aussi du support gratuit en envoyant un courriel à support@worldprogramming.com. Nous nous efforçons de toujours répondre rapidement aux courriels. Les principaux clients peuvent bénéficier d'un niveau de support supérieur. Dans ce cas, nous leur donnons souvent un accès à notre système de suivi des problèmes. Votre organisation peut désigner des utilisateurs avancés pour traiter toutes les demandes d'assistance technique. Pour résoudre vos problèmes, nous pouvons vous suggérer des solutions de contournement, ou encore vous demander de mettre à jour votre installation du logiciel WPS. En raison de la complexité du langage SAS, une interaction avec World Programming est parfois nécessaire pour identifier et corriger les causes exactes des problèmes. (c) 2022 World Programming