docs: @Override
    public final void handle(final Map<String, Object> pReqVars,
      final IRequestData pRequestData,
        final OutputStream pSous) throws Exception {
      String csvMethodIdStr = pRequestData.getParameter("csvMethod");
      Long csvMethodId = Long.parseLong(csvMethodIdStr);
      String priceCategoryIdStr = pRequestData.getParameter("priceCategory");
      Long priceCategoryId = Long.parseLong(priceCategoryIdStr);
      pReqVars.put("priceCategoryId", priceCategoryId);
      String unavailablePriceStr = pRequestData.getParameter("unavailablePrice");
      if (unavailablePriceStr != null && !"".equals(unavailablePriceStr)) {
        BigDecimal unavailablePrice = new BigDecimal(unavailablePriceStr);
        if (unavailablePrice.compareTo(BigDecimal.ZERO) != 0) {
          pReqVars.put("unavailablePrice", unavailablePrice);
        }
      }
      String optimisticQuantityStr = pRequestData
        .getParameter("optimisticQuantity");
      if (optimisticQuantityStr != null && !"".equals(optimisticQuantityStr)) {
        BigDecimal optimisticQuantity = new BigDecimal(optimisticQuantityStr);
        pReqVars.put("optimisticQuantity", optimisticQuantity);
      }
      CsvMethod csvMethod = null;
      List<List<Object>> data = null;
      ICsvDataRetriever ret = null;
      try {
        this.srvDatabase.setIsAutocommit(false);
        this.srvDatabase.
          setTransactionIsolation(ISrvDatabase.TRANSACTION_READ_UNCOMMITTED);
        this.srvDatabase.beginTransaction();
        csvMethod = getSrvOrm().retrieveEntityById(pReqVars,
          CsvMethod.class, csvMethodId);
        List<CsvColumn> cols = getSrvOrm()
          .retrieveListWithConditions(pReqVars,
            CsvColumn.class, "where ITSOWNER=" + csvMethod.getItsId());
        csvMethod.setColumns(cols);
        ret = this.retrievers.get(csvMethod.getRetrieverName());
        if (ret == null) {
          throw new ExceptionWithCode(ExceptionWithCode.WRONG_PARAMETER,
            "Can't find retriever " + csvMethod.getRetrieverName());
        }
        data = ret.retrieveData(pReqVars);
        this.srvDatabase.commitTransaction();
      } catch (Exception ex) {
        this.srvDatabase.rollBackTransaction();
        throw ex;
      } finally {
        this.srvDatabase.releaseResources();
      }
      if (data != null) {
        this.csvWriter.write(pReqVars, data, csvMethod, pSous);
      }
    }