使用SQL Profiler來側錄鼎新ERP 底層SQL_通靈的過程

 
鼎新ERP模組的資料表欄位
充斥著諸多要通靈才會知道的欄位定義

許多公司因為想節省每年要繳的授權費(每開通5人40萬,10人就80萬)
都會要懂ERP模組的工程師來進行二次開發,想當然是個艱苦的通靈過程 = =|||

所幸偷偷查一些網路資源多少還是能查到有人佛心提供的ERP資料庫schema
跟一些稍微還能作為參考的pdf手冊

這裡稍微分享一下通靈的過程


通常ERP系統模組充斥很多的欄位

單頭通常雙主Key
單別 與 單號

單身則通常是3個PK
單別 , 單號 , 序號


以報價單單頭  COPTA
跟 報價單單身 COPTB
為例


很多張資料表都類似此種一對多關聯設計

而有些介面上挑選欄位
底層SQL撈取方式
會是類似有這類關鍵字


在SQL Profiler可鎖定 RPC:Completed的 Event Class

起初的TextData會有
這段側錄到的SQL


exec sp_executesql N'SELECT * FROM ADMMI WHERE MI001=@P1 AND MI002=@P2
',N'@P1 nvarchar(5),@P2 nvarchar(2)',N'CMSMQ',N'01'




這裡  MI003產生的SQL 看起來是大概的邏輯
但沒辦法直接做執行
--MAINSELECT  Select DISTINCT MQ001,MQ002  from $$CMSMQ CMSMQ  Left join $$CMSMU  as CMSMU on MQ001=MU001  Where MQ003=:MQ003   and  (( MU003=:USRID and MQ029='Y' )  or MQ029='N' )  --ORDER  MQ001  --RETURN  MQ001,MQ002  --DISPLAY  單別;單據名稱  --SEARCH  MQ001  --DISPLAY_ENG  Doc. Type;Doc. Name  --DISPLAY_VIET  Loại CT;Tên CT  --DISPLAY_CHS  单别;单据名称




這裡可稍微擷取到比較關鍵的table name來做識別
CMSMQ (各系統單據設定檔)


再往下追可以捕捉到可撈取到邏輯SQL





在此MQ003 單據性質:11會關聯到庫存異動相關的單別














留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header