modelPublishing copyModelExternal

Prueba de Integridad: Intento de Sobrescritura No Autorizada

Scénario de test & Cas d'usage

Contexto empresarial

En una planta de manufactura, el equipo de ingeniería quiere asegurarse de que los modelos críticos de predicción de fallos no sean sobrescritos accidentalmente por scripts automatizados mal configurados. Se debe probar que el sistema rechaza la copia si el modelo ya existe y no se autoriza explícitamente el reemplazo.
Preparación de datos

Entrenamiento de un modelo de regresión simple para predicción de temperatura.

¡Copiado!
1 
2DATA casuser.sensores;
3DO i=1 to 200;
4temp_actual=rand('normal', 80, 5);
5temp_futura=temp_actual*1.02 + rand('normal',0,1);
6OUTPUT;
7END;
8 
9RUN;
10 
11PROC CAS;
12regression.glm RESULT=r / TABLE={name='sensores', caslib='casuser'}, target='temp_futura', inputs={{name='temp_actual'}}, saveState={name='modelo_temp_critico', caslib='casuser', replace=true};
13 
14RUN;
15 
16QUIT;
17 

Étapes de réalisation

1
Primera publicación del modelo (Estado Inicial: Éxito).
¡Copiado!
1 
2PROC CAS;
3modelPublishing.copyModelExternal / modelTable={name='modelo_temp_critico', caslib='casuser'}, modelName='Predictor_Fallo_V1', externalCaslib='db_mantenimiento', externalOptions={extType='TERADATA', modelTable={name='modelos_prod'}}, modelOptions={replace=true};
4 
5RUN;
6 
7QUIT;
8 
2
Intento de sobrescribir el mismo modelo con replace=false (Debe fallar).
¡Copiado!
1 
2PROC CAS;
3modelPublishing.copyModelExternal / modelTable={name='modelo_temp_critico', caslib='casuser'}, modelName='Predictor_Fallo_V1', externalCaslib='db_mantenimiento', externalOptions={extType='TERADATA', modelTable={name='modelos_prod'}}, modelOptions={replace=false};
4 
5RUN;
6 
7QUIT;
8 

Resultado esperado


El paso 1 debe ser exitoso. El paso 2 debe generar un error explícito en el log indicando que el modelo 'Predictor_Fallo_V1' ya existe en el destino y no se puede sobrescribir porque 'replace' es false.