private void flushBuffers() throws KettleException {

    try {
      // create the object(s) by sending the array to the web service
      data.deleteResult = data.connection.delete(data.deleteId);
      int nr = data.deleteResult.length;
      for (int j = 0; j < nr; j++) {
        if (data.deleteResult[j].isSuccess()) {

          putRow(data.outputRowMeta, data.outputBuffer[j]); // copy row to output rowset(s);
          incrementLinesOutput();

          if (checkFeedback(getLinesInput())) {
            if (log.isDetailed())
              logDetailed(
                  BaseMessages.getString(
                      PKG, "SalesforceDelete.log.LineRow", String.valueOf(getLinesInput())));
          }

        } else {
          // there were errors during the create call, go through the
          // errors
          // array and write them to the screen

          if (!getStepMeta().isDoingErrorHandling()) {
            if (log.isDetailed())
              logDetailed(BaseMessages.getString(PKG, "SalesforceDelete.Found.Error"));

            com.sforce.soap.partner.Error err = data.deleteResult[j].getErrors()[0];
            throw new KettleException(
                BaseMessages.getString(
                    PKG,
                    "SalesforceDelete.Error.FlushBuffer",
                    new Integer(j),
                    err.getStatusCode(),
                    err.getMessage()));
          }
          String errorMessage = "";
          int nrErrors = data.deleteResult[j].getErrors().length;
          for (int i = 0; i < nrErrors; i++) {
            // get the next error
            com.sforce.soap.partner.Error err = data.deleteResult[j].getErrors()[i];
            errorMessage +=
                BaseMessages.getString(
                    PKG,
                    "SalesforceDelete.Error.FlushBuffer",
                    new Integer(j),
                    err.getStatusCode(),
                    err.getMessage());
          }
          // Simply add this row to the error row
          if (log.isDebug())
            logDebug(BaseMessages.getString(PKG, "SalesforceDelete.PassingRowToErrorStep"));
          putError(
              getInputRowMeta(),
              data.outputBuffer[j],
              1,
              errorMessage,
              null,
              "SalesforceDelete001");
        }
      }

      // reset the buffers
      data.deleteId = new String[meta.getBatchSizeInt()];
      data.outputBuffer = new Object[meta.getBatchSizeInt()][];
      data.iBufferPos = 0;

    } catch (Exception e) {
      if (!getStepMeta().isDoingErrorHandling()) {
        throw new KettleException(
            BaseMessages.getString(PKG, "SalesforceDelete.FailedToDeleted", e.getMessage()));
      }
      // Simply add this row to the error row
      if (log.isDebug()) logDebug("Passing row to error step");

      for (int i = 0; i < data.iBufferPos; i++) {
        putError(
            data.inputRowMeta,
            data.outputBuffer[i],
            1,
            e.getMessage(),
            null,
            "SalesforceDelete002");
      }
    } finally {
      if (data.deleteResult != null) data.deleteResult = null;
    }
  }