Jak obiecaliśmy tak robimy – przechodzimy do drugiej części 🙂

Robimy zmiany w DB..

Wiemy już jak znaleźć zaplanowane raporty i podejrzeć ich szczegóły. Ale co w przypadku, gdy technik X zaplanował raport dla dla kilkunastu adresów, poszedł na urlop a my musimy wyedytować listę adresów? Niestety w tym przypadku również będziemy musieli dobrać się bezpośrednio do bazy danych.

Aby przejąć raport na własność musimy zmienić ID właściciela zaplanowanego raportu na nasze. W poprzedniej części pokazaliśmy, jak znaleźć raport. Ostateczne zapytanie wyglądało następująco:

SELECT rstask.taskid "ID zadania", rstask.schedulename "nazwa zadania",
rstask.reportid "ID raportu", crdetails.report_name "Nazwa raportu", 
rstask.mailid "Odbiorca", rstask.subject "Temat wiadomości",
rstask.message "Treść wiadomości", rstask.ownerid "ID Właściciela",aaausr.first_name "Właściciel", rstask.report_type "Format raportu" 
FROM reportscheduletask rstask 
left join customreport_details crdetails on crdetails.reportid=rstask.reportid 
left join aaauser aaausr on aaausr.user_id=rstask.ownerid;
 

No to już coś wiemy. Teraz musimy zobaczyć jakie mamy ID w bazie – w końcu chcemy zobaczyć ten raport w naszym panelu. No to kolejne zapytanie – wyciągamy nasz USER_ID:

select aaausr.user_id "ID" from aaauser aaausr where aausr.FIRST_NAME like 'administrator'

Mamy ID nowego właściciela – w naszym przypadku wynosi ono 3. Teraz trzeba przejąć raport. Na liście z zapytania pierwszego szukamy zadania dla  raportu który nas interesuje – my chcemy przejąć zadanie dla raportu o ID = 10 który zaplanował Jan Kowalski. Robimy update:

 UPDATE reportscheduletask SET ownerid=3 where taskid = 10

Od tej chwili raport jest widoczny w naszych zaplanowanych raportach. Edycji możemy dokonywać z poziomu aplikacji ServiceDesk Plus.

Ale… Jeśli jesteśmy leniwi to możemy na przykład scalić dwa zapytania w jedno. Przykład:

 UPDATE reportscheduletask SET ownerid=(select max(aaausr.user_id ) from aaauser aaausr where aaausr.FIRST_NAME like 'administrator') where taskid =10 

 

Mamy ID zadania, wiemy kto powinien raport otrzymywać. Robimy update:

 UPDATE reportscheduletask SET mailid="[email protected],[email protected]" where taskid =10 

Na finiszu części drugiej zajmiemy się jeszcze usuwaniem raportów. Skoro wiemy już jak znaleźć ID zadania dla raportu – przechodzimy do działania:

Delete from reportscheduletask where taskid=10 

Operacje usunięcia możemy przeprowadzić również z panelu jeśli jesteśmy właścicielem raportu.