Memos About SalesForce

Salesforceにハマってたこと!

- About Salesforce Post Blog -

SFDC 組織キャッシュとセッションキャッシュの使用 BusScheduleCacheクラス

自分が下記のクラスで通ったので

共有したいと思います

public class BusScheduleCache {   
    // Get partition
    private Cache.OrgPartition part;
    String partitionName = 'local.BusSchedule';
    
    public BusScheduleCache () {
        if(partitionName !=null){
            Cache.OrgPartition orgPart = new Cache.OrgPartition(partitionName);
            if(orgPart != null){
                part = orgPart;
            }
        }
    }
    
    public void putSchedule(String busLine, Time[] schedule) {
        if (part != null){
            part.put(busline, schedule);
        }
    }
        
    public Time[] getSchedule(String busLine) {
        Time[] schedule = new List<Time>();
        
        // Get a cached value
        Object obj = part.get(busLine);
        // Cast return value to a specific data type
        Time t2;
        if (obj != null) {
            t2 = (Time)obj;
        }
        if (t2 != null) {
            schedule.add(t2);
        }
        else {
            Time t3 = Time.newInstance(8,0,0,0);
            if (t3 != null){
                schedule.add(t3);
            }
            Time t4 = Time.newInstance(17,0,0,0);
            if (t4 != null){
                schedule.add(t4);
            }
        }     
        return schedule;
    } 
      
}

SFDC セッションベースの権限セット

TrailHeadのセッションベースの権限セットを有効化する

Accounts Temp Accessのフロー作成

Read Only Cloneプロファイルのコピー

Read Only Cloneのプロファイルをコピーして、ニーズに応じてユーザを作成し

アサインする

そして、コピーして作成したプロファイルに「Manage Flow」権限を有効する

f:id:jude2016:20180921111348p:plain

Accounts Temp Accessってフローを作成

f:id:jude2016:20180921111432p:plain

フローは自動的に開始させるため、

レコードルックアップ要素をキャンパスに入れて

設定をして、フローが自動的に開始できるようにさせる

f:id:jude2016:20180921111553p:plain

「Temporary Account Edit」は探したい権限セットのラベル名

「{!TemporaryAccountEdit}」は探した権限セットの名前をこの変数に設定する f:id:jude2016:20180921115126p:plain

{!TemporaryAccountEdit}はレコードルックアップ要素で設定してた変数で、

中身は対象権限セットの名前が入っている

デバッグ結果

成功前提:権限セットに実行ユーザをアサインしたこと

下の写メの右側に上の枠がレコードルックアップ要素の実行 下の枠が権限セット有効 f:id:jude2016:20180921114319p:plain

公開鍵

使用構成
ssh-keygen [オプション] -t 鍵タイプ [-N 新しいパスフレーズ] [-C コメント] [-f 鍵ファイル]
ssh-keygen -p [-P 古いパスフレーズ] [-N 新しいパスフレーズ] [-f 鍵ファイル]
ssh-keygen -i [-f 鍵ファイル]
ssh-keygen -l [-f 鍵ファイル]

仕事上で急に公開鍵を作って~って言われたので、

今回、その作成したノウホウを共有したいと思います

目次

公開鍵の作成

用事するもの
1:Git for windowsを自分のPCにインストール
  インストールの時に、全部デフォルトでOK


f:id:jude2016:20180920145114p:plain

使用可能な作成ツール

1:Git For windows 今回、これを使った
2:Tera Term ➡推薦先

Gitのどの機能を使う

Git Bashを使いたい 起動はプログラムメニューから「Git Bash」を起動します。

Windows10なら、デスクトップ画面の左下の「〇 ここに入力して検索」にGitを入力したら、Git Bashが出ると思います f:id:jude2016:20180920145556p:plain

ssh-keygenコマンドの存在確認
# コマンドの存在確認 (パス(/usr/bin/ssh-keygen)が表示されたら問題ありません)
$ which ssh-keygen
公開鍵・秘密鍵を作成する

まず users/yourusertname/のファルダの下に「.ssh」ってフォルダを作成する

# フォルダ作成
$ mkdir ~/.ssh && cd ~/.ssh

直接画面上で、クリック作業で作成してもいい

# 秘密鍵・公開鍵の作成
$ ssh-keygen -t rsa -b 2048 -C "xxxxxxxxxx" -f ~/.ssh/id_rsa

-tは鍵のタイプを指定するためのオプション:ここでは、RSAタイプに指定する
-bはビット数を指定するためのオプション:ここでは、2048に指定する
-Cはコメントを指定するためのオプション:好きにして
-fはファイル名を指定するためのオプション:ここでは、id_rsaってふぃある名に指定する

Enterを押したら

# 秘密鍵・公開鍵の作成
$ ssh-keygen -t rsa -b 2048 -C "xxxxxxxxxx" -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): あなたが入力する

passphraseは秘密鍵を暗号化するためのパスワードのようなもので省略も可能ですが
特に理由が無ければ設定されることをお勧めします。
同じパスフレーズを2箇所に入力して下さい。

入力してEnterを押したら

# 秘密鍵・公開鍵の作成
$ ssh-keygen -t rsa -b 2048 -C "xxxxxxxxxx" -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:  <-- もう一度、パスフレーズを入力( Enterキーを押す )
# 秘密鍵・公開鍵の作成
$ ssh-keygen -t rsa -b 2048 -C "xxxxxxxxxx" -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
# ファイル確認
$ ls
id_rsa id_rsa.pub

まとめ

公開鍵で閉めて、秘密鍵で開ける

SFDC Big Object リリース ワークベンチ利用

Big Objectはメタデータを使用して、

しかリリースできない

今回、やったことを共有します。写メ付きで好きでしょう(笑)

f:id:jude2016:20180919174234p:plain

赤い枠をzipファイルにして

ワークベンチの「migration」タブのデプロイの順でアクセスして

下記のように操作して

f:id:jude2016:20180919174444p:plain

Check Onlyは仮にリリースする、変更セットのクイックリリースの感じ、要はお試し

結果が

f:id:jude2016:20180919174732p:plain

確認したら

f:id:jude2016:20180919174854p:plain

SFDC コールアウトのテスト

実は ApexクラスでHTTP Calloutsの処理をするクラスに対して

普通にテストクラスを作って

実行すると次のようなエラーが発生して処理がスキップされてしまいます。

f:id:jude2016:20180919142756p:plain

HTTP Calloutsのテストクラスを作成するには"HttpCalloutMock"を実装した

クラスが必要です。

これを用意しテストクラス内で

次のような宣言で呼び出すことで擬似的な

HTTP Calloutsの結果を取得することができるとのことです。

Test.setMock(HttpCalloutMock.class, new YourImplementsHttpCalloutMockClass());

今回、郵便番号検索機能を例にしたテストクラスを

共有したいと思います

続きを読む

SFDC RemoteAction 静的リソースでの使用

RemoteActionを使い、

Apex側のメソッドをコールできる

しかし

JS側でコールする部分を別ファイル(静的リソース)に用意しロードすると

使える?

今回、この部分について

共有したいと思います

続きを読む

jQuery .click(function(){}) or .on('click', 'id', function() {})

SFDCのVF側で開発をすると

は避けれない

今回、タイトルのように

clickイベントの注意点を共有したいと思います

続きを読む

SFDC TrailHead MetadataExampleクラス

TrailHeadの

自動設定変更のためのシステム管理者ツールの作成

をして見た

クラスを公開します。

public class MetadataExample {

    public void updateMetadata () {
        Metadata.CustomMetadata customMetadata = new Metadata.CustomMetadata();
        customMetadata.fullName = 'MyNamespace__MyMetadataTypeName.MyMetadataRecordName';
        
        Metadata.CustomMetadataValue customField = new Metadata.CustomMetadataValue();
        customField.field = 'customField__c';
        customField.value = 'New value';
        
        customMetadata.values.add(customField);
        
        // add metadata
        Metadata.DeployContainer deployContainer = new Metadata.DeployContainer();
        deployContainer.addMetadata(customMetadata);
        
        // deploy 
        Id asyncResultId = Metadata.Operations.enqueueDeployment(deployContainer, null);
    }

}

API Callback JSONP JSONの違い

この間、zipCloudのAPIを試して

※ZipCloudの使用上の注意点も記載している

結局APEXで対象した

しかし、VF側でやろうとしていたので、

その時にあっていた問題に対して、自分のものを

共有したいと思います

欲しけりゃくれてやる・・・。

探せ!

この世の全てをそこに置いてきた〜笑

続きを読む

SFDC VF側のJson形式 Encode Decodeの対応

前にzipCloudの郵便番号検索APIの使用について

共有していた、

今回、その中に直面していた問題を

さらにここで共有したいと思います

それがなにかというと、APIをコールして、返ってきた結果に【変な文字列】が混ざって

住所の自動設定の処理がうまくできませんでした。

この解決方法を実は、共有したいと思います

欲しけりゃくれてやる・・・。

探せ!

この世の全てをそこに置いてきた〜笑

続きを読む
- 何かがあれば、コメントをヨロシクです! -