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.