Page 1 of 3 123 LastLast
Results 1 to 10 of 27

Thread: Relazione tra i moduli

  1. #1
    coniglio is offline Sugar Community Member
    Join Date
    Feb 2008
    Location
    Italy
    Posts
    17

    Default Relazione tra i moduli

    Salve a tutti,
    non riesco a capire alcune cose sulle relazioni:

    1) dal module builder creo un modulo di nome "sinistri"
    questo modulo contiene un campo "relate" che pesca nella tabella accounts (ch dovrebbe legare il sinistro ad un account)

    Ora... se creo un sinistro e lo associo all'account, vorrei che nella videata dell'account mi apparisse il subpannel "sinistri" con dentro il sisnistro creato.
    Ma come faccio ad aggiungere un subpannel agli account? dallo "studio" posso solo modificare i pannelli esistenti.


    2) dal module builder creo sempre il mio modulo "sinistri"
    Sicome vorrei legarlo alle opportunity aggiungo una nuova relazione al pannello opportunity.

    Quando creo un nuovo sinistro, vado ad aggiungere una opportunity e va tutto bene, ma poi dall'opportunity non vedo alcun sinistro collegato.
    Come mai?

    Ultima cosa ma non meno importante è.... come gestisce i legami tra i moduli nelle tabelle mysql?

    Grazie mille
    Paolo

  2. #2
    DragonflyMaster is offline Sugar Community Member
    Join Date
    Dec 2007
    Location
    Rimini, Italy
    Posts
    1,421

    Default Re: Relazione tra i moduli

    Quote Originally Posted by coniglio
    Salve a tutti,
    non riesco a capire alcune cose sulle relazioni:
    Ciao,
    le tue domande non sono banali, cercherò di risponderti con esempi di problemi simili che ho avuto con Sugar 5.
    Quote Originally Posted by coniglio
    1) dal module builder creo un modulo di nome "sinistri"
    questo modulo contiene un campo "relate" che pesca nella tabella accounts (ch dovrebbe legare il sinistro ad un account)

    Ora... se creo un sinistro e lo associo all'account, vorrei che nella videata dell'account mi apparisse il subpannel "sinistri" con dentro il sisnistro creato.
    Ma come faccio ad aggiungere un subpannel agli account? dallo "studio" posso solo modificare i pannelli esistenti.
    Layout e contenuto dei subpanel sono nei file dentro la cartella <sugar-root>\modules\<nome-modulo>\metadata\subpanels\ e nel file <sugar-root>\modules\<nome-modulo>\metadata\subpaneldefs.php.

    Io avevo bisogno di aggiungere il subpanel Accounts nella detailview di un Contact. Ecco cosa ho fatto:

    1. ho copiato il file <sugar-root>\modules\Contacts\metadata\subpanels\ForAccou nts.php nella cartella <sugar-root>\modules\Accounts\metadata\subpanels\
    2. ho modificato il file <sugar-root>\modules\Contacts\metadata\subpaneldefs.php aggiungendo nell'array dei pannelli questo codice:

    Code:
    			'accounts' => array(
    			'order' => 90,
    			'sort_order' => 'asc',
    			'sort_by' => 'name',
    			'module' => 'Accounts',
    			'subpanel_name' => 'ForAccounts',
    			'get_subpanel_data' => 'accounts',
    			'add_subpanel_data' => 'account_id',
    			'title_key' => 'LBL_MODULE_ID',
    			'top_buttons' => array(
    				array('widget_class' => 'SubPanelTopButtonQuickCreate'),
    				array('widget_class' => 'SubPanelTopSelectButton', 'mode'=>'MultiSelect')
    			),
    		),
    In questo modo, in fondo alla detailview di un contatto ho visualizzato il subpanel accounts. Se il subpanel ti serve per modulo custom, ovviamente non avrai un file ForMioModulo.php già costruito, dovrai farlo a mano prendendo spunto da ForAccounts.php o Default.php

    Quote Originally Posted by coniglio
    2) dal module builder creo sempre il mio modulo "sinistri"
    Sicome vorrei legarlo alle opportunity aggiungo una nuova relazione al pannello opportunity.

    Quando creo un nuovo sinistro, vado ad aggiungere una opportunity e va tutto bene, ma poi dall'opportunity non vedo alcun sinistro collegato.
    Come mai?
    Devi creare un subpanel nel modulo Opportunity che ti mostri i "sinistri".
    Quote Originally Posted by coniglio
    Ultima cosa ma non meno importante è.... come gestisce i legami tra i moduli nelle tabelle mysql?

    Grazie mille
    Paolo
    Le relazioni tra moduli sono gestite tramite tabelle che memorizzano gli id delle due tabelle che sono in relazione. Ad esempio la relazione tra Account e Contact prevede l'uso delle tabelle Accounts, Contacts e Account_Contacts.
    What do you think the cookie monster eats ?

  3. #3
    coniglio is offline Sugar Community Member
    Join Date
    Feb 2008
    Location
    Italy
    Posts
    17

    Default Re: Relazione tra i moduli

    Grazie infinite, mi sembra molto chiaro.
    provo e ti faccio sapere.

    Graze ancora

  4. #4
    DragonflyMaster is offline Sugar Community Member
    Join Date
    Dec 2007
    Location
    Rimini, Italy
    Posts
    1,421

    Default Re: Relazione tra i moduli

    Quote Originally Posted by coniglio
    Grazie infinite, mi sembra molto chiaro.
    provo e ti faccio sapere.

    Graze ancora
    Prego, se hai qualche altra domanda chiedi pure.
    Buon lavoro!
    What do you think the cookie monster eats ?

  5. #5
    coniglio is offline Sugar Community Member
    Join Date
    Feb 2008
    Location
    Italy
    Posts
    17

    Default Re: Relazione tra i moduli

    Ciao,
    ho fatto un pò di prove, funziona tutto con i moduli già esisteni, mentre con quelli che ho creato io credo di fare qualche errore.

    dal pannello di admin-->Studio vedo il subpannel che voglio inserire, mentre dalla parte di visualizzazione...dal detail view non visualizza più nessun subpannel.

    Credo che il mio errore sia nella creazione del file ForNome_Modulo.php... ti scrivo qui il codice che ho fatto.

    Il file Sini_Sinistri.php (ovviamente taglio tutta a parte iniziale fino alla fine dei commenti)
    Code:
    $subpanel_layout = array(
    	'top_buttons' => array(
    		array('widget_class' => 'SubPanelTopCreateButton'),
    		array('widget_class' => 'SubPanelTopSelectButton', 'popup_module' => 'Sini_Sinistri'),
    	),
    
    	'where' => '',
    	
    	
    
    	'list_fields' => array(
    		'name'=>array(
    	 		'name' => 'number',
    	 		'vname' => 'LBL_LIST_SINI_SINISTRI_NAME',
    			'widget_class' => 'SubPanelDetailViewLink',
    			'width' => '96%',
    		),
    		
    		'edit_button'=>array(
    			'widget_class' => 'SubPanelEditButton',
    		 	'module' => 'Sini_Sinistri',
    			'width' => '4%',
    		),
    	),
    );
    Ed ecco cosa metto nel subpanneldef.php della cartella Opportunities
    Code:
    'sini_sinistri' => array(
    			'order' => 50,
    			'sort_order' => 'asc',
    			'sort_by' => 'number',
    			'module' => 'Sini_Sinistri',
    			'subpanel_name' => 'ForSini_Sinistri',
    			'get_subpanel_data' => 'sini_sinistri',
    			'add_subpanel_data' => 'sini_sinistri_id',
    			'title_key' => 'LBL_MODULE_ID',
    			'top_buttons' => array(
    				array('widget_class' => 'SubPanelTopButtonQuickCreate'),
    				array('widget_class' => 'SubPanelTopSelectButton', 'mode'=>'MultiSelect')
    			),
    		),
    Riesci a trovare il problema?
    Grazie

  6. #6
    DragonflyMaster is offline Sugar Community Member
    Join Date
    Dec 2007
    Location
    Rimini, Italy
    Posts
    1,421

    Default Re: Relazione tra i moduli

    Avevo iniziato a risponderti stamattina, ma poi il gateway dell'azienda ha deciso di fare le bizze
    Vediamo un po'...
    Il problema potrebbe essere dovuto al nome del file php che usi per il subpanel.
    Il nome che gli hai dato è Sini_SInistri.php, ma nel subpaneldefs.php usi
    PHP Code:
    'subpanel_name' => 'ForSini_Sinistri' 
    prova a rinominare il file in ForSini_Sinistri.php

    Ciao
    What do you think the cookie monster eats ?

  7. #7
    coniglio is offline Sugar Community Member
    Join Date
    Feb 2008
    Location
    Italy
    Posts
    17

    Default Re: Relazione tra i moduli

    Ciao,
    grazie.

    Questa mattina, dopo un pò di peripezzie sono riuscito a far visualizzare il subpannel, ma purtroppo non funzionavano bene le relazioni.
    Ora l'ho rifatto dal principio per eliminare i pasticci ma adesso è sono da capo... non visualizza il subpanel.
    Il nome ho controllato... ora è corretto... non riesco a venirne a capo

    continuo a provare e ti tengo aggiornato, se ti venissero in mente delle altre cose fammi sapere.

    grazie

  8. #8
    coniglio is offline Sugar Community Member
    Join Date
    Feb 2008
    Location
    Italy
    Posts
    17

    Default Re: Relazione tra i moduli

    Ci sono riuscito, ho notato questo file, che sembra fare la differenza:
    <sugar_root>\custom\modules\<nome modulo>\Ext\Vardefs\vardefs.ext.php
    in cui vengono a crearsi gli indici per la relazione tra i due moduli in questo modo:
    Code:
    $dictionary["Opportunity"]["fields"]["sini_sinistri"] = array (
      'name' => 'sini_sinistri',
      'type' => 'link',
      'relationship' => 'Sini_Sinistri_opportunities',
      'source' => 'non-db',
    );
    mi resta però ancora un problema e credo che per voi sia una cosa facile

    Se inserisco il sinistro direttamente dal supanel sinistri dentro al modulo opportunities tutto bene, ma se lo inserisco dal modulo sinistri (pur legandolo con un campo relate a Opportunity) non me lo lega... e quindi non appare nel subpanel sinistri dell'opportunity a cui appartiene.
    Nella tabella del db (Sini_Sinistpportunities) non crea infatti la riga.

    Se guardo il dettaglio del sinistro vedo però il ink alla opportunity... e quindi non capisco cosa fa...

    Potete aiutarmi?
    Grazie dinuovo

  9. #9
    DragonflyMaster is offline Sugar Community Member
    Join Date
    Dec 2007
    Location
    Rimini, Italy
    Posts
    1,421

    Default Re: Relazione tra i moduli

    Quote Originally Posted by coniglio
    mi resta però ancora un problema e credo che per voi sia una cosa facile
    Non dare per scontato questa cosa
    Se inserisco il sinistro direttamente dal supanel sinistri dentro al modulo opportunities tutto bene, ma se lo inserisco dal modulo sinistri (pur legandolo con un campo relate a Opportunity) non me lo lega... e quindi non appare nel subpanel sinistri dell'opportunity a cui appartiene.
    Nella tabella del db (Sini_Sinistpportunities) non crea infatti la riga.

    Se guardo il dettaglio del sinistro vedo però il ink alla opportunity... e quindi non capisco cosa fa...

    Potete aiutarmi?
    Grazie dinuovo
    Io avevo un problema simile, l'ho risolto visualizzando un subpanel anche nell'altro modulo.
    Nel mio caso si trattava di accounts e contacts, ho aggiunto il subpanel Accounts nei dettagli di Contacts e così facendo le relazioni si creano correttamente.
    What do you think the cookie monster eats ?

  10. #10
    coniglio is offline Sugar Community Member
    Join Date
    Feb 2008
    Location
    Italy
    Posts
    17

    Default Re: Relazione tra i moduli

    quindi in pratica togli il campo relate e inserisci dal subpanel ?
    Perchè io ho già entrambi i subpanel, ma se inserisco dal campo relate non mi appare nei subpanel...
    Inoltre se creo un nuovo sinistro dal pannello Opportunity (usando il pulsante crea presente nel subpanel Sinistri) non mi mostra in automatico l'opportunity selezionata all'interno del campo realte. E' come se il campo relate e il subpanel fossero tr a loro completamente autonomi e slegati.

Page 1 of 3 123 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Differenze tra opportunità e leads
    By CagliariCristina in forum Italiano
    Replies: 2
    Last Post: 2008-02-29, 02:55 PM
  2. Problema: creare una relazione tra moduli
    By Endi76 in forum Italiano
    Replies: 11
    Last Post: 2007-10-23, 07:50 PM
  3. Replies: 0
    Last Post: 2007-10-09, 07:55 AM
  4. integrazione moduli
    By Giulianelli in forum Italiano
    Replies: 7
    Last Post: 2007-03-05, 07:53 PM
  5. Moduli
    By webjava in forum Italiano
    Replies: 2
    Last Post: 2005-10-30, 09:12 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •