code: @Override
  	public Result<Void> getHistoryByRole(AuthzTrans trans, HttpServletResponse resp, String role, int[] yyyymm, final int sort) {
  		StringBuilder sb = new StringBuilder();
  		sb.append(GET_HISTORY_ROLE);
  		sb.append(' ');
  		sb.append(role);
  		sb.append(" for ");
  		boolean first = true;
  		for(int i : yyyymm) {
  			if(first) {
  			    first = false;
  			} else {
  			    sb.append(',');
  			}
  			sb.append(i);
  		}
  		TimeTaken tt = trans.start(sb.toString(), Env.SUB|Env.ALWAYS);
  		try {
  			Result<HISTORY> rh = service.getHistoryByRole(trans,role,yyyymm,sort);
  			switch(rh.status) {
  				case OK: 
  					RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
  					if(Question.willSpecialLog(trans, trans.user())) {
  						Question.logEncryptTrace(trans,data.asString());
  					}
  
  					data.to(resp.getOutputStream());
  					setContentType(resp,historyDF.getOutType());
  					return Result.ok();
  				default:
  					return Result.err(rh);
  			}
  		} catch (Exception e) {
  			trans.error().log(e,IN,GET_HISTORY_ROLE);
  			return Result.err(e);
  		} finally {
  			tt.done();
  		}
  	}
docs: /* (non-Javadoc)
  @see com.att.authz.facade.AuthzFacade#getHistoryByRole(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, int[])