2008 - 2015
In 2008 kwam ik voor het eerst bij Kenz. Destijds eerst de oude DOS cadfiler naar ms-access / sql-server omgezet en in 2009 is daar de conversie van de toenmalige partlisteditor bijgekomen. Vanaf eind 2012 tot eind 2014 heb ik intensief met Leon Limonard gewerkt aan de integratie van deze twee bedrijfskritische applicaties. Dit om de dataintegriteit tussen tekeningen en stuklijsten te waarborgen en de afdeling inkoop van ECO's te kunen voorzien. Deze toepassing is wel zo een beetje mijn 'Opus Magnum' geworden.
November 2014
Het openeningsscherm met links 3 boxen met menu items 'projects', 'documents' (per project) en 'partlist' (onderdelen per tekening)
Conversie software om data uit een 'Drawings' database en uit een andere 'Partlisteditor' database te migreren naar 1 nieuw systeem
USE [CADFILER_TEST]
GO
/****** Object: StoredProcedure [dbo].[sp_leeg_en_vul] Script Date: 9-4-2023 21:50:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
ALTER PROCEDURE [dbo].[sp_leeg_en_vul]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DELETE FROM tbl_article_nieuw
INSERT INTO dbo.tbl_article_nieuw SELECT dbo.syn_article_nieuw.* FROM dbo.syn_article_nieuw
DELETE FROM tbl_code
INSERT INTO dbo.tbl_CODE SELECT dbo.syn_CODE.* FROM dbo.syn_code
DELETE FROM tbl_contract
INSERT INTO dbo.tbl_contract SELECT dbo.syn_contract.* FROM dbo.syn_contract
DELETE FROM tbl_drawing
-- 20121009
----------------------------------------------------------------------------------------------------------------------
INSERT INTO dbo.tbl_drawing
(D_NAME, Extensie, D_INTERN, Installatie, P_NR, D_DES, D_INFO, D_OWNER, D_DATE, D_MEMO, D_FILENAME,
DateCreated, DateModified, StatusID, StatusMutatie, RevNr, RevLetter, Archief, PSP, FileLastModified,
RecordLastModified, AI_nr, AI_nr_rev, Gekopieerd,subStatusID)
select
D_NAME, Extensie, D_INTERN, Installatie, P_NR, D_DES, D_INFO, D_OWNER, D_DATE, D_MEMO, D_FILENAME,
DateCreated, DateModified, StatusID, StatusMutatie, RevNr, RevLetter, Archief, PSP, FileLastModified,
RecordLastModified, AI_nr, AI_nr_rev, Gekopieerd,statusid
FROM dbo.drawing_OUD WITH (nolock) WHERE NAAMGEVING200903 = 1
-- 20121026 nieuw
UPDATE dbo.tbl_drawing SET statusid = 100 --busy
WHERE statusid= 110 or statusid= 120 or statusid= 130 or statusid= 140 or statusid= 160 or statusid= 170
or statusid= 200 or statusid= 900 or statusid= 910 or statusid= 996
UPDATE dbo.tbl_drawing SET statusid = 150 -- released
WHERE statusid= 180 or statusid= 190 or statusid= 910 or statusid= 912 or statusid= 160 or statusid= 170 or statusid= 200
UPDATE dbo.tbl_drawing SET statusid = 210 -- obsolete
WHERE statusid= 210 or statusid= 997 or statusid= 998 or statusid= 999
-- 20121206
UPDATE dbo.tbl_drawing SET ReleasedBy = 'unknown' WHERE ReleasedBy is null
DELETE FROM tbl_gebruikersinstellingen
INSERT INTO dbo.tbl_gebruikersinstellingen SELECT dbo.syn_gebruikersinstellingen.* FROM dbo.syn_gebruikersinstellingen
WITH (nolock)
DELETE FROM tbl_installatie
INSERT INTO dbo.tbl_installatie SELECT dbo.syn_installatie.* FROM dbo.syn_installatie WITH (nolock)
DELETE FROM tbl_kde_applicaties
INSERT INTO dbo.tbl_kde_applicaties SELECT dbo.syn_kde_applicaties.* FROM dbo.syn_kde_applicaties
--DELETE FROM tbl_kde_locatiecode
DELETE FROM tbl_kde_revisie
INSERT INTO dbo.tbl_kde_revisie SELECT dbo.syn_kde_revisie.* FROM dbo.syn_kde_revisie
DELETE FROM tbl_kde_status
INSERT INTO dbo.tbl_kde_status SELECT dbo.syn_kde_status.* FROM dbo.syn_kde_status
DELETE FROM tbl_kde_status_ple
INSERT INTO dbo.tbl_kde_status_PLE SELECT dbo.syn_kde_status_ple.* FROM dbo.syn_kde_status_ple
DELETE FROM tbl_log_gebruik WHERE DATUMTIJD > '2012-07-01'
SET IDENTITY_INSERT dbo.tbl_log_gebruik OFF;
INSERT INTO dbo.tbl_log_gebruik (DatumTijd, Gebruiker, [Document])
SELECT syn_log_gebruik.DatumTijd, Gebruiker, [Document]
FROM dbo.syn_log_gebruik WITH (nolock) WHERE syn_log_gebruik.DATUMTIJD > '2012-07-01'
-- DELETE FROM tbl_log_import
-- DELETE FROM tbl_log_trimergoadministratie
DELETE FROM tbl_matrix
INSERT INTO dbo.tbl_matrix SELECT dbo.syn_matrix.* FROM dbo.syn_matrix
--DELETE FROM tbl_OL2k3_ContactType
--INSERT INTO dbo.tbl_OL2k3_ContactType SELECT dbo.[syn_OL2k3_ContactType].* FROM dbo.[syn_OL2k3_ContactType]
-- uitgezet ivm te veel velden =bit moet gevuld zijn, doe ik wel via front-end
DELETE FROM tbl_project
iNSERT INTO dbo.tbl_project SELECT dbo.syn_project.* FROM dbo.syn_project
DELETE FROM tbl_project_document
-- 20121230
INSERT INTO dbo.tbl_project_document
(project, [document], description, DateCreated, DateModified,
CF, PLE, ModifiedBy, PLE_AInr, PLE_description, PE)
SELECT
project, [document], description, DateCreated, DateModified,
CF, PLE, ModifiedBy, PLE_AInr, PLE_description, 0
FROM dbo.syn_project_document WITH (nolock)
-- INSERT INTO dbo.tbl_project_document SELECT dbo.syn_project_document.* FROM dbo.syn_project_document WITH (nolock)
DELETE FROM tbl_PSP_Artnummer_Posnummer
SET IDENTITY_INSERT dbo.tbl_PSP_Artnummer_Posnummer OFF;
INSERT INTO dbo.tbl_PSP_Artnummer_Posnummer ( Artnummer, Posnummer, installatie,document)
SELECT syn_PSP_Artnummer_Posnummer.Artnummer, [Posnummer], LEFT(naamstuklijst,3),substring(naamstuklijst,5,8)
FROM dbo.syn_PSP_Artnummer_Posnummer WITH (nolock)
DELETE FROM tbl_psp_import_verschillen
DELETE FROM tbl_stations
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_stuklijst
SET IDENTITY_INSERT dbo.tbl_stuklijst OFF
INSERT INTO dbo.tbl_stuklijst
(naamstuklijst, installatie, drawing, sysloc, RevDoc, IngebruikDoor, IngebruikSinds, Ingebruik, DateCreated, DateLastModified,
drawing_number_T2, drawing_key_T2, description, AI_nummer)
SELECT
naamstuklijst, installatie, drawing, sysloc, sRevLetter, IngebruikDoor, IngebruikSinds, Ingebruik, DateCreated, DateLastModified,
drawing_number_T2, drawing_key_T2, description, AI_nummer
FROM dbo.syn_stuklijst WITH (nolock)
UPDATE dbo.tbl_stuklijst SET archief=0
------------------------------------------------------------------------------------------------------------------------------------------------------
-- S T U K L I J S R E G E L S
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_stuklijst_regels
SET IDENTITY_INSERT dbo.tbl_stuklijst_regels OFF
-- 20120913 aangepast
INSERT INTO dbo.tbl_stuklijst_regels
(NaamStuklijst, installatie, drawing, RevDoc, article_number, StatusID, sItem, DateCreated, DateLastModified, CertificaatID, Aantal, Tri_Article_key, Tri_Article_desc,
Tri_Article_desc0, SysLoc, ArticleType, SupplierNaam, Certificaatnaam, DrawingLine_Key_T2, Drawing_key_t2, Assy_ref_kenz, [Assembly],
RevItem, Werkordernr, VariationOrder, KP_budget, KP_nacalc, tri_Relation_number, gewicht, materiaal, lengte, besteld, geleverd,
TRIMERGO_PO)
SELECT
dbo.syn_stuklijst_regel.NaamStuklijst, installatie, drawing, sRevLetter, article_number, StatusID, sItem, DateCreated, DateLastModified, CertificaatID, Aantal, Tri_Article_key, Tri_Article_desc,
Tri_Article_desc0, SysLoc, ArticleType, SupplierNaam, Certificaatnaam,DrawingLine_Key_T2, Drawing_key_t2, Assy_ref_kenz, [Assembly],
PSPRevLetter, Werkordernr,VariationOrder, KP_budget, KP_nacalc, Relation_number, gewicht, materiaal, lengte, besteld, geleverd,
TRIMERGO_PO
FROM dbo.syn_stuklijst_regel WITH (nolock) WHERE DateDeleted IS NULL
UPDATE dbo.tbl_stuklijst_regels SET archief=0
UPDATE dbo.tbl_stuklijst_regels SET purchase = 0, exported=0 WHERE statusid = 0
UPDATE dbo.tbl_stuklijst_regels SET purchase = 1, exported=0 WHERE statusid = 1
UPDATE dbo.tbl_stuklijst_regels SET purchase = 1, exported=1 WHERE statusid > 1 and StatusID < 6
--- 20121205 ERTUSSEN GEZET
BEGIN
UPDATE tbl_stuklijst_regels
SET Tri_article_code = articletype
FROM tbl_stuklijst_regels A
INNER JOIN dbo.tbl_trimergo_articletypes B ON A.ArticleType = B.article_code
END
BEGIN
UPDATE tbl_stuklijst_regels
SET Tri_article_code = b.article_code
FROM tbl_stuklijst_regels A
INNER JOIN dbo.tbl_trimergo_articletypes B ON A.ArticleType = B.article_type
END
BEGIN
UPDATE tbl_stuklijst_regels
SET articletype = b.article_type
FROM tbl_stuklijst_regels A
INNER JOIN dbo.tbl_trimergo_articletypes B ON A.tri_Article_code = B.article_code
END
------------------------------------------
--- 2012.01.08
exec sp_revdoc_gelijktrekken
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_stuklijst_regels_eco
INSERT INTO tbl_stuklijst_regels_eco
(installatie, tekening, item, revdoc, datumtijd, revitem )
SELECT installatie, tekening, item, revdoc, datumtijd, revitem
FROM dbo.syn_stuklijst_regels_eco WITH (nolock)
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
----DELETE FROM tbl_stuklijst_regels_mutaties WHERE DATELASTMODIFIED > '2012-07-01'
--INSERT INTO tbl_stuklijst_regels_mutaties
-- (NaamStuklijst, installatie, drawing, RevDoc, article_number, sItem, StatusID, DateCreated, DateLastModified, CertificaatID, Aantal, Tri_Article_key, Tri_Article_desc,
-- Tri_Article_desc0, SysLoc, ArticleType, SupplierNaam, Certificaatnaam, pCode, DrawingLine_Key_T2, Drawing_key_t2, UserKenzDCE, Opmerking,
-- Assy_ref_kenz, [Assembly], RevItem, Werkordernr, VariationOrder, tri_Relation_number, gewicht, materiaal, lengte, besteld, geleverd, TRIMERGO_PO)
--SELECT NaamStuklijst, installatie, drawing, sRevLetter, article_number, sItem, StatusID, DateCreated, DateLastModified, CertificaatID, Aantal, Tri_Article_key, Tri_Article_desc,
-- Tri_Article_desc0, SysLoc, ArticleType, SupplierNaam, Certificaatnaam, pCode, DrawingLine_Key_T2, Drawing_key_t2, UserKenzDCE, Opmerking,
-- Assy_ref_kenz, [Assembly], PSPRevletter, Werkordernr, VariationOrder, Relation_number, gewicht, materiaal, lengte, besteld, geleverd, TRIMERGO_PO
--FROM dbo.syn_stuklijst_regels_mutaties WITH (nolock) WHERE DATELASTMODIFIED > '2012-07-01'
--------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_stuklijst_regels_BACKUP WHERE VERSION > '2012-07-01'
INSERT INTO dbo.tbl_stuklijst_regels_backup
(gebruiker, NaamStuklijst, [version], installatie, drawing, RevDoc, article_number, sItem, StatusID, DateCreated, DateLastModified, CertificaatID, Aantal,
Tri_Article_desc, Tri_Article_key, Tri_Article_desc0, SysLoc, ArticleType, Relation_key, SupplierNaam, Certificaatnaam, DrawingLine_Key_T2, Drawing_key_t2,
Assy_ref_kenz, [Assembly], RevItem, Werkordernr, VariationOrder, DateDeleted, tri_Relation_number, gewicht, materiaal,
lengte, TRIMERGO_PO, besteld, geleverd,archief)
SELECT
gebruiker, NaamStuklijst, [version], installatie, drawing, sRevLetter, article_number, sItem, StatusID, DateCreated, DateLastModified, CertificaatID, Aantal,
Tri_Article_desc, Tri_Article_key, Tri_Article_desc0, SysLoc, ArticleType, Relation_key, SupplierNaam, Certificaatnaam, DrawingLine_Key_T2, Drawing_key_t2,
Assy_ref_kenz, [Assembly], PSPRevLetter, Werkordernr, VariationOrder, DateDeleted, Relation_number, gewicht, materiaal,
lengte, TRIMERGO_PO, besteld, geleverd,0
FROM dbo.syn_stuklijst_regels_BACKUP WITH (nolock) WHERE VERSION > '2012-07-01'
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_stuklijst_BACKUP WHERE VERSION > '2012-07-01'
SET IDENTITY_INSERT dbo.tbl_stuklijst_backup OFF
INSERT INTO tbl_stuklijst_BACKUP
(gebruiker, version, naamstuklijst, installatie, drawing, sysloc, RevDoc, IngebruikDoor, IngebruikSinds, Ingebruik, DateCreated, DateLastModified,
drawing_number_T2, drawing_key_T2, description, AI_nummer,archief)
SELECT gebruiker, version, naamstuklijst, installatie, drawing, sysloc, sRevLetter, IngebruikDoor, IngebruikSinds, Ingebruik, DateCreated, DateLastModified,
drawing_number_T2, drawing_key_T2, description, AI_nummer,0
FROM dbo.syn_stuklijst_BACKUP WITH (nolock) WHERE [VERSION] > '2012-07-01'
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_tekeningenlijst
INSERT INTO dbo.tbl_tekeningenlijst SELECT dbo.syn_tekeningenlijst.* FROM dbo.syn_tekeningenlijst
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_tekeningenlijst_groepen
INSERT INTO dbo.tbl_tekeningenlijst_groepen SELECT dbo.syn_tekeningenlijst_groepen.* FROM dbo.syn_tekeningenlijst_groepen
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_temp_revisies
INSERT INTO dbo.tbl_temp_revisies SELECT dbo.syn_temp_revisies.* FROM dbo.syn_temp_revisies
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_temp_revisies_laatste
INSERT INTO dbo.tbl_temp_revisies_laatste SELECT dbo.syn_temp_revisies_laatste.* FROM dbo.syn_temp_revisies_laatste
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_user
DELETE FROM tbl_user_PLE
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM tbl_vragen_antwoorden
SET IDENTITY_INSERT dbo.tbl_stuklijst_regels OFF
INSERT INTO dbo.tbl_vragen_antwoorden
(SpeeltRond, Vraag, Opmerking, Klaar)
SELECT SpeeltRond, Vraag, Opmerking, Klaar
FROM dbo.syn_vragen_antwoorden
------------------------------------------------------------------------------------------------------------------------------------------------------
END
USE [CADFILER_TEST]
GO
/****** Object: StoredProcedure [dbo].[sp_stuklijst_regels_maak_eco] Script Date: 9-4-2023 22:32:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date: <16 juli 2012>
-- Description:
-- =============================================
ALTER PROCEDURE [dbo].[sp_stuklijst_regels_maak_eco]
@installatie int = 0,
@tekening char(8),
@revdoc nvarchar(2),
@statusdoc nvarchar(10)
AS
DECLARE @item nvarchar(50)
DECLARE @revdoc_vorige nvarchar(2)
DECLARE @revnr int
DECLARE @revnr_vorige int
declare @n int
DECLARE @QTY_vorige int
DECLARE @QTY int
DECLARE @DeltaQTY int
DECLARE @revitem nvarchar(2)
DECLARE @revitem_vorige nvarchar(2)
BEGIN
SELECT @revnr = RevNR FROM tbl_kde_revisie WHERE RevLetter = @revdoc
set @revnr_vorige = @revnr - 1
if @revnr = 0
SELECT @revdoc_vorige
else
SELECT @revdoc_vorige = revletter FROM tbl_kde_revisie WHERE Revnr = @revnr - 1
END
-- vorige revisie
BEGIN
DELETE tbl_stuklijst_regels_vorige_revisie -- WHERE installatie = @installatie AND tekening = @tekening
if @revnr > 0
INSERT INTO tbl_stuklijst_regels_vorige_revisie
(installatie,tekening,revdoc,item,qty,purchase,exported,revitem)
SELECT installatie,drawing,revdoc,sitem,aantal,purchase,exported,revitem
FROM tbl_stuklijst_regels WHERE installatie = @installatie AND drawing = @tekening AND revdoc = @revdoc_vorige
END
-- deze revisie
BEGIN
DELETE tbl_stuklijst_regels_deze_revisie -- WHERE installatie = @installatie AND tekening = @tekening AND revdoc = @revdoc
INSERT INTO tbl_stuklijst_regels_deze_revisie
(installatie,tekening,revdoc,item,qty,purchase,exported,revitem)
SELECT installatie,drawing,revdoc,sitem,aantal,purchase,exported ,RevItem
FROM tbl_stuklijst_regels WHERE installatie = @installatie AND drawing = @tekening AND revdoc = @revdoc
END
BEGIN
DELETE tbl_stuklijst_regels_eco WHERE installatie = @installatie AND tekening = @tekening AND revdoc = @revdoc and statusdoc = @statusdoc
-- DELETED sinds vorige
INSERT INTO tbl_stuklijst_regels_eco
(installatie, tekening, revdoc, item, FollowUp,DeltaQTY,revitem,statusdoc,debug)
SELECT v.installatie, v.tekening, @revdoc, v.item, 'cancellation',-1 * v.qty ,v.revitem,@statusdoc,'DEL'
FROM dbo.tbl_stuklijst_regels_vorige_revisie V LEFT OUTER JOIN
dbo.tbl_stuklijst_regels_deze_revisie D ON V.installatie = D.installatie AND
V.tekening = D.tekening AND
V.item = D.item
WHERE (D.item IS NULL) AND (D.revdoc IS NULL) AND (D.tekening IS NULL) AND (D.installatie IS NULL)
END
BEGIN
-- NIEUW sinds vorige
INSERT INTO tbl_stuklijst_regels_eco
(installatie, tekening, revdoc, item, FollowUp,DeltaQTY,revitem,statusdoc,debug)
SELECT d.installatie, d.tekening, d.revdoc, d.item, 'R2O',d.qty ,d.revitem,@statusdoc,'NEW'
FROM dbo.tbl_stuklijst_regels_vorige_revisie V RIGHT OUTER JOIN
dbo.tbl_stuklijst_regels_deze_revisie D ON
V.installatie = D.installatie AND
V.tekening = D.tekening AND
V.item = D.item
WHERE (V.installatie IS NULL) AND (V.tekening IS NULL) AND (V.revdoc IS NULL) AND (V.item IS NULL)
END
--------------------------------------------------------------------------------------------------------------------------------
-- MUTATIES
DECLARE cursorMutaties CURSOR FOR
SELECT item,qty,revitem,qty_v,revitem_v FROM vw_eco_mutaties
OPEN cursorMutaties
FETCH NEXT from cursorMutaties INTO @item,@qty,@revitem,@qty_vorige,@revitem_vorige
IF (@@FETCH_STATUS=-1)
BEGIN
CLOSE cursorMutaties
DEALLOCATE cursorMutaties
RETURN
END
WHILE @@FETCH_STATUS=0
BEGIN
BEGIN
if @revitem_vorige = @revitem AND @qty_vorige <> @qty
INSERT INTO tbl_stuklijst_regels_eco
(Installatie, tekening, item,revdoc,revitem,DeltaQTY,FollowUp,statusdoc,debug)
VALUES
(@installatie,@tekening, @item, @revdoc,@revitem, @QTY- @QTY_vorige, 'R2O',@statusdoc,'rev=rev qty<>qty')
END
if @revitem_vorige <> @revitem --AND @qty_vorige = @qty
BEGIN
INSERT INTO tbl_stuklijst_regels_eco
(Installatie, tekening, item,revdoc,revitem,DeltaQTY,FollowUp,statusdoc,debug)
VALUES
(@installatie,@tekening, @item, @revdoc,@revitem_vorige, -1 * @QTY_vorige, 'cancellation',@statusdoc,'rev<>rev qry_old')
INSERT INTO tbl_stuklijst_regels_eco
(Installatie, tekening, item,revdoc,revitem,DeltaQTY,FollowUp,statusdoc,debug)
VALUES
(@installatie,@tekening, @item, @revdoc,@revitem, @QTY, 'R2O',@statusdoc,'rev<>rev qry_now')
END
FETCH NEXT from cursorMutaties INTO @item,@qty,@revitem,@qty_vorige,@revitem_vorige
END
CLOSE cursorMutaties
DEALLOCATE cursorMutaties
return
Juli 2014
Migratie van de trimergodatabase naar een nieuwe server gaf foutmeldingen in de door mij in 2008 ontwikkelde CADFILER applicatie. Het ms-access frontend had niet alleen klassiek ODBC gekoppelde tabellen met de trimergo SQL-database, maar de CADFILER SQL-database las ook nog via linkedservers en synonymen rechtstreeks in de Trimergo database. Even uitzoeken hoe het ook alweer in elkaar zat, op de nieuwe server een 'CADFILERUSER' aanmaken en de linkedservers en synonymen scripten en via notepad een 'search en replace' doen en weer aanmaken en koppelingen werkte weer.