• システム管理者 182
  • NEWBIE
  • 0 Points
  • Member since 2015

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 11
    Questions
  • 6
    Replies
SOQLにて呼び出したデータを、更に複数条件を指定して、フィルターをかけて絞り込むことなど出来るのでしょうか?
※LIST・MAPでは、LOOP等を行い必要が出てきてしまう為処理時間を要してしまう

もしご存じの方おられましたらご教授伊
Apex開発が初心者な為、的外れな質問を行っておりましたら申し訳ございません
複数LISTをバインド変数として利用した場合に
SOQLにて呼び出す条件が、範囲指定を行っている場合、
どのような条件で情報が取得されるのでしょうか?

    public Map<String , BdgCategory_DispInfo__c> qrBdgDispInfo(List<String> pBdgMidcd , List<Date> pDate ) {                   Map<String , BdgCategory_DispInfo__c> m = new Map<String , BdgCategory_DispInfo__c>();                  List<BdgCategory_DispInfo__c> rs =  [                       SELECT                   Id                  , KEY__c                 , Name                  , KI__c                  , S_Years__c                 , E_Years__c                 , Budget_Category_Large_Code__c                 , Budget_Category_Middle_Code__c                              FROM BdgCategory_DispInfo__c             WHERE Budget_Category_Middle_Code__c =: pBdgMidcd             AND   S_Years__c <=: pDate             AND   E_Years__c  >=: pDate         ];                  for (BdgCategory_DispInfo__c o : rs) {              // コードが空白の場合は、含めない             if (String.isNotBlank(o.Budget_Category_Middle_Code__c)) m.put(o.Budget_Category_Middle_Code__c, o);         }          return m;     }  
標準機能であるリストビューのデータの並べ替えをデフォルト設定し共通設定として使用したいのですが
APEXで制御できるものなのでしょうか?
もしできる方法をお分かりになる方がおられましたらご教授頂きます様宜しくお願い致します
※リストビューの呼び出し元はVisualForceにて作成しています


【補足】
ユーザー単位にリストビューのソート情報が保有されているのですが、全ユーザー同じソート条件で並べ替えを行い情報を表示させたい
 
Visual Force Pageより保存ボタンを押下した際にクラスメソッドを呼び出し、カスタムオブジェクトへ登録しているのですが、
データ登録されるタイミングが、保存ボタンを押下した2回目以降に情報が反映されます
色々調べたのですが何故そのような結果になるのか分かりません
プログラムのどの部分が悪い為そのような結果になるのかアドバイス頂けると助かりません
宜しくお願い致します

例)
2回目 : 1回目のデータが反映
3回目 : 2回目のデータが反映
4回目 : 3回目のデータが反映



----------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void doClick() {
 
        //履歴削除(検索履歴) 所有者削除
        History_Hinban__c[] crDelEvent= [SELECT Id FROM History_Hinban__c];
        try {
            
            if (crDelEvent.size() != 0) delete crDelEvent;
    
        } catch (DmlException e) {
        
        }

        String parameter1 = System.currentPageReference().getParameters().get('parameter1');
        String parameter2 = System.currentPageReference().getParameters().get('parameter2');
        String parameter3 = System.currentPageReference().getParameters().get('parameter3');
        String parameter4 = System.currentPageReference().getParameters().get('parameter4');
        String parameter5 = System.currentPageReference().getParameters().get('parameter5');

        
         // 新規作成用(検索履歴)
        List<History_Hinban__c> crEvent = new List<History_Hinban__c>();
        // 商品情報検索
        Map<String , HinbanMaster__c> mHinban = new Map<String , HinbanMaster__c>();
    
        // 共通クラス生成
        ClsDataInfo clsInfo = new ClsDataInfo();
        List<String> sCode = new List<String>();

        // 検索品番 ※品番が設定されていなければスルー
        String strSetCode = '';
        Integer listCnt = 5;
        for (Integer i = 1; i <= listCnt ; i++) {

            if (i == 1) {
                strSetCode = parameter1;
            } else if (i == 2) {
                strSetCode = parameter2;
            } else if (i == 3) {
                strSetCode = parameter3;
            } else if (i == 4) {
                strSetCode = parameter4;
            } else if (i == 5) {
                strSetCode = parameter5;
            } else {
                strSetCode = null;
            }
            
            if (strSetCode != null && strSetCode != '') {
                sCode.add(strSetCode);
                mHinban = clsInfo.qrHinban(sCode);
    
                if (mHinban.containsKey(strSetCode)) {
                    History_Hinban__c e1 = new History_Hinban__c(
                        JAN__c = mHinban.get(strSetCode).JAN__c ,
                        JMDN__c = mHinban.get(strSetCode).JMDN__c ,
                        Class_Group__c = mHinban.get(strSetCode).Class_Name__c ,
                        Standard__c = mHinban.get(strSetCode).Standard__c ,
                        Redemption_Price__c = mHinban.get(strSetCode).RedemptionPrice__c ,
                        Redemption_Group__c = mHinban.get(strSetCode).Redemption_Class__c ,
                        Hinban__c = mHinban.get(strSetCode).Hinban__c ,
                        Hinmei__c = mHinban.get(strSetCode).Hinmei__c ,
                        AuthorizationNo__c = mHinban.get(strSetCode).Pharma_Affairs_No__c ,
                        New_Price__c = mHinban.get(strSetCode).New_SalesPrice__c ,
                        New_Price_Date__c = mHinban.get(strSetCode).New_Price_Date__c ,
                        Price__c = mHinban.get(strSetCode).SalesPrice__c ,
                        BrandName__c = mHinban.get(strSetCode).Sales_Name__c
                    );
                    crEvent.add(e1);  
                }else{
                    History_Hinban__c e1 = new History_Hinban__c(
                        JAN__c ='' ,
                        JMDN__c = '' ,
                        Class_Group__c = '' ,
                        Standard__c = '' ,
                        Redemption_Price__c = '' ,
                        Redemption_Group__c = '' ,
                        Hinban__c = strSetCode ,
                        Hinmei__c = '' ,
                        AuthorizationNo__c = '' ,
                        New_Price__c = '' ,
                        New_Price_Date__c = '' ,
                        Price__c = '' ,
                        BrandName__c = ''
                    );
                    crEvent.add(e1);  
                }
            }
        }       
        if (crEvent.size() != 0) Insert crEvent;
  }
VisualForceにて画面を作成しているのですが
参照関係にある商品コードの項目にて検索画面からデータを選択した際に
商品コード情報以外の情報も元画面へ返したいのですが、そのような事は可能なのでしょうか?
※standardControllerだけでは実現不可能なものなのでしょうか?
Apex開発に関しては初心者(無知)なもので出来るかどうかも不明な為、教えて頂けると助かります
 
お世話になっております

カスタムオブジェクト(A)にて新規にてレコードを追加する際に、
Insertのトリガにて、別のオブジェクトより情報を取得し、カスタムオブジェクト(B)を作成しています

登録完了後は通常はカスタムオブジェクト(A)の詳細画面が表示されますが、
Apexトリガのアクション内でコードを書き、別画面にてカスタムオブジェクト(B)の情報を表示させることは
出来ないでしょうか?

もし可能なのであればご教授頂けると助かります
宜しくお願い致します
お世話になっております

DataLoaderのバッチコマンドにてデータ取込を行っているのですが、
BulkAPI機能をONにする設定を行い取込処理を実行すると
取込ファイル(CSV)の情報を文字化けした形で認識し取り込むことが出来ません
バッチコマンドにてBulkAPI機能をONする場合下記設定ファイル以外に設定しなければならない箇所があるのでしょうか??
ご存知の方がおられましたらご教授の程宜しくお願い致します

【設定】
process-conf.xml ファイルに下記情報追加
<entry key="sfdc.useBulkApi" value="true"/>
config.properties ファイルに下記情報追加
sfdc.useBulkApi=true

【発生エラー】
2016-03-04 13:21:35,143 INFO [SalesDate_Temporary] mapping.LoadMapper mapData (LoadMapper.java:80) - Mapping for field ???????A?? will be ignored since destination column is empty

<補足>
BulkAPIを使用しなければ問題なく取込ことができます
 
現在バッチ起動にてコマンドよりDataLoaderを用いてSFAのオブジェクト(A)にデータ取込を行っているのですが
サーバーが応答を無くす為か、タイムエラーが発生し全データを取り込めずに処理が終了してしまいます
※発生タイミングはバラバラで正常に終了する場合もあります

以前まではそのような事が発生していなかったと思うのですが
オブジェクト内で複雑な数式、オブジェクト参照等を多数使用すると影響が出るものなのでしょうか?
この件について何か対策等の情報をお持ちの方がおられましたらご教授頂きますようお願いします

【補足】
毎回 約20000件のデータをバッチサイズ200にて取込を行っています
因みにTimeOut時間を延ばしても現象は変わりませんでした
ApexクラスをSandBoxにて作成した後、本来であればテストコード記述し、コードカバー率を75%以上にしなければならないのですが
Apexクラスのコード内にて処理分岐を行っている為全てのコードを通るようなテスト情報を作成することが困難です
コードカバー率の制限に引っかかることなく本番環境へアップする方法はないでしょうか?
Force.com IDEでおこなってもコードカバー率エラーで弾かれてしまいました

対応方法をご存知の方がおられましたらご教授の程宜しくお願い致します
現在バッチ起動にてコマンドよりDataLoaderを用いてSFAのオブジェクト(A)にデータ取込を行っているのですが
全データを取り込んだ後に1度だけオブジェクト(A)のトリガーを発生させたい
理由は、取り込んだ全データを元にデータを集計する処理を行いその結果を別のオブジェクトに値をインサートして行きたいからです
ただ、SFAの機能としてはバッチサイズとしては200単位で、その都度トリガーが発生しており思い通りの動作が行われません(BulkApiでも10000まで)
スケジュールで、データ取込とは別タイミングで動かすしか方法はないでしょうか?
良い方法があれば教えて頂きたく思います
宜しくお願いします
 
お世話になっております

オブジェクトのカスタム項目の高度数式設定にて、レポートを表示する際に指定する期間条件(開始日・終了日)の情報を取得することはでしょうか?
※指定日付を条件として前期会計年度の情報か当期会計年度の情報かを判断を行いたい
もし良い方法がありましたらご教授頂きますようお願い致します

 
お世話になっております

カスタムオブジェクト(A)にて新規にてレコードを追加する際に、
Insertのトリガにて、別のオブジェクトより情報を取得し、カスタムオブジェクト(B)を作成しています

登録完了後は通常はカスタムオブジェクト(A)の詳細画面が表示されますが、
Apexトリガのアクション内でコードを書き、別画面にてカスタムオブジェクト(B)の情報を表示させることは
出来ないでしょうか?

もし可能なのであればご教授頂けると助かります
宜しくお願い致します
お世話になっております

DataLoaderのバッチコマンドにてデータ取込を行っているのですが、
BulkAPI機能をONにする設定を行い取込処理を実行すると
取込ファイル(CSV)の情報を文字化けした形で認識し取り込むことが出来ません
バッチコマンドにてBulkAPI機能をONする場合下記設定ファイル以外に設定しなければならない箇所があるのでしょうか??
ご存知の方がおられましたらご教授の程宜しくお願い致します

【設定】
process-conf.xml ファイルに下記情報追加
<entry key="sfdc.useBulkApi" value="true"/>
config.properties ファイルに下記情報追加
sfdc.useBulkApi=true

【発生エラー】
2016-03-04 13:21:35,143 INFO [SalesDate_Temporary] mapping.LoadMapper mapData (LoadMapper.java:80) - Mapping for field ???????A?? will be ignored since destination column is empty

<補足>
BulkAPIを使用しなければ問題なく取込ことができます
 
現在バッチ起動にてコマンドよりDataLoaderを用いてSFAのオブジェクト(A)にデータ取込を行っているのですが
サーバーが応答を無くす為か、タイムエラーが発生し全データを取り込めずに処理が終了してしまいます
※発生タイミングはバラバラで正常に終了する場合もあります

以前まではそのような事が発生していなかったと思うのですが
オブジェクト内で複雑な数式、オブジェクト参照等を多数使用すると影響が出るものなのでしょうか?
この件について何か対策等の情報をお持ちの方がおられましたらご教授頂きますようお願いします

【補足】
毎回 約20000件のデータをバッチサイズ200にて取込を行っています
因みにTimeOut時間を延ばしても現象は変わりませんでした
ApexクラスをSandBoxにて作成した後、本来であればテストコード記述し、コードカバー率を75%以上にしなければならないのですが
Apexクラスのコード内にて処理分岐を行っている為全てのコードを通るようなテスト情報を作成することが困難です
コードカバー率の制限に引っかかることなく本番環境へアップする方法はないでしょうか?
Force.com IDEでおこなってもコードカバー率エラーで弾かれてしまいました

対応方法をご存知の方がおられましたらご教授の程宜しくお願い致します
現在バッチ起動にてコマンドよりDataLoaderを用いてSFAのオブジェクト(A)にデータ取込を行っているのですが
全データを取り込んだ後に1度だけオブジェクト(A)のトリガーを発生させたい
理由は、取り込んだ全データを元にデータを集計する処理を行いその結果を別のオブジェクトに値をインサートして行きたいからです
ただ、SFAの機能としてはバッチサイズとしては200単位で、その都度トリガーが発生しており思い通りの動作が行われません(BulkApiでも10000まで)
スケジュールで、データ取込とは別タイミングで動かすしか方法はないでしょうか?
良い方法があれば教えて頂きたく思います
宜しくお願いします
 
お世話になっております

オブジェクトのカスタム項目の高度数式設定にて、レポートを表示する際に指定する期間条件(開始日・終了日)の情報を取得することはでしょうか?
※指定日付を条件として前期会計年度の情報か当期会計年度の情報かを判断を行いたい
もし良い方法がありましたらご教授頂きますようお願い致します