View Full Version : Trabajos con transformaciones
lucbebe
09-08-2009, 12:00 PM
Una preguntilla probablemante bastante obvia pero que no he logrado responder.
Tengo varias transformaciones creadas, y un trabajo para que ejecute las transformaciones, todo funciona correctamente. Pero desde el trabajo se llama a las transformaciones mediante una ruta absoluta, ¿habría alguna forma de utilizar una ruta relativa?
Muchas gracias de antemano y saludos
tdidomenico
09-08-2009, 12:05 PM
Utilizando la variable "Internal.Job.Filename.Directory"
"${Internal.Job.Filename.Directory}/../subdir1/trafo.ktr" como ubicación de la transformación buscaría a "trafo.ktr" en el directorio "subdir1", que estaría a la misma altura que el directorio donde guardaste el trabajo.
¡Saludos!
lucbebe
09-08-2009, 12:15 PM
Muchas gracias por tu respuesta.
¿Esto serviria tambien para poner rutas relativas desde una xaction a un fichero por ejemplo .js? Porque no pude utilizar este tipo de ruta con <solution-file> ya que me da error.
tdidomenico
09-08-2009, 12:24 PM
No, esas son variables internas de PDI, no te van a servir en otro caso.
lucbebe
09-09-2009, 04:08 AM
Buenas de nuevo.
Una duda, ¿ ${Internal.Job.Filename.Directory} no funciona para hacer referenia a otro trabajo, por ejemplo ${Internal.Job.Filename.Directory}/prueba.kjb?
Porque lo estoy intentando, pero cuando desde un trabajo se llama a una transformación funciona perfectamente, pero para llamar a otro trabajo no.
¿Esto es así realmente o estoy metiendo la pata en algún lado?
Muchas gracias por las respuestas
¡Saludos!
tdidomenico
09-09-2009, 10:10 AM
Adjunto un ejemplo que funciona para mí (v3.2).
lucbebe
09-09-2009, 10:31 AM
Utilizo la misma versión de kettle, y desde ahí me funciona perfectamente, tanto tu ejemplo como los jobs que tengo en el proyecto. El problema es que al ejecutarlos desde una xaction da error:
[es_161] Error: RuntimeContext.ERROR_0012 - [es_33] ActionDefinition for KettleComponent did not execute successfully (org.pentaho.platform.engine.services.runtime.RuntimeContext)
La xaction es muy básica:
<?xml version="1.0" encoding="UTF-8"?>
<action-sequence>
<title>ETL-proba</title>
<version>1</version>
<logging-level>ERROR</logging-level>
<documentation>
<author/>
<description>Empty blank action sequence document</description>
<help/>
<result-type/>
<icon/>
</documentation>
<inputs/>
<outputs>
<probaLogtype="string">
<destinations/>
</probaLog>
</outputs>
<resources>
<job-file>
<file>
<location>D:\APPS\biserver-ce\pentaho-solutions\prueba\etl\aaa.kjb</location>
<mime-type>text/plain</mime-type>
</file>
</job-file>
</resources>
<actions>
<action-definition>
<component-name>KettleComponent</component-name>
<action-type>Pentaho Data Integration Job</action-type>
<action-resources>
<job-filetype="resource"/>
</action-resources>
<action-outputs>
<kettle-execution-logtype="string"mapping="probaLog"/>
</action-outputs>
<component-definition>
<kettle-logging-level><![CDATA[basic]]></kettle-logging-level>
</component-definition>
</action-definition>
</actions>
</action-sequence>
He leido en algún post que era un problema conocido (http://forums.pentaho.org/showthread.php?t=27687), pero era una versión muy anterior y supuse que estaría corregido.
De cualquier modo me llama la atención que llamando de un job a una transformación si funcione correctamente, pero al llamar de un job a otro job no funcione.
¿Sabes algo al respecto? ¿A ti te funciona desde una xaction?
Muchas gracias por tu ayuda y tus respuestas.
Saludos