• iwaki
  • NEWBIE
  • 100 Points
  • Member since 2014

  • Chatter
    Feed
  • 1
    Best Answers
  • 1
    Likes Received
  • 0
    Likes Given
  • 9
    Questions
  • 13
    Replies
お世話になっております。
Salesforce for Outlook に関して、ご存知の方に教えていただきたいです。

Developer Editionにて、Salesforce for Outlookをインストールをしました。
インストールは完了したのですが、システムトレイに表示されるはずのアイコンが存在しません。
また、Outlookを起動しましたが、サイドパネルは非表示(真っ白)になっています。

手順を見ていると、システムトレイからアイコンを押してログインをしなければいけませんが、
その操作ができません。デスクトップ上のアイコンを押しても、起動されません。

もちろん、SalesforceとOutlookは同期できておりません。

ナレッジに記載されていた、「ブランクの場合の対処方法」は実施済みです。
なにか他に方法や問題をご存知の方、お教えください。

宜しくお願い致します。
お世話になっております。

取引先責任者の画面をvisualforceで一部作成してページレイアウトに埋め込むようにして利用しています。

そのvisualforceページ内で以下のように画像データを表示しています。
(取引先責任者のレコードに紐づくような名称でドキュメントに格納されたjpg画像があり、そのURLをAPEXで取得して<apex:image>タグで表示)

ページのcacheをfalseにしてみたのですが、jpg画像を更新してもキャッシュが残り古い画像が表示されてしまいます。
キャッシュを保持せずに常に最新の画像データを取得する方法がございましたらご教示いただきたく存じます。
 
  • February 22, 2017
  • Like
  • 0
お世話になっております。
リードの新規作成画面をvisualforceにしています。
項目の一部にデフォルト値を設定したく、同様の事例を探して下記のようなクラスをvisualforceのextensionsに設定しました。
※編集画面でも同様のvisualforceを使っているため、レコードIdが存在しない状態のときにデフォルト値を設定するようにしています。
public class defaultValueController {
    public defaultValueController(ApexPages.StandardController stdController){
        sObject sObj = stdController.getRecord();
        
          if(sObj.Id == null){
            sObj.put('Company', 'XXXXXXXXX');
            sObj.put('OwnerId', System.UserInfo.getUserId() );
          }
    }
}
想定どおりの動作はできたのですが、デプロイするためのテストクラスはどのように作成したらよいのでしょうか?
方法をご教示いただければと存じます。何とぞよろしくお願いします。
  • August 31, 2016
  • Like
  • 0
お世話になります。
リードの所有者をボタンひとつでログインユーザーに変更できるように見よう見まねで設定をしました。
設定内容は以下の通りです。

カスタムボタンを作成
表示の種類:詳細ページボタン
動作:JavaScriptを実行
OnClick JavaScript:
{!REQUIRESCRIPT('/soap/ajax/37.0/connection.js')} 
{!REQUIRESCRIPT('/soap/ajax/37.0/apex.js')} 
var ret = sforce.apex.execute('ChangeLeadOwner','hogeMethod',{id:"{!Lead.Id}"}); 
window.location.reload() ;
Apexクラス
global class ChangeLeadOwner {
    webService static void hogeMethod(String id){
        Lead le = [SELECT Id, ownerid FROM Lead WHERE Id=:id];
        le.ownerid = UserInfo.getUserId();
        update le;
    }

}
リードのページレイアウトに上記ボタンを配置して、想定どおりの挙動になったのですが、
テストクラスの書き方がわかりません。

テストクラス上でリードのページを生成して、引数を渡せばいいのでしょうか?
webServiceでのテストクラスの書き方がわからなかったのでどなたかご教示いただけないでしょうか。

何卒宜しくお願い申し上げます。



 
  • August 03, 2016
  • Like
  • 0
お世話になります。

取引先責任者のvisualforcePDFをsandboxで作成しております。
関連する職歴というオブジェクトがあり、取引先責任者とは1対Nの関係になります。
上記PDFに職歴を表示するように拡張コントローラからSOQLで職歴を複数レコード取得して表示しているのですが、
コンソールログを見ると職歴をリストで取得したときに「VARIABLE_ASSIGNMENT [30]|sList|{"s":1,"v":"List of size 25 too large to display"}|0x5d87641」
と表示されていました。

リストのサイズが表示容量を超えているような記述ですが、動作上はPDFに正しく表示されていました。
googleで調べたのですがあまりはっきりしなかったのと、何かしらの不具合を示しているのであれば解消したいです。

どなたかわかる方いらっしゃいましたらご教示いただきたく存じます。
何卒宜しくお願いします。

 
  • July 19, 2016
  • Like
  • 0
お世話になっております。

取引先責任者から参照関係にある職歴というオブジェクトがあります。
職歴を取引先責任者のIDをキーにSOQLでリストとして取得し、visualforceのPDFに表示したいと考えています。
ただし下図のように11件の職歴の枠は固定で表示したいと考えています。
User-added image
解決できないのが、dataTableなどで表示しようとすると上図のように3件しか職歴のレコードがない場合は、
職歴4以降が表示されなくなってしまいます。
職歴の番号ごとにSOQLで個別に取得することで解決はできますが、11回クエリを消費するため、
1回で取得でき、かつリストにない番号もあわせて表示する方法はあるものでしょうか。
  • July 11, 2016
  • Like
  • 0
以下のようなトリガーを作成しています。
データローダで100件ほどinsertしたところ、「System.LimitException: Too many SOQL queries: 101」となってしまいました。
 
trigger setTrainingHistory on education_training__c (after insert,after update) {
    
    List<Contact> ths = new List<Contact>();
    List<Contact> con = [SELECT TrainingHistoryforStaffwin__c FROM Contact
                         WHERE Id IN (SELECT staff__c FROM education_training__c
                                       WHERE Id =: Trigger.New)];
    
    for( Contact c : con){
        c.TrainingHistoryforStaffwin__c = '';
            for( education_training__c e : [SELECT Id, result_print__c FROM education_training__c
                                            WHERE staff__c =: c.Id AND (Status__c ='支払済' OR Status__c = '受講済') ORDER BY ProgramSort__c]){
                c.TrainingHistoryforStaffwin__c += e.result_print__c;
            }
        ths.add(c);
    }    
    update ths;
}
具体的にどの部分を修正したらよいものかわからず、現在はinsertするcsvを分割して行っている状態です。
修正内容をご教示いただけないでしょうか。
何卒宜しくお願い申し上げます。
 
  • May 11, 2016
  • Like
  • 0
お世話になっております。
取引先責任者を参照するカスタムオブジェクト(education_training__c)のレコードが更新されたとき同じ取引先責任者を参照するレコードの値を
結合して、取引先責任者のカスタム項目に反映するという更新処理をapexで実装したいと考えております。
匿名ウィンドウでapexを実際に検証したところ上手く動作したのですがトリガを設定して、カスタムオブジェクトのレコードを編集してみたところ、以下のエラーが表示されました。

「エラー:Apex トリガであるsetTrainingHistoryTriggerで予期せぬ例外が発生しました。システム管理者にお問い合わせください。setTrainingHistoryTrigger: execution of AfterUpdate caused by: System.ListException: List index out of bounds: 0: Class.setTrainingHistory.setTrainingHistory: line 11, column 1」

トリガとクラスは以下のように記載しています。
知識がないのがお恥ずかしい限りですが、解決方法をご教示くだされば幸いです。よろしくお願いいたします。

トリガ
trigger setTrainingHistoryTrigger on education_training__c (after update) {
    List<education_training__c> edu = Trigger.New;
    
    If( edu[0].Status__c == '受講済' || edu[0].Status__c == '支払済' ) {
        setTrainingHistory.setTrainingHistory(edu);
        
    }
}
クラス
public class setTrainingHistory {
    public static void setTrainingHistory(education_training__c[] edu){
        // トリガの教育訓練と同じスタッフの「支払済」または「受講済」履歴をリストで取得
        List<education_training__c> etr = [SELECT Id,result_print__c, staff__c From education_training__c 
                                           WHERE staff__c =: Trigger.New[0].Id AND (Status__c = '支払済' OR Status__c = '受講済') 
                                           ORDER BY enddate__c ];
        // 履歴をつなげる変数を初期化
        String txt = '';
        
        // 上記のスタッフを取得
        List<Contact> con = [SELECT Id, Name, TrainingHistoryforStaffwin__c FROM Contact WHERE Id =: etr[0].staff__c LIMIT 1];

        // 履歴をテキストで結合する
        For( integer i = 0 ; i < etr.size() ; i++ ){
            txt += etr[i].result_print__c;
        }
        
        con[0].TrainingHistoryforStaffwin__c = txt;
        update con[0];
        
    }

}


 
  • March 04, 2016
  • Like
  • 0
取引先責任者の標準ページにvisualforceを埋め込んでいます。
visualforceページをインラインで編集して保存したときにそのフレーム内だけが更新され、フレーム内に新しいページが表示されてしまいます。

Visualforceページを保存(キャンセル)したのちに親画面を更新する処理はどうしたらよいでしょうか。

javascriptで、「window.opener.location.reload()」を呼び出すところまではわかったのですが、
更新後の処理をするためにapexでjavascriptをを動かす方法がわかりません。
これ以外の解決方法でも問題ないのですが、どなたか方法をご教示いただければ幸いです。よろしくお願いします。
  • February 16, 2016
  • Like
  • 1
初めて質問をさせていただきます。
リードのカスタム項目にフリガナがあり、半角・全角が混入している状態です。
ワークフロールールで更新時に半角カナを全角カナに変換できるようにしたいと考えております。

起動条件は、regexを使って半角カナが含まれているかを判別すればいいのですが、
半角カナを全角に変換する方法がわからず困っています。

方法をご存知の方がいらっしゃいましたらご教示お願いいたします。
  • November 17, 2015
  • Like
  • 0
取引先責任者の標準ページにvisualforceを埋め込んでいます。
visualforceページをインラインで編集して保存したときにそのフレーム内だけが更新され、フレーム内に新しいページが表示されてしまいます。

Visualforceページを保存(キャンセル)したのちに親画面を更新する処理はどうしたらよいでしょうか。

javascriptで、「window.opener.location.reload()」を呼び出すところまではわかったのですが、
更新後の処理をするためにapexでjavascriptをを動かす方法がわかりません。
これ以外の解決方法でも問題ないのですが、どなたか方法をご教示いただければ幸いです。よろしくお願いします。
  • February 16, 2016
  • Like
  • 1
お世話になっております。
リードの新規作成画面をvisualforceにしています。
項目の一部にデフォルト値を設定したく、同様の事例を探して下記のようなクラスをvisualforceのextensionsに設定しました。
※編集画面でも同様のvisualforceを使っているため、レコードIdが存在しない状態のときにデフォルト値を設定するようにしています。
public class defaultValueController {
    public defaultValueController(ApexPages.StandardController stdController){
        sObject sObj = stdController.getRecord();
        
          if(sObj.Id == null){
            sObj.put('Company', 'XXXXXXXXX');
            sObj.put('OwnerId', System.UserInfo.getUserId() );
          }
    }
}
想定どおりの動作はできたのですが、デプロイするためのテストクラスはどのように作成したらよいのでしょうか?
方法をご教示いただければと存じます。何とぞよろしくお願いします。
  • August 31, 2016
  • Like
  • 0
お世話になります。
リードの所有者をボタンひとつでログインユーザーに変更できるように見よう見まねで設定をしました。
設定内容は以下の通りです。

カスタムボタンを作成
表示の種類:詳細ページボタン
動作:JavaScriptを実行
OnClick JavaScript:
{!REQUIRESCRIPT('/soap/ajax/37.0/connection.js')} 
{!REQUIRESCRIPT('/soap/ajax/37.0/apex.js')} 
var ret = sforce.apex.execute('ChangeLeadOwner','hogeMethod',{id:"{!Lead.Id}"}); 
window.location.reload() ;
Apexクラス
global class ChangeLeadOwner {
    webService static void hogeMethod(String id){
        Lead le = [SELECT Id, ownerid FROM Lead WHERE Id=:id];
        le.ownerid = UserInfo.getUserId();
        update le;
    }

}
リードのページレイアウトに上記ボタンを配置して、想定どおりの挙動になったのですが、
テストクラスの書き方がわかりません。

テストクラス上でリードのページを生成して、引数を渡せばいいのでしょうか?
webServiceでのテストクラスの書き方がわからなかったのでどなたかご教示いただけないでしょうか。

何卒宜しくお願い申し上げます。



 
  • August 03, 2016
  • Like
  • 0
お世話になっております。

取引先責任者から参照関係にある職歴というオブジェクトがあります。
職歴を取引先責任者のIDをキーにSOQLでリストとして取得し、visualforceのPDFに表示したいと考えています。
ただし下図のように11件の職歴の枠は固定で表示したいと考えています。
User-added image
解決できないのが、dataTableなどで表示しようとすると上図のように3件しか職歴のレコードがない場合は、
職歴4以降が表示されなくなってしまいます。
職歴の番号ごとにSOQLで個別に取得することで解決はできますが、11回クエリを消費するため、
1回で取得でき、かつリストにない番号もあわせて表示する方法はあるものでしょうか。
  • July 11, 2016
  • Like
  • 0
以下のようなトリガーを作成しています。
データローダで100件ほどinsertしたところ、「System.LimitException: Too many SOQL queries: 101」となってしまいました。
 
trigger setTrainingHistory on education_training__c (after insert,after update) {
    
    List<Contact> ths = new List<Contact>();
    List<Contact> con = [SELECT TrainingHistoryforStaffwin__c FROM Contact
                         WHERE Id IN (SELECT staff__c FROM education_training__c
                                       WHERE Id =: Trigger.New)];
    
    for( Contact c : con){
        c.TrainingHistoryforStaffwin__c = '';
            for( education_training__c e : [SELECT Id, result_print__c FROM education_training__c
                                            WHERE staff__c =: c.Id AND (Status__c ='支払済' OR Status__c = '受講済') ORDER BY ProgramSort__c]){
                c.TrainingHistoryforStaffwin__c += e.result_print__c;
            }
        ths.add(c);
    }    
    update ths;
}
具体的にどの部分を修正したらよいものかわからず、現在はinsertするcsvを分割して行っている状態です。
修正内容をご教示いただけないでしょうか。
何卒宜しくお願い申し上げます。
 
  • May 11, 2016
  • Like
  • 0
お世話になっております。
Salesforce for Outlook に関して、ご存知の方に教えていただきたいです。

Developer Editionにて、Salesforce for Outlookをインストールをしました。
インストールは完了したのですが、システムトレイに表示されるはずのアイコンが存在しません。
また、Outlookを起動しましたが、サイドパネルは非表示(真っ白)になっています。

手順を見ていると、システムトレイからアイコンを押してログインをしなければいけませんが、
その操作ができません。デスクトップ上のアイコンを押しても、起動されません。

もちろん、SalesforceとOutlookは同期できておりません。

ナレッジに記載されていた、「ブランクの場合の対処方法」は実施済みです。
なにか他に方法や問題をご存知の方、お教えください。

宜しくお願い致します。
お世話になっております。
取引先責任者を参照するカスタムオブジェクト(education_training__c)のレコードが更新されたとき同じ取引先責任者を参照するレコードの値を
結合して、取引先責任者のカスタム項目に反映するという更新処理をapexで実装したいと考えております。
匿名ウィンドウでapexを実際に検証したところ上手く動作したのですがトリガを設定して、カスタムオブジェクトのレコードを編集してみたところ、以下のエラーが表示されました。

「エラー:Apex トリガであるsetTrainingHistoryTriggerで予期せぬ例外が発生しました。システム管理者にお問い合わせください。setTrainingHistoryTrigger: execution of AfterUpdate caused by: System.ListException: List index out of bounds: 0: Class.setTrainingHistory.setTrainingHistory: line 11, column 1」

トリガとクラスは以下のように記載しています。
知識がないのがお恥ずかしい限りですが、解決方法をご教示くだされば幸いです。よろしくお願いいたします。

トリガ
trigger setTrainingHistoryTrigger on education_training__c (after update) {
    List<education_training__c> edu = Trigger.New;
    
    If( edu[0].Status__c == '受講済' || edu[0].Status__c == '支払済' ) {
        setTrainingHistory.setTrainingHistory(edu);
        
    }
}
クラス
public class setTrainingHistory {
    public static void setTrainingHistory(education_training__c[] edu){
        // トリガの教育訓練と同じスタッフの「支払済」または「受講済」履歴をリストで取得
        List<education_training__c> etr = [SELECT Id,result_print__c, staff__c From education_training__c 
                                           WHERE staff__c =: Trigger.New[0].Id AND (Status__c = '支払済' OR Status__c = '受講済') 
                                           ORDER BY enddate__c ];
        // 履歴をつなげる変数を初期化
        String txt = '';
        
        // 上記のスタッフを取得
        List<Contact> con = [SELECT Id, Name, TrainingHistoryforStaffwin__c FROM Contact WHERE Id =: etr[0].staff__c LIMIT 1];

        // 履歴をテキストで結合する
        For( integer i = 0 ; i < etr.size() ; i++ ){
            txt += etr[i].result_print__c;
        }
        
        con[0].TrainingHistoryforStaffwin__c = txt;
        update con[0];
        
    }

}


 
  • March 04, 2016
  • Like
  • 0
お世話になります。
値の引継ぎについてご教示頂きたくお願い致します。

元:商談にあるカスタム項目(A)
先:カスタムオブジェクト内のカスタム項目(B)
動作:商談に設置したカスタムボタンでカスタムオブジェクトの新規レコードを作成する際に特定の項目の値を引き継ぎたい
--------------
カスタムボタンに埋め込む構文がうまく作成できずに困っています。
実装された経験のある方がいらっしゃいましたらご教示頂けると助かります。

宜しくお願い致します。
 
ご存知の方がいらっしゃればアドバイスをお願い致します。

このたび、自社salesforceのリニューアルを実施しているのですが、
本番環境は運用中のため、SandBoxにて取引先、取引先責任者、商談をテスト的に構築しました。

取引先や取引先責任者の画面は大幅な変更がないため、移行の必要性はないのですが、
商談オブジェクトに限ってはカスタマイズが入っているため、SandBoxより本番環境に
そっくりそのまま移行したいと考えております。

どのような手順でアップしたらよいでしょうか?
初歩的な質問で申し訳ございませんが、アドバイスをお願いします。

※特にApexやVisualforceは利用していません。
※本番環境で登録されているデータはDataLoaderを活用して再度アップロードを検討しています。
取引先責任者の標準ページにvisualforceを埋め込んでいます。
visualforceページをインラインで編集して保存したときにそのフレーム内だけが更新され、フレーム内に新しいページが表示されてしまいます。

Visualforceページを保存(キャンセル)したのちに親画面を更新する処理はどうしたらよいでしょうか。

javascriptで、「window.opener.location.reload()」を呼び出すところまではわかったのですが、
更新後の処理をするためにapexでjavascriptをを動かす方法がわかりません。
これ以外の解決方法でも問題ないのですが、どなたか方法をご教示いただければ幸いです。よろしくお願いします。
  • February 16, 2016
  • Like
  • 1