# 業務對象管理
## 1、簡介
### 1.1、功能介紹
將業務表單填寫的數據模型進行增、刪、改、查、導出、導入,支持添加主子(一對多,一對一)二層和主子孫三層關系的數據,數據還可支持來源第三方接口和多數據源維護的表數據,對該功能亦可理解為類似數據庫的客戶端可在線傻瓜式操作生成對應的物理表信息。
### 1.2、使用場景
在日常中涉及到填寫數據的場景,比如:請假單、報銷單、申請、入庫等,都可以通過業務對象維護基礎數據。
### 1.3、預期效果
以請假申請為例,效果如下:

### 2、創建業務對象
選擇「表單管理>> 業務對象管理 >> 添加按鈕>>新建>>下一步」,設置業務對象名稱為「請假申請表」,即可創建請假申請表的數據模型信息。

#### 2.1、添加模式
> `簡介`:
> 1、**新建**:由實施人員、測試人員等在線添加業務對象信息;
> 2、**現有BO**:調用選擇已維護的業務對象信息,避免同個業務對象每次都從零添加提高一定實施效率;
> 3、**離線表**:直接引入設計好的數據庫信息,支持多數據源,可快速維護第三方表結構的數據;
> 4、**導入接口**:業務對象數據來源第三方接口,導入模式分如下:
> (1)Swagger導入地址【根據提供的地址,獲取里面的接口來填寫前綴匹配】【iform格式的json數據】
> (2)Swagger接口文檔導入【根據提供的文件,獲取里面的接口來填寫前綴匹配】【iform格式的json數據】
> (3)服務管理選擇接口【在服務管理選擇接口,創建業務對象】
> (4)導入業務對象地址【在202地址操作,通過210獲取業務對象地址數據來創建相同的業務對象】
選擇「表單管理>> 業務對象管理 >> 添加按鈕>>」,選擇“新建”模式,如下圖:

##### 2.1.1、離線表
選擇「表單管理>> 業務對象管理 >> 添加按鈕>>」,選擇“離線表”模式,點擊“下一步”按鈕,如下圖:

點擊“離線表”的文本框區域,系統彈窗選擇對應數據源、表名信息,如下圖:

##### 2.1.2、導入接口
選擇「表單管理>> 業務對象管理 >> 添加按鈕>>」,選擇“導入接口”模式,點擊“下一步”按鈕,如下圖:

#### 2.2、添加字段
請假申請字段信息拆解如下:
| 字段信息 | 控件類型 |
| --- | --- |
| 申請人 (字符串) | 選擇器(用戶) |
| 申請部門(字符串) | 選擇器(組織) |
| 申請崗位(字符串) | 選擇器(崗位) |
| 請假類型(字符串) | 下拉框 |
| 開始時間(日期型) | 日期 |
| 結束時間(日期型) | 日期 |
| 天數 (數字) | 數字 |
| 請假事由 (大文本) | 多行文本 |
| 請假證明材料(添加下級業務對象) | 子表單 |
| 名稱 (字符串) | 單行文本 |
| 附件 (字符串) | 上傳附件 |
| 說明 (字符串) | 單行文本 |
字段信息是數據的核心點,也是制作表單的必要工具,在此添加維護的字段信息可對應在數據庫生成一張對應的物理表信息,方便后續制作報表查詢SQL無縫結合。

##### 2.2.1、基本信息
> `細節說明`:可設置主子孫三層結構關系的表結構數據,子對象可設置為“一對多”和“一對一”關系,若子對象已經設置為“一對一”則不能再添加孫對象(即不能再添加下級業務對象)且在表單對應的“子表單”控件模式只能為“塊模式”,另外孫表不支持塊模式,且關系類型只能是“一對多”。
設置該業務對象的基本信息為“請假申請人”,編碼為“leaveForm”,填寫完即可完成基本信息錄入:

設置為主表基本信息后,需先在“左樹”區域選擇“請假申請表”,在右擊”按鈕,在出現的菜單下拉選擇“添加下級業務對象”按鈕,如下圖:

##### 2.2.2、對象屬性
> `細節說明`:
> 1、系統默認初始的字段信息嗎,建議不要刪除,若執意需要刪除`創建時間`的字段是必須要保留,`主鍵`必須是字符串!
> 2、**字段**:對應物理表的字段信息,系統后綴默認帶下劃線,避免出現保留字導致生成表失敗;
> 3、**編碼**:對象屬性的簡稱,也對應后端代碼生成實體類中的成員屬性信息,因此需要駝峰命名格式:systemName;
> 4、**描述**:對應物理表字段的注釋信息;
> 6、**屬性長度**:根據業務填寫的字段設置對應的屬性長度值,若設置較小會導致數據無法保存,例如:組織多選、附件多選、圖片多選建議不能低于2000;
> 5、**數據類型**:對應物理表的數據類型,且根據數據庫類型對應生成數據庫中的字段類型,細節內容如下;
| **字段類型** | **oracle** | **mysql** |
| --- | --- | --- |
| 字符串 | VARCHAR2 | varhcar |
| 日期 | DATETIME | datetime |
| 數字 | NUMBER | decimal |
| 大文本 | CLOB | text |
* 添加字段屬性信息,比如:“申請人”的添加頁面,需要繼續添加字段則點擊頁面右下角的“應用”按鈕,若不需要繼續添加則點擊“確定”按鈕,如下圖:

* 添加從表字段信息有:先在“左樹”維護主表的基礎上,在點擊主表右邊”“按鈕,在出現的菜單下拉選擇“添加下級業務對象”按鈕,如下圖:

* 點擊“下一步”設置業務對象的名稱為“請假證明材料表”,然后再切換到“對象屬性”,添加字段信息,如下圖:

字段信息如下圖:

* 設置完業務對象信息后,點擊頁面上的“保存”按鈕,即可完成業務對象數據錄入,如下圖:

##### 2.2.3、其他屬性
主要針對數據需維護樹形結構才需要操作此功能,若不需要維護樹形數據可不理會!選擇“其他屬性”,需要增加父節點活上級節點字段,且該字段在表單展示不需要展示,值由系統維護,因此對應作為父節點存儲值設置對應隱藏域控件即可,如下圖:

### 3、生成表
設置完字段信息后,返回到「表單管理>> 業務對象管理 >> 生成表按鈕」選擇對應數據(主從多個業務對象,只需要選擇主對象對應的子對象則會自動對應生成物理表),點擊此按鈕,如下圖:

### 4、數據導出
**簡介**:在測試庫中可將數據導出為zip,再快速導入遷移在生產庫中。
選擇「表單管理>> 業務對象管理 >>選擇要導出的數據 >>導出按鈕」,系統提示:是否進一步配置導出數據?否則直接導出當前業務對象。若選擇的是主表對象信息,則需要點擊“是”進入選填對應的子表對象信息,若不需要導出對應的子表或只是單表則點擊“否”按鈕,如下圖:

此選擇的是主表信息,選擇點擊“是”按鈕,勾選完對應的主子信息后,點擊右下角“導出”按鈕,瀏覽器會自動提示下載后綴為zip的文件,頁面如下圖:

### 5、數據導入
選擇「表單管理>> 業務對象管理 >>導入按鈕」,系統字段彈窗選擇導入業務對象的信息,選擇完對應導出的zip文件后,點擊“導入”按鈕,系統會自動將導出業務對象進行存儲,如下圖:

`說明`:
(1)系統之前沒有對應的業務對象數據,導入數據是“新增”;
(2)系統之前已有對應的業務對象數據,導入數據是“編輯”且對應的“版本號”會自動增加“1”為一個新版本,若有維護新增的字段,對應的表單需要再原先基礎數據復制表單,在彈窗頁面切換業務對象版本才行。
### 6、維護表關系
**說明**:非連續性添加的主子孫關系,即添加A-B為主子關系,B-C為主子關系,此時在點擊A對象生成表只有A和B成功生成表,C沒有生成,出現該情況C只能再點擊生成表,但在B-C維護的表單會出現C表數據丟失,出現該情況必須選擇該A-B-C的信息后點擊維護關系才能正常存儲數據。
選擇「表單管理>> 業務對象管理 >>添加按鈕」,先添加A表和B表的對象信息,如下圖:

然后再編輯B表,添加它的下級對象為C表,如下圖:

選擇“A表”的信息,點擊“生成表”按鈕,如下圖:

生成表成功,返回到業務對象列表,發現“C表”沒有生成表,此時需在點擊“生成表”按鈕,如下圖:

但此時生成的表關系會導致,選擇主表“B表”設置的表單信息,會導致C表的子表單數據丟失,出現該情況則需要再次選中該3條數據,點擊“維護表關系”才能正常存儲數據,如圖:
