code: private String getCustomFieldOutlineCodeValue(Var2Data varData, Var2Data outlineCodeVarData, Integer id, Integer type)
     {
        String result = null;
  
        int mask = varData.getShort(id, type);
        if ((mask & 0xFF00) != VALUE_LIST_MASK)
        {
           result = outlineCodeVarData.getUnicodeString(Integer.valueOf(varData.getInt(id, 2, type)), OUTLINECODE_DATA);
        }
        else
        {
           int uniqueId = varData.getInt(id, 2, type);
           CustomFieldValueItem item = m_file.getCustomFields().getCustomFieldValueItemByUniqueID(uniqueId);
           if (item != null)
           {
              Object value = item.getValue();
              if (value instanceof String)
              {
                 result = (String) value;
              }
  
              String result2 = getCustomFieldOutlineCodeValue(varData, outlineCodeVarData, item.getParent());
              if (result != null && result2 != null && !result2.isEmpty())
              {
                 result = result2 + "." + result;
              }
           }
        }
        return result;
     }
docs: Retrieve custom field value.
  
  @param varData var data block
  @param outlineCodeVarData var data block
  @param id item ID
  @param type item type
  @return item value