Salesforce開発メモ



xxController.js
console.log('★doInit:Start★');

Salesforce DX - 開発者向け App Cloud | セールスフォース・...‎
Heroku DXの「DX」とは、Developer Experienceの略で、開発者体験をより向上させるためにHerokuをさらに強化 ...
Salesforce DXで未管理パッケージがサポートされるようになったみたいです。

https://developer.salesforce.com/docs/atlas.ja-jp.lightning.meta/lightning/labels_apex.htm

従来のSalesfroce開発プロセスとHerok案件の開発プロセス
https://www.pasonatquila.com/blog/salesforce-dev/salesforcedx_20170711.html


https://buildersbox.corp-sansan.com/entry/2019/07/25/125610



https://www.xgeek.net/ja/salesforce/setup-salesforce-dx-ide-environment-with-visual-studio-code/
4. Salesforceからメタデータ取得
コマンドパレット (⇧+⌘+P) を開きます、”force”を入力して、Refresh from serverメニューを選択します。
Salesforce組織のユーザ名とパスワードをそれぞれ入力します。
Salesforce組織タイプ、本番 / 開発者かサンドボックスを指定します。
Yesを指定してファイル保存すると、Salesforceに自動デプロイを設定します。
次のような“package.xml”があったらRetrieve by package.xmlを選択します。ない場合、Get All Files from orgを選択して全てのメタデータを取得します、場合によってかなり時間かかるかもしれません。

OpenJDK（Open Java Development Kit） どれを使ったら良い？
https://ts0818.hatenablog.com/entry/2019/07/27/152156

SalesforceCLIは、Salesforce Developer Experience（SFDX）という開発体制で真価を発揮するようです。


PATHの設定及び環境変数JAVA_HOMEの設定
https://www.javadrive.jp/start/install/index4.html

Visual Studio CodeでSalesforceの開発環境を構築する(winter '19)
https://base.terrasky.co.jp/articles/5f2tk

★★
私の経験の範囲にはなりますが、有償ツール以外では以下の5択になるのではないでしょうか。
1. Eclipseの「Force.com IDE」を利用する
2. VS CodeやSublimeTextやAtomと連携する「MavensMate-Desktop」を利用する
3. Antの「Force.com Migration Tool」を利用する
4. JSforceの「jsforce-metadata-tools」を利用する
5. Salesforce DXの「sfdx force:mdapi:retrieve」コマンドを利用する
https://qiita.com/takahito0508/items/f5dac3ac214bc75142cf
TOOL
Force.com IDE
MavensMate-Desktop
Force.com Migration Tool
jsforce-metadata-tools
sfdx


Package.xml to get all the metadata using Visual Studio Code for Salesforce
http://www.infallibletechie.com/2018/12/packagexml-to-get-all-metadata-using.html


★★
https://trailhead.salesforce.com/ja/content/learn/modules/lex_dev_lc_basics/lex_dev_lc_basics_server
Clinet(View:Markup、Controller:JavaScript)
Server(Controller:Apex、DataBase)


https://qiita.com/TaigarAndDragon/items/3f9196e2915904b5b24a

CustomModal.cmp
CustomModalController.js
CustomModalEvent.evt

terminal, enter command

npmコマンドでsalesforce cliをインストール




Salesforceプロジェクトの作成
$ SFDX: Create Project with Manifest





Salesforceエンジニアの技術メモmemo

UIで
カスタム設定（多国語はオブジェクトと同じで別管理）
カスタム表示ラベル（翻訳値有り）
定数

CustomLabels
https://developer.salesforce.com/docs/atlas.ja-jp.api_meta.meta/api_meta/meta_customlabels.htm
カスタム表示ラベルは、Apex クラスまたは Visualforce ページからアクセスできる、最長 1,000 文字のカスタムテキスト値です。

マスタカスタム表示ラベルの値は、CustomLabels.labels ファイルに保存されます。
カスタム表示ラベルの翻訳は、メタデータ API の Translations を介して取得できます。
翻訳は、translations フォルダの localeCode.translation という名前形式のファイルに保存されます。
localeCode は、翻訳言語のロケールコードです


 
 
p.THIS {
    font-family: 'customfontDisney';
    font-size: 40px;
 }
 
 @font-face {
   font-family: 'customfontDisney';
   src: url(/resource/disneyFont); 
    /* 
     'disneyFont' is the name of static resorces (.ttf) font file 
    */
 }


2018年sfdc工作总结_VF,JS,Lightning分别调用custom label的写法
Lightning {!$Label.c.LabelName}
JS  $A.get("$Label.c.LabelName")
VF {!$Label.LabelName}


custom label in apex code salesforce
http://www.sfdcpoint.com/salesforce/custom-label-in-apex-code-salesforce/
<apex:page controller="CustomLabelApexDemoController">
   <apex:form >
     <apex:pageblock >
       Value stored in custom label is: <b>{!customLabelValue}</b>
     </apex:pageblock>
   </apex:form>
</apex:page>
public class CustomLabelApexDemoController {
    public string customLabelValue{get;set;}
    public CustomLabelApexDemoController(){
        customLabelValue = System.Label.DemoLabel;
    }
}

Apexからの利用方法
System.Label.＜ラベル名＞

Visualforceからの利用方法
$Label.＜ラベル名＞

Salesforceにはカスタム表示ラベルという、テキスト値を定義できる機能があります
定義したテキスト値は、ApexやVisualforceから利用可能なので、エラーメッセージや文字列などの定数を外出ししたい場合に便利です。

参照
https://developer.salesforce.com/docs/atlas.ja-jp.lightning.meta/lightning/labels_intro.htm




パターン1. Visualforce + Apex
Visualforceで独自タグを書いてUIを記述
Apex（独自言語)を用いてロジックを記述
Javaっぽいとは言うが、Genericsを使ったクラス定義もできないJava5未満のそれ
新UI基準（Lightning Experience）

デメリット
Salesforce内のメタデータ（権限情報など）に密に連携したUIの構築には手間がかかる


新ユーザインターフェース(LEX)、開発フレームワーク(Aura）、コンポーネントベースのUI構築機能(AppBuilder)、CSSデザインフレームワーク(SLDS）、ライセンスのエディション、その他…

パターン2. Visualforce（薄め）+ JavaScript(HTML5) + API ⇒ SPA
パターン3. Visualforce（薄め）+ JavaScript(HTML5) + JS Remoting + Apex(薄め) ⇒ SPA
パターン4. Heroku（およびその他PaaSなど） + API


SalesforceでのWebアプリケーション開発についての現状
https://qiita.com/stomita/items/992f6be7084565420e8d