【No99:SOK-00004 管理簿と供用簿のリンクが取れていないため修正機能を利用できないエラー(HE03K-0277)】エラー対応メモ

| Work Notes | 41 Reads

這篇文章是針對依賴【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