2011-10-28 2 views
1

저는 salesforce가 서서히 기다리고 있으며 계정과 기회 등을 연결하는 일부 필드를 얻으려고합니다.SalesForce : 사용자 정의 필드 및 계정 활동 데이터 연결

현재 문제는 계정 활동 세부 정보입니다. 나는 같은 계정에 연결된 데이터 및 세부 정보를 표시 계정의 집합이 있습니다

계정 소유자 계정 이름 우리가이 계정에서 유형 웹 사이트 전화 번호 더 ...

계정에 연결되는 전화, 회의 또는 이메일의 세부 정보를 제공하는 활동 피드. 계정 활동 내의 각 이벤트에는 회의, 전화 또는 이메일 중 하나 인 Type 필드가 있습니다.

: 뭔가 같은 것 sudo는 코드의 측면에서, 그래서

내가 뭘하려고 계정 활동에서 보이는 주요 계정 내에서 사용자 정의 필드를 생성하고, 지난 회의의 날짜를 표시

SELECT DueDate WHERE type=Meeting and DueDate <= TODAY()

또는이 줄을 따라 무엇인가 (나는 기본적으로 SQL을 알고있다).

내 상사가 말한대로 5pm으로 훌륭하게 도움을 줄 수 있다면 누구나 도움이 될 수 있다면 알아 내면 파인트를 사 줄 것이라고 말했습니다!

감사합니다.

---------- 편집 ---------

나는이 같은 노력하고 있어요 :

CASE (TEXT (Activity.Type)를 회의 , TODAY - LastActivityDate)

손님의 수식 필드를 만들고, 그렇게함으로써 유형이라는 이벤트 필드에 도착하려고 메신저 :

Activity.Type

목 는 작동하지 않지만 LastActivityDate에서 가져온 것입니다. 나는이 모든 잘못에 대해 갈 수 있습니다, 그래서 아무것도 도움이 될 것입니다. 건배!

---------- 편집 ---------

This is an image of the field that I am trying to access, I cannot seem to find any way to accessing this Type field

+0

하나의 맞춤 수식 필드를 통해이를 수행 할 방법이 없다고 생각합니다. 이벤트가 삽입되거나 업데이트 될 때마다 (예 : Last_Event_Type__c) 계정의 사용자 정의 필드에 쓰는 Event 객체에 대한 일부 코드, 구체적으로 트리거가 필요합니다. 해당 사용자 정의 필드를 사용하여 시도했던 것처럼 수식 비교를 수행 할 수 있습니다. 무언가 같이 : 'CASE (TEXT (Last_Event_Type__c), Meeting, 오늘 - LastActivityDate) ' –

+0

@MatthewKeefe에 감사드립니다. 이렇게하면 코드를 어디에 넣을까요? 계정의 맞춤 수식 필드 나 사건? – lukehillonline

+0

@MatthewKeefe 방금 귀하의 코드를 시도했으며'Last_Event_Type__c' 또는'Last_Event_Type'을 유효한 것으로 인식하지 못합니다. 다른 아이디어? – lukehillonline

답변

0

수식과 함께, 당신은 정말 LastActivityDate 필드를 사용할 수 없다는 것을 할 수 없다 왜냐하면 그것은 단지 "회의"가 아닌 모든 유형의 이벤트를 추적하기 때문입니다.

이 작업을 수행하는 한 가지 방법은 Event 개체에 After-Insert/After-Update 트리거를 만들어 계정의 "Last_Meeting_Date__c"필드를 업데이트하는 것입니다 (해당 필드를 만들어야 함). 그것은이 트리거에 대한 코드 범위를 확대하도록 요청합니다 그래서 만약, 확인

trigger EventUpdateAccountMeetingDate on Event (after insert, after update) { 
     Map<String,Date> acctToDate = new Map<String,Date>(); 
    for(Event e : Trigger.new){ 
     if(e.Type=='Meeting' && e.AccountId!=null && (!acctToDate.containsKey(e.AccountId) || acctToDate.get(e.AccountId) < e.activityDate)){ 
       acctToDate.put(e.accountId, e.activityDate); 
     } 
    } 
    if(acctToDate.size()>0){ 
     List<Account> accts = [select id, Last_Meeting_Date__c from Account where id in :acctToDate.keyset()]; 
     List<Account> acctsToUpdate = new List<Account>(); 
     for(Account a : accts){ 
      if(a.Last_Meeting_Date__c==null || a.Last_Meeting_Date__c<acctToDate.get(a.id)){ 
       a.Last_Meeting_Date__c = acctToDate.get(a.id); 
       acctsToUpdate.add(a); 
      } 
     } 
     if(acctsToUpdate.size()>0){ 
      update acctsToUpdate; 
     } 
    } 
} 

나는 그것을 배포하려고하지 않았다 : 여기

는 코드입니다. 테스트 클래스를 만들어야 할 수도 있습니다.