locked
Functional Question - Ideas Needed RRS feed

  • Question

  • Hello guys,

    I encounter a problem in the following scenario:

    1. I have create a custom entity called Projects
    2. I want to add Internal Contacts(custom) and External Contacts (standard) to each Project. Now I want to give a Function to each contact that participates in the project.

    This is where I'm stuck because I can for instance make a custom entity function and add that to the contact with a lookup, or even a picklist. But every contact can only have one funtion. What I want is to give a function to every contact on the Project level.

    For instance a contact Allen is an project Leader on Project 1 and a Quality Manager in Project 2.

    Anybody has an idea how I can solve this problem? Thanks in advance for your input.

    Thursday, April 16, 2009 9:44 AM

Answers

  • Hi,

    I have done the same thing, and did this;

    1. Add a connection entity (Project Participants) , add roles as drop down, that you will use to connect Project with Internal/External
    2. Make N:1 relationship from the conection entity to project
    3. Make N:1 relationship from the conection entity to contacts (external)
    4. Make N:1 relationship from the conection entity to contacts (internal)
    5. Add the relationship fields to your Project participant form
    6. In your proect form; hide the "Add Existing Project Participant" (see code below).
    7. Alternatively; Add a dummy field "new_relationship" that you copy the name for the selected internal/external, i.e. in the accisiated view can view the contacts in one column.
    8. Adjust the Accociated view for Project participant to view relevant fields (from Project, Contact etc.)
    9. .... and keep on making it as user riendly as possible.....


    Morten


    • Marked as answer by brosimba Thursday, April 16, 2009 3:29 PM
    Thursday, April 16, 2009 11:29 AM
  • You need an entity between contact and project (a cross reference entity with N:1 relationship to contact and N:1 relationshp to project).  This way you can create a record for each contact and give a function to that contact.  You could create five records for each contact with a  different function.

    Then you can do the same for your internal users.
    • Proposed as answer by Tiaan van Niekerk Thursday, April 16, 2009 12:07 PM
    • Marked as answer by brosimba Thursday, April 16, 2009 3:29 PM
    Thursday, April 16, 2009 11:45 AM
    Moderator

All replies

  • maybe
    create a project Role entity and relate contacts from projects to it
    or
    add a picklist on the projects entities called roles
    Tiaan van Niekerk http://crmdelacreme.blogspot.com Skype:tiaan.van.niekerk1
    Thursday, April 16, 2009 9:58 AM
  • Hmmm but then I still have the same problem.

    I need to be able to add a function for each contact. And it could be that 5 contacts have the same function (eg 5 consultants on 1 project)... But at the same time that same consultant can have a different function (eg project leader) on a different project. Do you understand my problem?
    Thursday, April 16, 2009 10:28 AM
  • Hi,

    I have done the same thing, and did this;

    1. Add a connection entity (Project Participants) , add roles as drop down, that you will use to connect Project with Internal/External
    2. Make N:1 relationship from the conection entity to project
    3. Make N:1 relationship from the conection entity to contacts (external)
    4. Make N:1 relationship from the conection entity to contacts (internal)
    5. Add the relationship fields to your Project participant form
    6. In your proect form; hide the "Add Existing Project Participant" (see code below).
    7. Alternatively; Add a dummy field "new_relationship" that you copy the name for the selected internal/external, i.e. in the accisiated view can view the contacts in one column.
    8. Adjust the Accociated view for Project participant to view relevant fields (from Project, Contact etc.)
    9. .... and keep on making it as user riendly as possible.....


    Morten


    • Marked as answer by brosimba Thursday, April 16, 2009 3:29 PM
    Thursday, April 16, 2009 11:29 AM
  • Forgot this (add to form load in Project) (you must find the ID for your Add existing button .....see bold text)

    //****************************************************************************
    //
    // JSCRIPT FUNCTION FOR REMOVING BUTTONS ON ASSOCIATED VIEW
    // Created : 18.11.2008 By: Morten Dybdahl, Capgemini
    //
    //****************************************************************************
    HideAssociatedViewButtons('new_opportunity_new_salesteam', ['Add existing Sales Team Member to this record']);

    function HideAssociatedViewButtons(loadAreaId, buttonTitles)
    {   
    var navElement = document.getElementById('nav_' + loadAreaId);   
    if (navElement != null)   
    {       
    navElement.onclick = function LoadAreaOverride()       
    {           

    // Call the original CRM method to launch the navigation link and create area iFrame           
    loadArea(loadAreaId);           
    HideViewButtons(document.getElementById(loadAreaId + 'Frame'), buttonTitles);       
    }   
    }
    }
    function HideViewButtons(Iframe, buttonTitles)
    {    
    if (Iframe != null )
    {       
    Iframe.onreadystatechange = function HideTitledButtons()
    {             if (Iframe.readyState == 'complete')
    {                
    var iFrame = frames[window.event.srcElement.id];                
    var liElements = iFrame.document.getElementsByTagName('li');                 
    for (var j = 0; j < buttonTitles.length; j++)
    {                    
    for (var i = 0; i < liElements.length; i++)
    {                        
    if (liElements[i].getAttribute('title') == buttonTitles[j])
    {                            
    liElements[i].style.display = 'none';                            
    break;                        
    }                   
    }                
    }            
    }        
    }    
    }
    }

    Thursday, April 16, 2009 11:35 AM
  • You need an entity between contact and project (a cross reference entity with N:1 relationship to contact and N:1 relationshp to project).  This way you can create a record for each contact and give a function to that contact.  You could create five records for each contact with a  different function.

    Then you can do the same for your internal users.
    • Proposed as answer by Tiaan van Niekerk Thursday, April 16, 2009 12:07 PM
    • Marked as answer by brosimba Thursday, April 16, 2009 3:29 PM
    Thursday, April 16, 2009 11:45 AM
    Moderator