3 Common SQL Script

1. Enable sql log

Configuration file:ecology\WEB-INF\prop\weaver_isSqlLog.properties

2. Get file path on server with doc id

select  filerealpath from  imagefile t1,docimagefile t2 
where t1.imagefileid=t2imagefileid  and t2.docid= Docment ID

3. Get month in the date

doFieldSQL("select RIGHT(SUBSTRING('Field id',0,8),2)  ")

4. Query workflow where operator is matrix

select a.workflowname Workflow,a.version Version,c.nodename Node,d.groupname Group,g.name Matrix
from workflow_base a
inner join workflow_flownode b on a.id=b.workflowid  and b.NODETYPE<>0 --Not creator
inner join workflow_nodebase c on b.nodeid = c.id --and  c.IsFreeNode is null
inner join workflow_nodegroup d on c.id=d.nodeid
inner join workflow_groupdetail e on d.id=e.groupid
inner join workflow_groupdetail_matrix f on f.groupdetailid = e.id
inner join matrixinfo g on g.id = f.matrix
where e.type=99  --Matrix type
and a.isvalid = '1' --Valid workflow
and f.matrix in (6)  --id
order by a.workflowname,c.nodename,d.groupname

5. Get last month

select  MONTH(DATEADD(MONTH,-1,GETDATE()))

6. Query all workflow and corresponding nodes that have a detailed horizontal scroll bar enabled

select workflowid,workflowname,b.nodeid,nodename from workflow_base a,
workflow_flownode b,workflow_nodebase c,workflow_nodeformgroup d 
where a.id=b.workflowid and b.nodeid=c.id and d.nodeid=b.nodeid and d.allowscroll='1'

7. Query which workflow with detail table (only for new forms)

select * from workflow_base a where isbill=1 and not exists 
(select 1 from workflow_billfield where billid=a.formid and viewtype=1)

8. Change website icon

Change favicon.ico in e-cology root directory

9. Get all workflow configure with Overtime

select * from workflow_base where id 
in(select distinct workflowid from workflow_nodeOverTime)

10. Query all completed workflow

select workflowtype,
       workflowid,
       viewtype,
       count(distinct requestid) workflowcount
  from workflow_currentoperator
 where isremark in ('2', '4')
   and iscomplete = 1
   and islasttimes = 1
   and userid = 1
   and usertype = 0
   and exists
 (select 1
          from workflow_requestbase c
         where (c.deleted <> 1 or c.deleted is null or c.deleted = '')
           and c.workflowid = workflow_currentoperator.workflowid
           and c.currentnodetype = '3'
           and c.requestid = workflow_currentoperator.requestid
           and (isnull(c.currentstatus, -1) = -1 or
               (isnull(c.currentstatus, -1) = 0 and c.creater = 1)))
 group by workflowtype, workflowid, viewtype
 order by workflowtype, workflowid

11. Show node submit time on the form

select top 1 operatedate+' '+operatetime from workflow_requestLog 
where requestid = $requestid$ and nodeid = 377 order by operatedate desc,
operatetime desc -- 377 is node id

How to get node id base on workflow id

select * from workflow_nodebase where id in (
select nodeid from workflow_flownode where workflowid = 73)  

12. Query all delete workflow but message not deleted

select * from ECOLOGY_MESSAGE_INFO_READ 
where targetid in (select requestid  from workflow_requestbase_dellog)

13. Export organization structure

select a.id as Department_ID,
       a.departmentcode as Department_code,
       a.departmentmark as Department_name,
       (select b.departmentmark from hrmdepartment b where b.id = a.supdepid) as Supior_Department,
       (select c.subcompanyname from hrmsubcompany c where c.id = a.subcompanyid1) as Divison,
  from hrmdepartment a
 where 1 = 1
 order by id asc;

14. Query the time consumption of all nodes

select b.lastname Name,
c.workflowname Workflow_type,
e.requestname Request_Title,
d.nodename Node,
a.receivedate Receive_Date,
a.receivetime Receive_Time,
a.operatedate Operate_Date,
a.operatetime Operate_Time,
DATEDIFF(mi,receivedate + ' ' + receivetime,operatedate + ' ' + operatetime) as 'Time/Mins'
from workflow_currentoperator a
left JOIN hrmresource b
on a.userid = b.id
left join workflow_base c
on a.workflowid = c.id
left join workflow_nodebase d
on a.nodeid = d.id
left join workflow_requestbase e
on a.requestid = e.requestid
where a.operatedate is not null and a.operatetime is not null and a.isremark in (2,4)
and a.receivedate >= '2019-01-01' and a.receivedate <= '2019-08-29' --Time Range Control
and a.userid = 3 --User Control
order by a.id asc

15. Add placeholder in textbox

<script type="text/javascript">
  jQuery(document).ready(function(){
    $("#field7126").attr('placeholder',"Please upload attachment in comments");
    $("#field7041").attr('placeholder',"Please upload attachment in comments");
    $("#field7079").attr('placeholder',"Please upload attachment in comments");
    $("#field7112").attr('placeholder',"Std: 0.1% per day");
    $("#field7113").attr('placeholder',"Std: 60 days");
    $("#field7070").attr('placeholder',"Std: on 5th/month");
    $("#field7114").attr('placeholder',"Std: 3-6 months");
    $("#field7115").attr('placeholder',"Std: 3 month");
    $("#field7076").attr('placeholder',"Std: Deposit");
  });
</script>

16. Check date and time

<script>
    jQuery(document).ready(function() {
        WfForm.bindFieldChangeEvent("field5866,field5870,field8239,field5871",
        function(obj, id, value) {
            console.log("WfForm.bindFieldChangeEvent--", obj, id, value);
            var startdate = WfForm.getFieldValue("field5866"); //Start Date Field
            var enddate = WfForm.getFieldValue("field8239"); //End Date Field
            var starttime = WfForm.getFieldValue("field5870"); // Start Time
            var endtime = WfForm.getFieldValue("field5871"); // End Time
            if (startdate != "" && enddate != "" && startdate > enddate) {
                WfForm.showMessage("Start Date later than end date!!!", 2, 5);
                WfForm.changeFieldValue("field5866", {
                    value: ""
                });
                WfForm.changeFieldValue("field8239", {
                    value: ""
                });
            } else if (startdate != "" && enddate != "" && startdate == enddate) {
                if (starttime != "" && endtime != "" && starttime >= endtime) {
                    WfForm.showMessage("Start date and end date is the same date, but start time later than end time!!!", 2, 5);
                    WfForm.changeFieldValue("field5870", {
                        value: ""
                    });
                    WfForm.changeFieldValue("field5871", {
                        value: ""
                    });
                } else {}
            } else {}
        });
    });
</script>

17. Query all users who did not login to system

select id as User_id, lastname as Name, loginid as Account
  from hrmresource
 where status in(0,1,2,3) and not exists--Who didnot have login log in last 3 month
 (select 1
          from hrmsysmaintenancelog
         where hrmresource.id = hrmsysmaintenancelog.relatedid
           and hrmsysmaintenancelog.operatedate >= ''2016-11-06''--Login start time
           and hrmsysmaintenancelog.operatedate < ''2017-02-07'')--Login ENd time

18. Workflow process log

select t1.clientip, t1.logtype,t1.operatedate,t1.operatetime,t1.workflowid,t1.operator,
t1.requestid, t2.creater, t2.requestname
from  workflow_requestLog t1,workflow_requestbase t2 
where t1.requestid=t2.requestid
order by t1.operatedate desc,t1.operatetime desc

19. Get exit condition

select a.workflowid,c.workflowname, a.nodeid,d.nodename,
a.linkname,b.rulename,b.condit  
from workflow_nodelink a,rule_base b ,workflow_base c,workflow_nodebase d
where  b.linkid=a.id and a.workflowid=c.id and a.nodeid =d.id 

20. Check any statement make CPU usage too high

20.1 Check field linkage = assign field

select *
  from workflow_base
 where id in
       (select distinct workflowid
          from (select main.id, entry.triggerfieldname, entry.workflowid
                  from workflow_datainput_entry entry
                  left join workflow_datainput_main main
                    on main.entryid = entry.id) t1,
               (select * from workflow_datainput_field where type = 2) t2
         where t2.datainputid = t1.id
           and t2.pagefieldname = t1.triggerfieldname)

20.2 check field attribute

select * from workflow_nodefieldattr where 
attrcontent like '%'+cast(fieldid as varchar)+'%'

Last updated