AutoScript
start_agent_info
AgentName = "AU_TOPO_DASH_EXPERT"
AgentDescr = "Topology Dashboard Expert"
AgentLanguage = ""
end_agent_info
start_action
function = __params[1]
scode = __params[2]
scode = strcat(scode,"%")
{........................................SUMMARY..................................}
if (function = "SUMMARY") then
window_caption = "Topology Dashboard"
id = 0
{--------------------------------- Topo ----------------------------}
id = id + 1
lab_caption[id] = "Topo"
start_sql "*" "KOSMOS"
SELECT AU_TOPO.TITLE
FROM AU_TOPO
WHERE (AU_TOPO.TCODE = :C)
end_sql
q = QueryByName()
call TSetParam(q,"C",__params[2])
call TExecute(q)
val_caption[id] = TGetFld(q,"TITLE")
val_unit[id] = ""
call FreeEmbSQL(q)
{--------------------------------- Count of Equipment Pieces ----------------------------}
id = id + 1
lab_caption[id] = "Count of Equipment Pieces"
start_sql "*" "KOSMOS"
SELECT AU_STEP.UNAME
FROM AU_STEP
WHERE (((AU_STEP.FINISHED)=1) AND ((AU_STEP.UNAME) Is Not Null Or (AU_STEP.UNAME)=''))
AND ((AU_STEP.SCODE) LIKE :C)
GROUP BY AU_STEP.UNAME
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = 50 {TRecordCount(q) }
val_unit[id] = "Piece"
call FreeEmbSQL(q)
expand_collapse[id] = True
expanded[id] = False
expand_height[id] = 600
agent_function[id] = "GET_ASSOSIATES_PARTICIPATION"
expand_to_window[id]= True
{--------------------------------- Count of Working Equipments ----------------------------}
id = id + 1
lab_caption[id] = "Count of Working Equipments"
start_sql "*" "KOSMOS"
SELECT AU_STEP.RNAME
FROM AU_STEP
WHERE (((AU_STEP.FINISHED)=1) AND ((AU_STEP.RNAME) Is Not Null Or (AU_STEP.RNAME)=''))
AND ((AU_STEP.SCODE) LIKE :C)
GROUP BY AU_STEP.RNAME
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = TRecordCount(q)
val_caption[id] = 40
val_unit[id] = "Piece"
call FreeEmbSQL(q)
expand_collapse[id] = True
expanded[id] = False
expand_height[id] = 600
agent_function[id] = "GET_ROLES_PARTICIPATION"
expand_to_window[id]= True
{--------------------------------- Count of Out of Order Equipments ----------------------------}
id = id + 1
lab_caption[id] = "Count of Out of Order Equipments"
start_sql "*" "KOSMOS"
SELECT AU_STEP.RNAME
FROM AU_STEP
WHERE (((AU_STEP.FINISHED)=1) AND ((AU_STEP.RNAME) Is Not Null Or (AU_STEP.RNAME)=''))
AND ((AU_STEP.SCODE) LIKE :C)
GROUP BY AU_STEP.RNAME
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
cnt = TRecordCount(q)
call FreeEmbSQL(q)
start_sql "*" "KOSMOS"
SELECT AU_USER.NUNAME
FROM AU_USER
WHERE (((AU_USER.NUNAME) Is Not Null And (AU_USER.NUNAME)<>''))
GROUP BY AU_USER.NUNAME
end_sql
q = QueryByName()
call TExecute(q)
val_caption[id] = TRecordCount(q)
val_caption[id] = cnt / val_caption[id] * 100
val_caption[id] = format("%8.0f",val_caption[id])
val_caption[id] = 10
val_unit[id] = "Piece"
call FreeEmbSQL(q)
{--------------------------------- Percent of Out of Order Equipments -----------------------}
id = id + 1
lab_caption[id] = "Percent of Out of Order Equipments"
start_sql "*" "KOSMOS"
SELECT COUNT(AU_STEP.AU_STEP) AS CNT
FROM AU_STEP
WHERE
(AU_STEP.ISTEP = 0) AND (AU_STEP.AU_PROCESS > 0)
AND ((AU_STEP.SCODE) LIKE :C)
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = TGetFld(q,"CNT")
val_caption[id] = 20
val_unit[id] = "%"
call FreeEmbSQL(q)
{--------------------------------- Open Maintenance Activities ----------------------------}
id = id + 1
lab_caption[id] = "Open Maintenance Activities"
start_sql "*" "KOSMOS"
SELECT COUNT(AU_STEP.AU_STEP) AS CNT
FROM AU_STEP
WHERE
(AU_STEP.ISTEP = 0) AND (AU_STEP.AU_PROCESS > 0) AND (AU_STEP.FINISHED = 1)
AND ((AU_STEP.SCODE) LIKE :C)
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = TGetFld(q,"CNT")
val_caption[id] = 20
val_unit[id] = "Activities"
call FreeEmbSQL(q)
{--------------------------------- Closed Maintenance Activities ----------------------------}
id = id + 1
lab_caption[id] = "Closed Maintenance Activities"
start_sql "*" "KOSMOS"
SELECT COUNT(AU_STEP.AU_STEP) AS CNT
FROM AU_STEP
WHERE
(AU_STEP.ISTEP = 0) AND (AU_STEP.AU_PROCESS > 0) AND (AU_STEP.FINISHED = 0)
AND ((AU_STEP.SCODE) LIKE :C)
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = TGetFld(q,"CNT")
val_caption[id] = 20
val_unit[id] = "Activities"
call FreeEmbSQL(q)
{-------------------------- Closed Work Orders Activities -------------------------}
id = id + 1
lab_caption[id] = "Closed Work Orders Activities"
start_sql "*" "KOSMOS"
SELECT Avg(AU_STEP.FTIME) AS AVER
FROM AU_STEP
WHERE (AU_STEP.FINISHED = 1) AND (FTIME > 0)
AND ((AU_STEP.SCODE) LIKE :C)
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = TGetFld(q,"AVER")
val_caption[id] = val_caption[id] * 24
val_caption[id] = format("%8.2f",val_caption[id])
val_caption[id] = 10
val_unit[id] = "Activities"
call FreeEmbSQL(q)
expand_collapse[id] = True
expanded[id] = False
expand_height[id] = 600
agent_function[id] = "GET_ASSIGNED_ACTIVITIES"
expand_to_window[id]= False
{--------------------------------- % Preventive / Reactive Maintenance ----------------------------}
id = id + 1
lab_caption[id] = "% Preventive / Reactive Maintenance"
start_sql "*" "KOSMOS"
SELECT Sum(AU_STEP_SCHED.RTIME) AS HRS
FROM AU_STEP INNER JOIN AU_STEP_SCHED ON AU_STEP.AU_STEP = AU_STEP_SCHED.AU_STEP
HAVING (AU_STEP.SCODE Like :C)
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = TGetFld(q,"HRS")
val_caption[id] = val_caption[id]*24
val_caption[id] = format("%8.2f",val_caption[id])
val_caption[id] = 95
val_unit[id] = "%"
call FreeEmbSQL(q)
{--------------------------------- % of Work Orders Completed on time ----------------------------}
id = id + 1
lab_caption[id] = "% of Work Orders Completed on time"
start_sql "*" "KOSMOS"
SELECT Sum(AU_STEP_SCHED.RTIME) AS HRS, Sum(AU_STEP_SCHED.QUANT1) AS Q1
FROM AU_STEP INNER JOIN AU_STEP_SCHED ON AU_STEP.AU_STEP = AU_STEP_SCHED.AU_STEP
HAVING (AU_STEP.SCODE Like :C)
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = TGetFld(q,"HRS")
val_caption[id] = val_caption[id]*24
q1 = TGetFld(q,"Q1")
val_caption[id] = q1/val_caption[id]*24
val_caption[id] = format("%8.1f",val_caption[id])
val_caption[id] = 70
val_unit[id] = "%"
call FreeEmbSQL(q)
{--------------------------------- Cost of Spare Parts Consumend ----------------------------}
id = id + 1
lab_caption[id] = "Cost of Spare Parts Consumend"
start_sql "*" "KOSMOS"
SELECT Sum(AU_STEP_SCHED.RTIME) AS HRS, Sum(AU_STEP_SCHED.QUANT1) AS Q1
FROM AU_STEP INNER JOIN AU_STEP_SCHED ON AU_STEP.AU_STEP = AU_STEP_SCHED.AU_STEP
HAVING (AU_STEP.SCODE Like :C)
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = TGetFld(q,"HRS")
val_caption[id] = val_caption[id]*24
q1 = TGetFld(q,"Q1")
val_caption[id] = q1/val_caption[id]*24
val_caption[id] = format("%8.1f",val_caption[id])
val_caption[id] = 20000
val_unit[id] = "Euro"
call FreeEmbSQL(q)
{--------------------------------- Mean Time To Repair (MTTR) ----------------------------}
id = id + 1
lab_caption[id] = "Mean Time To Repair (MTTR)"
start_sql "*" "KOSMOS"
SELECT Sum(AU_STEP_SCHED.RTIME) AS HRS, Sum(AU_STEP_SCHED.QUANT1) AS Q1
FROM AU_STEP INNER JOIN AU_STEP_SCHED ON AU_STEP.AU_STEP = AU_STEP_SCHED.AU_STEP
HAVING (AU_STEP.SCODE Like :C)
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
val_caption[id] = TGetFld(q,"HRS")
val_caption[id] = val_caption[id]*24
q1 = TGetFld(q,"Q1")
val_caption[id] = q1/val_caption[id]*24
val_caption[id] = format("%8.1f",val_caption[id])
val_caption[id] = 28
val_unit[id] = "Hours"
call FreeEmbSQL(q)
lab_count = id
return
endif
{.......................................GET_ASSOSIATES_PARTICIPATION..........................}
if (function = "GET_ASSOSIATES_PARTICIPATION") then {keep}
hbar_series = True
title = "Count of Closed Activities per Assosiate"
draw_type = "CHART"
y_count = 1
show_legend = False
start_sql "*" "KOSMOS"
SELECT AU_STEP.UNAME AS UN, Count(AU_STEP.UNAME) AS CNT
FROM AU_STEP
WHERE (((AU_STEP.FINISHED)=1) AND ((AU_STEP.UNAME) Is Not Null Or (AU_STEP.UNAME)=''))
AND ((AU_STEP.SCODE) LIKE :C)
GROUP BY AU_STEP.UNAME
ORDER BY AU_STEP.UNAME
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
msg = error_message(q)
count = TRecordCount(q)
call TFirst(q)
for i = 1 to count
x[i] = TGetFld(q,"UN")
y1[i] = TGetFld(q,"CNT")
call TNext(q)
next
call FreeEmbSQL(q)
return
endif
{.......................................GET_ROLES_PARTICIPATION..........................}
if (function = "GET_ROLES_PARTICIPATION") then {keep}
hbar_series = True
title = "Count of Closed Activities per Role"
draw_type = "CHART"
y_count = 1
show_legend = False
start_sql "*" "KOSMOS"
SELECT AU_STEP.RNAME AS RN, Count(AU_STEP.UNAME) AS CNT
FROM AU_STEP
WHERE (((AU_STEP.FINISHED)=1) AND ((AU_STEP.RNAME) Is Not Null Or (AU_STEP.RNAME)=''))
AND ((AU_STEP.SCODE) LIKE :C)
GROUP BY AU_STEP.RNAME
ORDER BY AU_STEP.RNAME
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
msg = error_message(q)
count = TRecordCount(q)
if (count = 0) then
call FreeEmbSQL(q)
return
endif
call TFirst(q)
for i = 1 to count
x[i] = TGetFld(q,"RN")
y1[i] = TGetFld(q,"CNT")
call TNext(q)
next
call FreeEmbSQL(q)
return
endif
{.......................................GET_ASSIGNED_ACTIVITIES..........................}
if (function = "GET_ASSIGNED_ACTIVITIES") then
line_series = True
title = "Assigned Activities / Closed Activities and Activities Acumulated"
draw_type = "CHART"
y_count = 3
line1 = "Assinged"
line2 = "Closed"
line3 = "Acumulated"
show_legend = True
left_axis_title = "Count of Activities"
bottom_axis_title = "Days since the begining"
start_sql "*" "KOSMOS"
SELECT AU_STEP.ASSIGNED_AT_DATE, Count(AU_STEP.AU_STEP) AS CNT
FROM AU_STEP
WHERE ((AU_STEP.SCODE Like :C) AND (AU_STEP.AU_PROCESS > 0))
GROUP BY AU_STEP.ASSIGNED_AT_DATE
ORDER BY AU_STEP.ASSIGNED_AT_DATE
end_sql
q = QueryByName()
call TSetParam(q,"C",scode)
call TExecute(q)
count = TRecordCount(q)
if (count = 0) then
call FreeEmbSQL(q)
return
endif
call TFirst(q)
date1 = TGetFld(q,"ASSIGNED_AT_DATE")
date2 = crDate
date1_num = DateToNum(date1)
date2_num = DateToNum(date2)
array_dim = date2_num - date1_num
if (array_dim > 0) then
for i = 1 to array_dim+1
x[i] = i
y1[i] = 0
y2[i] = 0
y3[i] = 0
next
for i = 1 to count
d1 = TGetFld(q,"ASSIGNED_AT_DATE")
d = DateToNum(d1)
d = d - date1_num
y1[d+1] = TGetFld(q,"CNT")
call trace("ass d1=",d1,", cnt=",y1[d+1])
call TNext(q)
next
call FreeEmbSQL(q)
start_sql "*" "KOSMOS"
SELECT AU_STEP.FINISHED_AT_DATE, Count(AU_STEP.AU_STEP) AS CNT
FROM AU_STEP
WHERE ((AU_STEP.SCODE Like :C) AND (AU_STEP.AU_PROCESS > 0) AND (AU_STEP.FINISHED=1))
GROUP BY AU_STEP.FINISHED_AT_DATE
ORDER BY AU_STEP.FINISHED_AT_DATE
end_sql
q1 = QueryByName()
call TSetParam(q1,"C",scode)
call TExecute(q1)
count = TRecordCount(q1)
call TFirst(q1)
for i = 1 to count
d1 = TGetFld(q1,"FINISHED_AT_DATE")
d = DateToNum(d1)
d = d - date1_num
y2[d+1] = TGetFld(q1,"CNT")
call trace("fin d1=",d1,", cnt=",y1[d+1])
call TNext(q1)
next
call FreeEmbSQL(q1)
for i = 1 to array_dim+1
if (i = 1) then
y3[i] = y1[i] - y2[i]
elseif (i > 1) then
y3[i] = y3[i-1] + y1[i] - y2[i]
endif
call trace("d=",i,", y1=",y1[i],", y2=",y2[i],", y3=",y3[i])
next
count = array_dim+1
endif
return
endif
end_action