Creazione tabelle sul database

Il codice seguente è stato scritto per PostgreSQL.
Tralasciando le “foreign key” e gli indici nel codice è possibile riconoscere una serie di colonne che utilizzeremo all’interno della nostra customizzazione.
Queste colonne sono già registrate all’interno dell’AD di Adempiere; poi vedremo come costruire altre colonne soltanto per le nostre necessità.


CREATE TABLE adempiere.cus_software
(
cus_software_id numeric(10) NOT NULL,
ad_client_id numeric(10) NOT NULL,
ad_org_id numeric(10) NOT NULL,
isactive character(1) NOT NULL DEFAULT ‘Y’::bpchar,
created timestamp without time zone NOT NULL DEFAULT now(),
createdby numeric(10) NOT NULL,
updated timestamp without time zone NOT NULL DEFAULT now(),
updatedby numeric(10) NOT NULL,
issotrx character(1) NOT NULL DEFAULT ‘Y’::bpchar,
name character varying(60) NOT NULL,
description character varying(255),
help character varying(2000),
CONSTRAINT cus_software_pkey PRIMARY KEY (cus_software_id)
);

Nel codice scritto sopra abbiamo creato la tabella cus_software che conterrà le informazioni relative al tipo software in vendita dall’azienda.
Le colonne ad_client_id, ad_org_id, isactive, created, createdby, updated, updateby, issotrx, name, description ed help sono tutte colonne già esistenti in Adempiere e che noi utilizzeremo per i nostri scopi.
“ad_client_id” è la colonna che identifica il “client” che in Adempiere vuol dire l’azienda utilizzatrice stessa.
“ad_org_id” identifica l’organizzazione alla quale fa parte l’azienda. Se non esistono organizzazioni allora per default corrisponde al nome dell’azienda stessa.
“isactive” è un flag per indicare se un record è attivo o meno nell’application dictionary. Se un record è disattivato il sistema lo ignora da qualsiasi operazione.
“created”, “createdby”, “updated”, “updateby” identificano rispettivamente la data di creazione del record, l’utente che l’ha creato, la data di aggiornamento e l’utente che l’ha aggiornato.
“IssoTrx” identifica se un record rappresenta una transazione di vendita o meno.
“name”, “description”, “help” rappresentano informazioni di carattere informativo che esprimono alcuni significati a seconda di ciò che dobbiamo fare. Nel nostro caso il “Name” sarà il nome della tipologia di software, “description” sarà la descrizione della tipologia, “help” sarà invece un informazione aggiuntiva di supporto per capire le varie tipologie di software.
Queste colonne, già presenti sull’AD di Adempiere, seguono alcuni comportamenti già preimpostati. Ad esempio, quando salviamo un record nella tabella cus_software da Adempiere, in “automatico” vedremo compilarsi le colonne “created”, “craetedby”, “updated”, “updatedby”.
CREATE TABLE adempiere.cus_softwareline
(
cus_software_id numeric(10) NOT NULL,
cus_softwareline_id numeric(10) NOT NULL,
ad_client_id numeric(10) NOT NULL,
ad_org_id numeric(10) NOT NULL,
isactive character(1) NOT NULL DEFAULT ‘Y’::bpchar,
created timestamp without time zone NOT NULL DEFAULT now(),
createdby numeric(10) NOT NULL,
updated timestamp without time zone NOT NULL DEFAULT now(),
updatedby numeric(10) NOT NULL,
issotrx character(1) NOT NULL DEFAULT ‘Y’::bpchar,
name character varying(60) NOT NULL,
description character varying(255),
help character varying(2000),
c_bpartner_id numeric(10) NOT NULL,
CONSTRAINT cus_softwareline_pkey PRIMARY KEY (cus_softwareline_id)
);

La seconda tabella si chiama invece cus_softwareline e rappresenta tutto il software, per ogni tipologia, venduto ai clienti. Per fare questo abbiamo inserito altri due campi oltre a quelli già presenti nella prima tabella:
“cus_software_id” che identifica il riferimento alla prima tabella “cus_software” e riguarda la tipologia del software.
“c_bpartner_id” che identifica il riferimento ai clienti, fornitori o dipendenti dell’azienda. Con questo campo si accede ad una tabella nativa di Adempiere in modo da poterne sfruttare le tabelle anagrafiche.