Menu

Creazione tabelle

alan
2005-04-27
2013-05-02
  • alan

    alan - 2005-04-27

    Durante la creazione di una nuova tabella esiste un modo rapido per inserire le colonne standard AD Client ID, AD Org ID, IsActive, Created, CreatedBy,
    Updated, UpdatedBy ?

    Ciao, Alan

     
    • Roberto Onnis

      Roberto Onnis - 2005-04-27

      Ti conviene prima creare la tabella nel DB con uno script sql come questo:

      CREATE TABLE compiere.Prova
      (
          Prova_ID                      NUMBER   (10)                   NOT NULL
        , AD_Client_ID                     NUMBER   (10)                   NOT NULL
        , AD_Org_ID                        NUMBER   (10)                   NOT NULL
        , IsActive                         CHAR     (1)                    DEFAULT 'Y' NOT NULL
                                           CHECK (IsActive in ('Y','N'))
        , Created                          DATE                            DEFAULT SYSDATE NOT NULL
        , CreatedBy                        NUMBER   (10)                   NOT NULL
        , Updated                          DATE                            DEFAULT SYSDATE NOT NULL
        , UpdatedBy                        NUMBER   (10)                   NOT NULL
        , Name                             NVARCHAR2(60)                   NOT NULL
        , Description                      NVARCHAR2(255)
      )
      ;

      CREATE UNIQUE INDEX compiere.Prova ON compiere.Prova
      (
          Prova_ID
      )
      ;

      ALTER TABLE compiere.XX_Prova ADD CONSTRAINT XX_Prova_key PRIMARY KEY
      (
          Prova_ID
      )
      ;

      e solo dopo entrare come System, creare nella window tables&columns dell' Application Dictionary un nuovo record con il nome della tabella del db e far partire il processo "create columns from db". Spero di esserti stato utile.
      Ciao a presto
      Roberto

      ---------------------------------------
      Roberto Onnis
      Project ComplIT Administrator

       
    • alan

      alan - 2005-04-28

      Roberto, grazie per il prezioso aiuto.
      Perdonami ma ora ho un altro problema: durante la definizione del tab, nella nuova finestra, la tabella creata in precedenza non mi compare nella relativa lista a scorrimento.

      Ciao, Alan

       
      • Roberto Onnis

        Roberto Onnis - 2005-04-28

        Forse perch stai entrando come System in italiano, prova a far partire il processo Synchronize Terminology.

         
    • alan

      alan - 2005-04-28

      Hai ragione, attivando il processo di sincronizzazione funziona.

      Ciao, Alan

       
    • alan

      alan - 2005-04-29

      Una volta creata la finestra, relativamente alla tabella in esempio, in fase di esecuzione, non mi  consentito il salvataggio dei dati, con il seguente messaggio:

      Le modifiche non possono essere salvate:
      ORA-01733:
      virtual column not allowed here-

      Attendo qualche suggerimento.

      Grazie, Ciao

       
      • Roberto Onnis

        Roberto Onnis - 2005-04-29

        I motivi potrebbero essere molti:
        1)  Hai creato la classe di persistenza per la tabella? potrebbe dare problemi se cerchi di salvare dati in modalit client server.
        2)  Che tipo di dati hai assegnato alle colonne della tabella in tables and columns? ad esempio ti ricordo che i campi che finiscono con _ID finale hanno un data type 'tabledir'.

         
    • alan

      alan - 2005-04-29

      Per quanto riguarda i campi _ID, sono OK.
      Come creo la classe di persistenza per la tabella?

       
      • Roberto Onnis

        Roberto Onnis - 2005-04-29

        Facendo partire il metodo main della classe /dbport/org/compiere/util/GenerateModel.java. Come argomenti richiede il package di destinazione delle classi, solitamente 'org.compiere.model', ed il path dove vuoi salvare le classi create. GenerateModel fa un controllo preliminare nell 'application dictionary e se trova nuove tabelle crea in automatico le classi del PO. I metodi get e set delle classi create restituiscono e salvano i tipi di dato della tabella in funzione di come sono stati definiti in tables&columns; esempio se hai definito un campo Amount avrai nella classe un tipo di dato BigDecimal e cos via.

         
    • Marco LOMBARDO

      Marco LOMBARDO - 2005-05-02

      Se ti interessa sapere cosa c'e' da fare per aggiungere una tabella, window, menu... dai un'occhiata al codice di Compilo Tools.

      Regards,

      Mar
      Compilo subAdministrator
      compilo.sf.net

       
    • alan

      alan - 2005-05-06

      Ho creato una tabella e la relativa la classe di persistenza, ed ora funziona.
      L'unico problema  che posso operare sulla tabella solo eseguendo Compiere da Eclipse: se faccio partire l'eseguibile che avevo gia installato (stessa versione), non posso modificare la tabella.
      Come mai?

      Ciao

       
      • Roberto Onnis

        Roberto Onnis - 2005-05-06

        Perch i jar in deploy sul server sono compilati senza la tua classe PO che hai creato. Devi quindi ricompilare il codice sorgente di compiere.

         

Log in to post a comment.