@Override public void execute(String name) { final BloombergSession bs = new BloombergSession(name); bs.start(); try { final Service service = bs.getService("//blp/refdata"); for (String crncy : currency) { final String idq[] = {"1CQ", "2CQ", "3CQ", "4CQ", "1CS", "2CS", "1CY", "2CY"}; for (final String quarter : idq) { final Request request = service.createRequest("ReferenceDataRequest"); final Element _securities = request.getElement("securities"); for (String s : securities) { final int p = s.indexOf('|'); if (crncy.equals(s.substring(p + 1))) { _securities.appendValue(s.substring(0, p)); } } final Element _fields = request.getElement("fields"); for (String field : fields) { _fields.appendValue(field); } final Element overrides = request.getElement("overrides"); final Element overridePeriod = overrides.appendElement(); overridePeriod.setElement("fieldId", "BEST_FPERIOD_OVERRIDE"); overridePeriod.setElement("value", period = quarter); final Element overrideCrncy = overrides.appendElement(); overrideCrncy.setElement("fieldId", "EQY_FUND_CRNCY"); overrideCrncy.setElement("value", crncy); if (null != override) { final Element overrideDataSource = overrides.appendElement(); overrideDataSource.setElement("fieldId", "BEST_DATA_SOURCE_OVERRIDE"); overrideDataSource.setElement("value", override); } bs.sendRequest(request, this); } } } finally { bs.stop(); } }