Quantcast
Channel: tyoshikawa1106のブログ
Viewing all 1438 articles
Browse latest View live

SFDC:Winter'21 リリースノートメモ⑪ - カスタマイズ

$
0
0

Winter’21リリースノートのメモです。

Lightningフロー

① Flow Builder

  • レコードの削除前に実行するフローのトリガ
  • Sandbox 組織で別のユーザとしてフローエラーをデバッグする
  • キャンバス上での自動起動フローの直接デバッグ (ベータ)
  • Flow Builder で複数列の画面を作成する (パイロット)
  • 自動レイアウトでフロー要素を自動的に配置 (ベータ)
  • エントリ条件によるレコードトリガフローのパフォーマンスと精度の向上
  • 特定の変更が行われたときにだけ実行される決定結果の作成
  • すべての Flow Builder 要素で AND、OR、およびカスタム演算子を使用する
  • リンクをクリックするだけで Flow Builder エラーを特定する
  • トリガを使用した自動起動フローで関連レコードデータに簡単にアクセスする
  • フローのあらゆる場所で Salesforce 組織のグローバル変数を使用する
  • Flow Builder での差し込み項目の表示ラベルの表示
  • テキストのテンプレート設定の保存
  • 選択リストコンポーネントと複数選択リストコンポーネントのフロー画面プレビューでインタラクティブ機能を廃止

②Lightning フロー管理

  • 個別のフローとプロセスの実行時動作の変更を都合に合わせて採用する
  • [設定] の [フロー] ページでフローのトリガをすばやく確認する
  • フローインタビューログのフロー表示ラベルと画面表示ラベル
  • 共有なしのシステムコンテキストでフローを実行することによる外部ユーザのおすすめオブジェクトへのアクセス
  • Salesforce Classic でレコード所有者が変更された時点でフローを実行する

③Lightning フロー拡張

  • 複数のオブジェクトで機能するフロー画面コンポーネントの作成 (正式リリース)
  • カスタムフロー画面コンポーネントのより簡単な設定 (正式リリース)
  • Flow Builder で、複数のオブジェクトで機能するアクションや画面コンポーネントのカスタムプロパティエディタを使用
  • 公開 Web サービスからフローへのアクションの簡単な追加 (パイロット)

④Lightning フローリリース更新

  • 同じコンテキストと同じユーザアクセス権で一時停止中のフローインタビューを再開する (更新)
  • プロセスビルダーで元のレコード値に基づく条件を評価 (更新、延期)
  • 呼び出し可能アクションの部分的保存の有効化 (更新、延期)
  • フロー数式でのデータアクセス権の適用 (更新、延期)
  • フローでの従来の Apex アクションのアクセス修飾子の考慮 (更新、延期)
  • Apex クラスへの明示的なアクセス権を適用するルールの無効化 (更新、延期)
  • プロセスおよびフロー数式での null のレコード変数または参照関係項目の null 値の確認 (更新、延期)
  • API バージョン 50.0 での Lightning フロー実行時の改善

⑤Lightning アプリケーションビルダー

  • 動的フォームでレコードの詳細を分割 (正式リリース)★

 - ”動的フォームは、カスタムオブジェクトのレコードページでのみサポートされます。”

  • 動的アクションの新しい柔軟性をデスクトップ (正式リリースおよびベータ) とモバイル (ベータ) でフルに活用
  • Lightning ページのパフォーマンスの分析
  • Lightning アプリケーションビルダーのヘッダーとツールバーの変更
  • Lightning ページをパッケージ化するときのレコードタイプの取得
  • Lightning アプリケーション設定のアプリケーションのパフォーマンス (ベータ) の廃止
  • Lightning アプリケーションビルダーのアクセシビリティの改善

⑥Einstein ビルダー

  • Einstein のおすすめビルダーを使用したおすすめ (ベータ)
  • 数値予測でのレコードの上位予測因子と信頼性範囲の表示
  • ”Einstein 予測コンポーネントは、Einstein 予測ビルダーの有料バージョンでのみ使用できます。”

⑦グローバリゼーション

  • 改善されたメール通知による翻訳のインポートエラーの理解
  • ICU ロケール形式の有効化 (以前にリリース済みの更新)
  • クメール語を使用するユーザとつながる
  • より大きいデータ翻訳ファイルのインポートおよびエクスポート
  • 翻訳インポートまたはエクスポート要求は一度に 1 つだけ送信できる

⑧プロファイルおよび権限

  • プロファイル検索条件オプションによる組織のセキュリティの強化★
  • 「すべてのプロファイル参照」権限の確認
  • プロファイル内の権限のコピーの制限
  • Professional Edition での権限セットグループの使用
  • カスタム権限の [ライセンスが必要です] オプションを確認する

⑨Salesforce Connect

  • 指定ログイン情報と外部データソースの認証へのアクセス制限
  • Salesforce Connect が HIPAA に準拠
  • 外部オブジェクト ID の対応付けの有効期限

⑩Einstein Next Best Action

  • HIPAA 準拠 Einstein Next Best Action によるヘルスケアデータの保存と暗号化
  • 音声通話レコードを使用したイベント駆動型のおすすめの作成
  • Einstein おすすめビルダーを使用して、AI によるおすすめを戦略に追加 (ベータ)

⑪外部サービス

  • 従来の外部サービス登録の管理と再作成
  • 従来の外部サービス登録の管理と再作成

⑫共有

  • 組織の共有設定と条件に基づく共有ルールの同時リリース
  • [ゲストユーザの組織の共有設定と共有モデルの保護] の無効化不可

⑬項目

  • カスタム項目の表示ラベルの HTML の表示の無効化 (更新)
  • Lightning Experience での削除済み項目の管理★

⑭カスタムメタデータ型

  • カスタムメタデータ型での地理位置情報データ型リレーションのサポート
  • カスタムメタデータ型の作成時にサポート対象のリレーションエンティティを表示

⑮一般的な設定

  • ユーティリティバーの配置の選択★
  • [見積申請] アクションの表示条件の選択 (正式リリースとベータ)
  • [設定] でのレコードタイプ作成の変更
  • 参照項目でレコード名を表示する権限の必須化 (以前にリリース済みの更新)
  • 標準プロファイルでの標準オブジェクト編集の無効化 (更新)

SFDC:Winter'21 リリースノートメモ⑫ - セキュリティ、プライバシー、ID

$
0
0

Winter'21リリースノートのメモです。

認証と ID
  • 多要素認証アシスタントを使用した多要素認証の実装
  • 多要素認証の用語の使用にアップグレード
  • モバイルデバイス追跡を使用したデバイスの表示および取り消し
  • OAuth エンドポイントへのクロスオリジン要求の実行
  • Salesforce が ID プロバイダである場合の SAML メッセージの保護
  • 小文字の Sandbox 名を使用するための ID プロバイダ SAML 要求の更新
  • OAuth 2.0 ユーザエージェントフローで更新トークンの mobileauth.salesforce.com リダイレクト URL をサポート
ドメイン
  • [私のドメイン] のリリース (更新)
  • 新しい Salesforce 組織作成時の [私のドメイン] の定義
  • Visualforce、エクスペリエンスビルダー、Site.com Studio、コンテンツファイルの URL の一貫性の確保 (以前にリリース済みの更新)
  • サイトのセキュアでない HTTP 接続を許可する設定の削除
Salesforce Shield
  • Shield Platform Encryption: ドキュメントに関連付けられたデータの暗号化、非推奨のリリース更新
    • 保健受付ドキュメントに関連付けられたデータの暗号化
    • ID ドキュメント項目の暗号化
    • 「システム管理者プロファイルから「暗号化鍵を管理」権限を削除」リリース更新の非推奨 (以前にリリース済みの更新)
  • イベントモニタリング
    • 従来のトランザクションセキュリティ: 終了
    • BulkApiResult イベントを使用してデータ損失の防止
    • 新しい ApiAnomalyEvent を使用した API クエリの異常の検出
    • Event Monitoring Analytics アプリケーションの予期しない例外の分析
    • イベントログファイルの Einstein Analytics データのダウンロードを表示する

SFDC:Winter'21 リリースノートメモ⑬ - Customer 360 Truth

$
0
0

Winter'21リリースノートのメモです。

Customer 360 Data Manager
  • データソースを接続して顧客の単一ビューを作成
お客様とパートナーの ID
  • コミュニティユーザ、顧客、パートナーが SMS で ID を確認
  • コミュニティユーザ、パートナー、顧客のメールアドレス変更時に確認が必要 (更新)
  • コミュニティのメールアドレス変更の検証メールのカスタマイズ
プライバシーおよびデータコンプライアンス
  • Salesforce プライバシーセンターを使用した顧客データの安全な管理
  • 同意イベントストリームを使用した同意に対する変更の監視

SFDC:Winter'21 リリースノートメモ⑭ - リリース

$
0
0

Winter'21リリースノートのメモです。

新しい変更セットコンポーネント

変更セットに使用できるコンポーネントは、エディションによって異なります。これらのコンポーネントを変更セットに使用できるようになりました。

  • リダイレクトの許可 URL
    • 「Salesforce を離れる」警告メッセージを表示することなくリンクでユーザをリダイレクトできる、Salesforce ドメイン外部の信頼済み URL を表します。
  • チャネルメニューのリリース
    • Salesforce コミュニティまたはサイトへのチャネルメニュー (電話や Web チャットなど) のリリースを表します。
  • カスタムインデックス
    • SOQL クエリのパフォーマンスを向上させるために使用するカスタムインデックスを表します。

SFDC:Winter'21 リリースノートメモ⑮ - 開発

$
0
0

Winter'21リリースノートのメモです。

Lightningコンポーネント
  • lightning-input-rich-text ベースコンポーネントへのカスタムボタンの追加 (ベータ)
  • 第二世代パッケージでの Lightning メッセージチャネルのサポート
  • クライアント側キャッシュのタイムアウトの増加
  • ui 名前空間の Aura コンポーネントの廃止★
  • 複数のオブジェクトで機能するフロー画面コンポーネントの開発 (正式リリース)
  • リリース更新
  • ユーザプロファイルに基づくゲストユーザとポータルユーザの @AuraEnabled Apex メソッドへのアクセスの制限 (更新、適用済み)
  • ユーザプロファイルに基づく認証済みユーザの @AuraEnabled Apex メソッドへのアクセスの制限 (更新、適用済み)
  • Lightning コンポーネントの安全な静的リソースの有効化 (更新)
  • Lightning コンポーネントの連動関係アクセス権チェックの有効化 (更新、延期)
  • 暗黙的な共有での @AuraEnabled Apex コントローラの with sharing の使用 (更新、延期)
  • 管理パッケージの global 以外の Apex コントローラメソッドへのアクセスの無効化 (更新、延期)
  • Lightning コンポーネントマークアップの Apex プロパティでのアクセス修飾子の適用 (更新、延期)
  • 動的に作成された Aura コンポーネントでの関数式の作成の防止 (更新、延期)
Einstein Vision と Einstein Language
  • Einstein Language: 複数言語での Einstein Intent モデルの作成
    • Einstein Intent でブラジルポルトガル語 (ベータ)、オランダ語 (ベータ)、ロシア語 (ベータ) がサポートされるようになりました。
Visualforce
  • 第二世代パッケージでの Lightning メッセージチャネルのサポート
  • Visualforce URL の短縮
  • Visualforce ページでの連続した API ナビゲーションコールの防止 (以前にリリース済みの更新)
  • apex:inputField の新しい属性によるエンティティ編集権限の上書き
Apex
  • 安全なナビゲーション演算子を使用した Null ポインタ例外の回避★
    • null 参照の明示的な順次チェックの代わりに、安全なナビゲーション演算子 (?.) を使用します。
  • Apex コールアウトの PATCH HTTP メソッドを使用したリソースの更新
    • HTTP Web サービスのリソースの部分的な更新または完全更新を行うには、HttpRequest クラスの PATCH メソッドを指定します。
  • Apex からのカスタム通知の送信★
    • Messaging.CustomNotification クラスを使用して、トリガなどの Apex コードから直接カスタム通知を作成、設定、送信します。
  • RequestId および Quiddity を使用した実行時の Apex コンテキストの検出
    • System.Request クラスのメソッドを使用して、現在の Salesforce 要求の要求 ID と Quiddity を取得します。
  • 新しい sObject エラーメソッドを使用した Apex テストの改善
    • DML 操作を実行してエラーの結果を確認せずに、新しい SObject.hasErrors() および SObject.getErrors() メソッドを使用してエラーを追跡します。
  • 最大 50,000 件の Big Object レコードの一括削除
    • Database.deleteImmediate() メソッドで最大 50,000 件の Big Object レコードを同時に一括削除できるようになりました。
  • @namespaceAccessible アノテーションのサポートの強化
    • @namespaceAccessible アノテーションで、第二世代パッケージのインターフェース、プロパティ、抽象クラスにアクセスできるようになりました。
API
  • Composite 要求の強化
    • API バージョン 50.0 では、新しい /composite/graph リソースを使用します。
パッケージ化
  • Salesforce CLI を使用したパッケージツリーの視覚化
  • 不要なパッケージおよびパッケージバージョンの削除
  • パッケージエラー通知の取得
  • ロック解除済みパッケージのコードカバー率の適用
  • パッケージバージョン作成テストでのパッケージ化されていないメタデータの指定 (パイロット)
  • ライセンス管理組織での多要素認証の設定
  • 使用できなくなるブランチパッケージ組織
スクラッチ組織: 組織シェイプと新機能
  • 組織のシェイプを使用したスクラッチ組織の作成の簡易化 (ベータ)
  • 機能が追加されたスクラッチ組織の作成
Lightning Design System
  • Lightning Design System スタイル設定フックを使用したコンポーネントのカスタマイズ (ベータ)
  • ダブルダッシュの BEM 表記の廃止★
  • Lightning Design System コンポーネントブループリントの更新
AppExchange パートナー
  • AppExchange の Marketplace Analytics の地域別の活動の概要を使用して、リスト活動を促進している場所を確認
  • AppExchange の App Analytics シミュレーションモードを使用したカスタムインテグレーションのテスト
変更データキャプチャ: イベント強化 (ベータ)、オブジェクトサポートの拡張
  • 追加項目による変更イベントメッセージの強化 (ベータ)
  • 追加のオブジェクトに関する変更イベント通知の受信
プラットフォームイベント: 登録の管理、利用状況の監視
  • ユーザインターフェースからのプラットフォームイベントトリガ登録の管理
  • イベント公開および配信の利用状況の監視
  • プラットフォームイベントメッセージの公開後の Apex コールアウトの実行
  • 大規模プラットフォームイベント公開操作の状況の取得 (ベータ)

SFDC:Winter'21 リリースノートメモ⑯ - Quip

$
0
0

Winter'21リリースノートのメモです。

Quip Setup Starter 管理パッケージを使用した Quip for Customer 360 機能の発見

よく使用される Quip for Customer 360 機能を試してみるには、Quip Setup Starter 管理パッケージをインストールします。Quip Setup Starter を使用することで、テンプレートの作成、Quip Lightning コンポーネントの設定、オートメーションの設定などにかかる時間を節約できます。

Quip と Salesforce での Quip テンプレートの管理 (テンプレートライブラリ)

チームが使用する Quip 文書をテンプレートとして区別するには、文書をテンプレートとしてマークします。オブジェクトに基づいて Salesforce にどの文書が組み込まれているかを確認し、組み込み文書をテンプレートに変換し、Quip のテンプレートライブラリからそれらの文書にアクセスします。

組み込み Quip テンプレートでの総計値を使用したユーザエンゲージメントに関するレポート

Quip 文書を使用しているユーザやコーチングが必要なユーザを把握します。レポートとダッシュボードを使用して、ドキュメントやテンプレートでのユーザエンゲージメントのトレンドを理解します。総計値は Salesforce レコードに関連付けられている文書とテンプレートで使用できます。

Quip 文書へのインラインの Salesforce レコード項目の追加 (データメンション)

Quip 文書、スプレッドシート、アカウントプランで、書式設定の邪魔にならないように Salesforce のライブデータを追加します。インラインデータメンションを使用すれば、データは通常のテキストのように表示されますが、Salesforce と同期しているため、最新の状態が保たれます。データメンションからレコード項目を編集することもできます。そのため、Quip で Salesforce の作業を維持しやすくなります。

Salesforce ライブデータを使用した Quip でのリレーションの対応付けの作成

インポートした Salesforce レコードデータを使用してアカウントプラン内でリレーションの対応付けを作成します。Salesforce 外部に存在する対応付けにデータを追加するには、カスタム Quip カードを作成します。

Salesforce レコード権限を使用したリンクされた Quip 文書へのアクセス権の決定

同期共有では、Salesforce レコードに関連付けられた Quip 文書へのアクセス権を管理するオプションがいくつかあります。新しい [Salesforce レコードアクセス権] オプションでは、Salesforce レコードへのアクセス権を持つユーザは、リンクされた Quip 文書に対して同じアクセス権を持ちます。セキュリティを損なうことなく、リンクされた Quip 文書のアクセス権を組織レベルで設定できます。

Quip での Salesforce のライブデータの管理

ミラー化された Salesforce 権限を使用して Quip 内の Salesforce データを安全で動的な状態に保ち、ライブレポート機能を無効にします。ミラー化された Salesforce 権限を有効にすると、Quip 内のユーザは Quip でも Salesforce と同じ Salesforce データにのみアクセスできるようになります。

Salesforce への Quip 接続状況のテスト

Quip 状態チェックを使用して、Quip サイトと Salesforce 組織との接続に関する一連のテストを自動的に実行します。Quip 状態チェックで問題が検出されると、その場で結果と接続を稼働させるための解決策が表示されます。状態チェックは、Salesforce に対する Quip サイトの接続、または個々のユーザの Quip と Salesforce の接続について実行できます。

Quip での検索条件を使用した Salesforce リストビューのカスタマイズ

Quip で Salesforce リストライブアプリケーションを選定して、関心のあるレコードのみが表示されるようにします。Quip のカスタマイズ可能な検索条件を使用すると、ドキュメントに対する編集権限を持つユーザは、指定した項目に基づいてリストビューや関連リストを絞り込むことができます。関連リストが管理しやすくなり、ユーザは時間が経つにつれて古くなったり関連性がなくなったりしたレコードを除外できます。

Quip for Customer 360 の設定、有効化プロセス、その他の機能強化の簡略化

Quip と Salesforce で Quip for Customer 360 エクスペリエンスが強化されました。

新しい Quip API を使用したカスタムオートメーションの作成

Quip API エンドポイントを使用して、ビジネスプロセスを自動化し、チームを連携させます。

SFDC:Winter’21 リリースノートメモ⑰ - Pardot

$
0
0

Winter'21リリースノートのメモです。

Lightning のマーケティングメール
  • 新しい Lightning Content Builder を使用したメールの作成
  • Lightning Content Builder 用の Salesforce CMS からの画像の挿入
  • Lightning Experience での集計メール総計値の確認
  • Lightning Experience でのメールのプレビューとテスト
  • Lightning でのメールの送信環境の定義
分析とレポート
  • Pardot Einstein 属性の成功マイルストンの選択
  • 新しいキャンペーンインサイトを使用した顧客の理解
  • よりわかりやすい B2BMA ダッシュボード総計値の取得
  • プロスペクトのカスタム項目データの迅速な取得 (ベータ)
  • Pardot でのより正確なメールの開封およびクリック率の表示
  • 自信を持ってリストメール統計を再計算
マーケティングアセットとドメイン
  • Pardot プラグインでの WordPress ブロックエディターのシームレスな使用
  • Salesforce SSO を使用した WordPress プラグインの認証
  • 新しい Pardot トラッカードメインの自動的な保護
  • 任意のトラッカードメインを使用したより多くの Pardot アセットのカスタマイズ
任意のトラッカードメインを使用したより多くの Pardot アセットのカスタマイズ>
  • マーケターが取引先レコードの取引先責任者関連リストからリストに追加できるようになりました。Salesforce から離れることなく、レコードおよびリストビューから Pardot リストに追加します。
解決済みエラーを使用したより簡単なプロスペクトの同期
  • [プロスペクトの同期エラー] ページの新しいオプションにより、管理者は Salesforce と同期する解決済みエラーでプロスペクトをトリガできます。既存のエラーを修正してから Pardot の [プロスペクトの同期エラー] ページに戻り、プロスペクトを選択して、ボタンをクリックして同期をトリガします。以前は、解決済みエラーがあるプロスペクトは手動で Pardot に同期または再インポートしていました。
標準キャンペーンインフルエンスレポートでのよりクリーンなデータの取得
  • [キャンペーンと影響を受ける商談] (カスタマイズ可能なキャンペーンインフルエンス) 標準レポートは、主要なキャンペーンメンバーのみを表示するように絞り込まれるようになりました。すべてのキャンペーンメンバーレコードが [取引先責任者] 列に表示されて重複が発生する問題が修正されました。
ObjectChangeLog の廃止
  • ObjectChangeLog は、マーケティングデータ共有を有効にした Salesforce 組織向けの Winter ’21 リリースで廃止が予定されています。マーケティングデータ共有を使用していて、特定のレコードが Pardot と同期されるのを防ぐために ObjectChangeLog に関するカスタムロジックを作成している場合、代わりにマーケティングデータ共有ルールを使用してください。
Pardot API: 新規および変更された項目
  • API のエクスポート
    • プロスペクトオブジェクト: プロスペクトレコードのカスタム項目データのエクスポートのサポートが追加されました。

訪問者アクティビティオブジェクト: 新しいアクティビティレコードと変更されたアクティビティレコードのみを取得する手順が追加されました。

Pardot API バージョン 5 (ベータ)
  • Pardot API の新しく標準化されたバージョンをお試しいただけるようになりました。Pardot API のバージョン 5 には新しいエンドポイントが用意されているため、独自の外部ランディングページテンプレートおよびファイルを Pardot にインポートできます。

SFDC:Summer'20 リリースノートメモ

$
0
0

Summer'20リリースノートのメモです。


リリースされてだいぶ経つので基本的には改めて意識する必要は無いと思いますが、ざっと読んだところ下記の内容は意識しておく必要がありそうでした。

  • 標準ナビゲーションの分割ビューを使用したリストの簡単な操作
  • Optimizer アプリケーションによる組織メンテナンスのスピードアップ
  • アプリケーション内トレーニングの複数ステップウォークスルーの作成
    • [設定] から、[クイック検索] ボックスに「アプリケーション内ガイダンス」と入力し、[アプリケーション内ガイダンス] を選択
  • 商談分割の効果を高めるための分割制限の引き上げ
  • Lightning Experience での大規模商談のアラートの設定
  • 価格表のない注文の有効化
  • お客様が新しいメールインサイトに関心がないときに把握
  • Kanban ビューでの会社のプロセスに関するガイダンスの取得
  • サポートに連絡せずに個人取引先の同期を有効化
  • 商談レコードでのエンゲージメントデータの確認
  • カスタムファイルの種類を添付ファイルとしてダウンロード可能
  • Salesforce モバイル Web ブラウザ環境の廃止
  • iOS で 1 回のタップでリンクを開く
  • 制限の緩和によるより多くのプッシュ通知の送信
  • Apex 型を逐次化および並列化する方法の制御
    • Apex クラスレベルで定義される新しい @JsonAccess アノテーションは、クラスのインスタンスが逐次化または並列化できるかどうかを制御します。

SFDC:Winter'21リリースノートを読んでみました

$
0
0

気づいたらリリースノートを読まなくなっていてこれは良くないなと思い、今更ですがWinter'21のリリースノートを読んでみました。

f:id:tyoshikawa1106:20201222123356p:plain

Salesforce リリースノート


今までリリースノートは専用サイトが用意されていましたが、ヘルプサイトと統合されることになったみたいです。
f:id:tyoshikawa1106:20201222123601p:plain


ヘルプサイト版のリリースノートですが、読んでみた感じ今までよりも内容を確認しやすくなった気がします。

Winter'21のリリースノートメモ

ざっくりした新機能を確認できるようにメモをつくりました。

おまけ - Summer'20リリースノートメモ

Winter'21と併せてSummer'20のリリースノートも読みました。すでにリリースからだいぶ経過しているので改めてチェックする機能はほとんどありませんでしたが、いくつか知れてよかった機能があったのでメモしてあります。


今回はただのメモですが、時間があれば詳細についてちゃんとチェックしようかなと思います。とりあえず次回のSpring'21のリリースノートの日本語版がでたらちゃんと読むようにしたいと思います。

SFDC:サイトゲストユーザについて

$
0
0

SalesforceサイトまたはExperience Cloudで外部に公開するサイト開発を行ったときに使用するサイトゲストユーザについてです。


SalesforceサイトとExperience Cloudを利用する場合は権限設定を注意して行う必要がありますが、権限設定ミスが原因でニュースになっていたので、誤って公開設定になっていないかのチェックは行っておいた方が良さそうです。

SFDC:GitHubをつかったApexコードの管理について - Part 1

$
0
0

2017年頃だったと思いますが、Salesforce DXということで新しい開発環境が提供されるようになった際にGitHubをつかったプロジェクト管理の話も公開されました。

その頃にGitHubの使い方を勉強したりしたのですが時間が経って忘れてしまったので、GitHubをつかったApexコードの管理についてもう一度勉強してみました。

GitHubのドキュメントサイト

GitHubの詳しい使い方については公式のドキュメントサイトが公開されています。ここを見れば環境構築手順などを確認できました。

f:id:tyoshikawa1106:20210103182149p:plain

GitHub Documentation

Git環境の構築

はじめにGitをインストールしてGitコマンドを実行できるようにします。
f:id:tyoshikawa1106:20210111120126p:plain:w400


Gitの最新版はこちらのサイトからインストールできます。
f:id:tyoshikawa1106:20210103182502p:plain


Macの場合はHomebrewをつかった方法が紹介されていたので、Homebrewをつかってインストールしました。
f:id:tyoshikawa1106:20210103182558p:plain


Homebrewはこちらのサイトからインストールできます。

macOS(またはLinux)用パッケージマネージャー — Homebrew


Homebrewをインストール後、下記のコマンドでGitをインストールできます。

$ brew install git


インストール後に最新のバージョンが適用されていない場合は、パスの設定が必要になるみたいです。下記の記事が参考になりました。

最新の Git を Mac にインストールする手順 - Qiita


コマンドラインを開いて次のコマンドを実行します。
f:id:tyoshikawa1106:20210111121639p:plain

$ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshenv
$ source ~/.zshenv


これで「git --version」コマンドを実行するとインストールした最新バージョンが適用されていると思います。

Gitユーザ名とコミットメールアドレスの設定

最初にコマンドを実行してGitのユーザ名をセットします。

$ git config --global user.name "SAMPLE NAME"

正しく登録できたかの確認はこちらです。

$ git config --global user.name

同じくコミットメールアドレスもセットします。

$ git config --global user.email "email@example.com"

確認コマンドはこちらです。

$ git config --global user.email


これでGitの環境構築は完了です。上記の手順はこちらを参考にしました。

GitHub側の環境を用意

Gitの環境が準備できたらGitHub側の環境を用意します。


会社で管理する場合はそれぞれルールがあると思うので、個人用途として記載しますが普通のサービスと一緒にサインアップページで簡単にアカウントを作成できます。不明な点があればこちらで確認できると思います。

GitHub.com - GitHub Docs

SSHキーの設定

SSHキーの設定を行います。詳細はドキュメントサイトにまとめられています。
f:id:tyoshikawa1106:20210111124723p:plain

新しい SSH キーを生成して ssh-agent に追加する - GitHub Docs

SSHキー生成

ターミナルを開いて次のコマンドを実行するとSSHキーが作成されます。

$ ssh-keygen -t ed25519 -C "your_email@example.com"


Enter a file in which to save the keyというメッセージはファイルの保管場所を聞かれていて、エンターキーでデフォルト設定を反映します。その後にはパスフレーズを任意で決めて登録します。

SSH キーを ssh-agent に追加する

次のコマンドを実行します。ssh-agentが開始されるコマンドとのことです。

$ eval "$(ssh-agent -s)"


~/.ssh/config ファイルがデフォルトの場所にあるかどうかを確認します。

$ open ~/.ssh/config


does not exist.とメッセージが表示されてたらファイルが無い状態なので、次のコマンドでファイルを作成します。

$ touch ~/.ssh/config


再度、open ~/.ssh/configコマンドを実行するとファイルが開くので、下記の内容を追記します。

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519


最後にSSH 秘密鍵を ssh-agent に追加して、パスフレーズをキーチェーンに保存する作業を行います。

$ ssh-add -K ~/.ssh/id_ed25519


実行すると「Enter passphrase for XXXX」とメッセージが表示されるので、先程登録したパスフレーズを入力します。「Identity added: XXX」と表示されれば成功だと思います。

GitHubアカウントに新しいSSHキーを追加する

まずはSSH 公開鍵をクリップボードにコピーします。次のコマンドを実行すれば簡単にコピーできます。

$ pbcopy < ~/.ssh/id_ed25519.pub


GitHubにログインしてSettingsメニューのSSH and GPG keysから追加します。[New SSH key] または [Add SSH key] をクリックすると設定画面に移動できます。
f:id:tyoshikawa1106:20210111131031p:plain


Titleは任意です。どのPCかわかるような名前をつければ良さそうです。Keyの欄には先程のpbcopyでコピーした値を貼り付けます。Add SSH keyボタンを押せば登録完了です。(登録時にアカウントのパスワードを入力が必要になる場合もあります。)


上記の手順の詳細はこちら。

GitHub アカウントへの新しい SSH キーの追加 - GitHub Docs


ここまでの作業でSSHキーの作成とGitHubへの登録が完了しました。SSH接続が正しく動作するかは次のコマンドを実行すればチェックできます。

$ ssh -T git@github.com

「You've successfully authenticated」と表示されれば成功です。「but GitHub does not provide shell access.」というメッセージは気にしなくて良いみたいです。

次の記事

その他の参考サイト

SFDC:GitHubをつかったApexコードの管理について - Part 2

$
0
0

GitHubをつかったApexコードの管理について - Part 2です。前回はGitとGitHubの環境構築の話でした。

今回はGitHubでのリポジトリ作成を試してみます。

リポジトリの作成

GitHubにログインしてNew Repositoryをクリックすると作成ページが表示されます。
f:id:tyoshikawa1106:20210111133203p:plain:w250


あとはだいたいこんな感じで入力して最後にCreateボタンをクリックします。
f:id:tyoshikawa1106:20210111133343p:plain:w400


これでリポジトリの作成が完了です。
f:id:tyoshikawa1106:20210111133425p:plain

詳細はこちら。

リポジトリを作成する - GitHub Docs

ファイルの編集とコミット

あまりGitHubページ内でファイルの編集は行わないと思いますが、ドキュメントサイトに記載があったので動かしてみます。
f:id:tyoshikawa1106:20210111133837p:plain
※「:coffee」と記載してしまったけど、正しくは「:coffee:」でした。


編集後には下記の欄にコミットのタイトルと説明を入力できます。
f:id:tyoshikawa1106:20210111134107p:plain


また、「Create a new branch for this commit and start a pull request. Learn more about pull requests.」を選択するとコミット時にブランチを作成できるみたいです。

f:id:tyoshikawa1106:20210111134250p:plain


Propose file changeボタンをクリックすると保存されます。ここまでの詳細はこちら。

リポジトリを作成する - GitHub Docs

プルリクエストの作成とマージ

チーム開発の場合はプルリクエスト機能をつかって編集箇所のレビューを受けたあとに本番コードにマージする流れとなります。さきほど、コミット時にCreate a new branchを選択したので下記の画面が表示されました。

f:id:tyoshikawa1106:20210111134903p:plain


Create Pull Requestボタンをクリックするとプルリクエストが作成されます。

f:id:tyoshikawa1106:20210111135032p:plain


レビューの準備ができていればCreate Pull Requestで、まだ作業途中の場合はCreate draft Pull Requestを選択する感じでした。
f:id:tyoshikawa1106:20210111140405p:plain


プルリクエストが作成されたらレビュー者はcommitsタブからどのような変更が行われたかのチェックを行えます。
f:id:tyoshikawa1106:20210111135155p:plain


内容に問題がなければ「Merge pull request」ボタンで本番コードにマージします。
f:id:tyoshikawa1106:20210111135349p:plain

f:id:tyoshikawa1106:20210111135632p:plain


マージが完了すると次のメッセージが表示されます。この際に作業用に作成したブランチは削除できました。
f:id:tyoshikawa1106:20210111135658p:plain


これでコミット履歴とマージした人のログを残すことができました。
f:id:tyoshikawa1106:20210111135803p:plain

ここまでの詳細はこちらです。

プルリクエストの作成方法 - GitHub Docs

補足

対応中のプルリクエストについてはPull requestsタブでチェックできます。
f:id:tyoshikawa1106:20210111135442p:plain


Assignのところで、レビュー者を指定することもできるようです。
f:id:tyoshikawa1106:20210111140702p:plain

f:id:tyoshikawa1106:20210111140727p:plain


作成したブランチについても次のようにチェックできました。
f:id:tyoshikawa1106:20210111135528p:plain:w300

リポジトリのクローン

リポジトリのクローン機能をつかえばローカル環境にリポジトリをコピーできます。まずはGitHubのページでCodeボタンからクローン用のURLを取得します。

f:id:tyoshikawa1106:20210111142545p:plain


ターミナルを開いて作業用のディレクトリに移動します。
f:id:tyoshikawa1106:20210111142707p:plain


あとはGit Cloneコマンドを実行すればローカル環境にリポジトリが作成されます。

$ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY

https://github.com/YOUR-USERNAME/YOUR-REPOSITORYの部分がGitHubページでコピーした値

f:id:tyoshikawa1106:20210111142943p:plain


この場合、「cd hello-world」でディレクトをしたあとに「git log」コマンドを実行するとGitHubページと同じコミットログが表示されることを確認できます。


以上がリポジトリクローンの流れです。この手順の詳細はこちら。

[https://docs.github.com/ja/free-pro-team@latest/github/creating-cloning-and-archiving-repositories/cloning-a-repository:title]

リポジトリのアーカイブと削除

アーカイブもしくは削除をしたい場合はGitHubのSettingsのページで行えます。

f:id:tyoshikawa1106:20210111144100p:plain


アーカイブするとこんな感じになりました。
f:id:tyoshikawa1106:20210111144203p:plain

リポジトリのフォーク

クローンに似ている機能でリポジトリのフォーク機能があります。こちらは他のユーザのリポジトリをコピーしたいときに利用すれば良いようです。
f:id:tyoshikawa1106:20210111144445p:plain

リポジトリをフォークする - GitHub Docs


今回は不要そうなのでスキップ。


以上がGitHubをつかったリポジトリの作成やクローンなどの操作方法についてです。クローンしたあとのコードの変更などについては次回以降で試してみます。

次の記事

SFDC:GitHubをつかったApexコードの管理について - Part 3

$
0
0

GitHubをつかったApexコードの管理について - Part 3です。前回はGitHubのページでコミットやプルリクエスト、リポジトリのクローンなど基本の機能を試してみました。

今回はローカル環境でコードの変更を変更を試してみたいと思います。

GitHub Desktop のインストール

GitHub DesktopはGUIでGitコマンドを実行できるツールです。個人的にはこうしたツールを使ったほうがやりやすいと思うのでこちらを利用します。
f:id:tyoshikawa1106:20210111160448p:plain

GitHub Desktopのドキュメント - GitHub Docs


f:id:tyoshikawa1106:20210111160950p:plain

GitHub Desktop | Simple collaboration from your desktop


インストールしてログインするとこんな感じ。
f:id:tyoshikawa1106:20210111161548p:plain


またPreferenceのメニューから細かい設定ができます。
f:id:tyoshikawa1106:20210111161655p:plain:w300

f:id:tyoshikawa1106:20210111161737p:plain


開発に使用するデフォルトのテキストエディタも設定しておくと良さそうです。
f:id:tyoshikawa1106:20210111163301p:plain

リポジトリの追加とクローン

まずはGitHubページでリポジトリを作成します。README.mdファイルも無いまっさらなリポジトリを作成しました。
f:id:tyoshikawa1106:20210111163659p:plain


続いてGitHub Desktopをつかってリポジトリのクローンを行います。FileメニューのClone Repositoryを選択すると設定画面が表示されます。(今回はprojectフォルダ内にあるappsフォルダを対象に選択しました。)
f:id:tyoshikawa1106:20210111164316p:plain

f:id:tyoshikawa1106:20210111164334p:plain:w300

これでappsフォルダ内にGitHubにあるdemoリポジトリがクローンされていることを確認できると思います。(「.git」など隠しファイルを表示して確認したい場合は「cmd」キー+「shift」キー+「.」キーで表示できるみたいです。)
f:id:tyoshikawa1106:20210111164717p:plain



クローン作業の詳細はこちら。

GitHub Desktopからのリポジトリのクローンとフォーク - GitHub Docs

GitHubに変更をプッシュする

エディタを開いてREADME.mdファイルを追加してみます。
f:id:tyoshikawa1106:20210111165239p:plain


するとGitHub Desktopに変更履歴が表示されました。
f:id:tyoshikawa1106:20210111165324p:plain


コミットコメントを入力してコミットボタンをクリックします。
f:id:tyoshikawa1106:20210111165415p:plain:w250


コミットの履歴はHistoryから確認できるみたいです。
f:id:tyoshikawa1106:20210111165521p:plain


この変更をGitHubにプッシュするにはPublish Brunchボタンをクリックします。これでGitHubに変更が反映されました。
f:id:tyoshikawa1106:20210111170042p:plain

GitHubの最新コードをローカルにダウンロード

次に他の開発者がアップしたGitHubのコードを自分のローカル環境に反映する方法についてです。今回はGitHubページで直接READMEファイルを編集する形で試してみます。
f:id:tyoshikawa1106:20210111170225p:plain


Fetch Originを選択すると差分チェックが行われて、変更がある場合はPull Originが選択できるようになります。
f:id:tyoshikawa1106:20210111170433p:plain


Pull Originが押せる状態になったのはこちら。
f:id:tyoshikawa1106:20210111170503p:plain


この操作でGitHub側の最新コードを自分のローカルにダウンロードできました。
f:id:tyoshikawa1106:20210111170525p:plain

ブランチの作成

上記ではmasterに直接プッシュしましたが、チーム開発でプッシュ時にレビューが必要な場合はブランチを作成してプルリクエストする流れとなります。


次のキャプチャのとおりNew Brunchボタンから新しいブランチを作成できます。
f:id:tyoshikawa1106:20210111171507p:plain

f:id:tyoshikawa1106:20210111171522p:plain:w300


作成後にPublish Brunchを実行することで、GitHub側に作成したBrunchの情報が反映されます。
f:id:tyoshikawa1106:20210111171805p:plain:w300


それではREADME.mdファイルを編集して作成したBrunchにコミットします。
f:id:tyoshikawa1106:20210111171941p:plain


続いてCreate Pull Requestボタンをクリックしてレビューを依頼します。
f:id:tyoshikawa1106:20210111172216p:plain


レビュー者はGitHubページ側で変更箇所を確認して問題がなければマージを行います。
f:id:tyoshikawa1106:20210111172344p:plain

f:id:tyoshikawa1106:20210111172442p:plain

f:id:tyoshikawa1106:20210111172453p:plain


これでレビュー後にmasterに変更が反映される流れでプッシュできました。
f:id:tyoshikawa1106:20210111172546p:plain


以上がGitHub Desktopの基本的な操作方法でした。

次の記事

SFDC:GitHubをつかったApexコードの管理について - Part 4

$
0
0

GitHubをつかったApexコードの管理について - Part 4です。前回はGitHub Desktopの基本的な操作方法を確認して、GitHubとのやりとりを試してみました。

今回はSalesforceのプロジェクトをGitHubにアップしてApexコードの管理を試してみます。

リポジトリの作成

まずはSalesforce開発を管理するGitHubリポジトリを作成します。
f:id:tyoshikawa1106:20210111174643p:plain

リポジトリのクローン

次にリポジトリを配置するフォルダを用意します。今回はprojectフォルダ→salesforceフォルダ→workspaceフォルダと用意してその中にリポジトリをクローンします。(リポジトリ名はsalesforce-productにしました。)

f:id:tyoshikawa1106:20210111174957p:plain:w300

f:id:tyoshikawa1106:20210111175234p:plain:w300


クローンが成功するとsalesforce-productフォルダがworkspaceフォルダ内に格納されていると思います。ローカルに追加されたリポジトリの中にSalesforceプロジェクトのテンプレートファイル一式を格納します。

f:id:tyoshikawa1106:20210111180325p:plain


テンプレートファイル一式はSalesforce CLIによるSFDXコマンドのCreate Project with manifestコマンドで生成できます。
f:id:tyoshikawa1106:20210111180540p:plain


生成されたプロジェクトからファイル一式をコピーしてリポジトリ内に格納します。
f:id:tyoshikawa1106:20210111180632p:plain


ここまでできたら一旦GitHubにプッシュします。
f:id:tyoshikawa1106:20210111180842p:plain

Salesforceと接続

ここからはいつもどおりSFDXのAuthコマンドを実行してSalesforceと接続します。
f:id:tyoshikawa1106:20210111181527p:plain

f:id:tyoshikawa1106:20210111181604p:plain:w400

f:id:tyoshikawa1106:20210111181618p:plain:w400

認証ができたらpackage.xmlを開いて取得条件を確認し、右クリックからRitrieveコマンドでSalesforceのコードを取得取得します。
f:id:tyoshikawa1106:20210111181825p:plain


このようにclassesフォルダ内などにSalesforce側のソースコードがダウンロードされます。
f:id:tyoshikawa1106:20210111182134p:plain


Salesforce側のコードはGitHubにはまだ存在しないのですべてのコードをプッシュします。
f:id:tyoshikawa1106:20210111182309p:plain


これでGitHub側にSalesforceプロジェクトのファイル一式が格納されました。これをベースにApex開発の管理が可能になります。

Apexコードの追加とGitHubへのプッシュ

試しにApexクラスを新たに作成します。
f:id:tyoshikawa1106:20210111182650p:plain

f:id:tyoshikawa1106:20210111182849p:plain


GitHub Desktop側でApexクラスのファイルが追加されたことを確認できます。これをコミットして、GitHubにプッシュします。
f:id:tyoshikawa1106:20210111183018p:plain


GitHub側に作成したApexクラスが追加されていることを確認できました。このような感じでApexコードのバージョンを管理することができます。

まとめ

これでGitHubをつかったApexコードの管理の流れを確認することができたと思います。通常はブランチを作成してプルリクエストとレビュー、マージなどのあとにGitHubのmasterにマージする流れで開発を管理することになりますが、Salesforceでは本番のソースコードが「正」ということもあり、とりあえずは、本番のソースコードをRitrieveコマンドで取得してGitHubにアップしてソースコードの差分チェックに利用するところから始める形でも良いと思います。

イメージ
  1. GitHubにSalesforceプロジェクト用のリポジトリを作成
  2. RitrieveコマンドでSalesforce側のソースコードを取得
  3. SalesforceのソースコードをGitHubにプッシュ
  4. Salesforce側で開発を行い本番環境にデプロイ
  5. GitHubに最新のソースコードをプッシュ

とりあえずの手順ですが、バージョン管理していない状況からは抜け出せるのでやらないよりはやったほうが良いと思います。


もし、本格的に管理する場合はDev Hubやスクラッチ組織といったGitのバージョン管理と連携するソース駆動形の開発の仕組みがあるのでそちらを利用して開発していくことになると思います。


GitHubをつかったApexコードの管理についてはこんな感じです。より高度な使い方についてはまた今度時間を取って勉強しようと思います。

関連記事

SFDC:Salesforce World Tour Tokyo 2022を見に行きました

$
0
0

11月29日〜11月30日の2日間の日程でプリンス パークタワー東京で開催されたSalesforceのイベントを見に行きました。


会場は少しコンパクトでしたが製品の新機能やSalesforce導入企業の体験話などいろんな話を聞くことができて楽したかったです。


イベントで見てきたことの個人的な要点メモはこちらです。



Day 1

誰一人取り残さないサステナブルな社会の実現に向けて

SWTTの一番最初のセッション。セッションのメインの話からは少し逸れるけれどもデータ化/電子化することでよりよい体験を実現できることがあるのはどんな分野でも共通なんだろうなって思いました。

セッション中に出てきた話の関係してそうなリンク。(それっぽいの検索しました。)

どうしてSFAは定着しないのか。その疑問にお答えします。

PWC社の方のセッション。定着化の進め方/考え方についてわかりやすいお話が聞けました。

基調講演/ Keynote 次の世界へ。 A New Day for Customer Magic

セールスフォースジャパンのCEOとパーカーハリスの話が聞けたセッション。

「ビジョン」か、「財務」か逆境に立ち向かう、攻めと守りの経営の裏側とは

CIO、CFOの企業の投資についてのパネルディスカッション形式のセッション。普段聞けない世界の話面白かったです。

360 Campground

今回も展示会ブースありました。パートナーブースはいつもより少なめな感じでしたがSalesforceの製品ブースではいろいろお話聞けました。(ブースで聞いた話は記事最初の方のスライドにまとめたのがそうです。)

True to the Core Salesforce 共同創設者パーカー・ハリスに聞く顧客の声を製品の進化に取り入れる方法

Day1の最後はセールスフォース社の製品開発の責任者の人たちに直接質問ができるすごいセッションでした。質問は事前の応募の抽選集められていました。(一つ質問で使えそうな話があったので応募してみましたが抽選ハズレで残念でした。)

パーカーハリスと本社の製品開発チームの人たちを見れてよかったです。

Day 2

マイニンテンドーストア リニューアルプロジェクト

あの任天堂のシステム開発プロジェクトのセッション。メインの話としてはCommerce Cloudをつかったオンラインストア開発の話です。Commerce Cloudの導入話自体が普段聞けない話ではありますが、APIコール数制限の話がそんな厳しい制限があるのかといった体験話になっていたので技術的な話としても勉強になりました。

SFUG CUP 2022 ファイナリストが語るDX推進における内製化の重要性

Salesforce導入企業の内製化を実現したときのノウハウについて聞けたセッションです。規模の大きい組織や、複雑な機能の開発の場合は専門の開発会社に依頼した方が良いケースもあると思いますが、社内にSalesforce開発できる技術者がいると社内要望の実現やシステム改修の進めやすくなると思います。

Slack + Salesforce で実現するこれからの時代を生き残る働き方改革

前半はSlackの製品の新機能や便利機能の紹介。後半はお客様事例的な話が聞けたセッションでした。Slackの新機能の話はあまりチェックできていなかったので、今回のイベントで話を聞けてよかったです。SF連携が強化されてノーコードで実現という話もありました。比較的簡単に連携できるとはいえシステム連携をあまり増やしすぎるのも少し懸念があるかなと思っているのですが、やり方は知っておかないといけない内容だったので今度勉強しようと思います。


Team Earth

基調講演やその他様々な場面でSalesforce社が環境問題に取り組んでいる話が紹介されたりしていますが、Team Earthのブースでそういった話をいろいろ教えてもらいました。

直近話題になっていたので話を聞いてみたのは檜原村の植林の話です。


話の流れで教えてもらったのですが海外での取り組みとしてこういったサイトがあることも知りました。


樹木を育てる募金サイトですが、Salesforceプラットフォーム上で用意された仕組みみたいです。実際の運営は専門の団体が行っていると思いますが、Salesforce社の行っている活動ということで興味を惹かれるWebサイトでした。

サイトの内容について詳細はまだ見れていないのですが、Google Chromeの翻訳機能を使うと雰囲気は理解できそうでした。

その他見たセッション

企業成長を加速する Sales Cloudで描くデータドリブン営業


Salesforce Platform Evolution : データ連携の相乗効果がもたらす更なるビジネス価値の創出

ビジネスを成長させるインテグレーションの力 〜MuleSoftで新たな事業価値創造を〜


クロージングセッション

その他

会場内にはSalesforceのマスコットキャラクターも歩いていてそれも見れて良かったです。

(記念写真も撮ってもらえました。)

まとめ

2日間のSalesforceイベントはだいたいこんな感じでした。こうしたイベントで話を聞くと印象に残ったりモチベーションが上がったりするので次回のSalesforceイベントも開催楽しみにしてます。


SFDC:Trailheadのフィードバック機能を使ってみました

$
0
0

Trailheadのフィードバック機能を使ってみました。Heroku Flowの「Heroku パイプラインの作成とレビューアプリケーションの実行」モジュールをやっていたときにちょっとおかしいエラーを見つけました。


Heroku パイプラインの作成とレビューアプリケーションの実行 単元 | Salesforce Trailhead


こちらのモジュールの最後のテストの選択肢はこんな感じ。その中の1問目がどれを選択しても正解になりませんでした。


そこで試しにTrailheadの言語を英語に変更。


すると全体的に内容が変わって最後のテストも3問から2問になっていました。


最初一時的におかしくなっているんだろうな。待ってればそのうち解決してそうだし今度にしようかと思ったのですが、ページの目立つ位置にフィードバックのリンクがあったのでせっかくなので使ってみました。


フィードバックページはこんな感じです。日本語化もされていて困ることなく操作できました。


報告内容も重要な部分は選択リスト式になっていて入力しやすかったです。


送信して終わりのつもりでしたが、きちんと回答の返信がありました。ざっくりと「問い合わせありがとう。これは Trailhead Content チームに報告済みで、現在対応中です。これは、今後の Trailhead リリースで解決される予定です。フィードバックでのコンテンツ改善の協力ありがとう。今後ともよろしくね。」という感じの返信でした。日本語フォームだったので詳細欄とか日本語で書いてたけど、対応は海外チームだったのかも。それでも内容はきちんと確認してもらえてました。


だいたいのことはそのまま待っていれば修正や改善されていると思いますが、なんか壊れてるなってときとかはフィードバック機能使ってみると良いかもしれないです。あとこういうTrailheadみたいなサービスでフィードバックリンクが目立つ位置にあるのはいいなって思いました。

SFDC:SWTT2022のカスタマーサクセスのセッション動画を見てみました

$
0
0

Salesforce World Tour Tokyo 2022のサイトでは一部セッションのアーカイブ版が公開されているので、Salesforce社の人がスピーカーのカスタマーサクセスのセッションを見てみました。

セッション概要は次のように書いてありました。

Salesforceが20年以上にわたってお客様やパートナー様と共に取り組んできた実績やベストプラクティスをもとに まとめた「The Salesfore Way」をご紹介し、企業が持続的成長のためにビジネス価値を最大化し成果をあげるために、どのように変革を推進していくべきかについて考察します。


セッション資料のダウンロードもできるようになっています。

視聴メモ

はじめに

・Salesforce導入でビジネスで価値を出すための5つのポイントの紹介。

カスタマーサクセス統括本部の紹介

・ライセンス導入頂いたあと、継続して利用してもらうためにサポートする部署。
・プロフェッショナルサービス ->コンサル
・カスタマーサクセスマネージャ ->どうやって使うかの支援、事例紹介
・テクニカルサポート ->日々の問い合わせ
・リニューアルをしていく部門

CORE VALUES

カスタマーサクセスはこれまでになく重要になっていく。Salesforceの考えるコアバリューは次の5つ。
・TRUST (信頼)
・CUSTOMER SUCCESS (カスタマーサクセス)
・INNOVATION (イノベーション)
・EQUALIT (平等)
・SUSTAINABILITY (サステナビリティ)


新たなサクセスエコシステム

導入しただけでは意味ない。どう使っていくかが大事。適切に扱うことで価値がでる。・・的な話です。
TrailheadとかSuccess PlanとかAppExchangeの紹介がありました。


The Salesforce Wayの紹介

今回のセッションで聞けた内容について詳しくまとめられているサイト。

ベストプラクティス的な内容を確認できるみたいでした。

※20年以上にわたるSalesforceのお客様やエコシステムとの経験をまとめたものとのこと。

プロジェクトの成功パターン

成功している企業が行っている5つのパターンについて
・信頼関係
・アライメント
・人間中心
・プラットフォーム思考
・継続的な変革

信頼関係について

すべてのステークホルダーに耳を傾け信頼関係を構築
・プロジェクトを開始するときに人との摩擦を避けたくなる。
・システム導入に対してネガティブな意見を持つ人を避けて進めてもサービスインで使ってくれない、今までのやり方を継続してしまい、CRMの中にデータが残らないといった結果になってしまう。
・ネガティブな意見を持つ人を避けるのではなく、意見を聞きプロジェクト巻き込む。人間関係が一番むずかしい。成功している企業がやっている。といった話でした。

アライメントについて

徹底的な透明性で迅速な意思決定
・このプロジェクトで会社を3年後にどうするかというビジョンがあるとする。これをアライメントとして共有するだけで終わらせない。
・目的を実現するために、IT部門は何をする、企画部門は何をする、営業部門は何をする、それぞれが責任を持ってこのプロジェクトがすべきことを明確して共有にするのが大切といった話。

人間中心について

ユーザーファーストのデザイン思考で定着化を加速
・テクノロジーを使うのは人間。人間中心の考え方が大事。
・成功している企業やユーザの声を必ず聞いている。
・一般的にユーザの声を聴きすぎると管理しきれないジレンマがあると思う。
・ユーザをプロジェクトに参加してもらい、現場の声を聞く。IT部門ではわからないユーザの悩みを聞く。
・人間中心でデザインを構築するのが成功パターン。といった話でした。

プラットフォーム思考

プラットフォームを最大限活用し、拡張性の高い構築を実現
・Sales Cloud / Service Cloudといろいろ製品がある。どのテクノロジーをつかってプロジェクトを実現するのか。
・Salesforceにどういうデータを流し込むのか。だからこういう価値を見込めるとった定義をするのが大切。といった話。

継続的な革新

反復的アプローチで価値創出までの時間を迅速化
・成功しているお客様は、プロジェクトにいろんな人を巻き込みアライメントをでき、信頼関係がある中で、少しずつスモールな形でやっていくことで成果が出る。
・例えば2年ぐらいかけて行う大きなプロジェクト。完成までアウトプットを出さない形だと失敗することが多い。
・だいたい120日(3ヶ月〜4ヶ月)ぐらいで新しい機能をリリース→ユーザに使ってもらう→フィードバックをもらう→また新しい機能をリリース。
・定期的に機能リリースして価値を出すやり方が成功している企業が行っている方法。といった話でした。

Ford社の事例紹介

現在Ford社がSalesforceを利用している取り組みをまとめた事例動画の紹介。Youtubeでも公開されています。

SalesforceプロフェッショナルサービスとSignature Success Planで、デジタル変革を推進するFord社 - YouTube


Ford社の事例動画のあとは、このFord社やPanasonic社を例としてThe Salesforce Wayがどのように当てはまるか的な話を聞けました。


セッションの話も面白かったですが、The Salesforce Wayというプロジェクトを進める上での成功パターン(フレームワーク)のサイトがあることが知れて良かったです。アーカイブ版が公開されている間に見ておくと面白いと思います。

SFDC:SWTT2022のNet Zero Cloudのセッション動画を見てみました

$
0
0

Salesforce World Tour Tokyo 2022のサイトでは一部セッションのアーカイブ版が公開されているので、Salesforce社の人がスピーカーのNet Zero Cloudに関係するセッションを見てみました。


セッション視聴メモ

セッションの概要

・Salesforce社の取り組み
・Net Zero Cloudの紹介 (最新のイノベーション)
・ユーザ事例

Salesforce社の取り組み

Salesforceは2021年に排出量ネットゼロを達成
6つの気候変動アクションプランを作成 (サステナビリティの優先項目)
・排出削減
・炭素除去
・一兆本の森林保全・生態系の回復
・教育・動員
・イノベーション
・規制・制作

当初はマニュアルで対応していたが専用のシステムを自社開発した。6ヶ月かかってた作業を6週間に短縮した。これがNet Zero Cloudになったとのことです。

EGSについて

ESGレポーティング
・資本へのアクセス
・顧客の獲得
・コンプライアンス
・レビュテーション

ESGにおけるデータ管理の重要性
・データを集めるのがESGの目的では無いが、ESGにおける一つの重要な問題。

という話を聞けました。

SalesforceのESGレポートについて

FY22 Salesforce Stakeholder Impact Report
・E環境
・S社会
・Gガバナンス

会計終了後、3ヶ月未満で発行。


検索したらWebサイトありました。


データは組織が直面するESGにおけるNo.1の課題

2025年までにGlobal2000企業の60%はデジタルサステナビリティチームを設置し、ICTプラパイダーが提供する分析プラットフォームを活用する。とのことです。


Net Zero Cloudの紹介

ネットゼロに向けて取り組む企業の一連の業務を一気通貫でご支援するソリューション。ロードマップ機能含めて6つの機能が用意されているみたいです。

1. Environmental Accounting
炭素排出量、廃棄物、水資源等の環境データのトラッキング

2. Insights・Actionability
分析、削減目標の設定管理、排出量 の将来予測、AIを活用した削減提案

3. Supply Chain Action
サプライヤーの連携と削減の推進
製品単位の気候変動インパクトの把握

4. Data Integration and Automation (ロードマップ機能)
スコープ1,2,3の算定に必要な各種デー タソースとの統合を自動化

5. ESG Reporting (ロードマップ機能)
社会&ガバナンスの追跡、汎用レポートフレームワークの提供

6. Net Zero Marketplace (ロードマップ機能)
エコプレナーと連携して信頼できるカーボンクレジットを購入

Net Zero Cloudのデモ

セッション内では実際の画面を見ながらの機能紹介がありました。ざっくりまとめると次の話が聞けました。

・企業にとってESGの評価は非常に重要
・エネルギー使用量や排出量、人的資本の活用やコンプライアンスなどあらゆる指標を追跡することが求められている。これらを一箇所で把握できることが重要。
・Net Zero Cloudではそういったデータを柔軟に取り組み統合できる。(EXCELなどの脱却)
・水資源の管理、廃棄物の管理。環境サステナビリティに関するあらゆる影響を考慮する必要がある場面でNet Zero Cloudが活躍
・トラベルダッシュボードで人の移動(出張など)に伴う排出量やその予測、インサイトを出すことができる。
・排出量予測は過去のデータやその他情報から3段階のスコープ別に予測を出せる。
・サプライヤーの排出量はサプライヤーダッシュボードで出せる。
・SlackConnectでサプライヤーとコミュケーションが取れる。従来のメールやEXCELのやりとりを効率化。
・収集したデータもタイムリーに各ステークホルダーに共有できる。リアルタイムにつながるデータ。

Net Zero Cloudの最新のアップデート

いろいろ新機能が追加されるみたいです。

ユーザ事例

セッションの最後は株式会社船場の人から事例の話を聞けました。検索したところWeb上でも詳細を見ることができました。


Salesforce社の環境取り組みの話は以前からいろいろ出ていましたが、システム化の話とその他の取り組みについて面白かったです。あとFY22 Salesforce Stakeholder Impact Reportの話は、Salesforce社でこういう情報も公開している的な部分で知れて良かったです。(知ったからといって何か変わることはないですけど)

SFDC:無効な商談フェーズとパス表示について

$
0
0

最近ハマった無効な商談フェーズとパス表示についての話です。商談のセールスパスを有効化すると画面にパス表示ができるようになっています。


商談画面から入力できるのはフェーズ項目で有効な選択リスト値のみとなっています。

※ちょっと補足 - この組織では選択リスト値は翻訳設定で日本語変換しています。


無効な商談フェーズの値がセットできてしまうのはどんな時かというと、API経由でのデータ更新時です。例として以下のような場面があります。

  • Apexトリガ
  • データローダ


次のように適切な値であればフェーズもパスも当然正しく表示されます。


次に異常値となる無効な商談フェーズをセットした場合です。値としてセットはできますが、パス表示部分で明らかにおかしい状態であることを確認できます。これが通常の異常値セットの表示状況です。

本題

ここからが本題となりますが、設定上、有効/無効の両方に存在しない値、「Closed」をセットした場合について紹介します。まずは改めてリスト値として存在していないことのキャプチャから。


先程と同じくAPI経由での値セットを実行します。


実行結果はこちら。異常値でも値セットが可能なのは先程と同じですが、パスの表示がクローズ済扱いとなってしまいます。


パスの色はクローズ済扱いですが、データとしては商談完了フラグ(IsClosed)と商談成立フラグ(IsWon)はともにチェックOFFとなっています。つまり完了でも失注でもない扱いのデータです。


データの確認をしやすくするためのパス機能なので、そこが誤った表示になっていると業務に支障がでます。もしもClosedの値がセットされてしまうといった事象が発生するようでしたら、入力規則で「Closed」の値はブロックする対応の検討が必要かと思います。

入力規則の値ブロックのイメージです。実際は標準画面から無効な値のセットできないのでこの画面で表示されるとしたら商談トリガのBefore Update処理などの場面です。

無効な値がセットが発生するケースについて

商談の標準画面の操作からは無効な値をセットすることはできません。なのでもし商談画面で操作したあとにフェーズに異常値がセットされている場合は、Apexトリガの処理が存在していると思われます。このケースが発生する場合は、システム開発のバグとなりますので開発者側で調査実施と、処理が存在していた場合は修正対応が必要する形となります。


商談画面以外の場合、データローダのような外部ツールからの操作によるフェーズの値更新が行われるケースも考えられます。こうした外部ツールからのデータ更新も扱いとしてはAPIによる処理となっていますので無効な選択リスト値をセットすることが可能です。データローダはシステム管理者向けツールですので、ユーザが使用する場面は少ないと思いますが、ユーザ向けのデータ更新外部ツールもいろいろ存在していますので、そういったツールの使用を業務に組み込む場合は正しく使用されるように運用ルール等中止した方が良い箇所となります。(必要に応じて入力規則でブロックするといった対応も有効です。)

Apexでも外部ツールでの操作も見当たらない場合

無効なフェーズがセットされる事象が発生するのに社内開発したApexコード (一応フローとかも含む)でそれらしい値が見当たらない、ユーザも商談の標準画面から操作を行い、外部ツールからのデータ更新は行っていないことを確認できた。こんな状況に遭遇するケースも0ではありません。

この状況になった場合に考えられる可能性としてAppExchangeパッケージ処理の可能性があります。一般的にAppExchangeパッケージは管理パッケージとなっているため、ソースコードの内容をチェックしたり、どういった処理が実行されているかは不明となっていますが、当然ApexトリガやApexバッチによるデータ更新処理は存在しています。

社内開発の自動更新処理で無効な値セットが見当たらない場合はAppExchange側の処理で変更されているかもしれない点について確認が必要となります。

異常値発生の調査方法について

無効なフェーズのセットが再現性が高い場合、Sandbox組織で同様のデータを用意して一般的なデバッグ処理で調査を進めていくことができます。ですが、再現性が低い場合(年に数回とか、発生データをSandboxで試しても再現しないといった場合)は調査の実施も難しい状況になります。

その場合の対応方法については次のようになるかと思います。

①まずは入力規則で無効な値をブロック
これをやっておかないと異常値に気づかず商談がそのままになってしまいます。エラーにすることで異常値発生に気づけるようにします。

②異常値発生の再現を待つ
Sandbox環境などで検証しても再現性が無いことが前提ですが、異常値の発生を待つ形となります。①の入力規則追加でエラーになるので、ユーザ側と連携して発生したら連絡してもらうようにします。

③再現したらデバッグログ機能でログ取得
エラー再現の連絡があったらユーザ側と連携してログ取得になります。管理者ユーザであれば開発者コンソールが使えるかもしれませんが、一般ユーザの場合はそうは行かないため、設定メニューのデバッグログ機能で対象ユーザを指定してログ取得します。


デバッグログ取得できたら内容調査を行えば原因特定に繋がる情報が見つかるかもしれません。見つからない場合もログをダウンロードしてSalesforceサポートに相談するなど次のアクションに繋げることができると思います。(AppExchangeの管理パッケージの処理の場合はログ出るのか不明ですが..)


無効な商談フェーズとパス表示についての話はこんな感じです。

SFDC:Trailheadモジュールと言語設定について

$
0
0

Trailheadモジュールと言語設定についての話です。


モジュールのページにアクセスすると現在利用可能なモジュールの一覧と件数を確認できます。


ここで確認できるモジュール一覧ですが、PC版ではローカライズされたものを出してくれているみたいです。日本の利用者の場合は日本語翻訳済みのモジュールが表示される感じです。


なので言語設定を英語に変更すると、日本語翻訳されていないモジュールも利用できるようになります。

SortのNewestを選択することで新しく追加されたモジュール順で表示することができます。


PC環境でGoogle Chromeを使っている場合は日本語翻訳機能を使うことでページ全体を日本語化できますので、日本語翻訳前のモジュールでも内容を確認したりといった使い方ができると思います。(多少違和感がある箇所はありますが、内容理解するのにほぼ困らないレベルで翻訳してくれます。)

元の表示


右クリックから日本語翻訳


日本語変換結果


ちなみにモバイル環境ではローカライズは関係なく、表示されるようになっていました。

代わりにモバイルアプリ内で完了できるか (ハンズオンチャレンジなしで絞り込み) というフィルタが用意されているようになっています。


終わっていないハンズオンなしのモジュールをモバイルアプリでブックマークしてPC環境のお気に入りページからアクセスして、Google翻訳で進めるといった進め方ができると思います。


ブックマークしたモジュールですが、「今日」のタブのページをスクロールしていくと左側のお気に入りのところに表示されています。

おまけ

モジュールのページの件数は最初に開いたときの件数が総数で、並び替えを替えても件数は変わったりはありませんでした。

Viewing all 1438 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>