1. 概述
本文介紹 同步用戶 時一些注意事項及報錯。
2. 次管無法添加/導入用戶
次級管理員在部分情況下無法添加用戶,詳情如下表所示:
JAR包 | 用戶來源 | 現象 |
---|---|---|
2020-01-15 到 2020-11-02 | 未同步用戶 | 次級管理員只可見「添加用戶」、「導入用戶」按鈕,不可見「同步用戶」按鈕 |
開啓了同步用戶 | 次級管理員不可見「添加用戶」、「導入用戶」、「同步用戶管理」按鈕,即用戶列表上方無按鈕 | |
2020-11-02及以後 | 未同步用戶 | 次級管理員只可見「添加用戶」、「導入用戶」按鈕,不可見「同步用戶」按鈕 |
開啓了同步用戶 | 次級管理員只可見「添加用戶」、「導入用戶」按鈕,不可見「同步用戶管理」按鈕 |
3. 同步數據集字段不可選
問題描述:
創建的服務器數據集可以預覽,但是在使用該數據集同步/導入用戶時,沒有字段可選,如下圖所示:
原因分析&解決思路:
查看日志,發現報錯:SQL ServerException:對象名' '無效。
檢查數據集的創建方式,例如存儲過程類的服務器數據集,嵌套之後 SQL 執行失敗。
4. 同步結果面板報錯
配置了 ID 列後會進行一些 ID 校驗以防入庫時沖突。此時出錯的數據也會列在結果面板中。下面羅列報錯情況。
4.1 ID 爲空
報錯信息如下圖所示:
原因:勾選了 id 後,不允許出現 name 不爲空,但是 id 爲空的情況。如下圖所示:
4.2 與原有 ID 沖突
報錯信息如下圖所示:
原因:勾選 ID 之後更改用戶名,但是不允許更改 ID,否則會報 ID 沖突的錯誤,比如原本 Alice 的 id 爲 3,現在變動成 2 。
4.3 ID 與其他對象重複
報錯信息如下圖所示:
原因:如下圖所示,多個用戶名使用了一個 id 時報錯。
4.4 對應多個 ID
報錯信息如下圖所示:
原因:如下圖所示,當一個用戶名卻有多個 id 時報此錯。
5. 樹數據集構建失敗
當同步數據集爲樹數據集時,往往會因爲樹數據集構建問題導緻同步失敗,下面列舉各種情況:
注:名詞解釋
部門标記:構建樹數據集時選擇的原始标記字段。
父部門标記:構建樹數據集時選擇的父标記字段。
5.1 21300055-報表、DEC交互原始标記相同
報錯信息「報表、DEC交互原始标記相同」,如下圖所示:
原因:樹數據集下,多個部門都用了一個部門标記,比如下圖中 DEC 交互,報表的 did 都爲 a12。如下圖所示:
5.2 21300056-報表有多個直接父部門
報錯信息「報表有多個直接父部門」,如下圖所示:
原因:一個部門有多個父部門标記,比如下圖中報表的 pid 有 a1,a2。
5.3 21300057-決策平台找不到對應父部門
報錯信息「樹構建失敗,決策平台找不到對應父部門」,如下圖所示:
原因:如果父部門标記爲空,那麽此部門就是根部門,如果不爲空,且父部門标記找不到對應的部門,則報錯。
如下圖所示,決策平台的 pid 爲 a3,但是沒有任何部門的 did 爲 a3,也即沒有該父部門:
注:同步用戶數據集時,若服務器數據集爲 樹數據集 ,頂層機構的父機構應爲空值。
5.4 21300058-報表有多個原始标記
報錯信息「報表有多個原始标記」,如下圖所示:
原因:如果部門名相同,且父部門标記相同,那麽說明這就是同一個部門,如果他們的部門标記不同,則報錯,如下圖中報表的 did 有兩個:a13,a12。
5.5 21300059-父子結構死循環
報錯信息「決策報表,帆軟軟件,DEC研發構成父子結構死循環」,如下圖所示:
原因:如果部門 111 的父标記指向部門 11 ,部門 11 的父标記指向部門 1 ,部門 1 的父标記又指向部門 111 ,構成了環,則報錯。
如下圖中帆軟軟件的父标記爲 a111,指向 DEC 研發,決策平台的 pid 爲 a1,指向帆軟軟件,DEC 研發的 pid 爲 a11,指向決策平台。
5.6 21300063-名稱與其他來源對象重複
報錯信息「名稱與其他來源對象重複」,如下圖所示:
原因:導入樹數據集的部門中存在和同步部門重複的數據,如先同步了樹數據集 A,再導入樹數據集 A 則會出現此報錯。
5.7 21300064-ID與其他來源對象重複
報錯信息「ID與其他來源對象重複」,如下圖所示:
原因:平台有内置部門2,首次同步一樹數據集,選擇保留權限更新,數據源中一同步部門1和内置部門2的ID相同,但名稱不同,同步後會報錯。
6. ID 校驗失敗
樹數據集情況下,如果還勾選了部門 id,且部門 id 列并非部門标記列,還會做 id 校驗工作,會導緻全局失敗。以下所有示例中部門标記列爲 did,父部門标記列爲 pid,部門 id 列爲 depId。
6.1 21300054-部門标記值與部門ID不一緻
報錯信息「部門标記值與部門ID不一緻」,如下圖所示:
注:2020-08-03 及之後的 JAR ,該錯誤碼将不會出現。
原因:如果部門标記爲純數字,比如 11,111,會直接作爲 id 項插入到 finedb 的部門表中,此時如果平台又勾選了其他列作爲部門 id,且部門标記值和勾選的部門 id 不一樣,則報錯。建議當數據源當部門标記爲純數字時,使用 sql 語句的字符串拼接一個英文字母。
6.2 21300053-ID爲空
報錯信息「ID爲空」,如下圖所示:
原因:樹數據集情況下,勾選部門 id 後如果部門 id 爲空,則直接全局報錯。如下圖所示:
6.3 21300051-報表ID與其他對象重複
報錯信息「報表ID與其他對象重複」,如下圖所示:
原因:帆軟軟件-報表,與帆軟軟件-決策平台使用了相同的部門 id。如下圖所示:
6.4 21300050-報表對應多個ID
報錯信息「報表對應多個ID」如下圖所示:
原因:當部門存在多個部門 id 時會報此錯,如上圖中帆軟軟件-報表有 a12,a15 兩個部門 id。如下圖所示:
6.5 21300052-決策平台和原有ID沖突
報錯信息「決策平台和原有ID沖突」,如下圖所示:
注:2020-06-08 及之後的 JAR ,該錯誤碼将不會出現。
原因:部門 id 發生改變了,會報錯與原有部門 id 沖突