code: protected List<Value> getDefinedValues(TaskRuntimeContext runtimeContext) {
          List<Value> values = new ArrayList<Value>();
          String varAttr = runtimeContext.getTaskAttribute(TaskAttributeConstant.VARIABLES);
          if (!StringHelper.isEmpty(varAttr)) {
              List<String[]> parsed = StringHelper.parseTable(varAttr, ',', ';', 5);
              for (String[] one : parsed) {
                  String name = one[0];
                  Value value = new Value(name);
                  if (one[1] != null && !one[1].isEmpty())
                      value.setLabel(one[1]);
                  value.setDisplay(Value.getDisplay(one[2]));
                  if (one[3] != null && !one[3].isEmpty())
                      value.setSequence(Integer.parseInt(one[3]));
                  if (one[4] != null && !one[4].isEmpty())
                      value.setIndexKey(one[4]);
                  if (value.isExpression()) {
                      value.setType(String.class.getName());
                  }
                  else {
                      Variable var = runtimeContext.getProcess().getVariable(name);
                      if (var != null)
                          value.setType(var.getType());
                  }
                  values.add(value);
              }
          }
          return values;
      }
docs: Minus runtime values.