Servigistics InService Anpassung > CSV-Validierungen anpassen > Benutzerdefinierte Validierungen für CSV-Dateien konfigurieren > Benutzerdefinierte Validierungen für CSV-Dateien hinzufügen
  
Benutzerdefinierte Validierungen für CSV-Dateien hinzufügen
Sie können benutzerdefinierte Validierungen hinzufügen, die entweder für eine einzelne Datei mit durch Kommata getrennten Werten (CSV-Datei) oder alle Dateien in Servigistics InService gelten.
Führen Sie die folgenden Schritte aus, um eine benutzerdefinierte Validierung für CSV-Dateien hinzuzufügen:
1. Fügen Sie sowohl den Validierungseintrag in der Komponente CSVFileValidationScanner als auch die Validierungsdetails in der Datei customizedContext_YY.conf.xml hinzu. Die Datei customizedContext_YY.conf.xml ist eine Kopie der Standardversion, und YY im Dateinamen entspricht einem numerischen Wert kleiner als der numerische Wert der Standarddatei. Weitere Informationen finden Sie unter Benutzerdefinierte Validierungen für CSV-Dateien konfigurieren.
2. Erstellen Sie eine Java-Klassendatei, die die Standardvalidierung erweitert. Die Datei muss die API validate(String inputData) für die Typvalidierungen column und file und die API validate() für die Typvalidierung row aufrufen.
3. Fügen Sie die Java-Klassendatei der Datei SCECSVLoad.jar in <INS_HOME>/InS_SW/SW/System/WildFly/modules/system/layers/base/com/ptc/e3c/main hinzu.
4. Starten Sie die coreServer-, coreCMIserver- und JBoss-Dienste neu.
Alle Validierungen werden in der angegebenen Sequenz ausgeführt, wenn Sie die Aufgabe Validate CSV Data im Task Manager ausführen. Die Datei Validation_Results_(<task_id>) wird jedes Mal generiert, wenn Sie die Aufgabe Validate CSV Data ausführen und der Aufgaben-Identifier <task_id> an den Dateinamen der Validierungsergebnisse angehängt ist. Die Datei Validation_Results_(<task_id>) befindet sich im Verzeichnis <INS_HOME>/InS_Data/Work/Applications/TaskManager/Work/TaskReport/CSVValidationReports. Wenn eine Validierung vom Typ "Fehler" ist und fehlschlägt, oder wenn sie vom Typ "Warnung" ist, zeigt die Datei Validation_Results_(<task_id>)code, description und resolution für die Validierung an.
In diesem Beispiel wird eine benutzerdefinierte Validierung für die Bestellspalte in der Datei producthierarchy.csv hinzugefügt.
Führen Sie die folgenden Schritte aus, um die benutzerdefinierte Validierung hinzuzufügen:
1. Fügen Sie die folgenden Validierungsdetails in der Datei customizedContext_YY.conf.xml hinzu:
<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. Fügen Sie den folgenden Validierungseintrag in der Komponente CSVFileValidationScanner der Datei customizedContext_YY.conf.xml hinzu:
<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. Erstellen Sie eine Java-Klassendatei, die die Standardvalidierung erweitert, und fügen Sie die Datei der Datei SCECSVLoad.jar hinzu. Die folgende Java-Klassendatei zeigt ein Beispielformat zum Erweitern der Standardvalidierung:
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. Starten Sie die coreServer-, coreCMIserver- und JBoss-Dienste neu.