Heart-Profit ERP
May 18, 2024, 07:53:03 pm *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Login Register  
Pages: [1]
  Print  
Author Topic: Gefaseerd opnemen Auto Increment Record Id in Tabellen ADS Database  (Read 4294 times)
0 Members and 1 Guest are viewing this topic.
Wouter Rijnbende
Administrator
Partner
*****
Offline Offline

Posts: 5360


View Profile WWW
« on: February 06, 2019, 09:42:02 am »


Gefaseerd opnemen Auto Increment Record Id (geldt alleen voor ADS versie!)
In Januari 2019 hebben we een "Auto Increment Record Id" veld geïntroduceerd in de tabellen van de Profit Database. "Auto Increment" geeft aan dat dit een nummer betreft die uit zichzelf wordt opgehoogd; dit gebeurt zodra er een nieuw record in de tabel wordt toegevoegd. Het veld is bedoeld om binnen een tabel ieder record uniek te kunnen adresseren. Het wordt a.h.w. een soort 'Recordnummer' zoals we dat in Visual FoxPro kenden, maar, nu een die niet 'gereset' wordt als we de tabel gaan reorganiseren.

Het Auto Increment veld moet verplicht in iedere Tabel van de Profit Database worden opgenomen, dit omwille van diverse technische funktionaliteit. Een eerste échte toepassing hiervoor betreft de Replikatie die dit veld, alsmede een gelijke Id in de SQL Server Database, gebruikt om data te repliceren naar een SQL Server Database.

Hoewel wij er natuurlijk voor kunnen zorgen dat dit veld automatisch wordt toegevoegd aan uw Database bij uw eerst volgende Upgrade, doen we dat niet! De reden daarvoor is dat het opnemen van dit veld in de database "tijd" kost, en waarbij de hoeveelheid tijd volledig afhangt van de performance van uw systeem en de grootte van uw Database. We hebben klanten die de administratie van meerdere bedrijven voert en nog amper een Verkooporderregel tabel hebben van 2 GB, er hebben ook een klant waarbij die tabel met 2 GB per kwartaal groeit.

Dan hebben we ook nog te maken met de tijd die U beschikbaar heeft... Het ene bedrijf is in staat om vrijdag om 17:00 het systeem plat te gooien, waarna het maandagmorgen pas weer om 06:00 online hoeft, bij een ander wordt t/m zaterdag 22:00 gewerkt en moet zondag om 16:00 de boel al weer draaien. Het laatste wat wij willen veroorzaken is een Upgrade die zó lang gaat duren dat uw bedrijfsprocessen in gevaar gaan lopen, derhalve hebben wij een tool ontwikkeld waarmee U als klant zélf dit veld gefaseerd kan toevoegen aan de Database. Desnoods iedere week een paar tabellen, tot ze in alle Tabellen is opgenomen.

Let op: Ons uitgangspunt is wel dat dit gebeurd!

Merk hierbij op dat wij dit natuurlijk niet kunnen afdwingen, maar houdt maar in het achterhoofd dat er vroeg of laat een update aan de orde is waarbij dit veld écht aanwezig moet zijn en de Upgrade dit veld zal moeten aanbrengen op alle tabellen waarop dat nog niet gebeurd is. Dán duurt dié Upgrade mogelijk wel langer dan u lief is. Met andere woorden, het is in uw eigen belang dit veld tijdig op te nemen in uw Database. Nu heeft u hiervoor de mogelijkheid en de tijd dit "gefaseerd" te doen, straks "moet" het gewoon een keer...

Voor klanten die m.b.v. de module Profit-Transact transakties repliceren naar een SQL Server Database is het al "te laat". Voor de in januari vernieuwde werkwijze van de Replikatie is dit veld nu al verplicht. Alle "transaktionele" tabellen zullen middels een konversie automatisch worden voorzien van dit AutoIncrement veld; voor de niet-transaktionele tabellen geldt dat deze zo spoedig mogelijk door de klant zelf moeten worden aangebracht via de hiervoor geïntroduceerde Listmover control (Hmenu-9-5-8-1-6).



Listmover opnemen Auto Increment Record Id
Via Hoofdmenu-9-5-8-1-6 komen we terecht in een Listmover control die ons toestaat om het Auto Increment veld op te nemen in de Profit (ADS) Database:


In bovenstaande listmover treffen we als eerste een Combobox (drop down) aan waarin we kunnen kiezen voor Applikatiekode LO, AD, PK, NT en SY. Default staat deze op de (hoofd) Applikatie "LO". De Listmover control toont enkel de tabellen van de geselekteerde Applikatiekode; dit wordt geacht overzichtelijker te zijn dan  ineens een hele lijst met 2000 tabellen te tonen. Let op: dit houdt dus wel in dat we voor iedere van deze Applikatiekodes een overzicht moeten opvragen om te konstateren dat het Auto Increment veld is opgenomen in de tabellen horende bij die Applikatiekode.


De Listmover control bestaat uit een linker list:

en een rechter list:


In de linker list staan de Tabellen (van de geselekteerde Applikatiekode) waarin het Auto Increment veld nog niet is opgenomen, in de rechter list staan de Tabellen waarin het veld wél is opgenomen. De Listmover control bevat alleen de mogelijkheid om Tabellen van links- naar rechts te verplaatsen, maar niet andersom. Met andere woorden: we kunnen het Auto Increment veld opnemen in de Database, maar als we dat eenmaal gedaan hebben, gaan we het er niet weer uithalen.

Beide Lists bestaan weer uit een aantal kolommen, waarin we o.a. de Tabelnaam, diens omschrijving (conform de helptekst) en zijn grootte terugvinden (in MB). Die grootte kan voor u van belang zijn voor de door u te maken selektie. Natuurlijk kunt ook u ineens alle tabellen van links- naar rechts verplaatsen en verwerken met F1, maar, mogelijk duurt de verwerking dan langer dan u lief is. Ofwel, doe dit in etappes, en ga pas een grotere selektie opgeven als u weet hoe snel dit op uw systeem performt.

Als we een aantal tabellen van links- naar rechts hebben verplaatst (dit doen we door op een Tabel in de linker list te double clicken, of door een serie te selekteren en gebruik te maken van de move-buttons), krijgen deze Tabellen in de rechter list een status 'Pending'. U heeft immers aangegeven dat het Auto Increment veld moet worden opgenomen, maar dat gebeurt nog niet direkt als de Tabel van links- naar rechts wordt verplaatst; u dient eerst nog te verwerken met F1.


Na F1 zullen alle Tabellen die naar de rechter list zijn verplaatst (en dus de status 'Pending' hebben) worden verwerkt. In de ADS Tabel zal een veld _ADSAutoIncrementRecordId worden toegevoegd, en tevens wordt er een Index aangemaakt op dat veld. Tijdens deze verwerking wordt in de Listmover control steeds de status van iedere Tabel bijgewerkt, zo kunnen we zien hoe ver het systeem is met het aanbrengen van het Auto Increment veld.


Als alle Tabellen (die naar de rechter list werden verplaatst) zijn verwerkt, volgt er een melding 'Klaar'.


Let op:
Indien onze ADS Database ook gekoppeld is met een SQL Server Database (module Profit-Transact) dan zal óók de SQL Server Database moeten worden aangepast m.b.t. de opname van dit veld. Nadat het Auto Increment veld is opgenomen in de ADS Database, zal er automatisch een Database Upgrade van de SQL Server Database worden opgestart.

Sinds januari 2019 hoeft niet ieder werkstation meer connected te zijn met de SQL Server Database als we repliceren vanuit Profit; in principe geldt dat alleen de Replikatie-PC een verbinding hoeft te hebben, immers, dié schrijft alle mutaties weg naar de SQL Server Database. Toch zal ook het werkstation van bijv. de Systeembeheerder, en/of de PC waarop Upgrades worden uitgevoerd over toegang tot de SQL Server moeten beschikken, immers, als we de ADS Database wél aanpassen, maar geen 'rechten' hebben om de SQL Server Database aan te passen, zal er iets fout gaan.
Derhalve kontroleert deze tool ook of Profit is ingesteld dat ze gekoppeld is met een SQL Server Database; zo ja, dan moét het werkstation waarop deze tool wordt uitgevoerd een verbinding hebben met deze SQL Server Database. Zo niet, dan volgt onderstaande melding:

Logged

Heart-Profit company ID : HA
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1 RC2 | SMF © 2001-2005, Lewis Media Valid XHTML 1.0! Valid CSS!
Page created in 0.012 seconds with 20 queries.