## Organizational API Description
>This document is the API interface usage instructions provided by the workflow engine

### Core Entry Class
Source code location：In the jar package starting with 'horizon-workflow-extend', under the path 'com.horizon.third'.
Factory class obtained through organizational data query and organizational cache data cleaning interface: com.horizon.third.OrgDataFactory
Organization data query interface class：com.horizon.third.service.api.OrgDataQueryApi
Organization Cache Data Cleanup Interface Class: com.horizon.third.service.api.OrgDataCacheApi
Organization Data Query Return Class：com.horizon.third.entity.OrgData
Organization User Data Query Return Class：com.horizon.third.entity.User
Tree structured data processed by organizational structure: com.horizon.core.tree.TreeModel<T>
### Organization Data Query Invoking Instructions
Query organizational data, including department, group, position, role, and user data.
All the above operations are performed through the 'OrgDataQueryApi' class. The overall invoking code structure is as follows：
```
//Get Operation Implementation Class
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
```

### Organization Cache Data Cleanup Invoking Instructions
Clear organizational data placed in the cache, including cached data for departments, groups, positions, roles, and users
All the above operations are implemented through the OrgDataCacheApi class,The overall invoking code structure is as follows:
```
//Get Operation Implementation Class
OrgDataCacheApi orgDataCache= OrgDataFactory.getOrgDataCacheManager();
```
### Result Set Description
**OrgData Result Set Description**

| Property | Type       | Required | Description                                                                     |
|----------|------------|----------|---------------------------------------------------------------------------------|
| id       | String     | Yes      | Organization ID                                                                 |
| name     | String     | Yes      | Organization name                                                               |
| type     | String     | Yes      | Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
| parentId | String     | No       | Parent ID                                                                       |
| deptId   | String     | No       | Department ID                                                                   |
| users    | List<User> | No       | Users under this organization                                                   |
**User Result Set Description**

| Property   | Type         | Required | Description                                                                                                                             |
|------------|--------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------|
| id         | String       | Yes      | User ID                                                                                                                                 |
| userName   | String       | Yes      | User name                                                                                                                               |
| loginName  | String       | Yes      | Login Name                                                                                                                              |
| password   | List         | Yes      | Login password                                                                                                                          |
| department | List<String> | No       | The set of department IDs where the user is located, including part-time departments, where the first value is the full-time department |

## OrgDataQueryApimethod invoking description
### findUserByOrgId
**Interface Description**
<table>
    <tr>
        <td>Method</td>
        <td>findUserByOrgId</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Find users based on the type and ID of the organization</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                          |
|-----------|--------|----------|--------------------------------------------------------------------------------------|
| type      | String | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
| orgId     | String | √        | Organization ID                                                                      |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<User> users = orgDataQuery.findUserByOrgId(“D”, ”HZ28e7f51e816d28011e816da7f1001f”);
```
### findUserLikeParam
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>findUserLikeParam</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Fuzzy retrieval of users based on parameter 'param' values, with a maximum of searchMax users returned</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                   |
|-----------|--------|----------|-------------------------------------------------------------------------------|
| param     | String | √        | User name or login name vague search key string                               |
| searchMax | String | √        | How many users can be returned at most when there are multiple matching users |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<User> users = orgDataQuery.findUserLikeParam(5, ”user01”);
```
### getUserById
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>getUserById</td>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Retrieve users based on user ID</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description |
|-----------|--------|----------|-------------|
| id        | String | √        | User ID     |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
User user = orgDataQuery.getUserById(“admin”);
```
### getUserByLoginName
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>getUserByLoginName</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Retrieve users based on login name</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description     |
|-----------|--------|----------|-----------------|
| loginName | String | √        | User login name |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
User user = orgDataQuery.getUserByLoginName (“admin”);
```
### findAllUser
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>findAllUser</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Query all users</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<User> users = orgDataQuery.findAllUser();
```
### findOrgForUserByUserId
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>findOrgForUserByUserId</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Find the organization to which the user belongs based on user ID</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description |
|-----------|--------|----------|-------------|
| userId    | String | √        | User ID     |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<OrgData> orgDatas = orgDataQuery.findOrgForUserByUserId(“admin”);
```
### findOrgForUserByUserId
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>findOrgForUserByUserId</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Find the organization where the user is based on their user ID and organization type</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                          |
|-----------|--------|----------|--------------------------------------------------------------------------------------|
| type      | String | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
| userId    | String | √        | User ID                                                                              |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<OrgData> orgDatas = orgDataQuery.findOrgForUserByUserId (“D”, “admin”);
```
### getOrgDataById
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>getOrgDataById</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Find corresponding organizational data based on the type and ID of the organization</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                          |
|-----------|--------|----------|--------------------------------------------------------------------------------------|
| type      | String | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
| orgId     | String | √        | Organization ID                                                                      |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
OrgData orgData = orgDataQuery.getOrgDataById(“D”, “admin”);
```
### findChildrenData
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>findChildrenData</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Find the children under the corresponding organizational structure based on the Type and ID of the organization, and query the children of all children</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
    <tr>
        <td>Comments</td>
        <td colspan="3">Only direct subordinates can be queried</td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                          |
|-----------|--------|----------|--------------------------------------------------------------------------------------|
| type      | String | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
| orgId     | String | √        | Organization ID                                                                      |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<OrgData> orgDatas = orgDataQuery.findChildrenData (“D”, “HZ28e7f51e816d28011e816da7f1001f”);
```
### findChildrenData
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>findChildrenData</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Find the children under the corresponding organizational structure based on the Type and ID of the organization, and query the children of all children</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
    <tr>
        <td>comment</td>
        <td colspan="3">Select to query all children of  organization structure </td>
    </tr>
</table>

**Parameter Description**

| Parameter  | Type    | Required | Description                                                                          |
|------------|---------|----------|--------------------------------------------------------------------------------------|
| type       | String  | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
| orgId      | String  | √        | Organization ID                                                                      |
| isAllChild | boolean | √        | Query all children or not                                                            |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<User> users = orgDataQuery.findUserByOrgId(“D”, ”HZ28e7f51e816d28011e816da7f1001f”, true);
```
### getRootNode
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>getRootNode</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Query the root level of an organization based on organization type</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                          |
|-----------|--------|----------|--------------------------------------------------------------------------------------|
| type      | String | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
OrgData orgData = orgDataQuery.getRootNode(“D”);
```
### findParentToRoot
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>findParentToRoot</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Find all superiors based on the type and ID of the organization</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                          |
|-----------|--------|----------|--------------------------------------------------------------------------------------|
| type      | String | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
| orgId     | String | √        | Organization ID                                                                      |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<OrgData> orgDatas = orgDataQuery.findParentToRoot(“D”, “HZ28e7f51e816d28011e816da7f1001f”);
```
### findOrgData
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>findOrgData</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Find all organizational data under the type of organization based on organization type</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                          |
|-----------|--------|----------|--------------------------------------------------------------------------------------|
| type      | String | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<OrgData> orgDatas = orgDataQuery.findOrgData(“D”);
```
### findOrgData
**Interface Description**
 <table>
    <tr>
        <td>Method</td>
        <td>findOrgData</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Obtain organizational data for all types, including D: department; G: Group; P: Position; R: Role</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
List<OrgData> orgDatas = orgDataQuery.findOrgData();
```
### getOrgTree
**Interface Description**
<table>
    <tr>
        <td>Method</td>
        <td>getOrgTree</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Find all organizational data under the type of organization based on organization type</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                          |
|-----------|--------|----------|--------------------------------------------------------------------------------------|
| type      | String | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |

**Invoking Example**
```
OrgDataQueryApi orgDataQuery = OrgDataFactory.getOrgDataQueryManager();
TreeModel<OrgData> tree = orgDataQuery.getOrgTree(“D”);
```

## OrgDataCacheApi method invoking description

### clearAllOrgCache
**Interface Description**
<table>
    <tr>
        <td>Method</td>
        <td>clearAllOrgCache</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Clear all types of organizational cache, including D: department; G: Group; P: Position; R: Role</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Invoking Example**
```
OrgDataQueryApi orgDataCache = OrgDataFactory.getOrgDataCacheManager();
orgDataCache.clearAllOrgCache();
```
### clearOrgCache
**Interface Description**
<table>
    <tr>
        <td>Method</td>
        <td>clearOrgCache</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Clear all organizational caches of the specified type</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Parameter Description**

| Parameter | Type   | Required | Description                                                                          |
|-----------|--------|----------|--------------------------------------------------------------------------------------|
| type      | String | √        | type：Organization type, limit value<br>D: department; G: Group; P: Position; R: Role |
**Invoking Example**
```
OrgDataQueryApi orgDataCache = OrgDataFactory.getOrgDataCacheManager();
orgDataCache. clearOrgCache(“D”);
```
### clearDeptCache
**Interface Description**
<table>
    <tr>
        <td>Method</td>
        <td>clearDeptCache</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Clear all department caches</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Invoking Example**
```
OrgDataQueryApi orgDataCache = OrgDataFactory.getOrgDataCacheManager();
orgDataCache. clearDeptCache()
```
### clearGroupCache
**Interface Description**
<table>
    <tr>
        <td>Method</td>
        <td>clearGroupCache</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Clear all group caches</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Invoking Example**
```
OrgDataQueryApi orgDataCache = OrgDataFactory.getOrgDataCacheManager();
orgDataCache.clearGroupCache();
```
### clearPositionCache
**Interface Description**
<table>
    <tr>
        <td>Method</td>
        <td>clearPositionCache</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Clear all position caches</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Invoking Example**
```
OrgDataQueryApi orgDataCache = OrgDataFactory.getOrgDataCacheManager();
orgDataCache.clearGroupCache();
```
### clearRoleCache
**Interface Description**
<table>
    <tr>
        <td>Method</td>
        <td>clearRoleCache</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Clear all roles caches</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Invoking Example**
```
OrgDataQueryApi orgDataCache = OrgDataFactory.getOrgDataCacheManager();
orgDataCache.clearRoleCache();
```
### clearUserCache	
**Interface Description**
<table>
    <tr>
        <td>Method</td>
        <td>clearUserCache</td>
        <td>  </td>
        <td></td>
    </tr>
    <tr>
        <td> Function Description</td>
        <td colspan="3">Clear all user caches</td>
    </tr>
    <tr>
        <td colspan="4" align="center">Interface</td>
    </tr>
    <tr>
        <td>Interface Type</td>
        <td>api</td>
        <td>Interaction frequency</td>
        <td>Aperiodic</td>
    </tr>
    <tr>
        <td>Interface Protocol</td>
        <td>Direct method invoking</td>
        <td>Response time</td>
        <td></td>
    </tr>
</table>

**Invoking Example**
```
OrgDataQueryApi orgDataCache = OrgDataFactory.getOrgDataCacheManager();
orgDataCache.clearUserCache();
```