Salesforce小技巧和备注

  1. WFの項目自動更新された項目に対して、項目入力規則はnot fire
  2. ProcessInstanceにて、[SELECT Id, (SELECT Id, StepStatus, Comments FROM Steps),TargetObjectId FROM ProcessInstance]で、該当データLockedされるどうか判断可能
  3. 数値VFに書式化:
    <apex:outputText value="{0,number,#,###}"> 
    <apex:param value="{!detailInfo.HokenKingaku__c/1000}" />  
    </apex:outputText>
  4. M-D関係構築
    M-D1-DD1-DDD1 3階層まで構築可能です
    M-D-Mの場合、DのオブジェクトはMになることができません
  5. スケジュールクラス定義(秒まで定義する)
    DateTime nowTime = DateTime.now().addSeconds(10);
    // 起動CRONを設定する
    String timeStr = nowTime.format('yyyyMMddHHmmss');
    String yy = timeStr.substring(0,4);
    String mm = timeStr.substring(4,6);
    String dd = timeStr.substring(6,8);
    String hh = timeStr.substring(8,10);
    String ms = timeStr.substring(10,12);
    String ss = timeStr.substring(12,14);
    String sch = ss + ' ' +
    			 ms + ' ' +
    			 hh + ' ' +
    			 dd + ' ' +
    			 mm + ' ' +
    			 ' ? ' + yy;
    
    ApexClassXXX m = new ApexClassXXX();
    String jobName = DateTime.now().format('yyyyMMddHHmmssSSS') + '|' + String.valueof(Crypto.getRandomLong());
    String jobId = system.schedule(jobName, sch, m);
  6. 日付書式
    《apex:outputText》
    <apex:outputText value="{0,date,dd/MM/yyyy}">
    <apex:param value="{!DATEVALUE(m_dtimSomeVar)}"/>
    </apex:outputText>
  7. 数値書式
    《apex:outputText value="{0,number,#,###}"》
    《apex:param value="{!detailInfo.HokenKingaku__c/1000}" /》
    《/apex:outputText》
  8. 根据Salesforce Id 判断Sobject类型
    参照文档:
    Returns the three-character prefix code for the object. Record IDs are prefixed with three-character codes that specify the type of the object (for example, accounts have a prefix of 001 and opportunities have a prefix of 006).

        Schema.DescribeSObjectResult R = Account.SObjectType.getDescribe();
        String a = R.getKeyPrefix();
        String sid = 'a00d00000039F47';
        String b = sid.substring(0,3);
        // the data is Account Type Data Type 
        if (a == b) {
           System.debug('it is account data');   
        } else {
    
        }
  9. Visualforce to Excel
    <apex:page standardController="Account" contenttype="application/vnd.ms-excel">
  10. ApexでFormat処理を行う
    public static String paddingLeftZero(Decimal n, Integer len) {
    Integer nlen = (Math.floor(Math.log10(Double.valueOf(n))).intValue() + 1);
    if(nlen >= len) return n.format();
    String s = '';
    for(Integer i=0, l=len-nlen; i<l; i++) {
    s += '0';
    }
    return s + n;
    }
    

コメントを残す

メールアドレスが公開されることはありません。