Personalización de Servigistics InService > Personalización de validaciones de CSV > Configuración de validaciones personalizadas para ficheros CSV > Adición de una validación personalizada para ficheros CSV
  
Adición de una validación personalizada para ficheros CSV
Es posible añadir validaciones personalizadas que se apliquen a un único fichero de valores separados por comas (CSV) o a todos los ficheros CSV en Servigistics InService.
Siga estos pasos para añadir una validación personalizada para ficheros CSV:
1. Añada la entrada de validación en el componente CSVFileValidationScanner y los detalles de validación en el fichero customizedContext_YY.conf.xml. El fichero customizedContext_YY.conf.xml es una copia de su versión por defecto e YY en el nombre de fichero corresponde a un valor numérico menor que el valor numérico del fichero por defecto. Para obtener más información, consulte Configuración de validaciones personalizadas para ficheros CSV.
2. Cree un fichero de clase Java que extienda la validación por defecto. El fichero debe llamar a la API validate(String inputData) para validaciones de tipo column y file, y la API validate() para la validación de tipo row.
3. Añada el fichero de clase Java al fichero SCECSVLoad.jar que se encuentra en <INS_HOME>/InS_SW/SW/System/WildFly/modules/system/layers/base/com/ptc/e3c/main.
4. Reinicie los servicios coreServer, coreCMIserver y JBoss.
Todas las validaciones se ejecutan en la secuencia dada al ejecutar la tarea Validate CSV Data en Task Manager. El fichero Validation_Results_(<task_id>) se genera cada vez que se ejecuta la tarea Validate CSV Data y el identificador de tarea <task_id> se incorpora al nombre de fichero de los resultados de la validación. El fichero Validation_Results_(<task_id>) se encuentra en el directorio <INS_HOME>/InS_Data/Work/Applications/TaskManager/Work/TaskReport/CSVValidationReports. Si una validación es de tipo error y falla o es de tipo aviso, en el fichero Validation_Results_(<task_id>) se muestran code, description y resolution para la validación.
En este ejemplo, se añade una validación personalizada para la columna de pedido en el fichero producthierarchy.csv.
Siga estos pasos para añadir la validación personalizada:
1. Añada los siguientes detalles de validación en el fichero customizedContext_YY.conf.xml:
<Component Name="OrderValidator">
<Creation Type="JavaObject">
<Class>com.ptc.csvtoinservice. validation.
OrderValidator</Class>
</Creation>
<Config>
<Validation code="2001" description="CSV
Order column values missing"
resolution="CSV order column value should be added." />
</Config>
</Component>
2. Añada la siguiente entrada de validación en el componente CSVFileValidationScanner del fichero customizedContext_YY.conf.xml:
<Component Name="CSVFileValidationScanner">
<Creation Type="JavaObject">
<Class>com.ptc.csvtoinservice. main.
CSVFileValidationScanner</Class>
</Creation>
<Config>
<validator appliesTo="DataScripts/producthierarchy.csv">
<rule type="column" columnName="Order" validationCriteria=
"OrderValidator" required="true"/>
</validator>
3. Cree un fichero de clase Java que extienda la validación por defecto y añada el fichero al fichero SCECSVLoad.jar. En el siguiente fichero de clase Java se muestra un formato de ejemplo para extender la validación por defecto:
public class OrderValidator extends DefaultValidator {

/**
This method can be used to implement custom validation
logic for column OR file type validator.
It receives a string value of specified column for each row
of specified CSV file. To include multiple valdation messages, you can call the following method:
logger. writeLog(ValidationMessage validationRecord, String taskCode, Object ... params);
Return false if validation fails; otherwise, return true.
*/
<Override
public boolean validate (String inputData) {
/* validation logic need to write here */
/*to generate output log messages in case of failure.
Here 2000 is validation code as specified in customizedContext__3.conf.xml
logger.writeLog(validationMessage,”2000”);*/
}
/**
This method can be used to implement custom validation logic
for row type validator.
Return false if validation needs to fail, otherwise return true.
*/
<Override
public boolean validate () {
}
}
4. Reinicie los servicios coreServer, coreCMIserver y JBoss.