FileWriterPattern

El patrón FileWriterPattern se utiliza para grabar datos de texto en un archivo.

Clases de soporte

La clase TextFileWriter proporciona la lógica para abrir y grabar datos de serie en el archivo determinado. El archivo se abre o en modalidad append o bien overwrite, dependiendo de las propiedades especificadas. El archivo se abre en modalidad siempre append durante un reinicio de trabajo.

Hay dos formas de establecer el nombre de archivo TextFileWriter dinámicamente desde JobStepContext:
  • Utilice una única propiedad de nivel de trabajo conocida, definida por Compute Grid. En el ejemplo siguiente:
       JobStepContext ctx= JobStepContextMgr.getContext();   Properties jobProps = ctx.getJobLevelProperties();
       jobProps.set(TextFileWriter.
       FILENAME_JOBSTEPCONTEXT_DEFAULT_PROPERTY_NAME, "/mi/nombreArchivo");
    si establece el valor "/mi/nombreArchivo" antes de la inicialización de TextFileWriter, TextFileWriter usa este valor como nombre de archivo.
  • Utilice su propia propiedad personalizada, definida por una propiedad xJCL de nivel de escritor BDS. Utilice este método si tiene dos escritores y cada uno necesita un nombre de archivo diferente.
    En este método, utilice la propiedad xJCL de nivel BDS llamada com.ibm.websphere.batch.devframework.datastreams.patterns.TextFileWriter.FILENAME.xjcl.custom.property.name para identificar el nombre de propiedad JobStepContext. Por ejemplo:
    xJCL
          <bds>
            <logical-name>outputStream</logical-name>
    
    <impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.TextFileWriter</impl-class>
    
            <props>
              <prop name="PATTERN_IMPL_CLASS" value="mypkg.MyWriter"/>
              <prop name="FILENAME" value="/my/staticFileName.txt"/>    <!--
    Esto tendrá efecto si no se ha definido la configuración dinámica.-->
              <prop name="AppendJobIdToFileName" value="true"/>           <!--
    Las opciones existentes se pueden seguir utilizando con nombres de archivo determinados dinámicamente -->
              <prop name="debug" value="true"/>
              <prop
    name="com.ibm.websphere.batch.devframework.datastreams.patterns.TextFileWriter.FILENAME.xjcl.custom.property.name"
      value="my.bds.specific.property.name"/>
            </props>
          </bds>
        </batch-data-streams>  </job-step>
    Como en el primer método, defina la propiedad de nivel de trabajo antes de la inicialización de TextFileWriter. Por ejemplo:
       JobStepContext ctx= JobStepContextMgr.getContext();   Properties jobProps = ctx.getJobLevelProperties();
       jobProps.set("mi.nombre.propiedad.concreta.bds", "/mi/nombreArchivo");

Propiedades obligatorias

Las propiedades siguientes son necesarias para el patrón.

Tabla 1. Propiedades obligatorias. La tabla incluye el nombre y el valor de cada propiedad necesaria para el patrón.
Nombre de propiedad Value
PATTERN_IMPL_CLASS Clase que implementa la interfaz FileWriterPattern
FILENAME Vía de acceso completa al archivo de entrada

Propiedades opcionales

Para el patrón las propiedades siguientes son opcionales.

Tabla 2. Propiedades opcionales . La tabla incluye el nombre, el valor y la descripción de cada propiedad opcional para el patrón.
Nombre de propiedad Value Descripción
debug true o false (el valor predeterminado es false) Habilita el rastreo detallado en esta secuencia de datos por lotes.
EnablePerformanceMeasurement true o false (el valor predeterminado es false) Calcula el tiempo total invertido en las secuencias de datos por lotes y el método processRecord, si se utiliza GenericXDBatchStep.
EnableDetailedPerformanceMeasurement true o false (el valor predeterminado es false) Proporciona un desglose más detallado del tiempo invertido en cada método de las secuencias de datos por lotes.
file.encoding Codificación del archivo Por ejemplo, 8859_1
AppendJobldToFileName true o false (el valor predeterminado es false) Añade el JobID al nombre de archivo antes de cargar el archivo.
append true o false (el valor predeterminado es true) Determina si se abre el archivo en modalidad append.
Importante: Durante un reinicio, el archivo se abre siempre en modalidad append.

Definición de interfaz

public interface FileWriterPattern { 
  
	/**  
	 	 * Se invoca durante la fase de configuración de paso  
	 	 * @parámetro props
	 */  
	public void initialize(Properties props);
	  
	/**  
	 	 * Este método debe grabar el objeto de registro dado  
	 	 * en bufferedwriter.  
	   * @parámetro out
	 	 * @parámetro record
	 	 * @emite una excepción IOException  
	 */  
		public void writeRecord(BufferedWriter out, Object record) throws IOException;  
	  
	/**  
	 	 * Este método sólo se invoca una vez justo después de abrir  
	 	 * bufferedwriter. Se debe utilizar para grabar cualquier información de cabecera
	   * @parámetro out
	 	 * @emite una excepción IOException  
	 */  
		public void writeHeader(BufferedWriter out) throws IOException;  

        /**
	 	 * Este método se puede invocar opcionalmente durante el paso de proceso para
	   * inicializar y grabar de forma explícita la cabecera.
	 	 * @parámetro header
	 	 * @emite una excepción IOException  
	 */
		public void writeHeader(BufferedWriter out, Object header) throws IOException;

}  

Ejemplo xJCL

<batch-data-streams>
<bds>
<logical-name>outputStream</logical-name>
<props>
     <prop name="PATTERN_IMPL_CLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoWriter"/>
     <prop name="file.encoding" value="8859_1"/>
     <prop name="FILENAME" value="/opt/txlist.txt" />
     <prop name="debug" value="true"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.TextFileWriter</impl-class>
</bds>
</batch-data-streams>

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rgrid_btchpttrn6
File name: rgrid_btchpttrn6.html