【No99:SOK-00004 管理簿と供用簿のリンクが取れていないため修正機能を利用できないエラー(HE03K-0277)】エラー対応メモ
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1252
這篇文章是針對依賴【No99:SOK-00004 管理簿と供用簿のリンクが取れていないため修正機能を利用できないエラー(HE03K-0277)】所做的調查與處理記錄。由於此問題涉及No99號案件的多段修正處理流程,為避免日後重複查找與誤解,特此整理調查經過、原因判斷及修正對應方式。內容以自用為主,僅作備忘用途。
1. 摘要
需要登入的賬號有15500【防衛装備庁陸上装備研究所 総務課】
調查對象:
物品番號SOK-00004有2個リンク切れ,證書番號HE03K-0277。
如圖所示:
2. 調查
這兩個リンク切れ相當詭異,這是kanribo_cd=1428056使用的kobetu_cd所對應的link_tbl的數據:
這是kanribo_cd=1428057使用的kobetu_cd所對應的link_tbl的數據:
.....由於都是+14的數據。所以必然不可能與 harai_的數據有關。
進一步調查:
data追跡發現其kyouyoubo_cd已經被打上了del_flg,原因未知。
如圖所示kyouyoubo_cd=1400078和1400079,不知爲何,被打上del_flg,但是其對應的kanribo_cd=1428056和1428057(也就是目前展現出的リンク切れ的記錄)卻沒有。
3. 解決方案
簡單來説,就是把kyouyoubo_cd=1400078和1400079的del_flg給改成NULL。
但是考慮到O-10857可能有問題,所以先檢查它:
如圖所示,選中的部分是link錯了kanribo_cd的地方。想要修它得先修上一個リンク切れ:
如圖,已經找到了リンク切れ的kanribo_cd=1601077和kyouyoubo_cd=1510919,接下來只要做個link_tbl數據就行。
根據一系列調查kobetu_cd應該是1066037。
所以先得產生的第一條SQL:
INSERT INTO admin.link_tbl (link_cd, kobetu_cd, matome_cd_uke, kanribo_cd_uke, kyouyoubo_cd_uke, matome_cd_harai, kanribo_cd_harai, kyouyoubo_cd_harai, ins_op_cd, ins_ymd, upd_op_cd, upd_ymd, buppin_cd) VALUES (1085, 1066037, 1084, 1601077, 1510919, 2506502, 1601078, 1510920, '10000', '2025-07-31 17:29:44', '10000', '2025-07-31 17:29:44', 'O-10857');
然後刪掉數據link_cd=1413774且buppin_cd為O-10857的數據:
DELETE FROM admin.link_tbl
WHERE link_cd = 1413774 AND buppin_cd = 'O-10857';
爲什麽精準刪掉這一條而不是所有link_cd=1413774是因爲另外一條讓我感到疑惑:
所以我覺著先留著。
所以還得做個link_cd=1413774的清空:
UPDATE admin.link_tbl
SET
matome_cd_harai = NULL,
kanribo_cd_harai = NULL,
kyouyoubo_cd_harai = NULL
WHERE link_cd = 1413774;
這樣最起碼修復了O-10857的問題:
如圖所示,這是新做出來的數據。
不過後來我仔細想想,本身就不應該存在兩組相同的數據,你看它們matome_cd_uke都相同,這是不對的。
所以我認爲直接執行這樣的刪除是對的:
DELETE FROM admin.link_tbl WHERE link_cd = 1413774;
DELETE FROM admin.link_tbl WHERE link_cd = 1413775;
這麽一來,對應的SOK-00004的リンク切れ的那兩條數據的link_tbl應該是這樣的:
但是這麽一來,不太對勁的就是爲啥它們matome_cd_uke是相同的了。
一般來講,相同沒啥,只要在同一條管理簿記錄就行,可是:
kanribo_tbl:
kanribo_cd | buppin_cd | shoumou_kbn | kanrikan_cd | kasitu_cd | ymd | kanribo_seiri_kbn | tekiyou | idou_su | split_idou_su | idou_kakaku | sonota_su | split_sonota_su | bikou | ins_op_cd | ins_ymd | upd_op_cd | upd_ymd | del_flg | seiri_no |
1428056 | SOK-00004 | 1 | 15500 | 1201 | 2/25/2022 | 41 | HE03K-0277 | 0 | 14 | 1 | 業務上必要なため | 15505 | 3/4/2022 15:10 | ||||||
1428057 | SOK-00004 | 1 | 15500 | 1201 | 2/25/2022 | 41 | HE03K-0277 | 0 | 14 | 1 | 業務上必要なため | 15505 | 3/4/2022 15:10 |
kyouyoubo_tbl:
kyouyoubo_cd | buppin_cd | shoumou_kbn | kyouyoukan_cd | kakari_cd | siyousha_cd | ymd | kyouyoubo_seiri_kbn | tekiyou | idou_su | split_idou_su | idou_kakaku | sonota_su | split_sonota_su | bikou | ins_op_cd | ins_ymd | upd_op_cd | upd_ymd | del_flg |
1400078 | SOK-00004 | 1 | 17967 | 3051 | 15623 | 2/25/2022 | 1 | HE03K-0280 | 3 | 0 | 1 | 業務上必要なため | 15507 | 3/18/2022 12:56 | 15500 | 10/2/2023 10:34 | c1463106 | ||
1400079 | SOK-00004 | 1 | 17967 | 3051 | 15623 | 2/25/2022 | 1 | HE03K-0280 | 10 | 0 | 1 | 業務上必要なため | 15507 | 3/18/2022 12:56 | 15500 | 10/2/2023 10:34 | c1463107 |
kobetu_tbl:
kobetu_cd | p_kobetu_cd | buppin_cd | shutoku_ymd | haraidasi_ymd | buppin_kan_no | gyousha_cd | tanka | zei_gaku | hinsitu_kikaku | kanrikan_cd | kyouyoukan_cd | siyousha_cd | hontai_no | zougen_kbn | shoumou_kbn | zou_kbn | gen_kbn | zou_riyuu | gen_riyuu | kanri_sts | ins_op_cd | ins_ymd | upd_op_cd | upd_ymd | kaitei_kakaku | kosuu | del_flg |
733117 | « NULL » | SOK-00004 | 2/25/2022 00:00:00 | « NULL » | « NULL » | « NULL » | 0 | 0 | \10000x27 | 15500 | « NULL » | « NULL » | « NULL » | 0 | 1 | 1 | « NULL » | « NULL » | « NULL » | 1 | 15500 | 3/2/2022 16:02:04 | 15500 | 3/4/2022 15:09:42 | « NULL » | 5 | « NULL » |
733116 | « NULL » | SOK-00004 | 2/25/2022 00:00:00 | « NULL » | « NULL » | « NULL » | 0 | 0 | \5000x27 | 15500 | « NULL » | « NULL » | « NULL » | 0 | 1 | 1 | « NULL » | « NULL » | « NULL » | 1 | 15500 | 3/2/2022 16:01:59 | 15500 | 3/4/2022 15:09:42 | « NULL » | 14 | « NULL » |
這麽一來可以確定使用者個屁。
kyouyoubo_tbl的kyouyoubo_cd=1400078的del_flg
c1463106 |
這個對應的數據是
kanribo_cd | buppin_cd | shoumou_kbn | kanrikan_cd | kasitu_cd | ymd | kanribo_seiri_kbn | tekiyou | idou_su | split_idou_su | idou_kakaku | sonota_su | split_sonota_su | bikou | ins_op_cd | ins_ymd | upd_op_cd | upd_ymd | del_flg | seiri_no |
1463106 | SOK-00004 | 1 | 15500 | 1203 | 2/25/2022 00:00:00 | 41 | HE03K-0280 | « NULL » | « NULL » | 0 | 3 | 1 | 業務上必要なため | 15507 | 3/18/2022 12:56:45 | 15500 | 10/2/2023 10:34:21 | c1463106 | « NULL » |
可以看到tekiyou是HE03K-0280跟HE03K-0277完全沒有關係。
因此,判定link_cd=1413777和link_cd=1413778,為人爲製作數據。
至於處理,
應該刪除,因爲matome_cd=1953186和matome_cd=1953187都是重複的,既然沒有串在一起,串在一條kanribo_cd上理論上應該刪除。
但是要不要重做數據,我感到糾結。
我發現這兩條リンク切れ的是有供用數據的:
kyouyou_tbl:
doc_cd | uketuke_ymd | kanrikan_cd | kanri_ymd | kanri_doc_no | suitoukan_cd | suitou_ymd | kyouyoukan_cd | kyouyou_seikyu_ymd | kyouyou_juryo_ymd | siyousha_cd | siyousha_seikyu_ymd | siyousha_juryo_ymd | bikou | shori_sts | ins_op_cd | ins_ymd | upd_op_cd | upd_ymd |
400118 | 2/25/2022 00:00:00 | 15500 | 2/25/2022 00:00:00 | HE03K-0277 | 15502 | 2/25/2022 00:00:00 | 17980 | 2/25/2022 00:00:00 | 2/25/2022 00:00:00 | « NULL » | « NULL » | « NULL » | 業務上必要なため | 99 | 15505 | 3/4/2022 15:07:15 | 15505 | 3/4/2022 15:10:29 |
kyouyou_meisai_tbl:
doc_cd | meisai_no | buppin_cd | seikyu_su | kyouyou_su | ins_op_cd | ins_ymd | upd_op_cd | upd_ymd |
400118 | 1 | SOK-00004 | 14 | 14 | 15500 | 3/4/2022 15:09:42 | 15505 | 3/4/2022 15:10:29 |
400118 | 2 | SOK-00004 | 5 | 5 | 15500 | 3/4/2022 15:09:42 | 15505 | 3/4/2022 15:10:29 |
至少可以確認kyouyoukan_cd是17980了。
但是現在仍然需要確認kakari是誰。
因爲不知道給誰,所以打算給15505了。
所以kobetu_tbl:
kobetu_cd | p_kobetu_cd | buppin_cd | shutoku_ymd | haraidasi_ymd | buppin_kan_no | gyousha_cd | tanka | zei_gaku | hinsitu_kikaku | kanrikan_cd | kyouyoukan_cd | siyousha_cd | hontai_no | zougen_kbn | shoumou_kbn | zou_kbn | gen_kbn | zou_riyuu | gen_riyuu | kanri_sts | ins_op_cd | ins_ymd | upd_op_cd | upd_ymd | kaitei_kakaku | kosuu | del_flg |
733117 | « NULL » | SOK-00004 | 2/25/2022 00:00:00 | « NULL » | « NULL » | « NULL » | 0 | 0 | \10000x27 | 15500 | 15505 | 15505 | « NULL » | 0 | 1 | 1 | « NULL » | « NULL » | « NULL » | 22 | 15500 | 3/2/2022 16:02:04 | 15500 | 3/4/2022 15:09:42 | « NULL » | 5 | « NULL » |
733116 | « NULL » | SOK-00004 | 2/25/2022 00:00:00 | « NULL » | « NULL » | « NULL » | 0 | 0 | \5000x27 | 15500 | 15505 | 15505 | « NULL » | 0 | 1 | 1 | « NULL » | « NULL » | « NULL » | 22 | 15500 | 3/2/2022 16:01:59 | 15500 | 3/4/2022 15:09:42 | « NULL » | 14 | « NULL » |
因此,我們需要先更新kobetu_tbl:
UPDATE admin.kobetu_tbl SET kyouyoukan_cd = '15505', siyousha_cd = '15505', kanri_sts = 22 WHERE kobetu_cd = 733117;
UPDATE admin.kobetu_tbl SET kyouyoukan_cd = '15505', siyousha_cd = '15505', kanri_sts = 22 WHERE kobetu_cd = 733116;
然後我們需要根據這個,去做kyouyoubo數據:
INSERT INTO admin.kyouyoubo_tbl (kyouyoubo_cd, buppin_cd, shoumou_kbn, kyouyoukan_cd, kakari_cd, siyousha_cd, ymd, kyouyoubo_seiri_kbn, tekiyou, idou_su, idou_kakaku, split_sonota_su, bikou, ins_op_cd, ins_ymd, upd_op_cd, upd_ymd, del_flg) VALUES (2447, 'SOK-00004', '1', '15505', 2950, '15505', '2022-02-25 09:46:38', 1, 'HE03K-0277', 5, 0, 1, '業務上必要なため', '15505', '2025-08-04 09:46:38', '15505', '2025-08-04 09:46:38', NULL);
INSERT INTO admin.kyouyoubo_tbl (kyouyoubo_cd, buppin_cd, shoumou_kbn, kyouyoukan_cd, kakari_cd, siyousha_cd, ymd, kyouyoubo_seiri_kbn, tekiyou, idou_su, idou_kakaku, split_sonota_su, bikou, ins_op_cd, ins_ymd, upd_op_cd, upd_ymd, del_flg) VALUES (2449, 'SOK-00004', '1', '15505', 2950, '15505', '2022-02-25 09:46:38', 1, 'HE03K-0277', 14, 0, 1, '業務上必要なため', '15505', '2025-08-04 09:46:38', '15505', '2025-08-04 09:46:38', NULL);
這麽一來,需要把link_cd=1413777的kyouyoubo_cd_uke改成2447, 然後link_cd=1413778的kyouyoubo_cd_uke改成2449。
同時需要UPDATE一下matome_cd_uke。這裏我打算把它們倆更新成3000和3001, 所以如圖所示應該是這樣的:
UPDATE admin.link_tbl SET matome_cd_uke = 3000, kyouyoubo_cd_uke = 2447 WHERE link_cd = 1413777;
UPDATE admin.link_tbl SET matome_cd_uke = 3001, kyouyoubo_cd_uke = 2449 WHERE link_cd = 1413778;
也需要UPDATE一下kanribo_tbl中kanribo_cd=1428056的數據,因爲它sonota_su寫的是14,實際上對應的是kobetu_cd=733117的kosuu=5。
主語這裏確實是按順序更新的,從kanribo_cd上看kobetu_cd的731117就是在731116上面。
需要更新kanribo_cd=1428056的sonota_su=5:
UPDATE admin.kanribo_tbl SET sonota_su = 5 WHERE kanribo_cd = 1428056;
至此,解決リンク切れ的問題。
SQL匯總:
INSERT INTO admin.link_tbl (link_cd, kobetu_cd, matome_cd_uke, kanribo_cd_uke, kyouyoubo_cd_uke, matome_cd_harai, kanribo_cd_harai, kyouyoubo_cd_harai, ins_op_cd, ins_ymd, upd_op_cd, upd_ymd, buppin_cd) VALUES (1085, 1066037, 1084, 1601077, 1510919, 2506502, 1601078, 1510920, '10000', '2025-07-31 17:29:44', '10000', '2025-07-31 17:29:44', 'O-10857');
DELETE FROM admin.link_tbl WHERE link_cd = 1413774;
DELETE FROM admin.link_tbl WHERE link_cd = 1413775;
UPDATE admin.kobetu_tbl SET kyouyoukan_cd = '15505', siyousha_cd = '15505', kanri_sts = 22 WHERE kobetu_cd = 733117;
UPDATE admin.kobetu_tbl SET kyouyoukan_cd = '15505', siyousha_cd = '15505', kanri_sts = 22 WHERE kobetu_cd = 733116;
INSERT INTO admin.kyouyoubo_tbl (kyouyoubo_cd, buppin_cd, shoumou_kbn, kyouyoukan_cd, kakari_cd, siyousha_cd, ymd, kyouyoubo_seiri_kbn, tekiyou, idou_su, idou_kakaku, split_sonota_su, bikou, ins_op_cd, ins_ymd, upd_op_cd, upd_ymd, del_flg) VALUES (2447, 'SOK-00004', '1', '15505', 2950, '15505', '2022-02-25 09:46:38', 1, 'HE03K-0277', 5, 0, 1, '業務上必要なため', '15505', '2025-08-04 09:46:38', '15505', '2025-08-04 09:46:38', NULL);
INSERT INTO admin.kyouyoubo_tbl (kyouyoubo_cd, buppin_cd, shoumou_kbn, kyouyoukan_cd, kakari_cd, siyousha_cd, ymd, kyouyoubo_seiri_kbn, tekiyou, idou_su, idou_kakaku, split_sonota_su, bikou, ins_op_cd, ins_ymd, upd_op_cd, upd_ymd, del_flg) VALUES (2449, 'SOK-00004', '1', '15505', 2950, '15505', '2022-02-25 09:46:38', 1, 'HE03K-0277', 14, 0, 1, '業務上必要なため', '15505', '2025-08-04 09:46:38', '15505', '2025-08-04 09:46:38', NULL);
UPDATE admin.link_tbl SET matome_cd_uke = 3000, kyouyoubo_cd_uke = 2447 WHERE link_cd = 1413777;
UPDATE admin.link_tbl SET matome_cd_uke = 3001, kyouyoubo_cd_uke = 2449 WHERE link_cd = 1413778;
UPDATE admin.kanribo_tbl SET sonota_su = 5 WHERE kanribo_cd = 1428056;
經過測試,執行這些SQL後,使用者能正常變更。
This article was last edited at