Seinään asennettu Helpdeskin tila -näyttö - Miten

Seinään asennettu Helpdeskin tila -näyttö

Halusin web-sivun, joka näytti perustiedot yhdellä silmäyksellä yleiskatsaukseni maustetehtävistäni

niin paljon käyttäjille, jotka tulevat asiakaspalveluun, kuin IT: n tietämään, missä olemme töissä

Suunnitelmassa on saada itsestään virkistävä html-sivu, jota ajetaan vanhalla vara-ohutasiakkaalla ja näytetään seinän laskurin 19 "näytöllä

8 vaihetta yhteensä

Vaihe 1: tietokannan käyttö

1. tarvitsin pääsyn spiceworks-tietokantaan
löysin, että sqlite on ODBC-ohjain (DB: n takana piikit

tämä voidaan ladata osoitteesta
http://www.ch-werner.de/sqliteodbc/

asetin tämän DSN: ksi samassa palvelimessa, joka käyttää spiceworksia

Vaihe 2: DB: n lukeminen

Nyt minulla on oma DSN, jonka voin kirjoittaa VBScriptin vetääksesi tietoja DB: stä ja kirjoittaa HTML-tiedoston

Tiedän, että VBScript ei ole trendikäs ja asp.net toimisi
mutta tiedän VBscript niin sen mitä käytän

alla on VBScript-tiedosto

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adUseClient = 3

Aseta objFS = CreateObject (Scripting.FileSystemObject)
Aseta objNewFile = objFS.CreateTextFile ("status.html")

Aseta objConnection = CreateObject ("ADODB.Connection")
Aseta objRecordset = CreateObject ("ADODB.Recordset")

puhelut = 0
opencalls = 0
suljetut pallot = 0
unassignedcalls = 0
pb = 0
pg = 0
dp = 0
kw = 0

objConnection.Open "DSN = spice2;"

objRecordset.CursorLocation = adUseClient
objRecordset.Open "SELECT status, asign_to, closed_at FROM liput", objConnection, _
adOpenStatic, adLockOptimistinen

objRecordSet.MoveFirst

Tee ennenkuin objRecordset.EOF

'Wscript.Echo objRecordset.Fields.Item ("id")

Jos objRecordset.Fields.Item ("status") = "open" Sitten
opencalls = opencalls + 1
Loppu Jos

Jos ei ole nolla (objRecordset.Fields.Item ("closed_at")) Sitten
closedDate = Vasen (objRecordset.Fields.Item ("closed_at"), 10)
Jos objRecordset.Fields.Item ("status") = "closed" Sitten
Jos DateDiff ("d", suljettu päivämäärä, nyt) <30 Sitten
suljetut pallot = suljetut pallot + 1
Loppu Jos
Loppu Jos
Loppu Jos

Jos IsNull (objRecordset.Fields.Item ("given_to")) Sitten
unassignedcalls = unassignedcalls + 1
Loppu Jos

Jos objRecordset.Fields.Item ("asign_to") = "1"
Jos objRecordset.Fields.Item ("status") = "open" Sitten
pb = pb + 1
Loppu Jos
Loppu Jos

Jos objRecordset.Fields.Item ("igned_to ") =" 2 "Sitten
Jos objRecordset.Fields.Item ("status") = "open" Sitten
dp = dp + 1
Loppu Jos
Loppu Jos

Jos objRecordset.Fields.Item ("igned_to ") =" 3 "Sitten
Jos objRecordset.Fields.Item ("status") = "open" Sitten
pg = pg + 1
Loppu Jos
Loppu Jos

Jos objRecordset.Fields.Item ("igned_to ") =" 4 "Sitten
Jos objRecordset.Fields.Item ("status") = "open" Sitten
kw = kw + 1
Loppu Jos
Loppu Jos

objRecordSet.MoveNext

silmukka

puhelut = objRecordset.RecordCount

objRecordSet.Close
objConnection.Close

objNewFile.WriteLine "// W3C // DTD HTML 4.01 // FI>"
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine "Vernalis ITI Helpdesk Call Status System"
objNewFile.WriteLine ""
objNewFile.WriteLine ""

objNewFile.WriteLine "Soita tila @" ja nyt () & "

'

objNewFile.WriteLine "

'

Jos unassignedcalls> 0 Sitten

objNewFile.WriteLine ""
objNewFile.WriteLine "UN:" & unassignedcalls & "
'
objNewFile.WriteLine ""

muu

objNewFile.WriteLine "
'

Loppu Jos

objNewFile.WriteLine "PB:" & pb & "
DP: "& dp &"
KW: "& kw &"
PG: "& s

objNewFile.WriteLine "

'

Jos opencalls on> 50

objNewFile.WriteLine ""
objNewFile.WriteLine opencalls
objNewFile.WriteLine ""

muu

objNewFile.WriteLine ""
objNewFile.WriteLine opencalls
objNewFile.WriteLine ""

Loppu Jos

objNewFile.WriteLine "
"& suljettu &" Puhelut suljettu viimeisten 30 päivän aikana "

objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.Close

Vaihe 3: VBScriptin keskeiset kohdat

koska en ole kommentoinut tätä käsikirjoitusta vielä huonosti mainitsen joitakin keskeisiä seikkoja

objRecordset.CursorLocation = adUseClient
objRecordset.Open "SELECT status, asign_to, closed_at FROM liput", objConnection, _
adOpenStatic, adLockOptimistinen

vetää DB: n kaikista tietueista, mutta vain 3 kenttää, joista olen kiinnostunut, löysin jos olin laiska ja vetänyt kaikki kentät sain z_fail-virheen, jonka mielestäni liittyy null-kenttiin, joten vedän vain mitä tarvitsen

minun massiivinen luettelo, jos lausunnot käsittelevät kutakin tietuetta ja että edellytykset täyttyvät, lisätään 1 useisiin muuttujiin

komentosarjan toinen puoli kirjoittaa html-tiedostoja riviltä
kep-pisteet ovat

objNewFile.WriteLine ""

lataa tämä sivu 10 sekunnin välein

Jos unassignedcalls> 0 Sitten

objNewFile.WriteLine ""
objNewFile.WriteLine "UN:" & unassignedcalls & "
'
objNewFile.WriteLine ""

muu

objNewFile.WriteLine "
'

tässä osassa tarkastellaan muuttumattomia puheluita, ja jos suurempi kuin 0 kirjoittaa rivit kuvaamaan tämän muuttujan arvoa ja jotkut muotoilevat ulkoisesta css-tiedostosta, katso myöhemmät vaiheet

jos ei ole suurempi kuin 0, se vain kirjoittaa
(uusi rivi html-muodossa)

teen jotain samanlaista kuin avoinna olevien puhelujen lukumäärä myöhemmin, jos yli 50 avointa puhelua käytetään erinomaisen muotoilun avulla.

objNewFile.WriteLine "PB:" & pb & "
DP: "& dp &"
KW: "& kw &"
PG: "& s

tämä rivi näyttää, kuinka monta joukkoa kummallekin ryhmälle osoitettuja puheluita on
css jättää tämän pois

viimeinen bittini on
objNewFile.WriteLine "
"& suljettu &" Puhelut suljettu viimeisten 30 päivän aikana "

tämä näyttää viimeisten 30 päivän aikana suljettujen puhelujen määrän käyttämällä

jos ei ole IsNull (objRecordset.Fields.Item ("closed_at")) Sitten
closedDate = Vasen (objRecordset.Fields.Item ("closed_at"), 10)
Jos objRecordset.Fields.Item ("status") = "closed" Sitten
Jos DateDiff ("d", suljettu päivämäärä, nyt) <30 Sitten
suljetut pallot = suljetut pallot + 1

jonka tunnistan, on sotku ja olen varma, että on olemassa parempia tapoja tehdä tämä

nyt kaikki edellä mainitut tiedän, että on monia tapoja tehdä kaikki tämä
ja paljon käsittelyä voitaisiin tehdä tsql: ssä
mutta olen parempi nopean likaisen VBScript kuin sql

Vaihe 4: css

minun css-tiedosto on alle, jos joku haluaa luoda uudelleen mitä tähän mennessä olen
elin {
font-perhe: Georgia, "Times New Roman",
Times, serif;
kirjasinkoko: 30 pt;
väri musta;
taustaväri: valkoinen}

#leftmain {
float: vasen;
leveys: 15%; }

span.open {
fonttiperhe: Helvetica, Geneve, Arial,
SunSans-Regular, sans-serif;
väri: vihreä;
kirjasinkoko: 400 pt}

span.openhigh {
fonttiperhe: Helvetica, Geneve, Arial,
SunSans-Regular, sans-serif;
väri punainen;
kirjasinkoko: 400 pt}

span.unass {
fonttiperhe: Helvetica, Geneve, Arial,
SunSans-Regular, sans-serif;
väri punainen;
taustaväri: valkoinen}

Vaihe 5: näyte tuotetusta html: stä

alla on kopio html-tiedostosta tänään
// W3C // DTD HTML 4.01 // FI>

ITI Helpdesk Call Status System

Puhelun tila @ 16/01/2009 13:44:00





PB: 7
DP: 12
KW: 19
PG: 1


39


16 Puhelut suljettu viimeisen 30 päivän aikana

Vaihe 6: tulevaisuus

Olen nyt lisännyt koodini niin, että 30 minuutin välein, kun NOW: n datapartio min on 0 tai 30

jokainen insinööri, jolle on annettu puhelun numero, kerrotaan satunnaisluvulla

pienimmät numerot anme näytetään sitten näytöllä viestillä "Tee tee"

Vaihe 7: ASP

apunani

http://www.halfshoring.com/

koko asia on kirjoitettu uudelleen ASP: ssä
ja tehostettu

asp-koodi alla
------------------------------------------------
ï »¿(päivämäärä ('nyt') + 30))"


'Asetus-sarakemuuttujat, joita käytämme VBS: ssä käytetyn kohteen ("") sijasta
Dim ColStatus, ColAssignedTo, ColClosedAt
ColStatus = 0
ColAssignedTo = 1
ColClosedAt = 2

'Luo tietokantaobjektit
"lähes sama kuin VBS, mutta käytä Server.CreateObjectia CreateObjectin sijaan

Dim arrRecords
Dim blnResults

Dim objConn
Aseta objConn = Server.CreateObject ("ADODB.Connection")
Dim objRS
Aseta objRS = Server.CreateObject ("ADODB.Recordset")

'Avaa DB-yhteys
objConn.Open (strConn)

'Suorita SQL ja lataa se tallennuslaitteeseen
objRS.Open strSql, objConn

'Suorita vain, jos tallennus ei ole tyhjä, muuten pysäytä
Jos ei ole objRS.EOF
'Lataa koko tallennuslaite joukkoon
'Tämä tarkoittaa, ettemme pidä tallennustilaa auki, kun rakennamme sivun,
näin ollen vähentää DB-palvelimen ja IIS: n kuormitusta
arrRecords = objRS.GetRows ()
muu
Response.End
Loppu Jos

'Sulje DB-yhteys
objConn.Close

'Tyhjennä DB- ja recordset-muuttujat
Aseta objConn = Ei mitään
Aseta objRS = Ei mitään

'Tiedot tallennetaan nyt arrRecordsiin

'Luo laskurimme
Dim intOpenCalls, intUnassignedCalls, intClosedCalls
Dim intPBCalls, intDPCalls, intPGCalls, intKWCalls

'Kierrä kaikki tiedot arrRecordsissa ja laske kokonaismäärät
Dim i
i = 0
Tehdä

Jos arrRecords (ColStatus, i) = "open" Sitten
intOpenCalls = intOpenCalls + 1
Loppu Jos

Jos ei ole nolla (arrRecords (ColClosedAt, i)) ja arrRecords (ColStatus, i) = "suljettu"
intClosedCalls = intClosedCalls + 1
Loppu Jos

Jos IsNull (arrRecords (ColAssignedTo, i)) sitten
intUnassignedCalls = intUnassignedCalls + 1
Loppu Jos

Jos arrRecords (ColAssignedTo, i) = "1" ja arrRecords (ColStatus, i) = "open"
intPBCalls = intPBCalls + 1
ElseIf arrRecords (ColAssignedTo, i) = "2" ja arrRecords (ColStatus, i) = "open"
intDPCalls = intDPCalls + 1
ElseIf arrRecords (ColAssignedTo, i) = "3" ja arrRecords (ColStatus, i) = "open"
intPGCalls = intPGCalls + 1
ElseIf arrRecords (ColAssignedTo, i) = "4" ja arrRecords (ColStatus, i) = "open"
intKWCalls = intKWCalls + 1
Loppu Jos

i = i + 1

Silmukka, kunnes i> UBound (arrRecords, 2)

Dim intTotalCalls
intTotalCalls = Ubound (arrRecords, 2)

”Nyt meillä on kaikki arvomme, voit luoda HTML-sivun

%>
// W3C // DTD HTML 4.01 // FI>

ITI Helpdesk Call Status System

Soita tila @





PB:
DP:
KW:
PG:



puhelut suljettu viimeisen 30 päivän aikana

Vaihe 8: huomautus 1

huomautettava kohta

jos käyttäjä kirjaa puhelun
ja sulkee sen ennen kuin se annetaan käyttäjälle
se näkyy määrittämättömänä
vaikka se on suljettu

tiivistettynä
en ole hyvä kirjoittaa myös
Yritän vastata kaikkiin kyselyihin, joita ihmisillä on

VBScript toimii 60 sekunnin välein Windows-tehtävien ajoituksesta
ja html itsestään latautuvat 10 sekunnin välein, joten näyttö on normaalisti jopa 70 sekuntia jäljessä

koska selaimessa ei toimi komentosarjaa, selaimessa käytetty annos ei ole väliä

ajan myötä aion lisätä lisää kenttiä näyttöön, mutta en ole varma, mitä vielä

kaikki sudgestions tervetulleita
yhdessä ajatusten ja kommenttien kanssa

minulta on kysytty siitä, mitä on tapahtunut
pb
s
db
kw

sitten ovat tiimini jäsenten alkukirjaimet
ja kunkin vieressä näkyvät numerot ovat kullekin henkilölle osoitettujen töiden lukumäärä

alkukirjaimet on koodattu asp-sivulla, mutta ajoissa saan sen saamaan nimet / nimikirjaimet sopivasta taulukosta