Scénario de test & Cas d'usage
Configuración de las propiedades de la sesión.
Descubrir todas las acciones de sessionPropCrea una tabla de estados de sensores que incluye valores normales, un código de error, un valor faltante de SAS (.) y un código inesperado.
| 1 | DATA casuser.SENSOR_STATUS; |
| 2 | INFILE DATALINES; |
| 3 | INPUT SensorID $ StatusCode; |
| 4 | DATALINES; |
| 5 | S101 10 |
| 6 | S102 20 |
| 7 | S103 -99 |
| 8 | S104 . |
| 9 | S105 50 |
| 10 | ; |
| 11 | RUN; |
| 1 | PROC CAS; |
| 2 | sessionProp.addFmtLib fmtLibName='FMTLIB_DQ'; |
| 3 | sessionProp.addFormat fmtLibName='FMTLIB_DQ' fmtName='StatusFmt' replace=true |
| 4 | ranges={'10-30=Normal', '-99=Error Grave', '.=No Registrado', 'other=Código Desconocido'}; |
| 5 | RUN; |
| 1 | PROC CAS; |
| 2 | sessionProp.addFormat fmtLibName='FMTLIB_DQ' fmtName='StatusFmt' replace=false |
| 3 | ranges={'10-30=Normal', '-99=Error Grave', '.=No Registrado', 'other=Código Desconocido'}; |
| 4 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.alterTable TABLE={caslib='casuser', name='SENSOR_STATUS'} columns={{name='StatusCode', FORMAT='StatusFmt'}}; |
| 3 | TABLE.fetch TABLE={caslib='casuser', name='SENSOR_STATUS'}; |
| 4 | RUN; |
La tabla final debe mostrar 'Normal' para los códigos 10 y 20, 'Error Grave' para -99, 'No Registrado' para el valor faltante, y 'Código Desconocido' para el código 50. Además, el log de SAS debe registrar un error en el paso 2, confirmando que la opción 'replace=false' impidió sobrescribir el formato existente.