問題描述:
以下恕無法提供畫面,簡單來說
截至至上個月ABC所建立過的PO中,有個Buyer欄位名字都是ABC
這個月ABC突然反應,怎麼曾開過的PO Buyer都變成XYZ了???
天音: 我怎麼知道????
調查:
Buyer 名單是ABC在維護的,
1. 張曉明
2. 金大維
3. 李市誰
4. ABC
該單位最近報到了一位XYZ,因此新增進Buyer list table
1. 張曉明
2. 金大維
3. 李市誰
4. XYZ
5. ABC
看到這邊已經隱約發現有問題的部分
上面看到的只是順序變了,但是從table的視角來看,丸子...
請教SAP顧問協助後,確認就是PO內的Buyer欄的值是引用的,
來源是取自是該Buyer list table的index,不是user在介面上所看到帶出來的user list。
解析:
Buyer list table
1. idx = 0, value = 張曉明
2. idx = 1, value = 金大維
3. idx = 2, value = 李市誰
4. idx = 3, value = ABC
過去PO內的Buyer value = (idx=3) = ABC
而更新後的Buyer list table
1. idx = 0, value = 張曉明
2. idx = 1, value = 金大維
3. idx = 2, value = 李市誰
4. idx = 3, value = XYZ
5. idx = 4, value = ABC
過去PO內的Buyer value反而 = (idx=3) = XYZ
安捏看屋謀? 這就是為什麼一夕之間,ABC會變成XYZ的原因了
PO內Buyer value其實是"指向"idx序號對應到的value,所以改掉idx=3的value,會連帶影響過去的PO,導致原是ABC的Buyer都會變XYZ。
解決方式:
把原本的value復原;XYZ 改成 ABC,然後把XYZ 依序放在最後面idx=4。
並清查所有用XYZ 開過的新PO,確認是否新舊PO都恢復預期值。
未來預防措施:
離職成員名單不刪除,僅停用;
新成員直接appened到後面。
Murmur:
但這邊要小抱怨一下,為啥要讓user可以在前端操作變更名字,進而受到table的設計影響,根本地雷= =...
直接鎖死順序或是不能改
甚或加上pop up顯示"此變更會影響xxx欄位"都行...
金架~
沒有留言:
張貼留言
問題沒有大小或好壞