Ved IKA Rogaland oppdaget vi i forbindelse med en innsynsak at at skriptet som ble laget i Sandnes kommune (se ovenfor) skapte en ny feil i siard-uttrekket. Det opprinnelige skriptet som Sandnes kommune laget førte til at vi fikk ut dokumentene uskadd slik at de lot seg konvertere til arkivformat ved hjel av programmet Documaster Decom og LibreOffice. Det var også kobling mellom metadata og dokument i uttrekket, men pga. følgende setningen
[DokId] [int] IDENTITY(1,1) NOT NULL,
i skriptet ble feil dokument koblet til metadata. Det virket som om dokumentene var tilfeldig koblet til metadata pga. denne feilen i CREATE TABLE kommandoen.
Ved IKA Rogaland gjorde vi en del grundige undersøkelser omkring feilen som det første skriptet skapte, spesielt i samarbeid med IKT-tjenesten og arkivtjenesten i Hå kommune. Vi fant og dokumenterte feilen og hvordan den kunne rettes. Til slutt ble skriptet revidert og ved IKA Rogaland prøvde vi ut hele produksjonslinja på ei back-up file vi fikk fra Hå kommune. Denne back-up fila satt vi opp på en lokal MSSQL server ved IKA Rogaland. Vi kjørte det reviderte skriptet mot denne kopi databasen. Vi laget et nytt siard-uttrekk ved hjelp av SpectralCore fullConvert (SIP). Vi laget ny arkivpakke AIP) i Documaster Decom som inkluderte konvertering av tilhørende dokument til arkivformat. Den endelige siard-fila lastet vi så opp på en MariaDB (MySQL) plattform. Til slutt koblet vi programmet DataBase Preservation Toolkit (DBPTK) opp mot MariaDB versjonen av FlyVo og laget et nytt siard-uttrekk som skal brukes til innsyn i dette elektroniske arkivmaterialet. På denne innsynsløsingen kontrollerte vi så med stikkprøver at riktig dokument var koblet til metadata, og dette stemte. Vi testet ut på 8 klienter og koblingen mellom dokument og metadata knyttet til person stemte.
Det reviderte skriptet er slik:
USE [VFlyktning]
GO
--lager ny tabell
CREATE TABLE [dbo].[rDokument2](
[Dato] [smalldatetime] NULL,
[DokId] [int] NULL,
[DokumentTekstRTF] [varbinary](max) NULL,
[Gruppe] [nvarchar](10) NULL,
[UserId] [nvarchar](100) NULL,
[DokDir] [nvarchar](255) NULL,
[DokNavn] [nvarchar](50) NULL,
[DokPass] [nvarchar](50) NULL,
[DokEkst] [nvarchar](5) NULL,
[DokumentTekst] [ntext] NULL,
[UtsjekketAv] [nvarchar](100) NULL,
[UtsjekketDato] [datetime] NULL
)
--kopierer data fra den gamle
INSERT INTO [dbo].[rDokument2]
([Dato],
[DokId],
[DokumentTekstRTF],
[Gruppe],
[UserId],
[DokDir],
[DokNavn],
[DokPass],
[DokEkst],
[DokumentTekst],
[UtsjekketAv],
[UtsjekketDato])
select
Dato, DokId,
cast(cast(rDokument.DokumentTekstRTF as varchar(max)) as varbinary(max)),
Gruppe, UserId, DokDir, DokNavn, DokPass, DokEkst, DokumentTekst, UtsjekketAv, UtsjekketDato
FROM [VFlyktning].[dbo].[rDokument]
USE [VFlyktning]
GO
-- Finner avhengigheter
SELECT
OBJECT_NAME(f.parent_object_id) TableName,
COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName
FROM
sys.foreign_keys AS f
INNER JOIN
sys.foreign_key_columns AS fc
ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN
sys.tables t
ON t.OBJECT_ID = fc.referenced_object_id
WHERE
OBJECT_NAME (f.referenced_object_id) ='rDokument'
-- Fjerner avhengigheter og dermed relasjoner på original database
ALTER TABLE [dbo].[rBrevJournal]
DROP CONSTRAINT [FK_rBrevJournal_rDokument]
GO
ALTER TABLE [dbo].[rDokument]
DROP CONSTRAINT PK_rDokument
-- Sletter den gamle tabellen
DROP TABLE [dbo].[rDokument]
GO
-- Gir den nye det samme snavn som den gamle
EXEC sp_rename 'rDokument2', 'rDokument';