FileWriterPattern

Le masque FileWriterPattern est utilisé pour inscrire des données textuelles dans un fichier.

Classes prises en charge

La classe TextFileWriter fournit la logique d'ouverture d'un fichier particulier et d'écriture de données texte (chaîne) dans ce fichier. Selon les propriétés spécifiées, le fichier est ouvert en mode append (les données sont écrites à la suite du contenu existant) ou en mode remplacement. Lors d'un redémarrage, le fichier est toujours ouvert en mode append.

Il existe deux façons de configurer le nom de fichier TextFileWriter de manière dynamique à partir de JobStepContext :
  • Utilisez une propriété de niveau de travail bien connue, définie par la grille de calcul. Par exemple :
       JobStepContext ctx = JobStepContextMgr.getContext();
       Properties jobProps = ctx.getJobLevelProperties();
       jobProps.set(TextFileWriter.
       FILENAME_JOBSTEPCONTEXT_DEFAULT_PROPERTY_NAME, "/my/fileName");
    si vous définissez la valeur "/my/fileName" avant l'initialisation de TextFileWriter, cette valeur est utilisée en nom de fichier par TextFileWriter.
  • Utilisez votre propre propriété personnalisée, définie par une propriété xJCL niveau rédacteur BDS. Utilisez cette méthode si vous disposez de deux rédacteurs et que chacun a besoin d'un nom de fichier distinct.
    Dans cette méthode, utilisez la propriété xJCL de niveau BDS appelée com.ibm.websphere.batch.devframework.datastreams.patterns.TextFileWriter.FILENAME.xjcl.custom.property.name pour identifier le nom de propriété JobStepContext. Exemple :
    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"/>    <!--
    This will take affect if the dynamic config isn't set. -->
              <prop name="AppendJobIdToFileName" value="true"/>           <!--
    Existing options are still usable with dynamically-determined filenames -->
              <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>
    Comme dans la première méthode, définissez la propriété de niveau de travail avant l'initialisation de TextFileWriter. Exemple :
       JobStepContext ctx = JobStepContextMgr.getContext();
       Properties jobProps = ctx.getJobLevelProperties();
       jobProps.set("my.bds.specific.property.name", "/my/fileName");

Propriétés requises

Les propriétés suivantes sont requises pour le masque.

Tableau 1. Propriétés requises. Ce tableau contient le nom et la valeur de chaque propriété requise pour le masque.
Nom de la propriété valeur
PATTERN_IMPL_CLASS Classe implémentant l'interface FileWriterPattern
FILENAME Chemin complet vers le fichier d'entrée

Propriétés facultatives

Les propriétés suivantes sont optionnelles pour le masque.

Tableau 2. Propriétés facultatives. Ce tableau contient le nom, la valeur et la description de chaque propriété facultative pour le masque.
Nom de la propriété Valeur Description
debug true ou false (la valeur par défaut est false) Active le traçage détaillé sur ce flux de données par lots.
EnablePerformanceMeasurement true ou false (la valeur par défaut est false) Calcule le temps écoulé dans les flux de données par lots et la méthode processRecord, si vous utilisez GenericXDBatchStep.
EnableDetailedPerformanceMeasurement true ou false (la valeur par défaut est false) Fournit un arrêt plus détaillé du temps écoulé dans chaque méthode des flux de données par lots.
file.encoding Codage du fichier. Par exemple, 8859_1
AppendJobldToFileName true ou false (la valeur par défaut est false) Ajoute l'ID du travail au nom de fichier avant le chargement du fichier.
append true ou false (la valeur par défaut est true) Détermine si le fichier doit être ouvert en mode append.
Important : Lors d'un redémarrage, le fichier est toujours ouvert en mode append.

Définition de l'interface

public interface FileWriterPattern { 
  
	/**  
	 * Invoked during step setup phase  
	 * @param props  
	 */  
	public void initialize(Properties props);  
	  
	/**  
	 * This method should write the given record  
	 * object to the bufferedwriter.  
	 * @param out  
	 * @param record  
	 * @throws IOException  
	 */  
	public void writeRecord(BufferedWriter out, Object record) throws IOException;  
	  
	/**  
	 * This method is invoked only once just after the bufferedwriter  
	 * is opened. It should be used to write any header information  
	 * @param out  
	 * @throws IOException  
	 */  
	public void writeHeader(BufferedWriter out) throws IOException;  

        /**
	 * This method can be optionally called during process step to explicity 
	 * initialize and write the header. 
	 * @param header
	 * @throws IOException 
	 */
	public void writeHeader(BufferedWriter out, Object header) throws IOException;

}  

Exemple 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>

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rgrid_btchpttrn6
Nom du fichier : rgrid_btchpttrn6.html