use of com.sforce.soap.partner.Error in project teiid by teiid.
the class SalesforceConnectionImpl method delete.
public int delete(String[] ids) throws ResourceException {
DeleteResult[] results = null;
try {
results = partnerConnection.delete(ids);
} catch (UnexpectedErrorFault e) {
throw new ResourceException(e);
} catch (ConnectionException e) {
throw new ResourceException(e);
}
boolean allGood = true;
StringBuffer errorMessages = new StringBuffer();
for (int i = 0; i < results.length; i++) {
DeleteResult result = results[i];
if (!result.isSuccess()) {
if (allGood) {
// $NON-NLS-1$
errorMessages.append("Error(s) executing DELETE: ");
allGood = false;
}
Error[] errors = result.getErrors();
if (null != errors && errors.length > 0) {
for (int x = 0; x < errors.length; x++) {
Error error = errors[x];
errorMessages.append(error.getMessage()).append(';');
}
}
}
}
if (!allGood) {
throw new ResourceException(errorMessages.toString());
}
return results.length;
}
use of com.sforce.soap.partner.Error in project components by Talend.
the class SalesforceRuntimeTest method testAddLog.
@Test
public void testAddLog() throws IOException {
Error error1 = new Error();
error1.setStatusCode(StatusCode.INVALID_STATUS);
error1.setMessage("Error message 1");
Error error2 = new Error();
error2.setStatusCode(StatusCode.FIELD_NOT_UPDATABLE);
error2.setMessage("Error message 2");
error2.setFields(new String[] { "Id", "Created" });
StringWriter logStringWriter = new StringWriter();
BufferedWriter logWriter = new BufferedWriter(logStringWriter);
StringBuilder sb = SalesforceRuntime.addLog(new Error[] { error1, error2 }, "12345", logWriter);
logWriter.flush();
assertNotNull(sb);
String content = sb.toString();
assertThat(content, containsString(error1.getMessage()));
assertThat(content, containsString(error2.getMessage()));
String logContent = logStringWriter.toString();
assertThat(logContent, containsString(error1.getMessage()));
assertThat(logContent, containsString(error1.getStatusCode().toString()));
assertThat(logContent, containsString(error2.getMessage()));
assertThat(logContent, containsString(error2.getStatusCode().toString()));
assertThat(logContent, containsString("12345"));
assertThat(logContent, containsString("Id"));
assertThat(logContent, containsString("Created"));
}
use of com.sforce.soap.partner.Error in project components by Talend.
the class SalesforceRuntime method addLog.
public static StringBuilder addLog(Error[] resultErrors, String row_key, BufferedWriter logWriter) {
StringBuilder errors = new StringBuilder("");
if (resultErrors != null) {
for (Error error : resultErrors) {
errors.append(error.getMessage()).append("\n");
if (logWriter != null) {
try {
logWriter.append("\tStatus Code: ").append(error.getStatusCode().toString());
logWriter.newLine();
logWriter.newLine();
logWriter.append("\tRowKey/RowNo: " + row_key);
if (error.getFields() != null) {
logWriter.newLine();
logWriter.append("\tFields: ");
boolean flag = false;
for (String field : error.getFields()) {
if (flag) {
logWriter.append(", ");
} else {
flag = true;
}
logWriter.append(field);
}
}
logWriter.newLine();
logWriter.newLine();
logWriter.append("\tMessage: ").append(error.getMessage());
logWriter.newLine();
logWriter.append("\t--------------------------------------------------------------------------------");
logWriter.newLine();
logWriter.newLine();
} catch (IOException ex) {
ComponentException.unexpectedException(ex);
}
}
}
}
return errors;
}
use of com.sforce.soap.partner.Error in project components by Talend.
the class SalesforceWriter method handleReject.
private void handleReject(IndexedRecord input, Error[] resultErrors, String[] changedItemKeys, int batchIdx) throws IOException {
String changedItemKey = null;
if (batchIdx < changedItemKeys.length) {
if (changedItemKeys[batchIdx] != null) {
changedItemKey = changedItemKeys[batchIdx];
} else {
changedItemKey = String.valueOf(batchIdx + 1);
}
} else {
changedItemKey = "Batch index out of bounds";
}
StringBuilder errors = SalesforceRuntime.addLog(resultErrors, changedItemKey, logWriter);
if (exceptionForErrors) {
if (errors.toString().length() > 0) {
if (logWriter != null) {
logWriter.close();
}
throw new IOException(errors.toString());
}
} else {
rejectCount++;
Schema outSchema = sprops.schemaReject.schema.getValue();
if (outSchema == null || outSchema.getFields().size() == 0) {
return;
}
if (input.getSchema().equals(outSchema)) {
rejectedWrites.add(input);
} else {
IndexedRecord reject = null;
if (AvroUtils.isIncludeAllFields(outSchema)) {
Schema runtimeSchema = input.getSchema();
List<Schema.Field> addedFields = new ArrayList<>();
// Check whether design schema has additional field
Schema.Field errorCodeField = outSchema.getField(TSalesforceOutputProperties.FIELD_ERROR_CODE);
Schema.Field errorField = outSchema.getField(TSalesforceOutputProperties.FIELD_ERROR_FIELDS);
Schema.Field errorMsgField = outSchema.getField(TSalesforceOutputProperties.FIELD_ERROR_MESSAGE);
if (errorCodeField != null) {
addedFields.add(new Schema.Field(errorCodeField.name(), errorCodeField.schema(), errorCodeField.doc(), errorCodeField.defaultVal()));
}
if (errorField != null) {
addedFields.add(new Schema.Field(errorField.name(), errorField.schema(), errorField.doc(), errorField.defaultVal()));
}
if (errorMsgField != null) {
addedFields.add(new Schema.Field(errorMsgField.name(), errorMsgField.schema(), errorMsgField.doc(), errorMsgField.defaultVal()));
}
if (addedFields.size() > 0) {
// Append additional fields to the runtime schema
runtimeSchema = AvroUtils.appendFields(runtimeSchema, addedFields.toArray(new Schema.Field[addedFields.size()]));
}
reject = new GenericData.Record(runtimeSchema);
} else {
reject = new GenericData.Record(outSchema);
}
for (Schema.Field outField : reject.getSchema().getFields()) {
Object outValue = null;
Schema.Field inField = input.getSchema().getField(outField.name());
if (inField != null) {
outValue = input.get(inField.pos());
} else if (resultErrors.length > 0) {
Error error = resultErrors[0];
if (TSalesforceOutputProperties.FIELD_ERROR_CODE.equals(outField.name())) {
outValue = error.getStatusCode() != null ? error.getStatusCode().toString() : null;
} else if (TSalesforceOutputProperties.FIELD_ERROR_FIELDS.equals(outField.name())) {
StringBuffer fields = new StringBuffer();
for (String field : error.getFields()) {
fields.append(field);
fields.append(",");
}
if (fields.length() > 0) {
fields.deleteCharAt(fields.length() - 1);
}
outValue = fields.toString();
} else if (TSalesforceOutputProperties.FIELD_ERROR_MESSAGE.equals(outField.name())) {
outValue = error.getMessage();
}
}
reject.put(outField.pos(), outValue);
}
rejectedWrites.add(reject);
}
Property<OutputAction> outputAction = sprops.outputAction;
LOGGER.info(MESSAGES.getMessage("info.rejectedRecord", sprops.outputAction.getPossibleValuesDisplayName(outputAction.getValue()).toLowerCase(), dataCount));
}
}
Aggregations