none
Lista Casi

    Domanda

  • Salve a tutti, vorrei realizzare quanto segue:

    All'apertura di un nuovo caso, dopo averlo assegnato ad un cliente, e salvato, vorrei poter vedere in una sezione del form dello stesso caso, una lista dei casi esistenti per per il cliente in questione.

    C'è un modo per ottenerlo ?

    Grazie a tutti

    Silvio 


    Silvio Trotolo OA Point Group S.r.l.

    venerdì 4 luglio 2014 16:03

Risposte

Tutte le risposte

  • Scusatemi, ma avrei bisogno di aiuto per questa mia esigenza. 

    Ci sono soluzioni possibili ?

    Grazie e scusate il sollecito


    Silvio Trotolo OA Point Group S.r.l.

    martedì 15 luglio 2014 08:01
  • Ciao Silvio,

    è necessario dover scrivere del codice per questo requisito.

    Si può aggiungere una subgrid nel form per visualizzare tutti  casi, e poi nell'evento onload del form cambiare il fetchxml della subgrid per visualizzare solo i casi dell'account o del contatto selezionato.


    My blog: www.crmanswers.net - Rockstar 365 Profile

    martedì 15 luglio 2014 11:21
  • Ciao Guido, ho capito, inserisco una subgrid non correlata, e poi sull'onload vado ad inserire il codice per filtrare la visualizzazione legata al cliente inserito nel caso.
    Provo a cercare il codice, ma se non dovessi riuscire ti chiederò un aiuto (se puoi...)

    Grazie mille intanto per la risposta

    Silvio


    Silvio Trotolo OA Point Group S.r.l.

    martedì 15 luglio 2014 12:43
  • Ciao Guido, ho provato ad inserire il seguente codice sull'evento onload del form, ma pur non ricevendo errori la subgrid non viene filtrata

    function filterSubGrid() {
        var incidentsGrid = document.getElementById("incidents"); //grid to filter 
        if (incidentsGrid == null) { //make sure the grid has loaded 
            setTimeout(function () { updateSubGrid(); }, 2000); //if the grid hasn’t loaded run this again when it has 
            return;
        }

        var accountValue = Xrm.Page.getAttribute("customerid").getValue(); //field to filter by 

        var accountId = "00000000-0000-0000-0000-000000000000"; //if filter field is null display nothing 
        if (accountValue != null) {
            var accountId = accountValue[0].id;
        }

        //fetch xml code which will retrieve all the incidents related to the account
        var fetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
        "  <entity name='incident'>" +
        "    <attribute name='new_motivochiamata' />" +
        "    <attribute name='customerid' />" +
        "    <attribute name='createdon' />" +
        "    <attribute name='casetypecode' />" +
        "    <attribute name='new_tipochiamatagi' />" +
        "    <attribute name='ticketnumber' />" +
        "    <attribute name=’ownerId' />" +
        "    <order attribute='createdon' descending='false' />" +
        "    <filter type='and'>" +
        "    <condition attribute='customerid' operator='eq' uitype='customerid' value='" + customerid + "' />" +
        "    </filter>" +
        "    <link-entity name='customerid' from='incidentId' to='customerid' visible='false' link-type='outer' alias='accountincidentId'>" +
        "      <attribute name='customerid' />" +
        "    </link-entity>" +
        "  </entity>" +
        "</fetch>";

        incidentsGrid.control.setParameter("fetchXml", fetchXml); //set the fetch xml to the sub grid   
        incidentsGrid.control.refresh(); //refresh the sub grid using the new fetch xml 
    }  

    nel primo rigo (var incidentsGrid = document.getElementById("incidents"); //grid to filter) devo mettere il nome dell'entità o il nome della subgrid che la visualizza nel form ?

    Hai altri suggerimenti per capire cosa ho sbagliato ?

    Grazie, Silvio


    Silvio Trotolo OA Point Group S.r.l.

    martedì 15 luglio 2014 16:33
  • nel primo rigo va messo il nome della subgrid che hai aggiunto nella form.

    il comando setParamter dipende dalla rollup installata nel tuo crm, se è inferiore alla rollup12 il comando è SetParameter (S maiuscola), se rollup uguale o maggiore di 12 è setParameter (s minuscola)


    My blog: www.crmanswers.net - Rockstar 365 Profile

    mercoledì 16 luglio 2014 09:53
  • Ok, ho messo il nome della subgrid e avendo il RUP 13 ho messo la s minuscola.

    non va comunque però ...

    cercando in rete ho trovato un codice leggermente diverso, e ho provato a modificarlo così, ma ora mi dice che la funzione non è definita.....

    function filterSubGrid() {
       var incidentsGrid = document.getElementById("Casicliente"); //grid to filter 
        if (incidentsGrid == null) { //make sure the grid has loaded 
            setTimeout(function () { updateSubGrid(); }, 2000); //if the grid hasn’t loaded run this again when it has 
            return;
        
       }
        var accountValue = Xrm.Page.getAttribute("customerid").getValue(); //field to filter by 

        var accountId = "00000000-0000-0000-0000-000000000000"; //if filter field is null display nothing 
      
      if (accountValue != null) {
            var accountId = accountValue[0].id;
        }

        //fetch xml code which will retrieve all the incidents related to the account
    var fetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>";
    fetchXml+="<entity name='incident'>";
    fetchXml+="<attribute name='new_motivochiamata' />";
    fetchXml+="<attribute name='customerid' />";
    fetchXml+="<attribute name='createdon' />";
    fetchXml+="<attribute name='casetypecode' />";
    fetchXml+="<attribute name='new_tipochiamatagi' />";
    fetchXml+="<attribute name='ticketnumber' />";
    fetchXml+="<attribute name=’ownerId' />";
    fetchXml+="<order attribute='createdon' descending='false' />";
    fetchXml+="<filter type='and'>";
    fetchXml+="<condition attribute='customerid' operator='eq' uitype='account' value='"customerid"' />";
    fetchXml+="</filter>";
    //<link-entity name='customerid' from='incidentId' to='customerid' visible='false' link-type='outer' alias='incident_customer_account'>" +
    //        <attribute name='customerid' />" +
    //fetchXml+="</link-entity>";
    fetchXml+="</entity>";
    fetchXml+="</fetch>";

        incidentsGrid.control.setParameter("fetchXml", fetchXml); //set the fetch xml to the sub grid   
        incidentsGrid.control.refresh(); //refresh the sub grid using the new fetch xml 
    }  


    Silvio Trotolo OA Point Group S.r.l.

    mercoledì 16 luglio 2014 10:09
  • l'errore funzione non definita probabilmente è a causa del cambio del nome della funzione, la funzione si chiama filterSubGrid ma nella funzione di timeout viene chiamata updateSubGrid (che è inesistente)

    purtroppo questo codice non è supportato (uso di document.getElementById e cambio del fetchxml) quindi non è facile fare un "debug" da remoto, l'ideale sarebbe avere accesso all'ambiente per poter fare dei test.

    il consiglio che ti do è quello di effettuare il debug del javascript tramite internet explorer (qui un articolo http://msdynamicscrmblog.wordpress.com/2013/12/20/dynamics-crm-2011-javascript-debugging-in-internet-explorer-11/) oppure alla vecchia maniera mettendo degli alert nel codice per vedere passo dopo passo cosa accade)


    My blog: www.crmanswers.net - Rockstar 365 Profile

    mercoledì 16 luglio 2014 13:19
  • Ok, chiaro, proverò come dici, perchè pur avendo fatto la modifica che mi hai indicato, non va ancora.

    Una domanda, se ci fosse la necessità, sarebbe possibile farsi realizzare da qualcuno il codice per ottemperare alla nostra esigenza ? ovviamente dietro compenso.

    Tu saresti disponibile ?

    grazie e a presto


    Silvio Trotolo OA Point Group S.r.l.

    giovedì 17 luglio 2014 10:13
  • Ciao Silvio,
    di solito consiglio di rivolgersi a chi ha venduto/installato il crm nella tua azienda per effettuare delle customizzazioni, nel caso avete proceduto in autonomia all'installazione o preferisci rivolgerti a me, puoi contattarmi al mio indirizzo email (guido punto preite chiocciola gmail punto com) per definire i dettagli.

    La modifica può essere fatta da remoto in tempo reale tramite teamviewer o software simili.


    My blog: www.crmanswers.net - Rockstar 365 Profile

    giovedì 17 luglio 2014 10:24
  • Ok, ti scrivo, grazie.

    Silvio Trotolo OA Point Group S.r.l.

    giovedì 17 luglio 2014 10:27