Yuuvis search mit Integer-Werten nicht möglich

Hallo zusammen,

ich habe aktuell folgendes Problem mit der enaioRedSearch, auf meinem Objekt gibt es ein Feld vom Typ Integer, welches ich gerne abrufen würden.

Zwei Möglichkeiten habe ich probiert, beide haben leider nicht funktioniert.

  1. Wert im Schema als String festlegen, dabei kommt folgende Fehlermeldung:
Exception in component enaioRedSearch_1 (A_Import_Produkt_Fachhandel_KIS_20230815)
java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String (java.lang.Integer and java.lang.String are in module java.base of loader 'bootstrap')
	at ch.ecmind.talend.enaio.redline.client.search.SearchResultRecord.getString(SearchResultRecord.java:19)
	at local_project.a_import_produkt_fachhandel_kis_20230815_0_1.A_Import_Produkt_Fachhandel_KIS_20230815.enaioRedSearch_1Process(A_Import_Produkt_Fachhandel_KIS_20230815.java:997)
	at local_project.a_import_produkt_fachhandel_kis_20230815_0_1.A_Import_Produkt_Fachhandel_KIS_20230815.runJobInTOS(A_Import_Produkt_Fachhandel_KIS_20230815.java:2724)
	at local_project.a_import_produkt_fachhandel_kis_20230815_0_1.A_Import_Produkt_Fachhandel_KIS_20230815.main(A_Import_Produkt_Fachhandel_KIS_20230815.java:2503)
2023-08-15 08:33:25 ERROR LOCAL_PROJECT.A_Import_Produkt_Fachhandel_KIS_20230815.enaioRedSearch_1 - java.lang.ClassCastException:class java.lang.Integer cannot be cast to class java.lang.String (java.lang.Integer and java.lang.String are in module java.base of loader 'bootstrap')
  1. Wert im Schema als Integer festlegen, dabei kommt folgende Fehlermeldung:

Was muss ich ändern, wenn ich mit der Suche ein Integer-Feld abrufen möchte?

Hier nochmal die Konfig der Search-Komponente, unten markiert das Integer-Feld aus yuuvis:

Viele Grüße
Jan

Guten Morgen Jan,

da scheint in der Talend Komponente leider ein fieser Bug drin zu sein den bisher keiner gemerkt hatte. Im Prinzip kannst du es sehr einfach selbst beheben wenn du möchtest. Dann musst du auf keinen Update warten.

In deinem Talend Komponenten Ordner müsste es einen Ordner enaioredsearch Ordner geben.
Darin befindet sich die Datei enaioRedSearch_main.javajet.

In dieser Datei müsste es in Zeile ± 48 folgendes stehen:

<%=outConn.getName()%>.<%=column.get("SCHEMA_COLUMN")%> = <%=cid%>_record.getIntegerValue(<%=column.get("FIELD")%>);

Hier müsste eigentlich statt <%=cid%>_record.getIntegerValue <%=cid%>_record.getInt stehen.

Also ausgeschrieben:

<%=outConn.getName()%>.<%=column.get("SCHEMA_COLUMN")%> = <%=cid%>_record.getInt(<%=column.get("FIELD")%>);

Verblüffend dass dieser Fehler bisher nicht aufgefallen ist.
Danach entweder Talend ganz neu starten oder Ctrl + Shift + F3 drücken um die Komponenten zu aktualisieren.

1 Like

Das klappt, besten Dank für die super schnelle Lösung!
Wollte das Feld schon doppelt als String anlegen, aber du warst schneller :wink:

1 Like

Sehr schön und sorry. Leider ein klassischer Typo von mir.