Tại sao cần lưu lịch sử tác động?

14199443_762636307106158_4879170254052261786_n.jpg?oh=6e2aaaa52696f481df4938c2c57ca1e0&oe=5847F6C6

Sau đây là các bước cần thiết để lưu lịch sử tác động:

Step 1: Tạo mới loại tác động mà bạn muốn lưu thay đổi. Vd: Tác động Đơn Hàng
Step 2: Copy file admin.dic tới vị trí tiện cho bạn lưu trữ.
Step 3: Chỉnh sửa file.dic mà bạn muốn lưu lịch sử khi tác động lên nó. Ví dụ: Tạo mới (create.dic), Chỉnh sửa (edit.dic), Xóa (remove.dic) và truyền tham số cần lưu vào file admin.dic

Ví dụ minh họa: Lưu lịch sử tạo mới Chi Nhánh/Phòng Ban trên con http://scs.ftl.vn:20017/index.jsp


Step 1: Tạo mới loại tác động theo đường dẫn sau:…/common/cm_action_type/create.jsp
14079987_762637237106065_8280854898530895740_n.jpg?oh=e40c67955b2c3617039ea7de8035e53c&oe=585902A8
Step 2: Copy file admin.dic tới vị trí tiện cho bạn lưu trữ. Ở đây mình lưu cùng thư mục với Quản Lý Phòng Ban/Chi Nhánh
14203097_762637480439374_6013323234475057416_n.jpg?oh=9dea86c045c896674efe7c5e7f15da12&oe=584887A4
Step 3: Chỉnh sửa file.dic. Ở đây ta đang muốn lưu tác động khi tạo mới Phòng ban/Chi nhánh nên mình sẽ chỉnh sửa file create.dic.Ta sẽ lưu thông tin tạo mới: Mã phòng ban/chi nhánh (CODE), tên phòng ban/chi nhánh(NAME), tài khoản(ADM_USER) vào bảng CM_ACTION_LOG bằng cách truyền thông tin thay đổi vào file admin.dic

Thêm đoạn Script này vào sau khi kết thúc tiến trình SaveProcess

14202593_762638520439270_4833322755001211208_n.jpg?oh=d3850861fa16616bde17c21d41763145&oe=58531D5C
Add this code:
    Script=:
    :{
        var params = action.getParameters();
        var dic = action.getDictionary();
        var tab = "  ";
        var content = "";
        content +="<br>"+tab+"_ <span class='log_attribute'>"+action.getString(dic,"CODE")+" </span>: <span class='log_value'>'"+params.get("CODE")+"'</span>";
        content +="<br>"+tab+"_ <span class='log_attribute'>"+action.getString(dic,"NAME")+" </span>: <span class='log_value'>'"+params.get("NAME")+"'</span>";
        content +="<br>"+tab+"_ <span class='log_attribute'>"+action.getString(dic,"ADM_USER")+" </span>: <span class='log_value'>'"+params.get("ADM_USER_NAME")+"'</span>";
        params.put("TYPE","QLPBCN");
        params.put("TARGET_ID",params.get("pk"));
        params.put("CREATED","CREATED");
        params.put("CREATOR","CREATOR");
        params.put("MODIFIED","MODIFIED");
        params.put("MODIFIER","MODIFIER");
        params.put("CONTENT","Tạo mới phòng ban/chi nhánh "+params.get("NAME") + content);
    :}
    Insert=>../admin.dic!SaveActionProcess.Insert

Đây là kết quả được lưu lại tại Danh Mục Tác Động khi tạo mới phòng ban/chi nhánh:

14184536_762638920439230_4321323724811698427_n.jpg?oh=cd43fb44955d8850a564b65da6a89439&oe=584189F6

Source code:

admin.dic

SaveActionProcess
    Insert
        TableName==CM_ACTION_LOG
        PrimaryKey
            ACTION_LOG_ID==pk
                Automatic==SEQ_CM_ACTION_LOG.nextval
                Retrieve
        Column
            ACTION_TYPE_ID==TYPE
                Format==(SELECT ACTION_TYPE_ID FROM CM_ACTION_TYPE WHERE UPPER(CODE) = UPPER(?))
            TARGET_ID==TARGET_ID
            CONTENT==CONTENT
            CREATED==CREATED
                Automatic==current_timestamp
            CREATOR==CREATOR
                Automatic==!"'" + action.getParameters().get("session.userName") + "'"
            MODIFIED==MODIFIED
                Automatic==current_timestamp
            MODIFIER==MODIFIER
                Automatic==!"'" + action.getParameters().get("session.userName") + "'"

create.dic

Logic
# Uncomment to enable options below
#    ImmediateProcess
#    NoLog
#    LogParameter
#    IgnoreAuthenticate
#    IgnorePrivilegeCheck
#    ExcludeLayout
#    ContinuousProcessing
#    UseApprovementProcess
    FirstFocus==CODE
Field
    Text==CODE
        ApplyCodeFormat
        Trim
        MaxLength==50
        LiveValidation
            Presence
    Text==NAME
        Trim
        MaxLength==1024
    ExternalList==ADM_USER
        Multiple
        ListAllItem
        ModuleUrl==/com/ftl/ppm/adm_user/list.jsp
        LiveValidation
            #Presence
    Submit==SAVE
    Submit==APPLY
    Button==CLOSE
Layout==Table
    Label==CODE
    Control==CODE
        LayoutExtra==width="240px"
        BREAK
    Label==NAME
    Control==NAME
        LayoutExtra==width="240px"
        BREAK
    Label==ADM_USER
    Control==ADM_USER
        BREAK
    #Label==FK_CRU_CR
    #Control==FK_CRU_CR
    #    w==3
    #    BREAK
    #Label==FK_DO_CR
    #Control==FK_DO_CR
    #    w==3
    #    BREAK
    Panel
        w==4
        Extra==align="center"
        Layout==Table
            Control==APPLY
            Control==SAVE
            Control==CLOSE
FetchProcess
    Fetch
        TableName==CENTER_REGION
        PrimaryKey
            CENTER_REGION_ID==pk
        Column
            CODE==CODE
            NAME==NAME
        DetailData
            CENTER_REGION_USER==ADM_USER
                ForeignKey
                    CENTER_REGION_ID==pk
                Column
                    USER_ID==USER_ID
            CENTER_REGION_USER==ADM_USER_NAME
                ForeignKey
                    CENTER_REGION_ID==pk
                Column
                    USER_ID==(SELECT USER_NAME FROM ADM_USER WHERE USER_ID = CENTER_REGION_USER.USER_ID)    
SaveProcess
    Insert
        TableName==CENTER_REGION
        PrimaryKey
            CENTER_REGION_ID==pk
                Automatic==SEQ_CENTER_REGION.nextval
                Retrieve
        Column
            CODE==CODE
            NAME==NAME
            CREATED==CREATED
                Automatic==current_timestamp
            CREATOR==CREATOR
                Automatic==!"'" + action.getParameters().get("session.userName") + "'"
            MODIFIED==MODIFIED
                Automatic==current_timestamp
            MODIFIER==MODIFIER
                Automatic==!"'" + action.getParameters().get("session.userName") + "'"
        DetailData
            CENTER_REGION_USER==ADM_USER
                ForeignKey
                    CENTER_REGION_ID==pk
                Column
                    USER_ID==0
    Validation
        Parameter
            CODE
                Mandatory
        Unique
            UK_CENTER_REGION
                CODE==CODE
                    Format==UPPER(CODE)=UPPER(?)
    Script=:
    :{
        var params = action.getParameters();
        var dic = action.getDictionary();
        var tab = "&emsp;&emsp;";
        var content = "";
        content +="<br>"+tab+"_ <span class='log_attribute'>"+action.getString(dic,"CODE")+" </span>: <span class='log_value'>'"+params.get("CODE")+"'</span>";
        content +="<br>"+tab+"_ <span class='log_attribute'>"+action.getString(dic,"NAME")+" </span>: <span class='log_value'>'"+params.get("NAME")+"'</span>";
        content +="<br>"+tab+"_ <span class='log_attribute'>"+action.getString(dic,"ADM_USER")+" </span>: <span class='log_value'>'"+params.get("ADM_USER_NAME")+"'</span>";
        params.put("TYPE","QLPBCN");
        params.put("TARGET_ID",params.get("pk"));
        params.put("CREATED","CREATED");
        params.put("CREATOR","CREATOR");
        params.put("MODIFIED","MODIFIED");
        params.put("MODIFIER","MODIFIER");
        params.put("CONTENT","Tạo mới phòng ban/chi nhánh "+params.get("NAME") + content);
    :}
    Insert=>../admin.dic!SaveActionProcess.Insert