• aki124
  • NEWBIE
  • 85 Points
  • Member since 2010

  • Chatter
    Feed
  • 3
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 13
    Replies


Apex+VisualForceで、オブジェクトの値によって、表示されるページを変えたいと考えています。
判別用のpage_baseを作り、そこからsetRedirect(false)なアクションメソッドで画面遷移しようとしたのですが、
このメソッドをActionFunctionでpage_baseから呼んでも画面が遷移せず、はまってしまいました。

setRedirect(true)なら動くのですが、これだとブラウザの戻るボタンが機能しないため、出来れば避けたいと思っています。

なにか他の方法をご存知の方はいらっしゃらないでしょうか?


念のため、動作しないサンプルを載せておきます。

 

<!-- page_base.page -->
<apex:page standardController="Account" extensions="test" showHeader="false" sidebar="false">
  <apex:form ><apex:actionFunction action="{!Redirect}" name="actionRedirect" rerender="dummy" /></apex:form>
  <script type="text/javascript">actionRedirect();</script>
</apex:page>

<!-- pageFirst.page -->
<apex:page standardController="Account" extensions="test" showHeader="false" sidebar="false">
  <H1>PAGE_FIRST</h1>
</apex:page>

<!-- pageSecond.page -->
<apex:page standardController="Account" extensions="test" showHeader="false" sidebar="false">
  <H1>PAGE_SECOND</h1>
</apex:page>

//test.cls
public with sharing class test {
  public test(ApexPages.StandardController controller){ }
  public PageReference Redirect(){
    if(判定)    return first();
    else    return second();
  }
  public PageReference first(){
    PageReference next = Page.pageFirst;
    next.setRedirect(false);
    return next;
  }
  public PageReference second(){
    PageReference next = Page.pageSecond;
    next.setRedirect(false);
    return next;
  }
}

 

 

お世話になっております。

現在、「オンデマンドアプリケーション開発ガイド」を利用して、一通りの機能を試しています。

Develper Editionで実行中です。

 

ガイドのP.111「共有の直接設定ルールの定義」にレコードの詳細ページで[共有]をクリック、とあるのですが、

その[共有]ボタンが表示されません。

 

以下のことは確かめたのですが、特に問題はなさそうです。

 ・該当レコードの所有者でログインしている

 ・オブジェクトのレイアウト編集画面では[共有]ボタンは表示されている

 

この[共有]ボタンの表示/非表示はどこかで設定できるのでしょうか?

 

ご存知の方がありましたら教えていただけるとありがたいです。

 

以上、よろしくお願いします。

  • November 05, 2010
  • Like
  • 0

こんにちは。

 

テーブルの結合について ともかぶるかもしれませんが、参照関係にある複数のオブジェクトの項目を一気に取得したい場合、

SOQLでどのように実現すれば良いのか困っています。

 

[SQL]

 

select a.Name, b.Name from tableA a, tableB b where a.Id = b.Id;

 

Apexだと、いくつかSELECT文を書いて変数を使ってデータ取得すれば良いのですが、できればSOQLでさくっと取得

できるものならしたいと思っています。また、Apex中に埋め込むSOQLを事前にApexExplorerで確認するためにも

使いたいです。

これまで調べてきた中だと、親子関係にあるオブジェクトや、参照関係にあるオブジェクトのうち1つのオブジェクトの項目を

取得することはできるようですが、参照関係にあるオブジェクトから複数のオブジェクトの項目を取得する方法が未だに

わかりません。

 

[子→親オブジェクトへのデータ参照]

SELECT Id, Name, parent.Id, parent.Name 

FROM Child;

 [親→子オブジェクトへのデータ参照]

 

SELECT Id, Name, (SELECT Id, Name FROM Child)FROM Parent;

 

 [参照関係にある2つのオブジェクトから1つのオブジェクトの項目のみ取得]

 

SELECT Id, NameFROM tableAWHERE Id IN (SELECT Id from tableB);

 

 SOQL単体では、参照関係にある複数のオブジェクトの項目を取得することは不可能なのでしょうか。(SQLの例のように)

それとも何か方法があるのでしょうか。

 

【参考】

Force.com Blog:Salesforceのアプリケーション・データモデル 

DeveloperBoardJP:テーブルの結合について


Apex+VisualForceで、オブジェクトの値によって、表示されるページを変えたいと考えています。
判別用のpage_baseを作り、そこからsetRedirect(false)なアクションメソッドで画面遷移しようとしたのですが、
このメソッドをActionFunctionでpage_baseから呼んでも画面が遷移せず、はまってしまいました。

setRedirect(true)なら動くのですが、これだとブラウザの戻るボタンが機能しないため、出来れば避けたいと思っています。

なにか他の方法をご存知の方はいらっしゃらないでしょうか?


念のため、動作しないサンプルを載せておきます。

 

<!-- page_base.page -->
<apex:page standardController="Account" extensions="test" showHeader="false" sidebar="false">
  <apex:form ><apex:actionFunction action="{!Redirect}" name="actionRedirect" rerender="dummy" /></apex:form>
  <script type="text/javascript">actionRedirect();</script>
</apex:page>

<!-- pageFirst.page -->
<apex:page standardController="Account" extensions="test" showHeader="false" sidebar="false">
  <H1>PAGE_FIRST</h1>
</apex:page>

<!-- pageSecond.page -->
<apex:page standardController="Account" extensions="test" showHeader="false" sidebar="false">
  <H1>PAGE_SECOND</h1>
</apex:page>

//test.cls
public with sharing class test {
  public test(ApexPages.StandardController controller){ }
  public PageReference Redirect(){
    if(判定)    return first();
    else    return second();
  }
  public PageReference first(){
    PageReference next = Page.pageFirst;
    next.setRedirect(false);
    return next;
  }
  public PageReference second(){
    PageReference next = Page.pageSecond;
    next.setRedirect(false);
    return next;
  }
}

 

 

Apexコードからバッチ処理を呼んでいるテストコードを作成しています。

 

Apex処理自体はすぐ終了するのですが

バッチ処理は時間差が発生しているため、テストコードで結果を確認するタイミングでは

まだバッチ処理が終了していません。

 

やりたいことはバッチ処理まで終了した結果をApexのテストコードで確認をしたいと考えています。

 

ご存知の方いらっしゃいましたら

ご教授願います。

 

サンプルをご提供頂けたら助かります。

 

説明が言葉足らずな部分がございますが

よろしくお願いいたします。

 

今回Sitesを利用し、カスタムオブジェクトに登録されてるユーザのみ

ログイン可能となるログイン画面を作成したいと考えています。

 

ログイン画面の項目は「ログインID」と「パスワード」です。

 

その際に、カスタムオブジェクトを「ログインID」と「パスワード」で検索するのですが

セキュリティ上、カスタムオブジェクトの「パスワード」項目の型を暗号化テキストにしたいと考えています。

 

暗号化テキストを検索条件としてSOQLを発行すると

「field 'xxxxxxxxx' can not be filtered in query call」と出てしまいます。

 

暗号化テキストを検索条件として使用することは不可能でしょうか?

お世話になっております。

現在、「オンデマンドアプリケーション開発ガイド」を利用して、一通りの機能を試しています。

Develper Editionで実行中です。

 

ガイドのP.111「共有の直接設定ルールの定義」にレコードの詳細ページで[共有]をクリック、とあるのですが、

その[共有]ボタンが表示されません。

 

以下のことは確かめたのですが、特に問題はなさそうです。

 ・該当レコードの所有者でログインしている

 ・オブジェクトのレイアウト編集画面では[共有]ボタンは表示されている

 

この[共有]ボタンの表示/非表示はどこかで設定できるのでしょうか?

 

ご存知の方がありましたら教えていただけるとありがたいです。

 

以上、よろしくお願いします。

  • November 05, 2010
  • Like
  • 0

カスタムオブジェクトとVisualforceページを作成しています。

 

カスタムオブジェクトの中にはカスタム項目で

Userテーブルから参照する項目があります。

 

その項目がログインユーザのレコードだけを

Visalforceページに表示させたいと考えています。

 

String userid = UserInfo.getUserId();

sObject x = [select Id , Name from CustomObject  where  Field__c = :userid];

 

自分のユーザーIDを取得して、それをSOQLに

渡せばできると思ったのですが、上手くいきません。

 

また、whereで指定できる項目には制限があるのでしょうか。

 

何か上手くできる方法があればご教授頂けると幸いです。

 

以上、宜しくお願いいたします。

 

  • May 07, 2010
  • Like
  • 0

以下のようなVisualforceページを作成しています。

 

<apex:dataTable value="{!account.Contacts}" var="contact" cellPadding="4" border="1">
                  <apex:column>
                      <apex:commandLink> {!contact.Name}
                          <apex:param value="{!contact.Id}"/>  → 意味?
                      </apex:commandLink>
                   </apex:column>
</apex:dataTable>

 

paramタグをdeveloper's guideなどをみて同じように記載して

いるのですが、どういう意味(効果)があるのかわかりません。

 

また、commandLinkとして取引先責任者の名前が表示されるのですが

そのリンクをクリックしても、該当のページに飛んでくれません。

 

どのようにすれば該当のページに飛ばせるのでしょうか。

 

どなたかご教授頂けないでしょうか。

ご迷惑をお掛け致しますが、宜しくお願いいたします。

  • May 07, 2010
  • Like
  • 1

ログイン後はHomeタブが表示されると思いますが、

これを変更する方法はありますでしょうか?

 

Developer Editionにログインすると最初にStart Hereというタブが

表示されるので、この中身のどこかで処理を実行していると思うのですが

分からないのでご教授頂けると幸いです。

 

あと、ホームタブはどう頑張っても削除できないのでしょうか?

  • May 04, 2010
  • Like
  • 1

エラー発生時にエラー内容をログファイルに出力しておき、後日ログファイルを確認する。。

force.com で上記を実現する場合の手段は何かあるでしょうか?

 

force.com の監視ログだとがそれに近いと思うのですが、

監視ログは取得できるログ数に制限があるようで、ログの内容が新しいものに上書きされてしまい

ずーと消さないで取っておくのが不可ではないかと思っております。(勝手な想像・・・)

こんにちは。

 

テーブルの結合について ともかぶるかもしれませんが、参照関係にある複数のオブジェクトの項目を一気に取得したい場合、

SOQLでどのように実現すれば良いのか困っています。

 

[SQL]

 

select a.Name, b.Name from tableA a, tableB b where a.Id = b.Id;

 

Apexだと、いくつかSELECT文を書いて変数を使ってデータ取得すれば良いのですが、できればSOQLでさくっと取得

できるものならしたいと思っています。また、Apex中に埋め込むSOQLを事前にApexExplorerで確認するためにも

使いたいです。

これまで調べてきた中だと、親子関係にあるオブジェクトや、参照関係にあるオブジェクトのうち1つのオブジェクトの項目を

取得することはできるようですが、参照関係にあるオブジェクトから複数のオブジェクトの項目を取得する方法が未だに

わかりません。

 

[子→親オブジェクトへのデータ参照]

SELECT Id, Name, parent.Id, parent.Name 

FROM Child;

 [親→子オブジェクトへのデータ参照]

 

SELECT Id, Name, (SELECT Id, Name FROM Child)FROM Parent;

 

 [参照関係にある2つのオブジェクトから1つのオブジェクトの項目のみ取得]

 

SELECT Id, NameFROM tableAWHERE Id IN (SELECT Id from tableB);

 

 SOQL単体では、参照関係にある複数のオブジェクトの項目を取得することは不可能なのでしょうか。(SQLの例のように)

それとも何か方法があるのでしょうか。

 

【参考】

Force.com Blog:Salesforceのアプリケーション・データモデル 

DeveloperBoardJP:テーブルの結合について

datetime型のデータをページに表示する際、タイムゾーンを指定する方法はありますか?(<apex:outputText>を使ったりして)

DBからの値はいつも標準時間しかとれないので、画面表示時日本時間がほしいのですが。。。

 

ご教授いただけたら幸いです。

よろしくお願いいたします。

  • March 01, 2010
  • Like
  • 0