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

SFDC:連結オブジェクトの定義について

$
0
0

多対多リレーションを持つ必要のあるオブジェクトを作成するといったことはけっこうあると思います。こういうオブジェクトは連結オブジェクトと呼ばれると大雑把に考えていましたが、ただ多対多リレーションというだけでは連結オブジェクトとは呼ばなかったみたいです。


連結オブジェクトの正しい定義としては、「2 つの主従関係を持つカスタムオブジェクト」と決まっていました。

f:id:tyoshikawa1106:20160306183339p:plain

Salesforce Help - 多対多リレーションの作成


連結オブジェクトの定義についてはこんな感じです。


SFDC:Chatterの活用例 - 社内イベント企画編

SFDC:コミュニティユーザの判定方法

$
0
0

コミュニティユーザの判定方法についてです。SOQLクエリを実行する場合「AccountID」または「ContactID」に値が存在するかで判定することが可能です。また、「IsPortalEnabled」という項目でもチェックすることができます。
f:id:tyoshikawa1106:20160307111754p:plain


その他の方法として『UserType』項目を利用する方法があります。
f:id:tyoshikawa1106:20160307112118p:plain

UserTypeの種類
  • Standard: ユーザライセンス。このユーザ種別には、Salesforce Platform と Salesforce Platform One ユーザライセンスが含まれます。表示ラベルは [標準] です。
  • PowerPartner: パートナーであり、通常パートナーポータルまたはコミュニティでアプリケーションにアクセスするため、アクセス権が制限されているユーザ。表示ラベルは [パートナー] です。
  • CSPLitePortal: 組織の顧客であり、カスタマーポータルまたはコミュニティでアプリケーションにアクセスするため、アクセス権が制限されているユーザ。表示ラベルは [大規模ポータル] です。
  • CustomerSuccess: ユーザが組織の顧客であり、カスタマーポータルでアプリケーションにアクセスするため、アクセス権が制限されているユーザ。表示ラベルは [カスタマーポータルユーザ] です。
  • PowerCustomerSuccess: ユーザが組織の顧客であり、カスタマーポータルでアプリケーションにアクセスするため、アクセス権が制限されているユーザ。表示ラベルは [カスタマーポータルマネージャ] です。

このライセンスタイプのユーザは、自分が直接所有するデータ、またはカスタマーポータルのロール階層で自分よりも下位に位置するユーザが所有するデータ、およびそのユーザと共有するデータを参照、編集できます。

  • CsnOnly: アプリケーションへのアクセス権が Chatter に制限されているユーザ。このユーザ種別には、Chatter Free と Chatter モデレータユーザが含まれます。表示ラベルは [Chatter Free] です。


UserType項目の便利なところはUserInfo.getUserTypeで取得できることです。ログインユーザの情報がほしい場合は、SOQLクエリを実行せずに取得できます。

String userType = UserInfo.getUserType();
System.debug(userType);

f:id:tyoshikawa1106:20160307112443p:plain:w400


もちろんSOQLクエリによる取得も可能です。

SELECT Name,UserType,AccountId,ContactId,IsPortalEnabled FROM User

f:id:tyoshikawa1106:20160307112621p:plain


小ネタですが、UserType項目は選択リスト型でtoLabelをつかった翻訳も可能です。

SELECT Name,toLabel(UserType),AccountId,ContactId,IsPortalEnabled FROM User

f:id:tyoshikawa1106:20160307112733p:plain

(UserTypeを翻訳する必要はほぼないと思いますが...)


コミュニティユーザの判定方法はこんな感じです。

ユーザオブジェクトについて

SFDC:TLS1.0のサポート終了とMavens Mate

$
0
0

Salesforceがセキュリティ的な理由でTLS1.0のサポートを終了します。


時期についてはこんな感じです。
f:id:tyoshikawa1106:20160308230517p:plain


へー、そうなんだ。と思っていたのですが、この対応により一部開発ツールに影響が出るみたいです。
f:id:tyoshikawa1106:20160308231001p:plain


以下のようなツールが例として紹介されていました。(対応方法も一緒に紹介されています。)

  • Salesforce Mobile SDK
  • Force.com 移行ツール


上記も影響がありますが、その他の影響がありそうなツールとしてSublimeやAtomなどから開発する際に利用するMavens Mateもこの対応の影響をうけるみたいです。(TLS1.0無効化の影響でエラーが発生していました。)


ちょっと検索して確認してみたところ、この件についてはMavensMateのGitHubにIssuesとして登録されていました。


Issueのコメントを読んでいるとMavens Mateのバージョン7(β版)の場合はエラーにならない的なことが書いてありそうでした。とりあえずTLS関連のエラーに遭遇したい場合は、ここのIssuesを確認しておけば解決方法が紹介されていそうです。

SFDC:Discussion ForumとBest Answer

$
0
0

Discussion ForumにはBest Answerの機能がついています。質問投稿者が回答になった投稿を選択できる機能です。投稿にマウスを当てたタイミングで選択リンクが表示されるようになっていました。

f:id:tyoshikawa1106:20160309120339p:plain

SFDC:モバイルアプリの開発環境構築 (ネイティブ Android 開発編)

$
0
0

Android アプリの作成コマンド

$ sudo npm install forcedroid -g
$ forcedroid create
native
MyTrailNative
TrailAndroidApps
com.mytrail.android
NO (Default)

Android Studioの準備
Installing the Android SDK | Android Developers


forcedroid プログラムでは、汎用コンシューマ ID とコールバック URI を使用してアプリケーションを作成します。アプリケーションを公開する前に、これらの設定を接続アプリケーション の値に置き換える必要があります。ここで、それを実行しましょう。

UTF-8 に準拠しているテキストエディタで、プロジェクトのターゲットディレクトリの \\res\values\bootconfig.xml を開きます。
remoteAccessConsumerKey の値を接続アプリケーション のコンシューマキーに置き換えます。
oauthRedirectURI の値を接続アプリケーション のコールバック URL に置き換えます。
f:id:tyoshikawa1106:20160309134715p:plain

  • Android Studioを起動してプロジェクトをインポート → TrailAndroidAppsフォルダを選択
    • [プロジェクトをインポート (Eclipse ADT、Gradle など)]
  • インポート時にSDKがインストールされていないエラーがでるかも → エラーメッセージのリンクから解決できる
  • 画面一番下にbuild中のバーが表示されてる。完了するとアプリを実行できる。
  • デバイスの選択など。デバイス新規作成も可能。

f:id:tyoshikawa1106:20160309140956p:plain


これでエミュレータを起動できました。
f:id:tyoshikawa1106:20160309141439p:plain

ログイン時に次のエラーがでた。接続アプリケーション周りの設定ができていないかも。
f:id:tyoshikawa1106:20160309141508p:plain:w200


一からやり直したら取引先責任者一覧を表示できました。
f:id:tyoshikawa1106:20160309143532p:plain

関連記事



SFDC:Apexと@futureのサンプル

$
0
0

最低限の処理ですが@futureのサンプルです。

SFDC:TrailheadとNo Apex class namedエラー


SFDC:Apexバッチのサンプルコード

$
0
0

最低限のコードですがApexバッチのサンプルです。

SFDC:ApexとQueueableのサンプル

$
0
0

最低限ですが、Queueableのサンプルです。enqueueJob.clsは開発者コンソールから実行する処理。実行結果は設定のApexジョブから確認できます。

SFDC:Lightning Design Systemと入力フォーム

$
0
0

Lightning Design Systemと入力フォームのサンプルです。2列表示、3列表示も問題なく表示できました。

f:id:tyoshikawa1106:20160310012357p:plain

デモ動画


サンプルコード

SFDC:Salesforce DG Meetup Group

SFDC:シングルサインオンの設定を試してみました

$
0
0

SalesforceのTrailheadにシングルサインオン設定の方法が紹介されていたので試してみました。

f:id:tyoshikawa1106:20160313210508p:plain

User Authentication | Salesforce Trailhead

Step 1: Create a Federation ID

ユーザの編集画面を表示。Federation IDに値を入力します。
f:id:tyoshikawa1106:20160313204111p:plain

Step 2: Set Up Your SSO Provider in Salesforce

こちらのデモ用ページを利用します。

f:id:tyoshikawa1106:20160313204239p:plain
http://axiomsso.herokuapp.com/Home.action


SAML Identity Provider & Testerリンクをクリック。
f:id:tyoshikawa1106:20160313204329p:plain


Download the Identity Provider Certificateリンクをクリック。証明書をダウンロードできます。
f:id:tyoshikawa1106:20160313204645p:plain


セキュリティのコントロールのSingle Sign-On Settingsから設定。有効化のチェックを付けてから。Newボタンをクリック。
f:id:tyoshikawa1106:20160313204717p:plain

  • Name: Axiom Test App
  • Issuer: http://axiomsso.herokuapp.com
  • Identity Provider Certificate: Choose the file you downloaded in step 3.
  • Request Signing Certificate: Leave it as Default Certificate.
  • SAML Identity Type: Select Assertion contains the Federation ID from the User object.
  • SAML Identity Location: Select Identity is in the NameIdentifier element of the Subject statement.
  • Service Provider Initiated Request Binding: Select HTTP Redirect.
  • Entity Id: Enter your My Domain name, including “https.” Use the custom domain name that you set up in the “Customize Your Login Process with My Domain” unit.

f:id:tyoshikawa1106:20160313205246p:plain

Step 3: Link Your Identity Provider to Salesforce

SAML Identity Provider & Testerのページに戻り、generate a SAML responseリンクをクリック。ここに必要事項を入力していく。
f:id:tyoshikawa1106:20160313205506p:plain

  • SAML Version: 2.0
  • Username or Federated ID: sia@jedeye-tech.com
  • Issuer: http://axiomsso.herokuapp.com
  • Entity Id: The Entity ID from the Salesforce SAML Single Sign on Setting page.
  • Recipient URL: Get the URL from the Salesforce SAML Single Sign on Setting page, too. Don’t see it? It’s at the bottom labeled Salesforce Login URL.


こんな感じになります。
f:id:tyoshikawa1106:20160313210042p:plain


次の画面でログインボタンをクリックすると
f:id:tyoshikawa1106:20160313210310p:plain


これでSalesforceにログインできました。

SFDC:Creating a Hybrid App Using the Mobile SDK CLI

$
0
0

Trailheadのやつです。

$ npm install -g cordova forceios
or
$ sudo npm install -g cordova forceios
$ forceios create
Enter your application type (native, hybrid_remote, or hybrid_local): hybrid_local
Enter your application name: firstapp
Enter the output directory for your app (defaults to the current directory):
Enter your company identifier (com.mycompany): com.mycompany.firstapp
Enter your organization name (Acme, Inc.): MyCompany, Inc.
Enter your Connected App ID (defaults to the sample app’s ID): [Enter the consumer key of the connected app created in step 1]
Enter your Connected App Callback URI (defaults to the sample app’s URI): myapp://auth/success
$ cd firstapp
$ cordova plugin add cordova-plugin-console
$ cordova plugin add cordova-plugin-statusbar
$ cordova build


なぜか大量の警告がでましたが、とりあえず動きました。
f:id:tyoshikawa1106:20160313231636p:plain


コレ関係あるかも

If the build fails in Xcode, select the firstapp target, click the Build Settings tab, search for bitcode, select No for Enable Bitcode, and try again.


conf.xmlに追加

<preference name="DisallowOverscroll" value="true"/>
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#ffffff" />
<preference name="StatusBarStyle" value="default" />

f:id:tyoshikawa1106:20160313231911p:plain

Modify the Sample App

To modify the application to use ForceJS:

1. Download forcejs.
2. Copy the force.js file in the firstapp/www/js folder.
3. Delete forcetk.mobilesdk.js and jquery.js from the firstapp/www/js folder
4. Open firstapp/www/index.html in your favorite code editor and make the following changes:
5. Remove the jquery script tag
6. On the next line, replace js/forcetk.mobilesdk.js with js/force.js
7. Open www/js/app.js in your favorite code editor and examine the code.
8. Notice that, as it is, the code works with a direct reference to the Mobile SDK plugin. As a result, you can only run the app on device or in an emulator: you can't test it in the browser first and run it on device later.
9. Remove the existing code, and replace it with the following code:

force.init({
    // Replace with the consumer key of the connected app you created in step 1.
    appId: "YOUR_CONSUMER_KEY"
});

force.login(function() {
    force.query('SELECT Id, Name FROM User LIMIT 10', function (response) {
        var html = '';
        var users = response.records;
        for (var i = 0; i < users.length; i++) {
            html += '<li class="table-view-cell">' + users[i].Name + '</li>';
        }
        document.getElementById('users').innerHTML = html;
    });
});

f:id:tyoshikawa1106:20160313232719p:plain

cordova build

Run the App in the Browser

Install force-server
$ sudo npm install -g force-server
$ cd www
$ force-server

f:id:tyoshikawa1106:20160313233022p:plain

$ force-server --help

SFDC:force-serverコマンドを試してみました

$
0
0

force-serverコマンドは次のインストールコマンドで利用できるようになります。

$ sudo npm install -g force-server


force.jsをダウンロードして次のファイルを用意します。
f:id:tyoshikawa1106:20160314004159p:plain


index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <script src="js/force.js"></script>
    <script src="js/index.js"></script>
  </head>
  <body>
    <p>Hello</p>
  </body>
</html>
index.js
function showContacts() {
  force.query('SELECT Name, Phone FROM Contact LIMIT 20',
    function(data) {
      var contacts = data.records;
      for (var i=0; i < contacts.length; i++) {
        console.log(contacts[i].Name);
      }
  },
  function(error) {
    alert("Can't load contacts: " + error);
  });
}

force.init({
  // Replace with the consumer key of the connected app you created in step 1.
  appId: "接続アプリケーションのコンシューマキー"          
});

force.login(showContacts, function(error) {
  alert('Authentication failed: ' + error);
});

f:id:tyoshikawa1106:20160314004327p:plain


※force.js内にも接続アプリケーションのコンシューマキーを指定する必要があります。接続アプリケーションアプリケーションは事前に設定しておきます。


ファイルの準備ができたら次のコマンドを実行します。

$ force-server

f:id:tyoshikawa1106:20160314004533p:plain


これでlocalhost:8200が利用できるようになります。またローカル環境からSalesforceのレコードにアクセスできることも確認できました。
f:id:tyoshikawa1106:20160314004806p:plain

サンプルコード


SFDC:コミュニティビルダーをさわってみました

$
0
0

通常のコミュニティの画面はこんな感じです。左上の歯車アイコンから管理画面に移動できます。
f:id:tyoshikawa1106:20160314095647p:plain


管理画面はこんな感じ
f:id:tyoshikawa1106:20160314095726p:plain


管理→設定でテンプレートを変更できます。
f:id:tyoshikawa1106:20160314095748p:plain


テンプレート選択画面はこちら。ナレッジを有効にしていない場合はNapiliテンプレートを利用します。
f:id:tyoshikawa1106:20160314095823p:plain


コミュニティ管理画面のヘッダーメニューからコミュニティビルダーを起動できます。
f:id:tyoshikawa1106:20160314095925p:plain

コミュニティビルダーのステップ

-- ステップ1 --

新規コミュニティビルダーでは、コミュニティのブランド設定、ページの作成およびカスタマイズ、ドラッグアンドドロップ操作の Lightning コンポーネントの追加、カスタムナビゲーションの作成、コミュニティのページの管理などを簡単に行うことができます。

-- ステップ2 --

製品のナビゲーション
コミュニティビルダーの機能:

ブランドエディタ
コミュニティのカラーパレットの選択、色の編集、画像やフォントの変更、カスタム CSS の適用を行います。

ページエディタ
コミュニティのページのカスタマイズおよび編集、Lightning コンポーネントの追加などを行います。

ページマネージャ
標準およびオブジェクトページの作成、コミュニティのページの管理などを行います。

設定
コミュニティのプロパティの設定、テンプレートバージョンの更新、カスタムコードの追加などを行います。

-- ステップ3 --

ブランドプロパティ
組織のブランドと一致するように、コミュニティのスタイルを更新します。カラーパレットでは色を精確に調整できます。まったく同じ色を再現するために、カスタム画像やロゴをアップロードすることも可能です。

-- ステップ4 --

ページエディタ
Lightning コンポーネントのページへのドラッグアンドドロップ、ページの構造の表示、コンポーネントのプロパティの編集などを行います。

-- ステップ5 --

コミュニティメニュー
Site.com Studio およびコミュニティ管理に移動します。

-- ステップ6 --

ページ
コミュニティ内のどのページ (エラーページを含む) にもすばやく移動できます。

-- ステップ7 --

デバイスのプリセット
異なるデバイスでコミュニティがどのように表示されるかを確認します。

-- ステップ8 --

ページコンテンツ
ページコンポーネントを選択して編集し、変更がすぐに有効になることを確認します。

-- ステップ9 --

プレビューモード
プレビューを使用して編集するページに移動してから、プレビューモードを閉じて変更を行います。ポップアウトボタンを使用すると、サイト全体を新しいブラウザウィンドウでプレビューできます。

-- ステップ10 --

公開
変更内容を公開して、コミュニティ内の全員が更新を使用できるようにします。

-- ステップ11 --

コンポーネントのプロパティ
ページまたは [ページ構造] ペインのコンポーネントを選択して、プロパティを編集します。

コミュニティビルダーのブランドエディタについて

ヘッダーイメージの変更

ヘッダーイメージの設定はブランドエディタから行います。
f:id:tyoshikawa1106:20160314101440p:plain


Header Imagesを選択して画像をアップロードします。
f:id:tyoshikawa1106:20160314101511p:plain


これで設定完了です。アップロード時のトリミング機能はなさそうでした。
f:id:tyoshikawa1106:20160314101551p:plain

企業ロゴの設定

企業ロゴはCompany Imageから設定できます。ヘッダー部分に表示されました。
f:id:tyoshikawa1106:20160314101840p:plain

フォントのカスタマイズ

コミュニティページのフォント種別や色のカスタマイズはブランドエディタで設定できます。
f:id:tyoshikawa1106:20160314102016p:plain:w200

コミュニティビルダーのページエディタについて

ページエディタとラベルの変更

f:id:tyoshikawa1106:20160314100540p:plain

コミュニティビルダーのページマネージャについて

コミュニティの各ページのタイトルなどを変更できるみたいです。
f:id:tyoshikawa1106:20160314102441p:plain

コミュニティビルダーの設定について

下記設定が可能です。

全般

f:id:tyoshikawa1106:20160314102123p:plain

言語

f:id:tyoshikawa1106:20160314102139p:plain

詳細

共通のヘッダータグを記載できるみたいです。
f:id:tyoshikawa1106:20160314102214p:plain

f:id:tyoshikawa1106:20160314102231p:plain

更新

テンプレートのアップデートが行えるみたいです。
f:id:tyoshikawa1106:20160314102301p:plain

その他

いろいろできそうでしたが、ちょっとドラッグ&ドロップして確認するぐらいでは、使い方を把握できませんでした。きちんと時間をかけて覚える必要がありそうです。
f:id:tyoshikawa1106:20160314104251p:plain


標準で用意されているボタンなどのコンポーネントですが、利用方法が決まっているみたいです。クリック後の操作などは自動で設定されていました。基本的にLightning Componentとして用意されたものみたいです。



SFDC:Building an Ionic2 App with the Salesforce Mobile SDKを試してみました

$
0
0

海外の開発者の方が公開してくれたブログ、Building an Ionic2 App with the Salesforce Mobile SDKを試してみました。Ionic2は現在ベータ版です。

f:id:tyoshikawa1106:20160314132450p:plain

Building an Ionic2 App with the Salesforce Mobile SDK - Oyecode


次のコマンドでIonic2とcordovaの環境を用意します。

$ cd desktop
$ cd work
$ sudo npm install -g ionic@beta
$ sudo npm install -g cordova

次のコマンドでIonicアプリを作成します。

$ ionic start myApp salesforce
$ cd myApp
$ ionic platforms update ios
$ ionic plugin add https://github.com/forcedotcom/SalesforceMobileSDK-CordovaPlugin

次のコマンドでemulateコマンドが実行できるようになります。

$ npm install -g ios-sim


次のコマンドでビルドが実行されます。

$ ionic build ios 


ビルドエラーが発生したら次のコマンドで解決するかも・・・

$ ionic platform remove ios
$ ionic platform add ios


次のコマンドでエミュレータが起動します。

$ ionic emulate ios


エミュレータのtargetが見つからないというようなエラーがでた場合は次のコマンドで解決できると思います。

$ ionic emulate ios --target="iPhone-6, 9.2"

9.2はOSのバージョン、XCodeのDeviceメニューから確認できます。


・・・自分の環境ではエミュレータに正しく表示されましせんでした。


続きです。

$ sudo npm install -g force-server 
$ cd www/
$ force-server


先ほどのiOSエミュレータではうまく行きませんでしたが、force-severの方はうまくいきました。
f:id:tyoshikawa1106:20160314141242p:plain

SFDC:接続アプリケーションのCallbackURLと複数URLの指定

$
0
0

接続アプリケーションのCallbackURLと複数URLの指定についてです。

f:id:tyoshikawa1106:20160315080245p:plain


OAuth認証の時に必要になるCallbackURLですが、ひとつの接続アプリケーションに複数指定することが可能です。
f:id:tyoshikawa1106:20160315080406p:plain


CallbackURLは認証時に自動で遷移するURLではなく、認証時に遷移できるURLとなっています。なので遷移を許可したURLという感じになっているみたいです。

Java:Spring Boot CLIを試してみました

$
0
0

最初にSDKMANコマンドをインストールして利用できるようにします。

f:id:tyoshikawa1106:20160315102206p:plain

sdkman the Software Development Kit Manager


サイトの手順どおりにコマンドを実行すれば大丈夫でした。

$ curl -s get.sdkman.io | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk version


次にSpringコマンドをインストールして利用できるようにします。

$ sdk install springboot
$ spring --version

途中で『Do you want springboot 1.3.3.RELEASE to be set as default? (Y/n): 』と質問があります。Defaultバージョンの話だと思います。『Y』と入力しておきました。


これでSpring Boot CLIの準備が完了しました。『app.groovy』ファイルを用意して動作確認します。

@RestController
class ThisWillActuallyRun {

    @RequestMapping("/")
    String home() {
        "Hello World!"
    }

}

f:id:tyoshikawa1106:20160315103205p:plain


ちょっと時間がかかりますがつぎのように実行されます。
f:id:tyoshikawa1106:20160315103353p:plain


localhost:8080にアクセスするとHello World!と表示されます。
f:id:tyoshikawa1106:20160315103300p:plain

補足

検索していたらbrewコマンドをつかったもっと簡単なインストール方法が紹介されていました。

SFDC:bower.jsonとSLDS

$
0
0

SalesforceのCSSFramework、Lightning Design SystemですがBower経由でダウンロードすることができます。

bower install salesforce-lightning-design-system --save


Bowerですが、bower.jsonを用意すれば複数のライブラリをまとめてダウンロードすることができます。

{
  "name": "angular-tutorial",
  "description": "A starter project for AngularJS",
  "version": "0.0.0",
  "homepage": "https://github.com/tyoshikawa1106",
  "license": "MIT",
  "private": true,
  "dependencies": {
    "angular": "1.4.x",
    "angular-mocks": "1.4.x",
    "jquery": "~2.1.1",
    "angular-route": "1.4.x",
    "angular-resource": "1.4.x",
    "angular-animate": "1.4.x",
    "salesforce-lightning-design-system": "1.0.x"
  }
}


bower.jsonを用意したあとは次のコマンドだけで大丈夫です。

$ bower install

f:id:tyoshikawa1106:20160315201416p:plain


これでLightning Design Systemをはじめ、jQueryやAnuglarなどのライブラリをまとめてダウンロードできます。
f:id:tyoshikawa1106:20160315201622p:plain

関連記事

Viewing all 1438 articles
Browse latest View live


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