Salesforce Querying Multi-Select Picklists

Operator Description
= Equals the specified string.
!= Does not equal the specified string.
includes Includes (contains) the specified string.
excludes Excludes (does not contain) the specified string.
; Specifies AND for two or more strings. Use ; for multi-select picklists when two or more items must be selected. For example:

'AAA;BBB'

注:  条件設定内容は必ずPicklistに定義されている選択肢、定義選択肢以外の内容を条件に追加しても、無視される

Javascript Generator Wsse Header

http://www.teria.com/~koseki/tools/wssegen/

String user = ‘elegant’;
String password = ‘w790111’;
DateTime createTime = System.now();
String orgNonce = String.valueOf(Crypto.getRandomLong());
String orgCreate = createTime.format(‘yyyy-MM-dd’) + ‘T’ + createTime.format(‘HH:mm:ss’) + ‘Z’;
System.debug(‘orgNonce:’ + orgNonce);
System.debug(‘orgCreate:’ + orgCreate);
String nonce = EncodingUtil.base64Encode(blob.valueOf(orgNonce));
System.debug(‘nonce:’ + nonce);
String encodeStr = nonce + orgCreate + password;
Blob passwordDigest = Crypto.generateDigest(‘SHA1’, Blob.valueOf(encodeStr));
System.debug(” + passwordDigest.toString() );

Apex Callout

①WebSiteはSFにRemoteSiteする
②Base認証する場合、下記ルールで、ユーザーとパスワードを設定する
例:ユーザーとパスワードは下記例の場合
sample/testpassword →
Base認証変換(Apex)

String baseStr = EncodingUtil.base64Encode(Blob.valueof(‘sample:testpassword’));

取得する文字列は
stub←各サビース依存
stub.inputHttpHeaders_x = new Map();
stub.inputHttpHeaders_x.put(‘Authorization’, ‘Basic ‘+baseStr);

Packageの関連自動インストールScriptとアンインストールScript

global interface UninstallHandler {
  void onUninstall(UninstallContext context)};

global class PostInstallClass implements InstallHandler {
  global void onInstall(InstallContext context) {
    if(context.previousVersion() == null) {
      Account a = new Account(name='Newco');
      insert(a);

      Survey__c obj = new Survey__c(name='Client Satisfaction Survey');
      insert obj;

      User u = [Select Id, Email from User where Id =:context.installerID()];   
      String toAddress= u.Email;
      String[] toAddresses = new String[]{toAddress};
      Messaging.SingleEmailMessage mail = 
        new Messaging.SingleEmailMessage();
      mail.setToAddresses(toAddresses);
      mail.setReplyTo('support@package.dev');
      mail.setSenderDisplayName('My Package Support');
      mail.setSubject('Package install successful');
      mail.setPlainTextBody('Thanks for installing the package.');
      Messaging.sendEmail(new Messaging.Email[] { mail });
      }
    else if(context.previousVersion().compareTo(new Version(1,0)) == 0) {
      Survey__c obj = new Survey__c(name='Upgrading from Version 1.0');
      insert(obj);
      }
    if(context.isUpgrade()) {
      Survey__c obj = new Survey__c(name='Sample Survey during Upgrade');
      insert obj;
      }
    if(context.isPush()) {
      Survey__c obj = new Survey__c(name='Sample Survey during Push');
      insert obj;
      }
    }
  }

旧システム移行する場合、元データ作成システム時間を維持したい、対応案

①Salesforce連絡して、システム項目をOPENする

Ⅰ新数式DateTime追加、
Ⅱ新チェックタイプFlg追加->Default Value: False
Ⅲ新DateTime項目追加 →旧システムの作成時間を格納する
移行データする場合、、csvなどflg=trueに設定して、データ導入
UI画面に作成システム時間場合、数式を表示して
数式= (if flg = true, Ⅲ項目, システム項目.CreateDate)