This is a very newbie question but I cannot seem to figure it out (There also may be a better way to do it). I need to run a series of commands on a table (truncates) before starting any process in the database. Currently I am trying to do this through a DBExecute and pass to a SimpleCopy to start a parallel process. As you can guess the initiation is failing because there is no metadata defined from the DBExcute step but this is because there isnt any. Is there a better way to do this or can it be done at all? Thanks in advance for the help.
DBExecute does not need to have any input / output port connected. Especially for TRUNCATE statements. I’m not familiar with the scenario you are working on but in general you do not need to have any edge between the DBExecute and another component. Of course SimpleCopy does not produce any record and therefore it expects to receive records on the input port. However, you may simply skip the SimpleCopy and use one of the reader components Clover provides you with.
Thank for the reply and that definitely help the first part of my scenario. Is there a way to have the subsequent steps be triggered by the finishing of the DBExecute step? I probably could write something to a logging table and have the next steps start after a field is updated or the like, but that would be less desirable.
CloverETL uses concept of phases for this purposes . When you add a new component to the graph you will see in the left upper corner of the component a number that says in which phase this component will be executed. In your case you might want to set DBExecute to run in phase zero and the rest of the graph in phase one that follows right after finishing the phase zero.