martedì 3 marzo 2009

Le basi di una composite application parte 1

Vediamo come si crea una composite application minimale, ma funzionante. In questo primo post verranno creati solamente 2 database su cui applicheremo i concetti delle composite application; le operazioni per creare la composite application li descriverò nei prossimi post.

Innanzitutto occorre creare questi 2 database:
Gestione progetti: useremo il template TEAMROOM, il quale è presente nel vostro client notes, creiamo il DB come da figura sotto (eccetto il fatto di ereditare il design! ) :



















Ore andiamo a creare un altro DB, usando un normalissimo template pernames.ntf, dove gestiremo la rubrica dei clienti:



















Ora apriamo il DB Gestione progetto e configuriamolo (indicativamente) in questo modo:





Ora apriamo il Db Gestione progetto in designer e andiamo a modificare la form principale 'Main Document', inserendo un campo e relativo pulsantino per poter inserire in ogni documento, il contatto di riferimento del documento in oggetto.

Se avete fretta potete fare copia incolla del codice seguente, avend cura di modificare il valore delle 2 costanti in base ai vostri parametri:

Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim Uidoc As NotesuiDocument
Dim doc As NotesDocument
Dim docRubrica As NotesDocument
Dim item As NotesItem
Dim sCustomer As String


Const NOMERUBRICA= "skill\Rubrica.nsf"
Const NOMEVISTA = "People"


Dim s As New NotesSession
Dim w As New NotesUIWorkspace
Set db = s.CurrentDatabase
Set UiDoc = w.CurrentDocument
Set Doc = UiDoc.document
Set collection = w.PickListCollection( PICKLIST_CUSTOM, False, _
db.server, NOMERUBRICA , NOMEVISTA , _
"Elenco clienti", "Selezionare un cliente" )

If collection.Count = 0 Then Exit Sub
Set docRubrica = collection.GetFirstDocument


sCustomer = docRubrica.CompanyName(0)
If sCustomer = "" Then
sCustomer = Trim (docRubrica.LAstName (0) & " " & docRubrica.FirstNAme(0) )
End If
If sCustomer = "" Then
Msgbox "Devi scegliere un contatto con almeno il cognome e il nome azienda inserito", 0+16, "ATTENZIONE"
Exit Sub
End If
doc.Customer = sCustomer
Doc.CustomerContatto = docRubrica.fullname(0)
Call UiDoc.Reload
Call UiDoc.Refresh

Il campo CustomerContatto lo useremo più avanti.
Ora ci resta da fare almeno una vista categorizzata per il campo Customer, e aggiungere tale vista al navigatore del DB progetto. Se volete potete aggiungere una colonna in ogni vista che riporti il cliente, in modo tale da identificare ogni documento per cliente in modo rapido.

Bene, il primo passo è fatto, ora possiamo creare dei documenti di esempio nel DB progetto, unitamente a dei contatti nella rubrica.

Nel prossimo post vedremo le primissime cose di base per le CA

giovedì 23 ottobre 2008

Come portare in produzione una composite application

Ho scaricato il Db per aggiungere i componenti aggiuntivi per creare le vostre composite application dal sito di OpenNtf, e ho installato il componente per la "navigazione" nel mio pc.
Tale componente permette di modificare l'aspetto grafico del navigatore standard delle CA, quando usate più di una pagina al suo interno (spiegherò in un prossimo post come partire da zero con una CA ).
Il navigatore standard delle CA, ha un aspetto orribile, si colloca solo sulla sinistra dello schermo e porta via spazio prezioso.
Il componente aggiuntivo, (in realtà sono 4), da un tocco di grazia, e permette di trasformare il navigatore in una serie di tab, menù a combo oppure in una pulsantiera (di 2 tipi), rendendo l'applicazione gradevole da vedere (oltre che ergonomica).

Il problema dove stà?
Dopo aver scaricato lo zip da openntf e unzippato il suo contenuto nella cartella data, ho aperto il db cl_nav_2.nsf , il quale non è altro che un esempio di come usare i 4 navigatori.
Appena aperto il DB, la CA che sta al suo interno, si accorge che nel client non è presente il componente di cui ha bisogno, pertanto, essa scatena la richiesta di installare tutto il necessario.

Fatto questo , si deve riavviare il client, riaprire il db cl_nav_2.nsf e la CA demo inizia a funzionare.
Bene, a questo punto, potete usare il navigatore all'interno di una vostra applicazione.
Basta editare la CA, aggiungere il componente alla palette del vostro client, così da renderlo disponibile per l'inserimento nella vostra CA.

Sul vostro pc , il DB funzionerà che è una meraviglia, ma appena lo portate in produzione... non succede nulla; i vari pc che aprono l'applicazione non ricevono dal sistema la richiesta di installare il plugin del navigatore...

Dopo varie prove, ho capito da cosa dipende: se aprite la composite demo del navigatore (cl_nav_2.nsf) , editate e controllate i parametri del plugin, noterete circa una decina di parametri, se invece controllate i parametri relativi al plugin dentro alla vostra applicazione, ne vedrete di meno; perchè?
I parametri che spariscono sono quelli non più necessari al vostro client, cioè tutti quei parametri relativi alla prima installazione del componente; visto che il componente da voi usato è quello installato sul vostro client, porta all' impossibilita dei vari pc che aprono per la prima volta la vostra applicazione, di capire come fare a installare il componente.

Pertanto, quello che dovete fare è aggiungere a mano i seguenti (a titolo di esempio) parametri al vostro componente:

url.feature = nrpc:///__8525744d0049743e

com.ibm.rcp.viewId = com.ibm.cademo.util.comp.nav.TabNavigatorView
version.feature = 8.1.20080530
match.feature = compatible
com.ibm.rcp.extensionType = simple view
id.feature = com.ibm.complib2.comp.navigation.feature

Non fate l'errore che avevo fatto io all'inizio, di inserire solamente la prima riga url.feature, perchè al client non è sufficiente per far partire l'installazione.

Spero di essere stato utile e chiaro.

martedì 9 settembre 2008

Selezione documenti multipla

VI siete accorti che nella posta 8.0.x, non sembra possibile selezionare più documenti, se non usando il tasto CTRL e selezionando i documenti con il mouse, e non più tramite il margine sinistro tipico delle viste notes?

Bene, nella 8.0.2 è possibile ripristinare tale opzione, leggete questo link:
http://www-01.ibm.com/support/docview.wss?uid=swg21316311

anche in questo caso è possibile controllarla tramite policy.

Client 802 Standard o Basic?

Nel client 802 è stata aggiunta una nuova funzionalità che permette di lanciare il client BASIC oppure il client STANDARD tramite un parametro del notes.ini.

Il nuovo parametro è UseBAsicNotes=1
il valore 1 lancia la versione BASIC, mentre il valore 0, oppure la mancanza assoluta del parametro, fa partire la versione STANDARD.


Questo implica che è possibile, tramite policy, decidere quali utenti useranno una versione, piuttosto di un altra.

giovedì 21 agosto 2008

Visualizzazioni tabelle dentro ad una form

Promemoria per le cose di cui voglio postare

Promemoria per le cose di cui voglio postare (indicativamente)
  • form
    • tabelle
    • field
    • layout
    • controlli
    • salva e chiudi
  • view
    • colonne
    • selezione documenti
    • navigazione tra documenti e viste
  • frameset
  • javascript
  • Prompt e similari
  • viewtemplate
  • css

Il primo passo

Ciao a Tutti.
Questo è il mio primo post (io speriamo che ma la cavo)
L'intenzione di questo blog è di scrivere su Composite Application (a mio parere la più grande innovazione di Domino 8.0.x), e su cui si scrive pochino (purtroppo...).
Inoltre vorrei scrivere anche articoli di base per lo sviluppo su Web con Domino, cercando di mantenere un filo logico tra i vari post che pubblicherò

Spero solo di non stufarmi presto a scrivere, e di essere regolare nella pubblicazione dei post.

Naturalmente sono benvenute le correzioni su errori o quant'altro o suggerimenti su post futuri.

A ri-ciao.