code: public Object getResultValue(String actionId) {
          if (actionId == null) {
              return null;
          }
          if (!actionId.contains(ActivityContext.ID_SEPARATOR)) {
              ActionResult actionResult = getActionResult(actionId);
              return (actionResult != null ? actionResult.getResultValue() : null);
          } else {
              String[] ids = StringUtils.tokenize(actionId, ActivityContext.ID_SEPARATOR, true);
              if (ids.length == 1) {
                  ActionResult actionResult = getActionResult(actionId);
                  return (actionResult != null ? actionResult.getResultValue() : null);
              } else {
                  ActionResult actionResult = getActionResult(ids[0]);
                  if (actionResult == null || !(actionResult.getResultValue() instanceof ResultValueMap)) {
                      return null;
                  }
                  ResultValueMap resultValueMap = (ResultValueMap)actionResult.getResultValue();
                  for (int i = 1; i < ids.length - 1; i++) {
                      Object value = resultValueMap.get(ids[i]);
                      if (!(value instanceof ResultValueMap)) {
                          return null;
                      }
                  }
                  return resultValueMap.get(ids[ids.length - 1]);
              }
          }
      }
docs: Returns the result value of the action as an {@code Object}.
  
  @param actionId the action id
  @return the result value of the action