You need to sign in to do that
Don't have an account?

カスタムタブの表示制御について
カスタムタブの表示制御についてお伺いいたします。
カスタムタブをプロファイルでなく、
ロジックで表示制御を行いたいのですが可能でしょうか?
また、可能であれば具体的なソース等があれば
ご提供いただければと思います。
ご教授のほどよろしくお願いいたします。
function readOnly(count){ }
You need to sign in to do that
Don't have an account?
カスタムタブの表示制御についてお伺いいたします。
カスタムタブをプロファイルでなく、
ロジックで表示制御を行いたいのですが可能でしょうか?
また、可能であれば具体的なソース等があれば
ご提供いただければと思います。
ご教授のほどよろしくお願いいたします。
こちらのサイトに、Salesforceのサービス稼働状況があります。
http://trust.salesforce.com/trust/status/
見ていただくと分かるのですが、いくつかのグループに分けてサーバ群を管理しています。
このサーバグループのことをセールスフォース・ドットコムでは"インスタンス"と呼んでいます。
例えば通常日本のお客様がSalesforceを使うと、https://ap.salesforce.com というURLが利用されます。
これは"APインスタンス"のサーバ群よりサービスが提供されていることを意味します。
これが北米の方だと https://na1.saesforce.comとかになったりします。
なるべく契約した企業の近くにインスタンスが来るように、利用開始時に振り分けます。
(ただしDeveloper EditionはNaインスタンスに固定です)
Mydomainというのは、先程の https://ap.salesforce.com/ という共通のURLではなく、
https://<企業名>.my.salesforce.com/ というURLに変更する標準機能です。
詳しくはヘルプでマイドメインと検索すると、説明があります。
https://developerforcejapan.my.salesforce.com/help/doc/ja/domain_name_overview.htm#topic-title
All Answers
残念ながら、カスタムタブの表示するしないは、Apexなどのロジックで制御することはできないと思います。
SidebarにJavascript仕込んでおいて、onloadのタイミングで該当のタブのDOMごと消す・・・・って方法もありますがあまり良いとは思えません。
代わりに良くやるのが、何かしらのロジックで各画面(タブ)へのLink表示を制御したい場合、
1,VIsualforceページTabを作成して配置
2,そのページをから、画面へのリンクを作成する
3,ページ内で、リンクをLinkを表示するかを制御する
て感じでしょうか。
例えばこんな感じのVFになります。
<apex:page >
<apex:pageBlock rendered="true">
<apex:outputLink value="https://na1.salesforce.com/{!$ObjectType.Account}/o">
<apex:outputText value="{!$ObjectType.Account.Label}" style="font-size:30px"/>
</apex:outputLink>
</apex:pageBlock>
<apex:pageBlock rendered="false">
<apex:outputLink value="https://na1.salesforce.com/{!$ObjectType.Opportunity}/o">
<apex:outputText value="{!$ObjectType.Opportunity.Label}" style="font-size:30px"/>
</apex:outputLink>
</apex:pageBlock>
<apex:pageBlock rendered="true">
<apex:outputLink value="https://na1.salesforce.com/{!$ObjectType.Case}/o">
<apex:outputText value="{!$ObjectType.Case.Label}" style="font-size:30px"/>
</apex:outputLink>
</apex:pageBlock>
//....続く
</apex:page>
要はタブではなく、一枚のメニューページ的なものから遷移させる感じです。
renderd属性をtrue, falseに変えることで表示されるかを変更できますので、実際はApexコントローラ側に表示するかどうかを決めるBooolean型の変数を作成し、それによって制御を行うことになると思います。
こんな感じでいかがでしょうか?
お返事をいただきましてありがとうございます。
下記のvalue内容はエンドユーザ様のご契約時の環境により変わると思いますが
動的に設定することはできますでしょうか?
<apex
URL部分(https://mokamoto-developer-edition.my.salesforce.com)を
エンドユーザ環境用のものとしてどこかのオブジェクトから取得などできるのでしょうか?
ありゃ、失礼しました、そちらMyDomain機能を設定していた場合ですね。
原文修正しておきました。
日本のお客様向けであれば、通常ならば
<apex:outputLink value="https://ap.salesforce.com/{!$ObjectType.Account}/o">
というURLで設定できると思います。
apインスタンス以外のユーザや、My domainを設定しているユーザにも対応したい場合には
Apex側で
baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
と呼び出すことによって、現在のインスタンスに対応したURLが取得できます。
で、VF側で
<apex:outputLink value="{!baseUrl}/{!$ObjectType.Account}/o">
とすれば、取引先タブへのLinkが作成できます。
早速のご回答ありがとうございます。
話がそれてしまうのですが
apインスタンス以外のユーザや、My domainを設定しているユーザとは
どのようなユーザでしょうか?
参考になるサイトなどがございましたら
ご提示いただけると助かります。
こちらのサイトに、Salesforceのサービス稼働状況があります。
http://trust.salesforce.com/trust/status/
見ていただくと分かるのですが、いくつかのグループに分けてサーバ群を管理しています。
このサーバグループのことをセールスフォース・ドットコムでは"インスタンス"と呼んでいます。
例えば通常日本のお客様がSalesforceを使うと、https://ap.salesforce.com というURLが利用されます。
これは"APインスタンス"のサーバ群よりサービスが提供されていることを意味します。
これが北米の方だと https://na1.saesforce.comとかになったりします。
なるべく契約した企業の近くにインスタンスが来るように、利用開始時に振り分けます。
(ただしDeveloper EditionはNaインスタンスに固定です)
Mydomainというのは、先程の https://ap.salesforce.com/ という共通のURLではなく、
https://<企業名>.my.salesforce.com/ というURLに変更する標準機能です。
詳しくはヘルプでマイドメインと検索すると、説明があります。
https://developerforcejapan.my.salesforce.com/help/doc/ja/domain_name_overview.htm#topic-title
ご説明いただきましてありがとうございます。
まだまだ知識不足でした。
ご提供いただきましたサイトを参考にさせていただきます。
ありがとうございまいした。