Database geheugen

Met deze actie kunt u een type, code, status en/of tekst in een geheugentabel laten wegschrijven. Deze geheugentabel zal automatisch worden aangemaakt indien deze nog niet bestaat in de opgegeven database.


Een veel gebruikte toepassing voor de geheugentabel is het vastleggen dat "iets" is uitgevoerd.


Voorbeeld

U wilt automatisch facturen via BPM Server laten versturen. U zou dan een taak kunnen bouwen die het volgende doet:


    1. U vraagt een lijst op met factuurnummers welke nog niet zijn verstuurd.
    2. Voor elk factuurnummer in de lijst wordt een factuur per e-mail te verstuurd.
    3. U legt in de geheugentabel alle factuurnummers vast die zijn verstuurd.


Uitleg stap 1

Hoe weet u welke facturen nog niet zijn verstuurd? Idealiter zou u in de facturentabel van uw ERP-pakket in het record van de factuur een veld moeten kunnen vullen met bijvoorbeeld de waarde "E" (= verstuurd via E-mail). Dat zou het meest eenvoudige zijn, want dan hoeft u in de SQL-query, waarmee u de nog te versturen facturen opvraagt alleen bijvoorbeeld het volgende op te nemen:


SELECT

InvoiceID

FROM

Invoice

WHERE

InvoiceHasBeenSent <> 'E'


Echter, bij de meeste ERP-pakketten is dat niet mogelijk of is het, begrijpelijkerwijs, niet toegestaan om een veld aan te maken of te wijzigen.

In zo'n situatie kunt u de geheugentabel gebruiken. U schrijft dit gegeven dan, middels deze actie, naar deze geheugentabel, zodat u bijvoorbeeld de volgende SQL-query kunt gebruiken:


SELECT

I.InvoiceID

FROM

Invoice I

LEFT OUTER JOIN _TM_GEHEUGEN G ON

G.TYPE = 'VERZFACT'

G.CODE = I.InvoiceId

WHERE

G.CODE IS NULL


In bovenstaande query is een geheugentabel opgenomen met de naam "_TM_GEHEUGEN". Deze naam kunt u zelf bepalen; daarover later meer. U linkt naar deze tabel om te bepalen of het factuurnummer reeds daarin voorkomt (in veld CODE, en TYPE = "VERZFACT"). Indien deze daarin nog niet voorkomt ("G.CODE IS NULL"), weten we dat het factuurnummer nog niet verzonden is.


Het is aannemelijk dat een geheugentabel voor meer doeleinden zal worden gebruikt. Dus niet alleen om te registreren dat facturen zijn verstuurd, maar bijvoorbeeld ook voor inkooporders, orderbevestigingen, etc. Aangezien het mogelijk is dat bijvoorbeeld het nummer 17 zowel kan staan voor een factuurnummer als voor een inkoopordernummer, gebruiken we hier altijd ook een TYPE-veld. Met een type geeft u dan aan waar de code voor staat (is de code een factuurnummer of een inkoopordernummer). De waarde in CODE hoeft niet uniek te zijn. Van de combinatie TYPE + CODE kunnen we dat wel zeggen.


De inhoud van een geheugentabel ziet er bijvoorbeeld als volgt uit:



NB: In bovenstaand voorbeeld ziet u dat de code 17 tweemaal voorkomt, maar dat deze behoren tot verschillende typen ("VERZFACT" en "INKOOPORDER").

Beschrijving parameters

Omschrijving (optioneel)

Uitleg voor deze parameter vind u hier.

Type connectie (verplicht)

Hier geeft u aan welk type databaseconnectie u wilt gebruiken voor de connectie naar de database waarin de geheugentabel zich bevindt (of nog moet worden aangemaakt). U heeft de keuze uit ODBC of OLEDB.

Connectiestring (verplicht)

Hier geeft u de database connectiestring op voor ODBC of OLEDB (afhankelijk van wat u bij de parameter Type connectie heeft gekozen). Deze connectiestring kunt u helemaal zelf invoeren of laten samenstellen via het venster Wijzigen/aanmaken connectiestring ODBC of Wijzigen/aanmaken connectiestring OLEDB, door met de rechtermuisknop te klikken op dit veld en te kiezen voor Connectiestrings aanmaken en vervolgens Connectiestring aanmaken voor ODBC database of Connectiestring aanmaken voor OLEDB database.



NB: Aangezien deze actie gegevens zal wegschrijven naar de geheugentabel, dient u een ODBC- of OLEDB-connectie te gebruiken waarmee u schrijfrechten heeft op de betreffende database.

Naam geheugen tabel (verplicht)

Dit is de naam van de geheugentabel die gebruikt moet worden. Indien de tabel nog niet bestaat zal deze automatisch worden aangemaakt.


Bij een nieuwe, nog niet bestaande, geheugentabel dient u met het volgende rekening te houden:


Kies een naam die nog niet in de database bestaat en naar alle waarschijnlijkheid ook nooit door de database voor andere doeleinden zal worden gebruikt.


Dit laatste is zeker van belang indien u de geheugentabel laat aanmaken in de database van een applicatie, zoals een ERP-pakket. Indien bijvoorbeeld in de applicatie wordt gewerkt met facturen, dan is het niet verstandig om de geheugentabel bijvoorbeeld "FACTUREN" te noemen, ook al bestaat deze misschien nog niet op dat moment.


Kies dus een naam die naar alle waarschijnlijkheid nooit door de applicatie zal worden gebruikt.


Wij raden u daarom aan om altijd de tabelnaam te laten beginnen met een underscore ( "_" ), daarna een afkorting, bijvoorbeeld "MEM", daarna weer een underscore en tenslotte de naam die u wilt.


Bijvoorbeeld

_MEM_MIJNGEHEUGENTABEL

Hiermee heeft u een tabelnaam bepaald die redelijk veilig is wat betreft voorkomen van conflicten met de applicatie.


Indien u een tabelnaam opgeeft die reeds bestaat, dan zal deze bestaande tabel nooit worden overschreven. Dus mocht u per ongeluk een naam van een bestaande tabel opgeven, en deze tabel is geen geheugentabel, dan zal er niets gedaan worden.


NB: Gebruik voor de naam alleen letters en eventueel een underscore als tussenvoegsel(s). Gebruik zeker geen spaties.

Type (verplicht)

In het geheugen legt u een code vast (veld "CODE"). Deze code vertegenwoordigt meestal een uniek gegeven, zoals een factuurnummer of een inkoopordernummer.


Met het type geeft u het type code aan.


Een code hoeft in theorie niet uniek te zijn. De combinatie type/code zou dat wel moeten zijn.


Bijvoorbeeld

Indien u de factuurnummers van verzonden facturen wilt vastleggen in het veld CODE, dan zou u bij type de waarde "VERZONDENFACTUREN" kunnen kiezen.


Het type kan maximaal 50 tekens bevatten. Gebruik bij voorkeur geen spaties.

Code (verplicht)

Deze code vertegenwoordigt meestal een uniek gegeven, zoals een factuurnummer of een inkoopordernummer.


Een code hoeft in theorie niet uniek te zijn. De combinatie type/code zou dat wel moeten zijn.


Bijvoorbeeld

De code 17 kan een factuurnummer zijn, maar in theorie ook een inkoopordernummer. Vandaar dat u bij een code altijd verplicht bent om ook een type op te geven.


De code kan maximaal 50 tekens bevatten.


Indien de opgegeven combinatie type/code reeds bestaat in de geheugen tabel, dan zal deze combinatie overschreven worden. Type/code is dus een zogenaamde unieke sleutel en kan derhalve maar 1 keer in de geheugen tabel voorkomen.

Status (optioneel)

De status kan maximaal uit 1 teken bestaan.


Meestal wordt hier een letter gebruikt, zoals bijvoorbeeld: "V" voor "factuur verwerkt" of "L" voor "lopende order".

Waarde (optioneel)

U kunt hier een vrije tekst vastleggen van maximaal 254 tekens.

Verwijder uit geheugen

Indien u deze optie aanvinkt, zal de opgegeven combinatie type/code uit de geheugentabel worden verwijderd.

Actie bij fout

Uitleg voor deze parameter vind u hier.