Mark Hammer's Blog

SalesforceやTrailheadに関する情報を投稿しているブログです。

Trailhead モジュール:データ漏洩の防止

※この内容は2019/4時点のものです。

Force.com アプリケーションの認証のしくみについて

https://trailhead.salesforce.com/ja/content/learn/modules/data-leak-prevention/learn-how-authorization-works-in-force-com-apps

  • 説明:日本語
  • Challenge:日本語選択問題

Visualforce と Apex での CRUD および FLS 違反の特定

https://trailhead.salesforce.com/ja/content/learn/modules/data-leak-prevention/identify-crud-and-fls-violations-in-visualforce-and-apex

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

このChallengeは、通常のDeveloper Edition組織やTrailhead Playground組織ではなく、Kingdom Management DE組織を使用してください。
このChallengeの前に、Kingdom Management DE組織にサインアップしてください。

  • 「CRUD/FLS & Sharing」アプリケーションの「CRUD & FLS Challenge」タブにある「Visualforce page」リンクをクリックしてください。
  • 「CRUD_FLS_Challenge」Visualforceページにある3つの項目の右にあるコメントについて、以下の通り変更してください。
    • CRUD および FLS 違反が可能な項目の場合は「<!-- Field 1 is vulnerable YES -->」のようにしてください。
    • CRUD および FLS 違反が不可な項目の場合は「<!-- Field 1 is vulnerable NO -->」のようにしてください。

CRUD および FLS 違反の防止

https://trailhead.salesforce.com/ja/content/learn/modules/data-leak-prevention/prevent-crud-and-fls-violations

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

このChallengeは、通常のDeveloper Edition組織やTrailhead Playground組織ではなく、Kingdom Management DE組織を使用してください。
このChallengeの前に、Kingdom Management DE組織にサインアップしてください。

  • 「CRUD/FLS & Sharing」アプリケーションの「CRUD & FLS Fix Challenge」タブにある「Apex Controller」リンクをクリックしてください。
  • register()関数に、権限を持たないユーザがトーナメントへの新規参加登録を防ぐコードを追加してください。

※筆者注:このChallengeでの「権限を持たないユーザ」とは、register()関数内のinsert文にある全項目分の作成権限を持たないユーザを指します。

共有違反の特定と防止

https://trailhead.salesforce.com/ja/content/learn/modules/data-leak-prevention/identify-and-prevent-sharing-violations

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

このChallengeは、通常のDeveloper Edition組織やTrailhead Playground組織ではなく、Kingdom Management DE組織を使用してください。
このChallengeの前に、Kingdom Management DE組織にサインアップしてください。

  • 「CRUD/FLS & Sharing」アプリケーションの「Sharing Challenge」タブにある「Apex Controller」リンクをクリックしてください。
  • 共有違反を防ぐためにクラス定義を変更してください。

Trailhead モジュール:秘密の保存場所の保護

※この内容は2019/4時点のものです。

秘密の保護の使用開始

https://trailhead.salesforce.com/ja/content/learn/modules/secure-secret-storage/get-started-with-secret-protection

  • 説明:日本語
  • Challenge:日本語選択問題

プラットフォーム機能を使用した秘密の保護

https://trailhead.salesforce.com/ja/content/learn/modules/secure-secret-storage/learn-about-platform-secret-protection

  • 説明:日本語
  • Challenge:日本語選択問題

カスタムアプリケーションでの暗号化の使用

https://trailhead.salesforce.com/ja/content/learn/modules/secure-secret-storage/use-encryption-in-custom-applications

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

このChallengeは、通常のDeveloper Edition組織やTrailhead Playground組織ではなく、Kingdom Management DE組織を使用してください。
このChallengeの前に、Kingdom Management DE組織にサインアップしてください。

  • Salesforce Classicにて、「Secret Storage」アプリケーションの「Apex encryption challenge」タブにある「Apex Controller」リンクをクリックし、「EncryptChallenge」Apexクラスのページを開いてください。「Secret Storage」アプリケーションはLightning Experienceでは使用できません。
  • Save()関数に、Encrypt_Decrypt__c オブジェクトにある「EnCrypt_Decrypt Name」(Name) フィールドの CRUD / FLSチェックを実装してください。
  • Save()関数に、Princess のメッセージ暗号化を実装してください。暗号鍵としてcryptoKeyを用いてデータを暗号化し、またCrypto.encryptWithManagedIV()関数を用いてAES256暗号化を実装してください。
  • DecryptData()関数に、Princess のメッセージ復号化を実装してください。暗号鍵としてcryptoKeyを用いてデータを復号化し、またCrypto.decryptWithManagedIV()関数を用いてAES256復号化を実装してください。

Trailhead モジュール:ユーザインターフェース API

※この内容は2019/4時点のものです。

ユーザインターフェース API の使用開始

https://trailhead.salesforce.com/ja/content/learn/modules/user-interface-api/get-started-with-user-interface-api

  • 説明:日本語
  • Challenge:日本語選択問題

サンプルアプリケーションのインストール

https://trailhead.salesforce.com/ja/content/learn/modules/user-interface-api/install-sample-app

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

始める前に:このユニット内の手順を進め、すでにRecord Viewerサンプルアプリケーションや接続アプリケーションを作成している場合、もう一度作成する必要はありません。

  • 以下内容で接続アプリケーションを作成してください。
    • 接続アプリケーション名:RecordViewer
    • API参照名:RecordViewer
    • 取引先責任者 メール:(任意のメールアドレス)
    • OAuth 設定の有効化:チェックを入れる
    • コールバックURL:https://localhost:8443/oauth-redirect
    • 選択した OAuth 範囲:以下を選択
      • データへのアクセスと管理(api)
  • CORSの「オリジンの URL パターン」に、「https://localhost:8443」を追加してください。
  • Record Viewerアプリケーションをインストールし、実行してください。
  • Record Viewerアプリケーションをブラウザで開き、あなたのTrailhead Playground組織にアクセスして認証してください。
  • Record Viewerアプリケーションで、以下取引先レコードを作成してください。
    • 取引先名:ABC Computing
    • 取引先評価:Warm
  • 作成したレコードは、「Recent Items」リストから「ABC Computing」をクリックすることで参照できます。
  • すでにこのユニット内の手順を進めている場合、あなたは「Fax」項目を「Account Layout」取引先ページレイアウトから削除しており、「ABC Computing」レコードの「詳細」タブでも表示されません。
    もし「Fax」項目が表示されている場合は、Salesforce設定画面で「Fax」項目を「Account Layout」取引先ページレイアウトから削除してください。
  • 削除後、Record Viewerアプリケーションで「ABC Computing」レコードを再度表示し、「Fax」項目が「電話」項目の下にないことを確認してください。

レコードを表示するための UI の作成

https://trailhead.salesforce.com/ja/content/learn/modules/user-interface-api/build-ui-to-display-a-record

  • 説明:日本語
  • Challenge:日本語選択問題

レコードを編集するための UI の作成

https://trailhead.salesforce.com/ja/content/learn/modules/user-interface-api/build-ui-to-edit-a-record

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

注意:前のユニットのChallengeが完了していない場合は、このChallengeの前に完了してください。

User Interface API と Workbench を使用し、「ABC Computing」取引先レコードの「住所(請求先)」を以下の通り追加してください。

  • 町名・番地(請求先)[Billing Street]: 123 Main Street
  • 市区郡(請求先)[Billing City]: Portland
  • 都道府県(請求先)[Billing State/Province]: OR
  • 郵便番号(請求先)[Billing Zip/Postal Code]: 97202
  • 国(請求先)[Billing Country]: USA

レコードを作成およびコピーするための UI の作成

https://trailhead.salesforce.com/ja/content/learn/modules/user-interface-api/build-ui-to-create-and-clone-a-record

  • 説明:日本語
  • Challenge:日本語選択問題

連動選択リストの UI の作成

https://trailhead.salesforce.com/ja/content/learn/modules/user-interface-api/build-ui-for-dependent-picklists

  • 説明:日本語
  • Challenge:日本語選択問題

Trailhead モジュール:HTML5 とハイブリッド

※この内容は2019/4時点のものです。

ハイブリッド開発の開始

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_hybrid/mobilesdk_hybrid_getting_started

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

  • あなたのDeveloper Edition組織に、以下接続アプリケーションを作成してください。
    • 接続アプリケーション名:Trailhead Hybrid
    • API参照名:Trailhead_Hybrid
    • 取引先責任者 メール:(任意のメールアドレス)
    • コールバックURL:trailheadapp://auth/success
    • 選択した OAuth 範囲:以下を選択
      • データへのアクセスと管理(api)
      • Web経由のデータへのアクセスを提供(web)
      • ユーザに代わっていつでも要求を実行(refresh_token, offline_access)
  • forcehybrid を使用して、アプリケーション名を「TrailheadHybridTest」とした新規ハイブリッドローカルアプリケーションを作成してください。
  • 「TrailheadHybridTest」native Androidアプリケーションには、「Trailhead Hybrid」接続アプリケーションのコンシューマー鍵とコールバックURLを設定してください。
  • 「TrailheadHybridTest」アプリケーションからDeveloper Edition組織に最低1回ログインしてください。アプリケーションは適切なシミュレータ、エミュレータ、またはデバイスで実行できます。必ず「Trailhead Hybrid」接続アプリケーションを作成した組織の資格情報を使用してログインしてください。

サンプルハイブリッドアプリケーションについて

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_hybrid/mobilesdk_hybrid_sample_app

  • 説明:日本語
  • Challenge:日本語選択問題

ハイブリッドアプリケーションでの Salesforce データへのアクセス

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_hybrid/mobilesdk_hybrid_rest_apis

  • 説明:日本語
  • Challenge:日本語選択問題

ハイブリッドアプリケーションのデバッグ

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_hybrid/mobilesdk_hybrid_debugging

  • 説明:日本語
  • Challenge:日本語選択問題

Trailhead モジュール:Android ネイティブアプリケーション

※この内容は2019/4時点のものです。

ネイティブ Android 開発の開始

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_native_android/mobilesdk_android_getting_started

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

  • あなたのDeveloper Edition組織に、以下接続アプリケーションを作成してください。
    • 接続アプリケーション名:Trailhead Native Android
    • API参照名:Trailhead_Native_Android
    • 取引先責任者 メール:(任意のメールアドレス)
    • コールバックURL:trailheadapp://auth/success
    • 選択した OAuth 範囲:以下を選択
      • データへのアクセスと管理(api)
      • Web経由のデータへのアクセスを提供(web)
      • ユーザに代わっていつでも要求を実行(refresh_token, offline_access)
  • forcedroidを使用して、アプリケーション名を「TrailheadAndroidTest」とした新規native Androidアプリケーションを作成してください。アプリケーションの実行には、Android SDK 5.0.1 (API 21) 以上のバージョンがインストールされている必要があります。
  • 「TrailheadAndroidTest」native Androidアプリケーションには、「Trailhead Native Android」接続アプリケーションのコンシューマー鍵とコールバックURLを設定してください。
  • 「TrailheadAndroidTest」native AndroidアプリケーションからDeveloper Edition組織に最低1回ログインしてください。アプリケーションはEclipseエミュレータかサポートされている Android デバイスで実行できます。

forcedroid アプリケーションについて

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_native_android/mobilesdk_android_template_app

  • 説明:日本語
  • Challenge:日本語選択問題

REST API による Salesforce データへのアクセス

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_native_android/mobilesdk_android_rest_apis

  • 説明:日本語
  • Challenge:日本語選択問題

forcedroid ネイティブアプリケーションの変更

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_native_android/mobilesdk_android_template_modify

  • 説明:日本語
  • Challenge:日本語選択問題

Trailhead モジュール:ネイティブ iOS

※この内容は2019/4時点のものです。

ネイティブ iOS 開発の開始

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_native_ios/mobilesdk_ios_getting_started

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

  • あなたのDeveloper Edition組織に、以下接続アプリケーションを作成してください。
    • 接続アプリケーション名:Trailhead Native iOS
    • API参照名:Trailhead_Native_iOS
    • 取引先責任者 メール:(任意のメールアドレス)
    • コールバックURL:trailheadapp://auth/success
    • 選択した OAuth 範囲:以下を選択
      • データへのアクセスと管理(api)
      • Web経由のデータへのアクセスを提供(web)
      • ユーザに代わっていつでも要求を実行(refresh_token, offline_access)
  • forceios を使用して、以下 iOS アプリケーションを作成してください。
    • アプリケーション名:TrailheadiOSTest
    • パッケージ名:(任意)
  • ”TrailheadiOSTest” iOS アプリケーションに、”Trailhead Native iOS”接続アプリケーションのコンシューマー鍵とコールバックURLを設定してください。
  • ”TrailheadiOSTest” iOS アプリケーションからDeveloper Edition組織に最低1回ログインしてください。アプリケーションはXCodeシミュレータかサポートされている iOS デバイスで実行できます。

forceios ネイティブアプリケーションについて

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_native_ios/mobilesdk_ios_template_app

  • 説明:日本語
  • Challenge:日本語選択問題

REST API による Salesforce データへのアクセス

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_native_ios/mobilesdk_ios_rest_apis

  • 説明:日本語
  • Challenge:日本語選択問題

forceios ネイティブアプリケーションの変更

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_native_ios/mobilesdk_ios_template_modify

  • 説明:日本語
  • Challenge:日本語選択問題

既存のプロジェクトへの Mobile SDK の追加

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_native_ios/mobilesdk_ios_cocoapods

  • 説明:日本語
  • Challenge:日本語選択問題

Trailhead モジュール:Salesforce Mobile SDK の基礎

※この内容は2019/4時点のものです。

Salesforce Mobile SDK の使用開始

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_introduction/mobilesdk_intro_scenarios

  • 説明:日本語
  • Challenge:日本語選択問題

セキュリティと認証について

https://trailhead.salesforce.com/ja/content/learn/modules/mobile_sdk_introduction/mobilesdk_intro_security

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

以下内容で、接続アプリケーションを作成してください。

  • 接続アプリケーション名:Trailhead Intro
  • API参照名:Trailhead_Intro
  • 取引先責任者 メール:(任意のメールアドレス)
  • コールバックURL:trailheadapp://auth/success
  • 選択した OAuth 範囲:以下を選択
    • データへのアクセスと管理(api)
    • Web経由のデータへのアクセスを提供(web)
    • ユーザに代わっていつでも要求を実行(refresh_token, offline_access)

forceiosインストール時にnode.jsバージョンが新しすぎるとエラーが出た場合の対処

対象Project

Set Up Your iOS Development Environment 単元 | Salesforce Trailhead

発生した問題

Install Forceios にて、forceiosのバージョン確認のためにforceios version を実行した際に

$ forceios version
Missing tools

Installed node version (11.13.0) is more than the maximum supported version (11.1).  Please downgrade your version of node.

と、エラーが発生。 バージョンが新しすぎるってどうすればいいの。。

解決方法

How to Upgrade (or Downgrade) Node.js using NPMの内容を参考に、以下の順にコマンドを実行した。

$ sudo npm cache clean -f
npm WARN using --force I sure hope you know what you are doing.
$ sudo npm install -g n
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
+ n@3.0.2
added 1 package from 4 contributors in 0.339s
$ sudo n 11.1.0

     install : node-v11.1.0
       mkdir : /usr/local/n/versions/node/11.1.0
       fetch : https://nodejs.org/dist/v11.1.0/node-v11.1.0-darwin-x64.tar.gz
######################################################################## 100.0%
   installed : v11.1.0

これで"maximum supported version (11.1)"までダウングレードできたため、手順を進めて、無事エラーを回避できた。

$ sudo gem install cocoapods
(省略)
$ forceios version
forceios version 7.0.0

Trailhead モジュール:Custom Metadata Types Basics

※この内容は2019/4時点のものです。

Get Started with Custom Metadata Types

https://trailhead.salesforce.com/ja/content/learn/modules/custom_metadata_types_dec/cmt_overview

  • 説明:英語
  • Challenge:英語選択問題

Create and Manage Custom Metadata Types

https://trailhead.salesforce.com/ja/content/learn/modules/custom_metadata_types_dec/cmt_create

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • 以下内容でカスタムメタデータ型を作成してください。
    • 表示ラベル:VAT Data
  • 以下内容でカスタム項目を追加してください。
    • データ型:テキスト
    • 項目の表示ラベル:Country Name
    • 文字数:10
    • 項目名:Country_Name
  • 以下内容でカスタム項目を追加してください。
    • データ型:パーセント
    • 項目の表示ラベル:VAT Rate
    • 項目名:VAT_Rate
  • 以下内容でレコードを追加してください。
    • 表示ラベル:Japan
    • VAT Data名:Japan
    • Country Name:Japan
    • VAT Rate:10
  • 以下内容でレコードを追加してください。
    • 表示ラベル:Germany
    • VAT Data名:Germany
    • Country Name:Germany
    • VAT Rate:19

Use Custom Metadata Types in Formulas, Default Values, and Validation Rules

https://trailhead.salesforce.com/ja/content/learn/modules/custom_metadata_types_dec/cmt_formulas

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

注意:このChallengeの前に、このユニット内の手順を完了してください。

以下内容で、取引先に入力規則を作成してください。

  • ルール名:Revenue_Validation
  • 内容:「年間売上」項目値が、Gold Support TierのMinimum Spending の値の20倍以上である取引先のみ保存可能とする。

Use Custom Metadata Types in Flows

https://trailhead.salesforce.com/ja/content/learn/modules/custom_metadata_types_dec/cmt_flows

  • 説明:英語
  • Challenge:英語選択問題

Trailhead モジュール:Flow Testing and Distribution

※この内容は2019/4時点のものです。

Make Sure Your Flow Works

https://trailhead.salesforce.com/ja/content/learn/modules/flow-testing-and-distribution/make-sure-your-flow-works

  • 説明:英語
  • Challenge:英語選択問題

Enable User Access For Your Flow

https://trailhead.salesforce.com/ja/content/learn/modules/flow-testing-and-distribution/enable-user-access

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

注意:このChallengeの前に、「Flow Builder」モジュールのChallengeを全て完了してください。

  • 「New Optpty」フローを有効化してください。
  • あなたの組織に「ページ種別:ホームページ」「表示ラベル:Process Automation Home」のLightningページがあるか確認してください。
    ない場合は以下内容で新規Lightningページを作成してください。
    • ページ種別:ホームページ
    • 表示ラベル:Process Automation Home
  • 「Process Automation Home」Lightningページに、「New Optpty」フローを関連付けたフローコンポーネントを追加してください。
  • ページを有効化し、組織のデフォルトとして割り当ててください。