我正在嘗試構建一個視覺強制頁面,在其中選擇一個機會,然後選擇與該機會相關的階段。機會保存在表格RecordTypes中,並且階段被保存在表格OpportunityStage中。Salesforce記錄類型和商機階段關係數據庫位置
在什麼表格中保存了關係?
我正在嘗試構建一個視覺強制頁面,在其中選擇一個機會,然後選擇與該機會相關的階段。機會保存在表格RecordTypes中,並且階段被保存在表格OpportunityStage中。Salesforce記錄類型和商機階段關係數據庫位置
在什麼表格中保存了關係?
RecordTypes不是一個表,它們實際上是一組爲特定對象定義的類型,因此該對象的任何記錄(例如任何商機)都可以具有其中的一種類型。它基本上是用於驅動整個行爲的一個超級專業領域 - 您可以爲每個記錄類型使用不同的頁面佈局,不同的選擇列表值,您可以自定義驗證規則等。
階段再次Salesforce配置的'特殊'部分,因爲它們屬於銷售流程,我相信可用的值取決於記錄類型(即它們的作用就像選擇列表一樣)。
長話短說,您不需要擔心這些字段的任何關係,在數據庫方面他們是機會表上的列,而在SFDC中,他們是Opportunity對象上的字段。
編輯 在明確要求後,即需要兩個機會的可用舞臺名稱。
使用Visualforce可以很容易地得到沒有任何描述信息。
確保您的銷售流程已定義並鏈接到機會的適當記錄類型(聽起來像這樣已經完成)。接下來,只需使用自定義控制器(或控制器擴展)加載所需的機會 - 您可以通過頁面參數指定它們,如下所示,但這是一個人爲設計的例子,不包括任何錯誤處理等(或機會選擇):
public with sharing class DualOpptyController
{
public Opportunity oppty1 {get; set;}
public Opportunity oppty2 {get; set;}
public DualOpptyController()
{
oppty1 = [select Id, StageName from Opportunity where id = : ApexPages.currentPage().getParameters().get('o1')];
oppty2 = [select Id, StageName from Opportunity where id = : ApexPages.currentPage().getParameters().get('o2')];
}
}
然後只需使用<apex:inputField>
把StageName
字段拖到頁面:
<apex:page controller="DualOpptyController">
<apex:form >
<apex:inputField value="{!oppty1.StageName}"/>
<apex:inputField value="{!oppty2.StageName}"/>
</apex:form>
</apex:page>
當你想要做你的帳戶的搜索,你可以只使用StageName
領域上都oppty
和oppty2
在控制器。該查詢將像下面這樣(未經):
[Select Id, Name, (select Id, Name from Opportunities where StageName in : liStageNames) from Account]
這個問題當然是,它會返回所有的帳戶,所以我想你會更好的Opportunity
搜索哪裏StageName
等於說oppty1
返回相關的細節和相關的賬戶ID。 然後進行第二查詢以找到機會,其中StageName
等於oppty1
的機會,並且賬戶ID在位於第一查詢中的一組賬戶ID中。您仍然可能遇到返回太多記錄的問題,因此您可能會找到一種方法來優化此方法,或者也可以指定其他參數(例如,本月關閉的機會)。
那麼,如何編寫SOQL查詢來填充selectOptions以獲取與特定的OpportunityType關聯的所有OpportunityStages? – 2011-12-19 11:46:42
我很困惑你爲什麼要構建這樣的頁面 - 標準界面會要求你在開始時選擇記錄類型,然後確定可用於商機的銷售生命週期的階段。 – 2011-12-19 11:53:31
我正在製作一個搜索功能,用於查找在特定階段有兩個機會的賬戶(所以選擇兩個機會,然後爲每個機會選擇一個階段),當然我們有許多自定義階段。 – 2011-12-19 11:57:24