Skip to main content
AS400 signon

Disabilitare menu richiesta sistema ad un utente su AS400

AS400 signonChiunque gestisca un server IBM AS400 sa benissimo che alcuni utenti abusano delle funzioni richiamabili dal menu richiesta sistema.

Ad esempio:

  • aprono una sessione alternativa dimenticandosi quella aperta precedentemente e finendo immancabilmente in conflitto con se stessi (non parlo di psicologia ūüėÄ )
  • chiudono brutalmente il lavoro senza rendersene conto …ops

Approfondisci

twittergoogle_pluslinkedinmailby feather
db2 sql

Problema tastiera con DBEdit2 e Java 7 o 8 su Ubuntu 14.04

db2 sqlHo gi√† scritto di DBEdit2 che √® un ottimo tool grafico per eseguire query SQL su vari database tra cui il DB2 for i dell’AS400.

Il problema √® che da quando l’ho installato su Ubuntu 14.04 con java 8 (ma anche con java 7) ogni tanto da problemi con la tastiera: in pratica ad un certo punto non sente pi√Ļ la tastiera mentre continua a sentire il mouse. Per utilizzarlo sono costretto a riavviarlo.

DBEdit2, purtroppo, è un progetto opensource che non ha sviluppi da qualche anno e sul relativo sito indica esplicitamente che lavora con java 6.

Approfondisci

twittergoogle_pluslinkedinmailby feather
db2_sql

Tool grafico per SQL su DB2 AS400: DBEdit

db2_sqlDBEdit è un ottimo tool grafico per eseguire query SQL su vari database tra cui il DB2 for i di AS400 (IBMi).

DBEdit è un ottimo tool grafico per eseguire query SQL su vari database tra cui il DB2 for i di AS400 (IBMi).

Essendo sviluppato in Java richiede che sul PC sia installata la JVM (Java Virtual Machine).

Altri database con cui può lavorare oltre al DB2 for i sono:

  • Oracle
  • DB2 LUW (Linux, Unix, Windows)
  • MySQL
  • SQLite
  • HSQLDB
  • H2
  • Derby
  • Microsoft SQL Server
  • …e qualunque altro DB di cui si abbia il driver JDBC

Approfondisci

twittergoogle_pluslinkedinmailby feather
db2 sql

Performance di DB2 SQL complesse: CTE

db2 sqlLa potenza elaborativa del DB2 SQL for i su IBMi (AS/400) ha ormai raggiunto livelli notevoli e offre spesso pi√Ļ strade per raggiungere lo stesso risultato. Spesso, per√≤, hanno performance diverse a seconda della tecnica utilizzata. In quest’articolo voglio mostrare la tecnica delle CTE (Common Table Expression) che, grazie alla WITH clause, permettono di gestire richieste complesse raggruppando vari step in un unica richiesta multi-step.

I vantaggi offerti sono molteplici, la leggibilit√† dell’istruzione ma anche e soprattutto un vantaggio prestazionale, perch√®:

  • si evita di scrivere su disco tabelle intermedie negli step precedenti in quanto eventuali tabelle temporanee vengono gestite solo in RAM
  • il motore DB2 SQL non vede un’istruzione alla volta ma tutte insieme e questo permette al suo ottimizzatore di calcolare la soluzione migliore per raggiungere il risultato finale

Per capire meglio conviene sempre utilizzare degli esempi.

Approfondisci

twittergoogle_pluslinkedinmailby feather
db2_sql

Funzione SQL DB2 per calcolo anno – settimana

db2_sqlNel DB2 SQL for i (AS/400) esistono funzioni che permettono di calcolare il numero della settimana di una certa data e sono WEEK e WEEK_ISO.
La principali differenze tra loro sono che WEEK considera che la settimana inizia con Domenica e l’1 Gennaio √® sempre parte della PRIMA SETTIMANA dell’anno, mentre WEEK_ISO considera che la settimana inizia con Luned√¨ e la PRIMA SETTIMANA dell’anno √® sempre la prima che contiene Gioved√¨, quindi ad esempio, se Il primo Gioved√¨ dell’anno capita il 6 gennaio significa che la prima settimana √® quella che inizia con luned√¨ 3 gennaio mentre Domenica 1 e Sabato 2 fanno parte dell’ultima settimana dell’anno precedente.

Approfondisci

twittergoogle_pluslinkedinmailby feather
db2_sql

Oggetti SEQUENCE in SQL DB2 for i

db2_sqlGli oggetti sequence in SQL DB2 for i (AS/400) permettono di generare numeri sequenziali univoci. Vengono utilizzati per assegnare valori univoci a chiavi numeriche primarie (in alternativa ai campi IDENTITY ad incremento automatico) oppure ogni qualvolta si necessit√† di generare numeri garantendo l’univocit√†.

L’oggetto si crea con il seguente comando CREATE SEQUENCE. Esempio:

Approfondisci

twittergoogle_pluslinkedinmailby feather
IBMi Access in Java

IBMi Access in Java per Linux e Mac

Eppur si muove … finalmente IBM ha pubblicato la versione beta di IBMi Access in Java.

IBMi Access Solution andrà a far parte della grande famiglia dei prodotti IBMi Access, ovvero quei prodotti client per server IBMi (AS/400 o iSeries).

La notizia è una grande notizia soprattutto perchè, essendo in Java, potrà essere utilizzato anche da chi utilizza Linux o Mac ovvero i classici figli di un dio minore.

Tra le funzionalità previste ci sono:

Approfondisci

twittergoogle_pluslinkedinmailby feather
PHP AS400

PHP e IBM i (AS400) … una realtà

Mi √® capitato fra le mani un articolo riguardante l’integrazione tra PHP ed IBM i (AS/400, iSeries, System i) della principale rivista tecnica nel mondo IBM i (AS/400): SystemNEWS.
Si parla di come l’integrazione tra PHP ed IBM i (AS/400) si stia evolvendo e consolidando e di come questo riscuota un fortissimo interesse da parte delle aziende.
E’ riferito principalmente al mercato americano ed europeo in generale, ma, per la mia marginale esperienza, noto che la stessa cosa sta accadendo anche da noi.
Approfondisci

twittergoogle_pluslinkedinmailby feather
AS400

Configurare SMTP su AS400 per invio e-mail

Configurare l’AS400 per inviare posta elettronica √® molto comodo per molti motivi:

  • permettere agli utenti AS400 di inviare e-mail allegato spool di stampa
  • monitorare eventuali problemi sul sistema con avvisi via e-mail
  • implementare servizi schedulati per inviare file o stampe a chiunque lo necessiti (personale interno, rappresentanti, clienti, fornitori, ‚Ķ)

Per fare questo √® necessario configurare SMTP su AS400. In quest’articolo viene descritto come configurarlo per fare il relay della posta su un’altro mail server. Se il mail server √® all’interno della nostra LAN non c’√® nessun problema se invece ci si appoggia al mail server del provider allora bisogna chiedere la sua autorizzazione (e non √® detto che te la diano).

Approfondisci

twittergoogle_pluslinkedinmailby feather
db2 sql

SQL dinamico in programmi RPG ILE su AS400

db2 sqlIl linguaggio SQL √® estremamente potente con qualunque database e quindi anche sul DB2 dell’AS/400.

Spesso viene utilizzato con istruzioni statiche ovvero legate a tabelle e criteri di selezione o ordinamento predefiniti.

A volte può essere comodo fare un programma RPG per eseguire istruzioni SQL completamente dinamiche ricevendole in input.

L’esempio seguente mostra le istruzioni da inserire in un programma RPG per eseguire una qualunque istruzione SQL ricevuta in INPUT (variabile SQL_INPUT) e generare il risultato in una nuova tabella.
Approfondisci

twittergoogle_pluslinkedinmailby feather

Disabilitazione automatica utenti inattivi su AS400

La gestione dei profili utenti su un server AS/400 (come su qualunque altro server) è molto importante.

E’ fondamentale assegnare solo le autorizzazioni necessarie e ovviamente, quando una persona non ha pi√Ļ la necessit√† di utilizzare l’AS/400, il suo profilo deve essere cancellato o disabilitato.

Per evitare problemi dovuti ad eventuali dimenticanze esiste un comodo comando che permette di disabilitare tutti i profili utenti rimasti inattivi da TOT giorni. Esempio:
Approfondisci

twittergoogle_pluslinkedinmailby feather
db2 sql

Esempi di DB2 SQL per AS/400

db2 sqlIn questo articolo elenco esempi di DB2 SQL per AS400 (anche conosciuto come¬†IBMi,¬†iSeries, …).

L’obbiettivo √® avere un riferimento unico per l’utilizzo di¬†DB2 SQL aggiornando l’articolo ogni volta che ho esempi da documentare.

Di seguito aggiungo i link ad altri articoli relativi al DB2 SQL su IBMi che trovo utili ed interessanti:

Gestione di campi (colonne) ad incremento automatico nelle tabelle del DB2 for IBMi

Oggetti SEQUENCE in DB2 SQL per AS400

Funzione DB2 SQL AS400 per calcolare anno-settimana di una data

Prestazioni di istruzioni DB2 SQL AS400 complesse utilizzando le Common Table Expression

Clausola HAVING

Permette di fare test sul risultato di una funzione (sommatoria, conteggio, …).

Esempio, estrarre dalla tabella dei movimenti contabili solo i codici dei clienti che quest’anno hanno movimenti in DARE superiore a 50.000 euro:

SELECT clifo, sum(impeu) FROM moaz200f
WHERE fclfo ='C' and damov>20110100 and darav='D'
GROUP BY clifo
HAVING sum(impeu)>50000
ORDER BY clifo

ATTENZIONE: HAVING va indicato dopo GROUP BY e prima di ORDER BY.
Approfondisci

twittergoogle_pluslinkedinmailby feather

IBM iSeries Access for Linux

Chi come me usa Linux ma si connette frequentemente a qualche buon vecchio AS/400 ha la necessità di disporre di un valido client 5250 per Linux.

Tra questi, uno dei migliori √® senz’altro IBM iSeries Access for Linux.

Per quanto riguarda Ubuntu e Debian si possono scaricare i pacchetti DEB (32 o 64 bit) a questo indirizzo.

Lo si installa con GDebi facendo doppio click sul file appena scaricato. Personalmente l’ho provato sotto Ubuntu 10.04 e 10.10 senza problemi.

Una volta installato bisogna configurare le sessioni di collegamento avviando il programma per gestire le impostazioni 5250 da Applicazioni ‚Üí Internet ‚Üí IBM iSeries Access.

Approfondisci

twittergoogle_pluslinkedinmailby feather

Stampa etichette barcode su AS400 con stampanti Zebra TLP2844

Configurazione stampante

Per configurare e utilizzare una stampante termica Zebra TLP2844 (o simili basta che supportino il linguaggio Zebra EPL2) con un server AS/400 √® sufficiente configurare la stampante sul PC utilizzando gli appositi driver o anche impostando come driver la stampante ‚ÄúGeneric / Text only‚ÄĚ.

Infine utilizzare iSeries Access per creare una stampante AS/400 collegata alla stampante PC appena creata avendo cura di fornire i seguenti parametri nelle Proprietà:

  • spuntare ‚ÄúConverti i dati di stampa in ASCII su iSeries‚ÄĚ
  • Modello stampante: *NONE

Approfondisci

twittergoogle_pluslinkedinmailby feather