14-Mar-2022 ================= NOTAS DE LA VERSIÓN DE WPS ================= Versión 4.1.10-GA-release (4.1.10.0.18452-GA-release) Información acerca de las correcciones y mejoras importantes entregadas en la última versión de WPS. En este documento, el texto que se muestra entre corchetes angulares emparejados es variable y se puede reemplazar con el texto requerido. Por ejemplo, indica que debe especificar el nombre de ruta requerido a un dispositivo. ======================================================================= INDICE ======================================================================= - Novedades - Problemas conocidos - Notas de actualización - Actualizaciones no documentadas - Problemas resueltos - Obtener soporte ======================================================================= NOVEDADES ======================================================================= Flujos de trabajo ========= Esta versión incluye muchas mejoras en los flujos de trabajo para mejorar la usabilidad y el rendimiento, incluidos los siguientes: - Ahora puede agregar comentarios a un flujo de trabajo. - Puede crear referencias de origen de datos de base de datos locales. - Puede usar referencias a orígenes de datos de base de datos definidas centralmente (libname) almacenadas en el Concentrador de WPS. - Se ha agregado un análisis de correlación al Generador de perfiles de datos. - El bloque Combinación se ha actualizado para permitirle crear visualmente conexiones entre conjuntos de datos de entrada. - El bloque Filtro ahora admite filtros simples y avanzados. - Los bloques Lenguaje Python, Lenguaje R y Lenguaje SAS ahora muestran los conjuntos de datos y variables de entrada en el cuadro de diálogo Configurar. - Ahora se crean instancias de varios Motores de flujo de trabajo para permitir que los flujos de trabajo se ejecuten en paralelo. - El bloque Árbol de decisión tiene pestañas adicionales. La pestaña Tabla contiene representaciones tabulares del árbol. La pestaña Puntuación contiene el valor de probabilidad de salida en lenguaje SAS o SQL. - El bloque Árbol de decisión ahora le permite exportar la representación tabular del árbol de decisión a un archivo de Excel (.xlsx). - El bloque Importación de archivos de texto ahora le permite importar datos delimitados de un archivo con cualquier extensión de nombre de archivo. - Si copia y pega varios bloques, las posiciones relativas de los bloques ahora se mantienen. - El código SAS subyacente que se crea cuando se crea un flujo de trabajo ahora se puede exportar a un archivo - Ahora puede seleccionar varias variables del bloque Árbol de decisión y especificar su tratamiento. - Ahora puede duplicar un bloque del flujo de trabajo a través de un menú contextual - En el bloque Mutar, ahora puede arrastrar funciones y variables al editor de expresiones. - El bloque Analizar modelos ahora admite variables continuas. - En el bloque Base de datos: - Ahora puede configurar SSL para MySQL. - Se han realizado varias mejoras para la configuración de ODBC para ayudarlo a configurar bases de datos más fácilmente. Esta versión incluye nuevos bloques: - Para la importación: - Importación de base de datos - Para la preparación de datos: - Agregar - Discretización - Rango - Muestra - Ordenar - Bloques de código: - SQL. - Para el entrenamiento del modelo: - Bosque de decisión - Regresión lineal - MLP - Para la exportación: - Generador de diagramas - Exportación de archivo delimitado - Exportación de Excel Motores de datos ============ Los siguientes Motores de datos se han mejorado en esta versión: Oracle ------ - Ahora admite toda las codificaciones de ORACLE. - Se ha modificado para crear tablas temporales GLOBAL. - La opción DBCOMMIT ahora permite múltiples confirmaciones. ODBC ---- - DBINDEX ahora es compatible con ACCESS ODBC (sólo Access 2013 y Access 2016). - Ahora puede conectarse al Servicio de consultas Amazon Athena. SQLSERVER --------- - Para SQLSERVER multiproceso, la opción de generación de SQL INSERT_SQL ahora es compatible. Funciones del paso DATA =================== Las siguientes funciones del paso DATA son nuevas en esta versión: - JARO - JAROWINKLER - NGRAM - SYSEXIST - EUROCURR Las siguientes funciones del paso DATA se han mejorado en esta versión: - Todas las funciones de distribución de WALD ahora admiten la opción lambda. Actualizaciones de Output Delivery System (ODS) ==================================== - El grupo de etiquetas ExcelXP ahora admite las siguientes opciones: - BLACKANDWHITE - CENTER_HORIZONTAL - EMBED_FOOTNOTES_ONCE - PAGES_FITHEIGHT - PAGES_FITWIDTH - El destino ODS EXCEL ahora es compatible con archivos de formato .xlsx. - Los procedimientos gráficos ahora usan un contador global para generar nombres de archivos de imagen. LISTING ------- - El destino del Listado de ODS se ha refactorizado para mejorar el rendimiento y expandir las opciones admitidas. El soporte experimental para el nuevo destino de listado se ha agregado a esta versión. Si desea probar el nuevo destino del listado, comuníquese con support@worldprogramming.com para obtener ayuda. - Una instrucción ODS LISTING vacía cerrará un archivo de lista abierto y con nombre. Opciones del sistema ============== Las siguientes opciones de sistema se han agregado en esta versión: - 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 ====== - Ahora se admite la forma &= varname de la expansión de la variable de macro. - Las siguientes instrucciones de macro ahora se pueden usar en un programa de lenguaje SAS fuera de un bloque #%MACRO...%MEND: - %IF - %THEN - %ELSE - %DO, incluyendo %DO iterativo, %DO %WHILE y %DO %UNTIL - %END Procedimientos generales ================== El siguiente procedimiento general es nuevo en esta versión: - FONT En esta versión, se han mejorado los siguientes procedimientos generales: - REPORT - La instrucción DEFINE ahora admite: - ID - PROBT (alias para PRT) - MODE - Bloque de código COMPUTE. La justificación predeterminada de la instrucción LINE es ahora CENTER. - NOPRINT - OPTIONS - Ahora admite los detalles del conjunto where. - PYTHON - Los argumentos de la línea de comando ahora se pueden especificar en la instrucción EXECUTE. - R - Los argumentos de la línea de comando ahora se pueden especificar en la instrucción EXECUTE. - FORMAT - La salida de la instrucción PICTURE ahora está alineada a la derecha. - TABULATE Ahora admite EXCLNPWGT. - TRANSPOSE Los espacios iniciales y finales en los nombres de variables se eliminan, incluso si la opción de sistema VALIDVARNAME=ANY está establecida. - UNIVARIATE, la instrucción HISTOGRAM ahora admite: - MAXNBIN - NROWS - NCOLS Procedimientos gráficos =================== Los siguientes procedimientos gráficos son nuevos en esta versión: - GINSIDE - GPROJECT - SGPLOT - SGPANEL Procedimientos de aprendizaje automático =========================== Los siguientes procedimientos de aprendizaje automático son nuevos en esta versión: - DECISIONFOREST - SEGMENT Investigación operativa ==================== El siguiente procedimiento de investigación operativa es nuevo en esta versión: - LP Control de calidad =============== El siguiente procedimiento de control de calidad es nuevo en esta versión: - CAPABILITY Procedimientos estadísticos ====================== Los siguientes procedimientos estadísticos son nuevos en esta versión: - ASSOCRULES - GAM - LP - PLAN - QUANTREG - ROBUSTREG - RSREG - TPSPLINE En esta versión, se han mejorado los siguientes procedimientos estadísticos: - NPARWAY1 - Ahora admite la instrucción EXACT. - SURVEYSELECT - Ahora usa el algoritmo Twister de Mersenne de manera predeterminada para generar muestras. - Ahora admite la instrucción FREQ. - La instrucción PROC SURVEYSELECT ahora admite las siguientes opciones: - GROUPS - METHOD. Los siguientes métodos son ahora compatibles: - BALBOOT - BERNOULLI - POISSON - PPS - PPS_BREWER - PPS_MURTHY - PPS_SAMPFORD - PPS_SEQ - PPS_SYS - PPS_WR - SEQ_POISSON - SRS - SYS - RANUNI, que sirve para reproducir los resultados generados con la versión 4.0 de WPS. - REP, que tiene la opción REPNAME = nombre agregada - ROUND - STRATUMSEED - La instrucción STRATA ahora tiene el soporte para las siguientes opciones: - ALLOC - ALLOCMIN - ALPHA - COST - MARGIN - NOSAMPLE - STATS - GENMOD - La instrucción MODEL ahora es compatible con las opciones TRUNC y NOTRUNC. Para detalles, consulte 'Actualizaciones no documentadas' en estas notas de la versión. Procedimientos de serie temporal ====================== El siguiente procedimiento de serie temporal es nuevo en esta versión: - AUTOREG Workbench ========= Las siguientes funciones son nuevas en esta versión: - Ahora puede arrastrar un archivo desde el Explorador de archivos y colocarlo en una biblioteca. - Ahora puede especificar en Preferencias que el registro se borra cada vez que se ejecuta un programa o paso. - Ahora puede abrir bases de datos cifradas y solicitar una clave a través de un diálogo. - Ahora puede ejecutar el paso que actualmente contiene el cursor usando las opciones 'Ejecutar paso' o 'Ejecutar paso en' en el menú contextual del editor de programas. - Los conjuntos de datos cifrados se pueden abrir desde el Explorador de archivos, el Explorador de servidores y el Explorador de proyectos. - Se agregan accesos directos para abrir archivos en el Explorador del sistema desde las vistas Proyecto/Archivo. - Se agregan accesos directos para abrir archivos en Explorador del sistema desde el menú de contenido de la pestaña del editor. WPS Communicate =============== Se han realizado los siguientes cambios en esta versión: - Ahora puede anidar los bloques RSUBMIT y ENDRSUBMIT. - Cada envío desde Workbench está marcado en la salida del registro con una marca de tiempo anterior y posterior que también contiene el nombre de usuario remoto para facilitar su uso. - El lado cliente ahora comprueba la versión del servidor para ver si la funcionalidad de cifrado o compresión está presente o de otra manera, genera un error. - Ahora puede usar variables de macro en la instrucción LOG de los scripts. ======================================================================= Problemas conocidos de WPS y soporte ======================================================================= La sección contiene información acerca de problemas conocidos en esta versión de WPS y cómo obtener soporte técnico. ----------------------------------------------------------------------- Problemas conocidos críticos ----------------------------------------------------------------------- Ninguno ----------------------------------------------------------------------- Problemas conocidos importantes ----------------------------------------------------------------------- ODBC ==== La actualización o eliminación de filas con el motor para ODBC ahora utiliza actualizaciones basadas en el cursor a través de la cláusula "WHERE CURRENT OF" que admiten algunos controladores ODBC. Actualmente sólo admitimos esta funcionalidad para conexiones de DB2 y SQL Server que utilizan el motor de biblioteca para ODBC. Procedimiento Python ================ - Cuando se usa el procedimiento Python, cualquier llamada de programa de Python que detiene al intérprete de Python, como sys.exit() u os.exit(), detendrá el procesamiento en WPS y el servidor WPS tendrá que reiniciarse. DBCS/multibyte ============== - La codificación de la sesión DBCS/multibyte no está admitida en z/OS. - No se admite UTF-16 con detección automática de orden de bytes desde la marca de orden de bytes para la codificación de archivos externos. Sin embargo, se admiten UTF-16BE y UTF-16LE explícitos y tolerarán la marca de orden de bytes. - El rendimiento puede ser un problema con algunas de las funciones, formatos e informatos. - El Motor de WPS para SAND actualmente no admite codificaciones multibyte. ----------------------------------------------------------------------- Problemas conocidos secundarios ----------------------------------------------------------------------- Workbench ========= - Si arrastra un archivo desde el Explorador de archivos al Explorador de proyectos, ahora el archivo se copiará y abrirá. - El Analizador de códigos no administra archivos en los cuales las líneas terminan con números; estos son típicamente archivos de mainframe. - Si intenta aplicar una licencia a un servidor que se ha especificado en una ruta que no contiene una instalación de WPS, la aplicación de licencia producirá errores, pero no limpiamente, y se mostrarán mensajes que hacen referencia a errores desconocidos. - En Linux, los cuadros de diálogo pueden estar ocultos detrás de otras ventanas. - En Linux, el botón Examinar utilizado para cambiar un motor preexistente en un servidor remoto de Windows para que apunte a la instalación del software en la máquina virtual remota no funciona. - La vista previa de importación de archivos podría truncar los datos porque las filas devueltas por el límite de la fila de vista previa podrían no contener información suficiente para determinar la longitud de una variable. Nomenclatura de archivo =========== - Si crea o cambia el nombre de un archivo en el sistema operativo Windows y el nombre del archivo contiene caracteres que no pueden representarse en la codificación de la sesión WPS actual, los caracteres que no pueden representarse se reemplazarán u omitirán. De manera predeterminada, se reemplazan. Esto sólo sirve para la visualización en los procedimientos y funciones de WPS. Por ejemplo, si utiliza el procedimiento DATASETS para mostrar a los miembros de una biblioteca, un nombre de archivo con caracteres que no se pueden representar, se mostrará con caracteres de sustitución. Sin embargo, no puede realizar ninguna operación en el archivo mediante el nombre de archivo, ya que el nombre de archivo no representa el nombre de archivo real. - Puede cambiar la forma en que WPS funciona con dichos nombres de archivo utilizando la opción del sistema CHARTRANUNMAPPABLE; puede, por ejemplo, especificar que los caracteres se sustituyen con un carácter de escape o se ignoran. Motores de datos - multiproceso ============================ NETEZZA ------- Si sus programas de lenguaje SAS utilizan la instrucción LIBNAME para conectarse a Netezza, y la instrucción contiene cualquiera de las siguientes opciones, debe reemplazar NETEZZA con NETEZZAOLD en la instrucción LIBNAME: - DELETE_MULT_ROWS - IGNORE_READ_ONLY_COLUMNS - STRINGDATES - UPDATE_MULT_ROWS - USE_ODBC_CL - UTILCONN_TRANSIENT ODBC ---- Si sus programas de lenguaje SAS utilizan la instrucción LIBNAME para conectarse a ODBC, y la instrucción contiene cualquiera de las siguientes opciones, debe reemplazar ODBC con ODBCOLD en la instrucción 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 sus programas de lenguaje SAS utilizan la instrucción LIBNAME para conectarse a SQL Server, y la instrucción contiene cualquiera de las siguientes opciones, debe reemplazar SQLSERVER con SQLSERVEROLD en la instrucción 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 Configuración de agente para los servicios web de WPS ========================================= Se recomienda que las opciones de configuración del archivo 'broker.cfg', ubicado en //web/cgi-bin, se ordenen de tal manera que el conjunto de configuración ALL 'WPSPowered *' (donde "*" es un carácter comodín) aparezca antes de la configuración de 'Servicio' en ese archivo. Las instrucciones de eco en los archivos .bashrc al usar WPS Link ==================================================== Si sus scripts de inicialización de shell repiten el texto durante un inicio sesión no interactivo, WPS Link no se iniciará. Es necesario, por lo tanto, eliminar tales instrucciones de eco o poner la condición que la shell sea interactiva a continuación: * Compruebe la marca 'interactiva' Por ejemplo: case $- in *i*) echo "Esta es una shell interactiva"; esac * Use la utilidad TTY para detectar una shell interactiva Por ejemplo: if tty > /dev/null 2>&1 do echo "Tenemos una sesión interactiva" fi * Compruebe el valor de la variable de entorno $SSH_TTY if [ "$SSH_TTY" ] then echo "Tenemos una sesión interactiva" fi Componentes del paso DATA JAVAOBJ en z/OS =================================== El componente de paso DATA JAVAOBJ sólo se admite en z/OS cuando WPS se invoca a través de la interfaz USS. WPS busca las clases Java que se cargarán en los directorios con nombres en la variable de entorno CLASSPATH, que existe cuando se ejecuta a través de la interfaz USS, pero no cuando se ejecuta a través de TSO o como un trabajo enviado. Motor de datos para XLSX en z/OS ======================== El Motor de datos para XLSX sólo se admite en z/OS cuando WPS se invoca a través de la interfaz USS. ======================================================================= Notas de actualización ======================================================================= ----------------------------------------------------------------------- Opción YEARCUTOFF ----------------------------------------------------------------------- El valor predeterminado para la opción de sistema YEARCUTOFF ahora es 1926. El rango de fechas de dos dígitos es, por defecto, del 01 de enero de 1926 al 31 de diciembre de 2025. Como resultado de este cambio, cualquier funcionalidad de WPS Analytics para la que se especifique un valor de año de dos dígitos, por ejemplo, la función de paso DATA MDY(), podría generar resultados diferentes. Para volver al comportamiento de versiones anteriores de WPS Analytics, especifique el valor de la opción del sistema YEARCUTOFF de 1920. ----------------------------------------------------------------------- Actualización de área de trabajo ----------------------------------------------------------------------- Cuando utiliza WPS Workbench 4.1 para abrir un área de trabajo creada utilizando una versión anterior de WPS Workbench, es posible que se muestre un diálogo que le pide confirmar que el área de trabajo se puede actualizar automáticamente. Esto permite a Workbench leer el área de trabajo correctamente. Tales actualizaciones automáticas no deberían crear ningún problema. ======================================================================= Actualizaciones no documentadas ======================================================================= El procedimiento GENMOD ==================== - PROC GENMOD ahora puede ajustarse a un Poisson, a un binomio negativo, a un Poisson inflado a cero, a un binomio negativo inflado a cero o a una distribución geométrica si se especifican números no enteros en lugar de números enteros. - Las opciones TRUNC y NOTRUNC se ha agregado a la instrucción MODEL utilizada para especificar estas distribuciones. TRUNC especifica que se utilizan números enteros y que los números no enteros se truncan adecuadamente. Especifique que NOTRUNC usa números decimales. El valor predeterminado es NOTRUNC. ======================================================================= Funcionalidad desusada ======================================================================= La siguiente funcionalidad está en desuso con esta versión y las características estarán disponibles en una versión futura de WPS Analytics. Cualquier programa de lenguaje SAS se debe modificar para usar la alternativa recomendada: - Instrucción ODS OLDHTML - Use la instrucción ODS HTML - Instrucción LIBNAME ORACLEOLD - Use la instrucción LIBNAME ORACLE - Instrucción LIBNAME DB2OLD - Use la instrucción LIBNAME DB2 - El soporte WPS para el controlador ODBC de SQLSRV32 se va a quitar. Debe instalar y usar el controlador ODBC de Microsoft para SQL Server en su lugar ======================================================================= Problemas resueltos ======================================================================= Básico ==== General ------- - El paso DATA ahora concatena correctamente cadenas que incluyen miembros de la matriz. - Un programa ahora puede contener caracteres que no sean de impresión; estos caracteres ya no se reemplazan con espacios. - Las claves de cifrado (como las que se suministran a la opción de conjunto de datos ENCRYPTKEY o la opción del sistema ENCRYPTKEY) ahora se han ofuscado en el registro. - Ahora aparece un mensaje de error si se utiliza un nombre de variable macro vacío en las rutinas CALL de macro de paso DATA. - Rendimiento mejorado cuando se utiliza un gran catálogo de macros compiladas. - WPS Analytics ahora se distribuye con OpenJDK. - Se agregó la opción de autenticación PLAIN para servidores EMAIL SMTP. - WPS Analytics ya no se ejecuta indefinidamente cuando se llama a una macro con un parámetro con nombre indefinido. - Ahora se crea una nota en el registro cuando un valor ausente es el numerador o denominador en un cálculo de división. - Las derivadas de funciones ahora se calculan correctamente en las instrucciones IF ELSE anidadas. - El número de registros reemplazados utilizando la instrucción de modificación ahora se informa correctamente. - La validez de los nombres de conjuntos de datos de una y dos partes ahora se verifica para garantizar de que cumplen con el valor especificado en la opción del sistema DATASTMTCHK. - WPS Analytics ahora se puede usar con la versión 4 de R. - Especificar la variable de sistema _LAST_ ya no hace que WPS Analytics produzca errores si la biblioteca a la que se hace referencia ya no es válida. - WPS Analytics ya no produce errores si un componente HITER hace referencia a un componente HASH eliminado. - El cálculo de los tamaños de los bloques de ejecución de ordenación ahora es correcto al ordenar un conjunto de datos que contiene exactamente 2 observaciones. FILENAME URL ------------ - Ahora administra valores numéricos mayores que 2^31 provenientes del servidor usando representaciones de 64 bits. Utilidad de limpieza automática ----------------- - La utilidad en Windows: - Ahora admite las opciones force (-f), verbose (-v) y list (-n). - Ahora admite la opción -ff para seleccionar un directorio temporal de forma más eficaz que la opción -f. Archivos de configuración -------------------- - El archivo de configuración predeterminado wps.cfg para Windows ahora usa la variable de entorno CSIDL_MYDOCUMENTS en lugar de CSIDL_PERSONAL para la ubicación predeterminada de SASUSER. - Las opciones del sistema que contienen el carácter subrayado (_) en el nombre ahora están permitidas en un archivo de configuración. Macros ====== - Si la opción del sistema MCOMPILENOTE se establece en AUTOCALL o CALL, el mensaje de compilación de macros ahora informa el número correcto de instrucciones. - La instrucción %LET ahora tiene un límite máximo de recursividad de 1000000 elementos. - Las opciones DESC y MINDELIMITER en las definiciones de macro ahora permiten espacios entre la opción y el valor asignado. - Los nombres de macro para macros de estilo de instrucción ahora están limitados a ocho caracteres. - Las comprobaciones de recursividad infinitas ahora se han mejorado cuando las macros se amplían e invocan. - Los comentarios ahora se pueden usar en código macro. Macro de reemplazo de texto ---------------------- - Una expansión de autorreferencia exacta ahora elimina la macro referenciada. - Un nombre de macro ahora reemplaza solo las coincidencias exactas y el nombre no debe tener más de 8 caracteres. Por ejemplo, MACRO abcdefgh% ya no coincide con 'abcdefgh' y 'abcdefghijklm'. - Las definiciones de macro de texto auto-recursivo ahora se expanden correctamente. - En algunas circunstancias, la configuración de directivas de macro de expansión de texto, como instrucciones globales, puede provocar un error durante la evaluación. Opciones del sistema -------------------- - Las ubicaciones de AUTOEXEC ahora se pueden concatenar correctamente utilizando APPEND e INSERT. - IMPORTDELIMTRIM es una nueva opción de sistema que le permite especificar cómo el procedimiento IMPORT administra los valores en un archivo CSV importado que tiene un espacio después de la coma. - INPUTCASTNUMTOCHAR es una nueva opción de sistema que le permite especificar cómo se trata el primer argumento de la instrucción INPUT. - NOS99NOMIG ahora funciona como previsto. - VALIDVARNAME=ANY ahora funciona correctamente. - Cuando se especifica ERRORABEND, un error de falta de memoria al analizar un programa de lenguaje SAS ahora causa ABEND correctamente. - Ahora puede leer correctamente un conjunto de datos utilizando un índice creado cuando IBUFSIZE era menor que el valor actual - El alias WPSCOMPR ahora se puede usar para la opción del sistema WPSCOMPROTOCOL. Instrucciones globales ----------------- - Ahora puede especificar si se devuelve un mensaje de error para los códigos de respuesta de error SMTP generados por FILENAME EMAIL. - WPS ahora se completa correctamente si a una instrucción %INCLUDE le sigue OPTIONS LRECL. - Ahora puede controlar el comportamiento de WPS si se produce un error en el servidor de correo electrónico al utilizar FILENAME EMAIL SMTP. Se usa un conjunto de datos SMTPRESPONSE para mostrar los códigos de retorno del servidor y el comportamiento de WPS correspondiente. Las respuestas predeterminadas están en el conjunto de datos SMTPRESPONSE en la biblioteca SASHELP. Puede especificar sus respuestas a los códigos de retorno en el conjunto de datos SMTPRESPONSE en la biblioteca SASUSER, que se leerá antes que el conjunto de datos en SASHELP. Ahora también se proporcionan las variables de macro SYSSMTPREPLYCODE y SYSSMTPREPLYTEXT. Estos se establecen en el código SMTP y el texto devueltos cuando se produce un error en el servidor de correo electrónico. - RESETLINE ahora funciona correctamente como instrucción global. - FILENAME HTTP ya no envía el número de puerto en el HOST: encabezado de solicitud. - FILENAME FTP ahora usa el archivo .netrc en las plataformas LINUX. - FILENAME URL ahora administra valores numéricos mayores que 2^31 provenientes del servidor usando representaciones de 64 bits. Conjuntos de datos -------- - Ahora se puede ordenar un conjunto de datos sin que se produzcan condiciones de memoria insuficiente. Se ha mejorado el rendimiento de la compresión RLE en los conjuntos de datos WPD3. - Los nombres de los conjuntos de datos ahora pueden tener más de 32 caracteres. Vistas de conjuntos de datos ------------- - DICTIONARY.VIEWS y SESHELP.VIEW ahora informan el motor de visualización correctamente. - El nombre de la vista se incluye en la salida de la instrucción DESCRIBE. Componentes del paso DATA -------------------- - El componente HASH ya no produce errores en algunas circunstancias. Instrucciones del paso DATA -------------------- - La instrucción SET ahora funciona correctamente cuando se usa con las opciones de conjunto de datos RENAME y WHERE. - Ya no se produce un error al procesar cadenas de vistas que contienen variables con nombres de formato específicos. - Si se especifica la instrucción LIST y la salida se extiende a una segunda página o una posterior, la regla de la página ahora se coloca correctamente. - RENAME ahora funciona como previsto cuando se especifica como la instrucción de paso DATA RENAME o en las instrucciones KEEP o DROP. - Las opciones KEY y END ahora se pueden usar juntas en la instrucción SET y funcionan como se espera. - La opción _FILE_ para la instrucción FILE ahora se puede usar al acceder a un conjunto de datos VSAM. - La opción _INFILE_ para la instrucción INFILE ahora se puede usar al acceder a un conjunto de datos VSAM. - Los componentes del paso DATA ahora sólo se pueden declarar una vez que se encuentran en un paso. Funciones del paso DATA -------------------- - RAND('BERNOULLI') ahora devuelve correctamente 1 para el éxito y 0 para el error. - RAND('UNIFORM') ahora devuelve correctamente un valor de x donde 0 < x <1. - La función LOGCDF y la función LOGSDF ahora devuelven el resultado correcto para la opción NORMALMIX. - La función ROUND ahora se redondea correctamente si la parte decimal del número a redondear cae dentro del épsilon de la función. - Las funciones de distribución de JOHNSON SU ahora no tienen un límite inferior en el valor de entrada. - JOHNSONSB - LOGPDF ahora devuelve 0 (cero) si una entrada está fuera del intervalo. - EUROCURR ahora contiene los tipos de cambio de tasa fija para cuando el Euro reemplazó a los Lats letones y Latis lituanos. - Las funciones de distribución TWEEDIE ya no devuelven valores ausentes si no se proporcionan argumentos opcionales. - Ahora aparece un mensaje de error si se utiliza un nombre de variable macro vacío en las rutinas CALL de macro de paso DATA. - La función SUBPAD ya no escribe fuera de los límites y la memoria dañada. - La función HTMLDECODE ahora decodifica correctamente la entidad HTML  . - La función HOLIDAY ahora devuelve la fecha correcta cuando se especifica UKEASTERMONDAY. - Las funciones URLENCODE() y URLDECODE() ahora se convierten hacia y desde UTF-8, o funcionan completamente en la codificación de sesión, dependiendo del valor de la opción del sistema URLENCODING. - La función FINANCE('COUPDAYSNC') ahora calcula correctamente cuando el argumento base es 0 (cero). - Las funciones basadas en distribución ahora calculan correctamente las distribuciones de Poisson, Binomial, Multivariada, T y Binomial negativa, que contienen una gran cantidad de eventos. - Las funciones de distribución geométrica ahora devuelven el valor preciso para p=1. - RAND("NORMAL"). Ahora valida que la desviación estándar sea positiva. - RAND("GEOMETRIC") ahora devuelve enteros. - Función GETOPTION. Ahora se puede usar para recuperar opciones de contraseña. - Las funciones de distribución logística LOGPDF, LOGCDF y LOGSDF ahora devuelven el valor correcto en lugar de un valor ausente si el resultado es menor que CONSTANT ('LOGSMALL') Formatos e informatos --------------------- - Ya no se produce un error si: - Los formatos tienen longitud cero. - Un formato largo se especifica usando w.d. - Se envía un mensaje de error a la salida del registro cuando se excede el formato del máximo de caracteres. - La longitud mínima del formato B8601DT ahora es de 15 caracteres, correspondiente a la forma más corta del formato ISO 8601 yyyymmddThhmmss. - NENGO se ha actualizado para permitir el formato de fechas en la nueva era. - El formato IEEE se ha agregado para habilitar el formato de números en formato de punto flotante IEEE. - Cuando se usa la instrucción de paso INPUT DATA, ahora se genera una advertencia si el formato $VARYING se aplica a una variable con un tipo numérico inferido. - Los formatos aplicados a números negativos ahora dan como resultado asteriscos (*) en lugar de 0 (cero) si el ancho especificado es demasiado estrecho para el valor de la variable. - Los informatos B8601LZ y E8601LZ ahora generan el valor de tiempo de compensación correcto. - El formato ANYDTDTM ahora interpreta correctamente el formato MMM DD YYYY HH:MM:SS. - Los formatos WEEKU, WEEKV y WEEKW ahora aplican el formato a las fechas al principio y al final del rango permitido en WPS. - Los formatos WEEKU, WEEKV y WEEKW ahora agregan espacios finales para llenar el ancho especificado. Motores para bibliotecas =============== - El motor de la biblioteca XML ahora se cierra en el orden correcto al finalizar el programa. - El motor JSON ahora permite que la generación del conjunto de datos ALLDATA se deshabilite con la opción NOALLDATA. Motores de datos ============ - El paso a través implícito ahora entrega las cadenas citadas correctamente serializadas. - Las fechas máximas y mínimas permitidas ahora se administran correctamente. - Ahora está disponible en cola. La forma en que se puede utilizar el proceso de poner en la cola depende del motor. Para detalles, consulte la Referencia para los elementos de lenguaje de WPS. - Los valores de TIMESTAMP antes del 1 de enero de 1582 ahora se devuelven como valores ausentes cuando se recuperan a través de conexiones de bases de datos DB2, Oracle y ODBC. ORACLE ------ - En el motor de datos ORACLE: - La opción DB_LENGTH_SEMANTICS_BYTE ahora administra correctamente los tamaños de caracteres de codificación del servidor. - La instrucción UPDATEBUFF ahora funciona correctamente. - Las inserciones/actualizaciones de campos binarios ahora funcionan correctamente en Oracle en el producto de Windows de 32 bits. - Una palabra reservada en ORACLE también se puede usar como un alias en PROC SQL al consultar una base de datos de ORACLE. Para evitar que el alias informe un error y detenga la consulta, el alias ahora está entre comillas. - El motor de datos para ORACLE ahora correctamente: - Administra la situación en la que no se especifica ninguna variable a SELECT, pero el motor aún necesita capturar cada registro seleccionado. - Vincula columnas de caracteres y binarias al leer en campos que son más cortos que la longitud de la columna. - Ahora se puede rebobinar un cursor de Oracle de exploración secuencial. ORACLEOLD --------- - ORACLEOLD ahora puede insertar datos en una tabla mediante PROC APPEND cuando el nombre de la columna es una palabra clave de Oracle. ODBC ---- - Las opciones COMPLETE, REQUIRED, PROMPT y NOPROMPT ahora funcionan correctamente con MySQL y DB2. - Las opciones COMPLETE y REQUIRED ahora funcionan correctamente con SQLServer. Ahora admite transacciones a Google BigQuery. - El motor para ODBC ahora admite: - DBINDEX en ACCESS ODBC (sólo Access 2013 y Access 2016). - PROMPT, NOPROMPT, COMPLETE y REQUIRED en MySQL. - COMPLETE, REQUIRED y PROMPT con la ventana emergente en DB2. - REQUIRED y COMPLETE con la ventana emergente en SQL Server. NETEZZA ------- - Cuando los datos de carga masiva, los tipos de columna CHAR, VARCHAR y LONG VARCHAR ahora usan la codificación interna de Latin 9; los tipos de columna NCHAR, NVARCHAR y LONG NVARCHAR ahora usan la codificación interna de UTF-8. SQLSERVER --------- - Ahora admite las siguientes opciones: - DBSLICE - DBSLICEPARM - INSERT_SQL ACCESS ------ - Ahora puede exportar números formateados sin decimales (por ejemplo, w.) incluso si el número tiene decimales. EXCEL ----- - Ahora proporciona un mensaje de advertencia si un archivo de origen contiene caracteres Shift-JIS que no se pueden asignar. DB2 --- - DB2 en z/OS ahora habilita SPOOL=YES|NO|DBMS. - Ahora combina las columnas correctamente. PostgreSQL ---------- - Los datos ahora se cargan correctamente en Postgres cuando se especifica BULKLOAD=YES. Teradata DB ----------- - Todas las conexiones restantes ahora están cerradas cuando una sesión se desconecta de una base de datos Teradata. XLSX ---- - Varias bibliotecas ahora funcionan como se esperaba cuando se concatenan en una nueva instrucción LIBNAME XLSX. ODS === - Los valores de FORMAT no válidos en las plantillas de TTI ahora causan una advertencia. - Si las plantillas de tabla contienen expresiones erróneas, no se generan advertencias de registro. - El tipo de salida de conjunto de etiquetas MSOFFICE ahora está correctamente configurado en HTML. - La salida para caracteres UNICODE no válidos ahora es consistente en todos los destinos de salida. - Las instrucciones START y END de las plantillas HEADER y FOOTER ahora aceptan variables. - La instrucción TRANSLATE ya no se ignora si está definida en la plantilla del padre. - LISTING ahora administra mejor las celdas que expanden filas en las tablas. - MARKUP: - Ahora aplica correctamente los valores de FONTSIZE como tamaños de fuente relativos. - Los valores de FONTSIZE fuera del rango permitido ahora devuelven un error en el registro. ODS EXCEL y EXCELXP ahora reducen el título y las notas al pie especificados para que se ajusten al usar las subopciones TITLES_SHRINK_TO_FIT y FOOTERS_SHRINK_TO_FIT. - Los formatos definidos por el usuario ahora admiten valores de atributos de estilo. - Las opciones GTITLE y GFOOTNOTE ahora pueden suprimir el título/nota al pie en la salida escrita en un destino ODS. EXCELXP ------- - Tiene nuevas opciones para la impresión. - Ahora muestra correctamente los datos cuando se cambia SHEET_INTERVAL. - Ya no se escribe una fila en blanco entre un texto especificado por TITLE o FOOTNOTE, y una tabla. - El PDF ahora administra correctamente la alineación del Título y la Nota al pie en el elemento de estilo del título del sistema. - Los caracteres de tabulación en las subopciones separadas por comas ahora se analizan correctamente. PDF --- - Ya no notifica una advertencia si no puede eliminar un recurso de fuente. - Ahora administra correctamente los caracteres no imprimibles. Procedimientos generales ================== APPEND ------ - Cuando el conjunto de datos es una tabla de DB2, los índices de parámetros ahora están configurados correctamente. CATALOG ------- - La instrucción NEW ahora funciona correctamente cuando el catálogo de destino ya existe. - La instrucción EXCHANGE ahora funciona correctamente con los catálogos recién creados. COMPARE ------- - Las variables que se observa que contienen diferencias tanto ausentes como no ausentes ahora sólo se cuentan una vez en los resultados. - El nombre del campo ID ahora se usa en lugar de la etiqueta cuando se genera información de resumen. CONTENTS -------- - Las opciones OUTZEROVARDATASETS y NOOUTZEROVARDATASETS se han agregado a la instrucción PROC CONTENTS. Estos controlan cómo los contenidos de conjuntos de datos vacíos aparecen cuando se crean. - El nombre del campo ID ahora se usa en lugar de la etiqueta cuando se genera información de resumen. COPY ---- - Se ha mejorado la administración LRECL RECFM de entradas de archivos de catálogo. - Ahora se completa con éxito si se copian los catálogos especificados con formatos de registro distintos de "S". DATASETS -------- - Permite el uso de caracteres comodín de dos puntos (tales como "ABC:") y caracteres comodín de rango (tales como "TMP4-TMP7"). - Ahora admite MEMTYPE=DATA. Esto se puede usar cuando se especifica un sólo nombre de miembro de la biblioteca, y reemplaza el tipo de miembro predeterminado para ese nombre de miembro. Esta opción es ahora la predeterminada; los scripts que se basan en el antiguo valor predeterminado deben actualizarse. - Ahora incluye programas de pasos de datos compilados en la lista de salida. DELETE ------ - Admite caracteres comodín de dos puntos (tales como "ABC:") y caracteres comodín de rango (tales como "TMP4-TMP7") - Los archivos ahora se exportan correctamente cuando los nombres de las variables contienen comillas simples o dobles. - La opción LIBRARY ahora especifica una biblioteca predeterminada. Los nombres de miembros individuales pueden reemplazar este valor predeterminado. EXPORT ------ - Ahora realiza correctamente una exportación XLSX cuando se cita el nombre de archivo. - Ahora exporta archivos temporales sin agregar una extensión de archivo. FREQ ---- - Cuando una observación contiene un peso negativo, sólo se calculan los valores de frecuencia. - Ahora proporciona resultados coherente en lugar de resultados que dependen del orden de los datos de entrada. - Ahora utiliza correctamente los formatos definidos por el usuario en la salida. - Ahora procesa con precisión la opción ALL para la instrucción TABLES. IMPORT ------ - Los archivos ahora se importan correctamente cuando los nombres de las variables contienen comillas simples o dobles. HTTP ---- - Utiliza el WPS/URL de la cadena de agente de usuario predeterminada para que coincida con el comportamiento de los demás clientes HTTP de WPS. - Permite que la cadena de agente de usuario enviada en la solicitud HTTP sea controlada por la opción USERAGENT. - Ahora administra correctamente multiples encabezados proporcionados por el usuario. IMPORT ------ - La nueva opción DELIMTRIM le permite especificar cómo deben administrarse los valores en los archivos CSV importados que tienen un espacio después de la coma. - Los archivos ahora se exportan correctamente cuando los nombres de las variables contienen comillas simples o dobles. - Ahora importa archivos codificados UTF-8 que contienen caracteres UTF-8 no válidos. JSON ---- - Ahora escribe nulo cuando . (valor ausente) se especifica en la instrucción WRITE VALUES. MEANS ----- - Calcular la estadística de modo de una variable de clase que no contiene observaciones válidas ya no produce errores del motor de procesamiento. - Ahora trunca las variables de frecuencia a valores enteros durante los cálculos de percentiles. - Ahora se puede crear el iterador BY y procesar los registros 0 (cero) cuando no se especifica un conjunto de datos en la opción DATA. - El valor predeterminado para la opción QMARKERS en la instrucción PROC MEANS ahora es 5 en lugar de 0 (cero). - Ahora agrega la estadística SUMWGT a la salida cuando se especifica una variable de peso en la instrucción VAR. - La especificación de la instrucción OUTPUT ahora escribe las etiquetas correctas para las opciones estadísticas Q1 y Q3. OPTIONS ------- - DEFINE OPTION ahora admite los detalles del conjunto where. - LOGNUMBERFORMAT ahora formatea correctamente el número con comas. - OPTION=SCANDEFAULTMODIFIERS ahora devuelve correctamente una descripción de texto. - La opción LONG DEFINE VALUE ahora imprime el valor correcto para el número máximo de caracteres en una cadena. PYTHON ------ - Los tipos de datos de fecha de entrada ahora se conservan correctamente en un Pandas DataFrame. PRINT ----- - La opción SUMLABEL ahora puede usar etiquetas de variable BY en lugar de nombres. - Ahora admite el valor MINIMUM para la instrucción WIDTH. - Para las plantillas de tablas, la opción de desactivar PDF PRINT=off ahora funciona correctamente. - Ahora aplica el formato de la variable BY a la línea SUM. - Ya no se vuelven a imprimir los encabezados de columna después de cada "N=recuento" si la opción N está establecida y todas las variables BY son columnas de ID. - El formato de la variable BY ahora se mantiene en filas SUM. - La opción PAGEBY ahora se puede usar con variables de ID. - Ahora genera el número correcto de posiciones decimales para valores con potencias exactas de 2. PWENCODE -------- - Ahora coloca la cadena codificada en la variable de macro global _PWENCODE. REPORT ------ - Admite SKIP para listados antiguos. - Ya no se produce un error de catálogo dañado si un conjunto de datos contiene especificaciones de formato numérico simple. - Genera una línea incluso si la línea está vacía (nula). - Admite las opciones suprarrayado (OL) y subrayado (UL) en la instrucción BREAK. - Coloca correctamente las tablas en la página. - Ahora rechaza una instrucción COLUMN en la que un encabezado distribuido no puede identificar columnas a las que enviar resultados y muestra una advertencia en el registro. - Admite la opción ID de la instrucción DEFINE. - Admite la justificación correcta de la instrucción REPORT LINE de los destinos del listado. - La opción del sistema [NO]CENTER no tiene efecto en la selección de ubicación: - LINE 'texto'; escribe el texto central en la línea de la página - LINE @1 'texto'; escribe el texto a partir de la (1a) columna de texto - El formato se ha mejorado cuando se especifican el ancho del formato, COLWIDTH, encabezado único, ajuste de encabezado y soporte de repetición de caracteres. - Si HEADLINE está especificado, se ha mejorado la representación multilínea. - La especificación LABEL=" " ahora borra cualquier valor de LABEL existente. - Ahora permite que las columnas no imprimibles que se producen antes de la última columna de impresión afecten el estilo de fila de la tabla. SUMMARY ------- - Ya no se producen errores si se especifica una variable desconocida en la instrucción FREQ. TABULATE -------- - ODS NEWLISTING ahora funciona correctamente al generar tablas que abarcan varias páginas. - Ahora genera el número correcto de tablas cuando las opciones PRELOADFMT y EXCLUSIVE se usan juntas en la instrucción CLASS TEMPLATE -------- - Si ordena la lista de plantillas usando la opción LIST , la ordenación no distingue entre mayúsculas y minúsculas. - La instrucción PRINT ahora se implementa para la plantilla FOOTER. - El mensaje de error ha cambiado así que se refiere a la instrucción DEFINE FOOTER en su lugar. TRANSPOSE --------- - Ahora acepta la opción del sistema VALIDVARNAME. UNIVARIATE ---------- - Ahora es más robusta cuando se ajusta una curva. - Ahora calcula correctamente los kernels triangulares. - La curva ahora se ajusta correctamente cuando se estiman los parámetros especificados. - La distribución GAMMA ya no ignora la opción ALPHAINITIAL. - Las opciones QQPLOT ROTATE y PCTLAXIS ahora funcionan correctamente juntas. - Las instrucciones PPPLOT, PROBPLOT y QQPLOT ahora le permiten especificar sólo una distribución. - Para la instrucción PROBPLOT, la escala del eje X ahora es correcta. - Para las instrucciones PPPLOT, PROBPLOT y QQPLOT, sólo se dibuja una línea si se solicita. - La instrucción PPPLOT ahora sólo representa el punto superior cuando varias observaciones tienen el mismo valor. - Las curvas de densidad de kernels ahora están correctamente etiquetadas. - La opción KERNEL de la instrucción HISTOGRAM ahora funciona correctamente si todos los valores de datos son iguales. - Los gráficos ya no se dibujan dos veces. - OVERLAY ya no se ignora. - Se muestra un mensaje de error si las opciones tienen un tipo no válido. - La opción W2(SLOPE) para las opciones QQPLOT y PROBPLOT ya no se ignora. - Los diagramas generados por la instrucción CDFPLOT ahora están posicionados correctamente. - Las opciones NEXTRVAL o ALL (que establece NEXTRVAL=5) ya no causan un error si el conjunto de datos tiene menos del doble de observaciones que el valor elegido. - Los conjuntos de datos especificados en OUTHISTOGRAM o OUTKERNEL ahora se aplican correctamente. - Ya no asigna incorrectamente conjuntos de datos OUTHISTOGRAM o OUTKERNEL cuando hay múltiples instrucciones HISTOGRAMA y esas instrucciones se aplican a variables específicas en lugar de a todas las variables. - Ahora puede proporcionar una lista de valores a la opción ROUND. El valor de redondeo que especifique ahora también se aplica correctamente. - La velocidad y precisión del cálculo de cuantiles IGAUSS ahora se han mejorado. - Los intervalos de histograma vacíos ya no se crean si el punto más extremo se encuentra exactamente en un límite de enlace y hay errores de redondeo. - Ahora crea las rutas ODS correctas para todos los gráficos y tablas relacionadas con gráficos. - Las pruebas de bondad de ajuste ahora funcionan correctamente. - La evaluación numérica de derivados ahora se administra correctamente en las estructuras condicionales. - Las distribuciones de Johnson ahora no tienen un límite inferior en el valor de entrada. - Las opciones NOVTICK y NOHTICK de la instrucción CDFPLOT ahora deshabilitan correctamente tanto los valores de marcas como las etiquetas de marcas. - Si se especifican tanto una CLASS como una instrucción HISTOGRAM usando las opciones HANG y KERNEL, los gráficos ahora se representan correctamente. - Los mensajes ahora se escriben en el registro si la instrucción HISTOGRAM contiene una variable que no está en la lista de variables VAR o no es una variable predeterminada. - Intervalos de histograma: - Ahora se extienden para cubrir todos los datos si se especifican MIDPOINTS o ENDPOINTS incorrectamente. - Ahora sólo pueden especificarse con puntos medios espaciados uniformemente y listados en orden creciente. - Ahora se administran mejor cuando el número de intervalos que se trazarán es extremo. - Los conjuntos de datos que se pueden crear a partir de objetos de salida ahora contienen columnas adicionales a las que se muestran en las salidas de ODS. Las columnas no se muestran en las salidas de ODS, tales como HTML y PDF. Se agregan las siguientes columnas: - "Varname" en todos los conjuntos de datos. - "Class" en todos los conjuntos de datos si se establece la instrucción CLASS. - "Histogram" y "Distribution" en todos los conjuntos de datos relacionados con la distribución si se establece la instrucción HISTOGRAM. - "Histogram" en todos los demás conjuntos de datos no relacionados con la distribución cuando se establece la instrucción HISTOGRAM. - "Kernel" en todos los conjuntos de datos relacionados con las estimaciones de densidad del kernel. - La opción NOPRINT ahora deshabilita correctamente la impresión sólo desde la instrucción PROC UNIVARIATE, no también desde la instrucción HISTOGRAM. - Las condiciones utilizadas para la media y la desviación estándar para la distribución de Pareto generalizada ahora son correctas. - Ahora funciona correctamente con los conjuntos de datos secuenciales. - Ya no se bloquea o produce una salida no válida donde faltan muchos valores.  - Ahora usa el valor mu0 especificado al probar los valores medios recortados y winsorizados. - El valor calculado completo del valor p de Shapiro-Wilk ahora se muestra en la tabla Pruebas de normalidad. SORT ---- - El conjunto de datos de salida ahora tiene el mismo estado de compresión que el conjunto de datos de entrada cuando COMPRESS=BINARY se define globalmente. APPSRV ------ - Ahora produce un mensaje de superposición en error. Procedimientos gráficos =================== General ------- - El catálogo y la entrada se comprueban por su validez antes de crear gráficos. GPLOT - Ahora admite múltiples instrucciones PLOT en agrupaciones RUN. Procedimiento SQL ============= - El procedimiento SQL ahora: - Coloca correctamente una cláusula SELECT correlacionada cuando la consulta externa contiene una o más combinaciones. - Administra correctamente la igualdad modificada como condición de combinación. - Establece correctamente la duración de las variables que no coinciden en las operaciones SET. - Evalúa correctamente las expresiones después de UNION JOIN. - Resuelve: - Referencias de variables relacionadas. - Columnas de elementos SELECT relacionadas. - Consultas anidadas en el mismo nombre de tabla. - Los aliases de SELECT ITEM en cláusulas GROUP BY cuando tienen el mismo nombre que las columnas en las tablas de origen. - Serializa: - Condiciones completamente verdaderas y falsas durante un paso a través implícito. - Una cláusula IN vacía en un paso a través implícito de modo que la base de datos aún puede evaluarla. - Transfiere las instrucciones DELETE a los motores de base de datos cuando: - Una función de paso DATA que devuelve un valor de carácter se usa en la cláusula WHERE. - La subconsulta no relacionada se utiliza en la cláusula WHERE. - Procesa cadenas de vistas, incluidas las creadas con la instrucción DATA y el procedimiento SQL, que contienen variables con nombres de formatos específicos. - Rellena las operaciones establecidas con números desiguales de campos en cada lado. - Muestra el motivo de un error de E/S. - Se combina a las vistas en línea. - Proporciona etiquetas para columnas calculadas en vistas si no se proporcionan etiquetas. - Si se especifica una opción de base de datos WHERE, una cláusula WHERE ya no se ignora. - Se han mejorado los mensajes de error para la sintaxis SELECT errónea. - El conjunto de datos de salida ya no está marcado como ordenado cuando una consulta con una instrucción DISTINCT se ha serializado en una base de datos. - La prioridad del operador para la sintaxis WHERE NOT x IN (1,2,3) ahora es equivalente a WHERE x NOT IN (1,2,3). - Se notifica un error si los nombres de correlación de la tabla de una consulta son ambiguos. - El estado de las funciones aleatorias ahora se restablece entre invocaciones del procedimiento. - Utiliza sólo el formato BEST(8) para escribir valores numéricos en las variables de macro INTO en la instrucción SELECT. - La instrucción EXECUTE (consulta) BY ahora ejecuta correctamente la consulta cuando se crea una conexión de base de datos automática para la consulta. - Devuelve un mensaje de error si el procedimiento intenta devolver un valor a una variable de macro de sólo lectura. - Las uniones MATCH y SPRINGFIELD ahora funcionan como previsto. - Conserva los formatos aplicados al conjunto de datos de origen al crear un nuevo conjunto de datos. - ALTER TABLE ahora establece correctamente la información de la opción de ordenación. - El uso de las opciones LIKE y ESCAPE en la instrucción WHERE con una tabla CREATE VIEW ahora funciona como previsto. - Las etiquetas de columna que contienen comillas ahora son compatibles cuando se especifica una vista mediante la instrucción CREATE VIEW. - El uso de una cláusula WHERE para consultar una VIEW ahora funciona correctamente. - Especificar una variable inexistente en una instrucción CASE ya no hace que WPS Analytics se desconecte del servidor de la base de datos. - La opción del sistema VALIDVARNAME ahora funciona como se esperaba. - Cuando se utiliza el traspaso implícito, los espacios finales ahora se eliminan de las cadenas para permitir que la base de datos de destino realice comparaciones entre las cadenas literales y los campos de caracteres de longitud variable. Procedimientos de aprendizaje automático =========================== DECISIONFOREST -------------- - La instrucción PROC DECISIONFOREST ahora incluye la opción CLASSCOMB que especifica cómo combinar las probabilidades predichas de cada árbol en un bosque de clasificación. DECISIONTREE ------------ - La instrucción CODE ahora pasa nombres de variables como literales de cadena en el código de puntuación. MLP --- - La instrucción CODE ahora pasa nombres de variables como literales de cadena en el código de puntuación. - Ya no produce errores si la subopción TRAININGSETORDERSEED de la instrucción MODEL se establece en cero. Procedimientos estadísticos ====================== General ------- - Se han mejorado los cálculos del ajuste comparativo en la instrucción ESTIMATE de los procedimientos LIFEREG, LOGISTIC, PHREG y PROBIT: - El valor p ajustado bilateral y los intervalos de confianza para el método ADJUST=SIMULATE. - Los resultados del ajuste para el método ADJUST=SCHEFFE. - Los resultados del ajuste se produce cuando hay entradas no estimables en la matriz de contraste L. - La variable SYSERR ahora está configurada correctamente si hay un error de sintaxis al analizar los procedimientos GENMOD, NLIN y PHREG. BIN --- - Si las variables de entrada se especifican como literales de cadena, los nombres que aparecen en la columna Variable discretizada de la tabla de Asignación en las salidas de ODS ahora corresponden a los nombres de variables en el conjunto de datos de salida. CORRESP ------- - Ahora funciona correctamente cuando el número de observaciones en el conjunto de datos de entrada es mayor que la dimensión de la tabla Burt resultante cuando se ejecuta MCA con la instrucción VAR. FACTOR ------ - Ahora toma correctamente una matriz de correlación o covarianza creada a partir de un procedimiento CORR como un conjunto de datos de entrada. GENMOD ------ - Ahora calcula correctamente la probabilidad de χ² asociada con la instrucción ESTIMATE. - La opción STDRESDEV de la instrucción OUTPUT ahora devuelve un valor calculado en lugar de un valor ausente. - La existencia de las funciones VARIANCE y DEVIANCE ahora se comprueba cuando se especifica DIST=USER. - El criterio de ordenación de respuestas predeterminado ahora es INTERNAL cuando se especifica un modelo distribuido multinomial con respuesta numérica. - La opción RORDER ahora admite FREQ e INTERNAL. - La configuración de la opción AGGREGATE ahora se tiene en cuenta al calcular las estadísticas de desviación de TYPE1. - La instrucción FREQ ahora interactúa con las distribuciones de la manera esperada. - La instrucción CODE ahora pasa nombres de variables como literales de cadena en el código de puntuación. - La prueba de convergencia hessiana utiliza una matriz hessiana de una iteración anterior en lugar de la asociada con las estimaciones de los parámetros actuales. - Los errores generados por las funciones y otras Instrucciones ahora se manejan como se esperaba. GLM --- - Las actualizaciones de MERGEDLEGEND ya no rompen la leyenda en MEANPLOT. - La opción ADJUST de la instrucción LSMEANS ahora funciona como previsto cuando la matriz de contraste tiene entradas no estimables. - Especificar la instrucción LSMEANS para calcular los valores medios de mínimos cuadrados ahora genera resultados más precisos cuando WEIGHT o la variable FREQ contienen valores ausentes. GLMSELECT --------- - El método LASSO ahora informa correctamente los grados de libertad en una tabla ANOVA. - Ahora puede seleccionar más de una variable de efecto cuando la opción NOINT se usa con los métodos de selección FORWARD y STEPWISE. - Ya no produce errores si se hace una selección de modelos hacia atrás con regresores dependientes linealmente. KDE --- - Ahora genera rutas de impresión correctas para gráficos bivariados. LIFEREG ------- - Ahora realiza correctamente los cálculos de límites de confianza simultáneos no paramétricos de igual precisión. - Los gráficos de supervivencia ahora están etiquetadas de manera consistente y correcta. - Ahora puede usar un conjunto de datos OUTEST previamente calculado para la opción INEST de una invocación de procedimiento posterior. LIFETEST -------- - Ya no produce errores si la instrucción STRATA contiene una variable que tiene un formato de entrada asociado. LOGISTIC -------- - Se ha mejorado el rendimiento. - Ya no se producen errores cuando una instrucción BY y la opción OUTROC se usan juntas. - Las estadísticas χ² de Wald de tipo 3 ahora se calculan correctamente cuando se especifica la función de vínculo GLOGIT. - Ahora: - Encuentra variables que contienen caracteres de lenguaje SAS no válidos en el conjunto de datos INEST. - Establece la categoría de referencia correcta al cargar un modelo logístico que contiene la opción LINK=GLOGIT del archivo. - La instrucción CODE ahora pasa nombres de variables como literales de cadena en el código de puntuación. - La ecuación en las tablas de dependencia lineal ahora está limitada a 2000 caracteres. - La tabla de salida ODS Logistic.Type3 ha cambiado de nombre a Logistic.ModelANOVA - Ahora se asegura que la matriz de covarianza final sea positiva. MI -- - Ya no crea conjuntos de datos con nombres de variables duplicados. MIANALYZE --------- - La tabla Estimaciones de parámetros ahora tiene etiquetas de campo con un límite de confianza del 95%. - Ya no se bloquea en un bucle infinito. - Ahora funciona correctamente si la instrucción MODELEFFECTS no se incluye con cada efecto de un modelo. - Ahora coincide correctamente los parámetros PARMINFO en múltiples sustituciones. - Ya no genera un conjunto de datos vacío si el conjunto de datos de entrada no contiene información suficiente. MIXED ----- - La opción ADJUST de la instrucción LSMEANS ahora funciona como previsto cuando la matriz de contraste tiene entradas no estimables. - Ya no se queda sin memoria cuando se ajusta un modelo MLG grande. - Ya no produce errores cuando un término de intersección se especifica como un efecto repetido en la instrucción REPEATED. - Ahora crea una matriz de varianza-covarianza correcta cuando se especifica la opción DDFM=KENWARDROGER en la instrucción MODEL. - Especificar la instrucción LSMEANS para calcular los valores medios de mínimos cuadrados ahora genera resultados más precisos cuando WEIGHT o la variable FREQ contienen valores ausentes. MLP --- - Se han actualizado los mensajes de error generados por la opción INITWEIGHTS. - Ahora escribe un conjunto de datos de historial final que contiene el historial hasta e incluyendo el estado final completo. - El conjunto de datos de historial ahora proporciona medidas de error normalizadas. NLIN ---- - Ahora notifica los números de observación de errores con mayor precisión cuando se usan los grupos BY. - La instrucción DER del procedimiento NLIN ya no provoca un error de aserción si el caso del parámetro del modelo especificado no coincide con el caso del parámetro del modelo real, o si el parámetro no está especificado. En su lugar, se produce un error. - Los grupos BY ya no provocan un error si no son el primer elemento en el conjunto de datos. - La variable modelo (dependiente) ahora puede ser un elemento de carácter. - Las instrucciones de suma ahora se muestran correctamente cuando se especifica la opción LIST de la instrucción PROC NLIN. NLMIXED ------- - Los errores generados por las funciones y otras Instrucciones ahora se manejan como se esperaba. NPAR1WAY -------- - La salida de las tablas de prueba de dos muestras y de StatFactoid se ha reformateado para facilitar su lectura. - La salida de ODS ahora sólo especifica que las puntuaciones promedias se usaron para los valores equivalentes cuando están presentes. OPTIMALBIN ---------- - Ya no deja caer las observaciones ausentes; las observaciones ausentes solo se eliminan si se especifica la opción EXCLUDEMISS. PHREG ----- - Las curvas de supervivencia ajustadas directas agrupadas ahora están etiquetadas correctamente. - Ahora muestra las tablas de coeficientes correctamente. - Ahora funciona como se esperaba con covarianza singular y selección de modelo hacia atrás. POWER ----- - Ahora se informan correctamente las pruebas que usan la instrucción ONESAMPLEFREQ y múltiples opciones MARGIN. PROBIT ------ - La instrucción CODE ahora pasa nombres de variables como literales de cadena en el código de puntuación. REG --- - La opción START para la instrucción MODEL ahora debe ser mayor que cero cuando se especifica CP, ADJRSQ o RSQUARE para la opción SELECTION. STANDARD -------- - La opción REPLACE ahora se puede especificar por sí misma, y si lo está, cualquier valor ausente se reemplaza con la media calculada. TTEST ----- - Ahora funciona correctamente si la misma variable está emparejada. - Ya no genera valores ausentes para una prueba de la razón de 2 muestras donde la media es negativa. - Las estadísticas de diseño cruzado ahora muestran el número de período correcto. VARCLUS ------- - Ahora toma correctamente una matriz de correlación o covarianza creada a partir de un procedimiento CORR como un conjunto de datos de entrada. Procedimientos de control de calidad ========================== CAPABILITY ---------- - La opción NOPRINT ahora deshabilita correctamente la impresión sólo desde la instrucción PROC UNIVARIATE, no también desde la instrucción HISTOGRAM. - Ahora puede especificar una semilla (opción EDFSEED) que se usará para la generación de números aleatorios para las pruebas de bondad de ajuste para todas las distribuciones. - Ahora usa los nombres de columna correctos en la salida ODS producida para la tabla de medidas básicas. - Cuando se invoca en z/OS, una función BETA incompleta ahora converge correctamente. - Los gráficos WEIBULL2 ahora trazan líneas de especificación en el lugar correcto. z/OS ==== - En z/OS, el código incorrecto ya no se genera cuando el optimizador está en su nivel más alto. - Para reducir la cantidad de memoria utilizada por los procedimientos de procesamiento de datos, las bibliotecas de conversión del conjunto de caracteres de la UCI solo se cargan cuando es necesario. - Si no se especifica un conjunto de datos WORK, ahora se usa un conjunto de datos temporal. - La codificación en color de los mensajes de registro ahora funciona correctamente. - Durante la carga de un conjunto de datos, un cliente WPS ahora administra correctamente el mensaje de registro desde el servidor. - Las opciones de RLS ahora interactúan correctamente entre sí. - Cuando se usa RLS VSAM, los conjuntos de datos ahora se pueden leer de forma secuencial. - Ahora es compatible con CSSMTP para el correo electrónico sin archivos adjuntos y sólo contenido en línea del cuerpo. - RSUBMIT ya no produce errores cuando se conecta a un servidor AIX. - Los procedimientos de UPLOAD y DOWNLOAD de un cliente z/OS a un servidor AIX ahora funcionan correctamente. - WPS ya no produce errores al leer una configuración si el valor de una opción AUTOEXEC en una instrucción APPEND o INSERT contiene paréntesis. - La función MODULEN ahora funciona correctamente. - El procesamiento de la opción CONFIG para JREOPTIONS no es acumulativo. Para soportar operaciones aditivas, se deben usar APPEND e INSERT. - TSOWPS CLIST ahora forma los miembros de la concatenación que se usa para la asignación de DD usando la secuencia { archivo-de-configuración-de-instalación, archivo-de-configuración-de-usuario }. Anteriormente, era { archivo-de-configuración-de-usuario, archivo-de-configuración-de-instalación }. Esto asegura que las opciones de sistema restringidas no se puedan cambiar localmente. - WPS ahora puede usar un Nº de CPU mayor que cuatro. - La anulación de E/S IEC1451I 413-18 ya no se activa cuando un paso de datos escribe un conjunto de datos en una cinta en blanco. - El uso de instrucciones LIBNAME con una ubicación de ruta vacía ahora genera un mensaje de advertencia. - El valor de la opción SERVER de libname de DB2 se convierte automáticamente a mayúsculas. - Los argumentos incorrectos de la línea de comandos para el inicio de TSO WPS en z/OS pueden causar un error incorrecto. - Ya no se genera un Abend cuando se lee un archivo MVS utilizando una Salida de usuario Infile o File, y la opción DSCB o CCHHR. - La variable DSCB se llena con espacios en blanco cuando no se puede leer ningún DSCB para un conjunto de datos MVS al que hace referencia una instrucción INFILE o FILE en un paso DATA. - Las opciones del sistema STARTTLS ahora son compatibles. - Los mensajes y las instrucciones EXIT en el instalador RINST REXX se han renumerado. - El TSOWPS CLIST ahora se enlaza a las tarjetas DD de salida cuando está en modo DMR. - El TSOWPS CLIST ahora proporciona un enlace para SASLOG en modo DMR. - La opción DMRSAVEOUTPUT habilita enlaces predeterminados para todas las salidas no enlazadas. - Una anulación de E/S B37 en un paso DATA ahora se administra como previsto al cerrar un paso DATA. - FILEBLKSIZE (3490E) ahora admite tamaños de hasta 256K. - Un FILENAME declarado a un solo elemento HLQ que hace que HLQ se considere un nombre DD ahora funciona como se esperaba. - La biblioteca SASDASD ahora puede contener archivos comprimidos sin páginas. - Ya no provoca un error de memoria insuficiente si el nombre del formato es incorrecto. - El envío de archivos adjuntos de correo electrónico ahora funciona como se esperaba. - Las instrucciones FILENAME incorrectas ahora producen errores leves. - Ahora se genera un error al leer una concatenación con un miembro de PDS desconocido. - Ahora hay una detección mejorada del uso de discos EAV para el almacenamiento de bibliotecas WPD en z/OS. Actualmente, los volúmenes EAV no son compatibles con el almacenamiento de bibliotecas. WPS Communicate =============== - Los procedimientos UPLOAD y DOWNLOAD ahora cargan y descargan correctamente conjuntos de datos muy amplios. - Los procedimientos de CARGA y DESCARGA ahora pueden usar caracteres comodín en cualquier posición de un nombre de archivo. - El número de puerto del servidor de WPS Communicate ahora se almacena en la variable automática TCPPORTSERVER. Web === - El Administrador de carga ahora tiene valores de tiempo de expiración correctos. Workbench ========= - Ahora puede exportar manualmente un conjunto de datos WPD desde la perspectiva del lenguaje SAS manualmente cuando usa Citrix. - El asistente de importación ahora puede importar a través de una conexión remota. - El visor de la cuadrícula de datos ahora se comporta correctamente cuando se ven conjuntos de datos con filtro y ordenación de columnas activos si la compresión está habilitada. - La importación del archivo xlsx ahora administra las comillas dentro de un encabezado de columna correctamente. - La salida a ODS NEWLISTING que contiene caracteres Unicode ahora está correctamente paginada. Flujo de trabajo ======== - El bloque Mutar ahora sólo se ejecuta si se especifica un nombre para una variable. - El informe del Generador de perfiles de datos ahora refleja el nombre de la etiqueta del bloque del conjunto de datos (si el Generador de perfiles de datos se ha abierto en un bloque). De lo contrario, es el nombre del conjunto de datos. - El bloque Imputar ahora requiere un porcentaje expresado como una fracción para las medias de Winsorización y la media modificada. ======================================================================= Obtener soporte ======================================================================= La forma de acceder al soporte técnico para su software WPS depende de cómo haya adquirido su software. Puede estar seguro de que WPS siempre se proporciona con mantenimiento y soporte. Si ha realizado una compra estándar del software WPS, tiene una licencia de suscripción anual que le da derecho a actualizaciones gratuitas ilimitadas a lo largo de doce meses y soporte gratuito por correo electrónico mediante support@worldprogramming.com. Siempre intentamos responder a los correos electrónicos sin demora. Para los mayores clientes pueden existir arreglos adicionales de soporte. En este caso, a menudo podemos proporcionar el acceso a nuestro Sistema de seguimiento de problemas en línea. Su organización también puede haber asignado superusuarios, a través de los cuales se administran todas las solicitudes de soporte técnico. Las resoluciones a problemas pueden incluir soluciones alternativas sugeridas o pueden requerir la actualización de la instalación del software WPS. Debido a la naturaleza compleja del lenguaje de SAS, podría requerir la interacción entre World Programming y usted mismo para identificar y resolver las causas exactas de los problemas. (c) 2022 World Programming