use of org.pentaho.di.trans.Trans in project pentaho-kettle by pentaho.
the class TransLogTable method getLogRecord.
/**
* This method calculates all the values that are required
*
* @param id
* the id to use or -1 if no id is needed
* @param status
* the log status to use
* @param subject
* the subject to query, in this case a Trans object
*/
public RowMetaAndData getLogRecord(LogStatus status, Object subject, Object parent) {
if (subject == null || subject instanceof Trans) {
Trans trans = (Trans) subject;
Result result = null;
if (trans != null) {
result = trans.getResult();
}
RowMetaAndData row = new RowMetaAndData();
for (LogTableField field : fields) {
if (field.isEnabled()) {
Object value = null;
if (trans != null) {
switch(ID.valueOf(field.getId())) {
case ID_BATCH:
value = new Long(trans.getBatchId());
break;
case CHANNEL_ID:
value = trans.getLogChannelId();
break;
case TRANSNAME:
value = trans.getName();
break;
case STATUS:
value = status.getStatus();
break;
case LINES_READ:
value = new Long(result.getNrLinesRead());
break;
case LINES_WRITTEN:
value = new Long(result.getNrLinesWritten());
break;
case LINES_INPUT:
value = new Long(result.getNrLinesInput());
break;
case LINES_OUTPUT:
value = new Long(result.getNrLinesOutput());
break;
case LINES_UPDATED:
value = new Long(result.getNrLinesUpdated());
break;
case LINES_REJECTED:
value = new Long(result.getNrLinesRejected());
break;
case ERRORS:
value = new Long(result.getNrErrors());
break;
case STARTDATE:
value = trans.getStartDate();
break;
case LOGDATE:
value = trans.getLogDate();
break;
case ENDDATE:
value = trans.getEndDate();
break;
case DEPDATE:
value = trans.getDepDate();
break;
case REPLAYDATE:
value = trans.getCurrentDate();
break;
case LOG_FIELD:
value = getLogBuffer(trans, trans.getLogChannelId(), status, logSizeLimit);
break;
case EXECUTING_SERVER:
value = trans.getExecutingServer();
break;
case EXECUTING_USER:
value = trans.getExecutingUser();
break;
case CLIENT:
value = KettleClientEnvironment.getInstance().getClient() != null ? KettleClientEnvironment.getInstance().getClient().toString() : "unknown";
break;
default:
break;
}
}
row.addValue(field.getFieldName(), field.getDataType(), value);
row.getRowMeta().getValueMeta(row.size() - 1).setLength(field.getLength());
}
}
return row;
} else {
return null;
}
}
use of org.pentaho.di.trans.Trans in project pentaho-kettle by pentaho.
the class SalesforceInputDialog method preview.
// Preview the data
private void preview() {
try {
SalesforceInputMeta oneMeta = new SalesforceInputMeta();
getInfo(oneMeta);
// check if the path is given
TransMeta previewMeta = TransPreviewFactory.generatePreviewTransformation(transMeta, oneMeta, wStepname.getText());
EnterNumberDialog numberDialog = new EnterNumberDialog(shell, props.getDefaultPreviewSize(), BaseMessages.getString(PKG, "SalesforceInputDialog.NumberRows.DialogTitle"), BaseMessages.getString(PKG, "SalesforceInputDialog.NumberRows.DialogMessage"));
int previewSize = numberDialog.open();
if (previewSize > 0) {
TransPreviewProgressDialog progressDialog = new TransPreviewProgressDialog(shell, previewMeta, new String[] { wStepname.getText() }, new int[] { previewSize });
progressDialog.open();
if (!progressDialog.isCancelled()) {
Trans trans = progressDialog.getTrans();
String loggingText = progressDialog.getLoggingText();
if (trans.getResult() != null && trans.getResult().getNrErrors() > 0) {
EnterTextDialog etd = new EnterTextDialog(shell, BaseMessages.getString(PKG, "System.Dialog.PreviewError.Title"), BaseMessages.getString(PKG, "System.Dialog.PreviewError.Message"), loggingText, true);
etd.setReadOnly();
etd.open();
}
PreviewRowsDialog prd = new PreviewRowsDialog(shell, transMeta, SWT.NONE, wStepname.getText(), progressDialog.getPreviewRowsMeta(wStepname.getText()), progressDialog.getPreviewRows(wStepname.getText()), loggingText);
prd.open();
}
}
} catch (KettleException e) {
new ErrorDialog(shell, BaseMessages.getString(PKG, "SalesforceInputDialog.ErrorPreviewingData.DialogTitle"), BaseMessages.getString(PKG, "SalesforceInputDialog.ErrorPreviewingData.DialogMessage"), e);
}
}
use of org.pentaho.di.trans.Trans in project pentaho-kettle by pentaho.
the class SalesforceInputTest method doConversions.
@Test
public void doConversions() throws Exception {
StepMeta stepMeta = new StepMeta();
String name = "test";
stepMeta.setName(name);
StepDataInterface stepDataInterface = Mockito.mock(StepDataInterface.class);
int copyNr = 0;
TransMeta transMeta = Mockito.mock(TransMeta.class);
Trans trans = Mockito.mock(Trans.class);
Mockito.when(transMeta.findStep(Mockito.eq(name))).thenReturn(stepMeta);
SalesforceInput salesforceInput = new SalesforceInput(stepMeta, stepDataInterface, copyNr, transMeta, trans);
SalesforceInputMeta meta = new SalesforceInputMeta();
SalesforceInputData data = new SalesforceInputData();
data.outputRowMeta = Mockito.mock(RowMeta.class);
Mockito.when(data.outputRowMeta.getValueMeta(Mockito.eq(0))).thenReturn(new ValueMetaBinary());
data.convertRowMeta = Mockito.mock(RowMeta.class);
Mockito.when(data.convertRowMeta.getValueMeta(Mockito.eq(0))).thenReturn(new ValueMetaString());
Field metaField = salesforceInput.getClass().getDeclaredField("meta");
metaField.setAccessible(true);
metaField.set(salesforceInput, meta);
Field dataField = salesforceInput.getClass().getDeclaredField("data");
dataField.setAccessible(true);
dataField.set(salesforceInput, data);
Object[] outputRowData = new Object[1];
byte[] binary = { 0, 1, 0, 1, 1, 1 };
salesforceInput.doConversions(outputRowData, 0, new String(Base64.encode(binary)));
Assert.assertArrayEquals(binary, (byte[]) outputRowData[0]);
binary = new byte[0];
salesforceInput.doConversions(outputRowData, 0, new String(Base64.encode(binary)));
Assert.assertArrayEquals(binary, (byte[]) outputRowData[0]);
}
use of org.pentaho.di.trans.Trans in project pentaho-kettle by pentaho.
the class S3CsvInputDialog method preview.
// Preview the data
private void preview() {
// Create the XML input step
S3CsvInputMeta oneMeta = new S3CsvInputMeta();
getInfo(oneMeta);
TransMeta previewMeta = TransPreviewFactory.generatePreviewTransformation(transMeta, oneMeta, wStepname.getText());
EnterNumberDialog numberDialog = new EnterNumberDialog(shell, props.getDefaultPreviewSize(), Messages.getString("S3CsvInputDialog.PreviewSize.DialogTitle"), Messages.getString("S3CsvInputDialog.PreviewSize.DialogMessage"));
int previewSize = numberDialog.open();
if (previewSize > 0) {
TransPreviewProgressDialog progressDialog = new TransPreviewProgressDialog(shell, previewMeta, new String[] { wStepname.getText() }, new int[] { previewSize });
progressDialog.open();
Trans trans = progressDialog.getTrans();
String loggingText = progressDialog.getLoggingText();
if (!progressDialog.isCancelled()) {
if (trans.getResult() != null && trans.getResult().getNrErrors() > 0) {
EnterTextDialog etd = new EnterTextDialog(shell, Messages.getString("System.Dialog.PreviewError.Title"), Messages.getString("System.Dialog.PreviewError.Message"), loggingText, true);
etd.setReadOnly();
etd.open();
}
}
PreviewRowsDialog prd = new PreviewRowsDialog(shell, transMeta, SWT.NONE, wStepname.getText(), progressDialog.getPreviewRowsMeta(wStepname.getText()), progressDialog.getPreviewRows(wStepname.getText()), loggingText);
prd.open();
}
}
use of org.pentaho.di.trans.Trans in project pentaho-kettle by pentaho.
the class MQTTProducerTest method setup.
@Before
public void setup() throws Exception {
KettleLogStore.setLogChannelInterfaceFactory(logChannelFactory);
when(logChannelFactory.create(any(), any())).thenReturn(logChannel);
when(logChannelFactory.create(any())).thenReturn(logChannel);
TransMeta transMeta = new TransMeta(getClass().getResource("/ProduceFourRows.ktr").getPath());
trans = new Trans(transMeta);
trans.setVariable("mqttServer", "127.0.0.1:1883");
trans.setVariable("clientId", "client1");
trans.setVariable("topic", "TestWinning");
trans.setVariable("messageField", "message");
trans.setVariable("qos", "0");
trans.prepareExecution(new String[] {});
StepMetaDataCombi combi = trans.getSteps().get(1);
MQTTProducer step = (MQTTProducer) combi.step;
MQTTProducerData data = (MQTTProducerData) combi.data;
data.mqttClient = mqttClient;
step.first = false;
}
Aggregations