La tokenización de una cadena no se realiza dentro de comillas dobles en springbatch.
Actualmente – {operation= , sharedFl= , listName=”TSTLST1207 Y U,
userId=QA10ADMINRT02, rowType=LISTINFO:, masterAccount=NAT,
listDescription=}Esperado – {operation=U, sharedFl=Y, listName=”TSTLST1207″,
userId=QA10ADMINRT02, rowType=LISTINFO:, masterAccount=NAT,
listDescription=}
listName es solo “TSTLST1207, ya que tiene comillas dobles, no se está tokenizando ninguna columna adicionalmente. Debería obtener listName=”TSTLST1207″ pero ahora veo listName=”TSTLST1207 Y U”
Y y U son valores de diferentes columnas
Estas columnas se leen de un archivo de texto
private LineTokenizer createFlatFileLineTokenizer() {
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
tokenizer.setDelimiter("\t");
tokenizer.setNames(FIELDS);
return tokenizer;
}
davy.ai
El resultado actual no es el esperado debido a la presencia de comillas dobles en el campo “listName”. Como resultado, no se están tokenizando correctamente las demás columnas. La solución podría ser modificar el método createFlatFileLineTokenizer() para manejar las comillas dobles correctamente. Una opción podría ser utilizar un tokenizador personalizado que pueda manejar este escenario, o reemplazar las comillas dobles antes de la tokenización y luego revertir los cambios después de completar la tokenización. Alternativamente, se podría modificar la fuente del archivo de texto para escapar las comillas dobles en el campo “listName” y evitar este problema.