48211 - AM - Licence - při odebrání licence počítači dojde k odstranění
položky licence
Článek se týká verzí produktů
ALVAO Asset Management 7.1, 7.1 SP1, 8.0, 8.0 SP1
Příznaky
Pokud je v položce přidělené licence zapsán dodatečný údaj (např.
nákladové středisko odlišné od nákladového střediska licence, poznámka,
aktivační klíč apod.), při odebrání licence počítači dojde k odstranění i
takové položky licence a tím pádem k možné ztrátě dat.
Příčina
Příčinou je chyba v produktech ALVAO.
Řešení
Opraveno ve verzi 8.0.3005
Náhradní řešení
- ALVAO Asset Management
8.0 a 7.1 (včetně SP):
Odebírejte licence počítačům
pomocí ručního odebrání počítače
z položky licence.
- ALVAO Asset Management
8.0 SP1: Pro opravu chyby
spusťte na databázi následující
skript (např. v SQL Server
Management Studiu):
alter procedure dbo.spTakeLicence @LicHistItemId int as
begin
set nocount on
if( not exists(select 1 from tblLicHistItem where intLicHistItemId=@LicHistItemId) )
begin
declare @err nvarchar(255)
set @err = 'spTakeLicence: Licence item ID ''' + cast(@LicHistItemId as nvarchar(32)) + ''' not exist!'
raiserror(@err,16,1)
return
end
declare @c int
set @c=0
create table #t (id int, itemId int, c int, rem bit)
insert into #t (id, itemId, c, rem)
select
lintLicHistId,
intLicHistItemId,
@c,
case when
isnull(lh.txtActivationKey,'')=isnull(lhi.ActivationKey,'') and
isnull(lh.txtDepartment,'')=isnull(lhi.txtDepartment,'') and
isnull(lhi.txtInventoryNum,'')!='' and
isnull(lhi.txtRequest,'')!='' and
isnull(lhi.txtMemo,'')!=''
then 1 else 0 end
from tblLicHistItem lhi
join tblLicHist lh on lh.intLicHistId=lhi.lintLicHistId
where intLicHistItemId=@LicHistItemId
while( exists(select * from #t where c=@c) )
begin
insert into #t (id,itemId,c,rem)
select
previ.lintLicHistId,
previ.intLicHistItemId,
@c+1,
case when isnull(previ.ActivationKey,'')=isnull(prevlh.txtActivationKey,'')
and isnull(previ.txtDepartment,'')=isnull(prevlh.txtDepartment,'')
and isnull(previ.txtInventoryNum,'')=''
and isnull(previ.txtRequest,'')=''
and isnull(cast(previ.txtMemo as nvarchar(255)),'')='' then 1 else 0 end
from #t curr
join tblLicHistItem curri on curri.intLicHistItemId=curr.itemId
join tblLicHistItem previ on previ.intLicHistItemId=curri.UpgradedFromLicHistItemId and previ.lintLicHistId not in (select id from #t)
join tblLicHist prevlh on prevlh.intLicHistId=previ.lintLicHistId
set @c = @c+1
end
update LicHistItemAssign set LicHistItemId=null
where LicHistItemId in (select itemId from #t)
set @c = 0
while(exists(select 1 from #t where c=@c))
begin
delete from tblLicHistItem
where intLicHistItemId in (select itemId from #t where rem=1 and c=@c)
set @c = @c+1
end
update tblLicHistItem set NodeId=null
where intLicHistItemId in (select itemId from #t where rem=0)
drop table #t
end
Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.
|