たちまち。

即席で役に立つこと。

Dynamics365「このロールで使用できるアプリが見つかりません」

ログインすると、以下の画面が表示された。

f:id:aposke:20201007155251p:plain

このロールで使用できるアプリが見つかりません。最近追加されたアプリを確認するには、[最新の情報に更新]を選択します。

今回、統一インタフェース対応のために利用できるアプリの権限を絞ったのだが、一般ユーザでのログイン時にこの画面が表示されるようになった。

このようにアプリが使えないときの原因は、大きく2つある。

解決策1. アプリの権限を付与する

1. アプリの一覧を開く

右上の歯車>詳細設定 → 開いたウィンドウのメニュー 設定>アプリ

2. アプリにロール権限を付与

アプリ名右上の「…」をクリックし、「ロールの管理」

このアプリを利用できるロールにチェックをつけて保存する。

解決策2. セキュリティロールの権限を付与する

1. 対象のセキュリティロールを開く

設定>セキュリティ>セキュリティロール

2. 「モデル駆動アプリ」の読み取り権限を付与する

「カスタマイズ」タブに「モデル駆動アプリ」があるので、これに読み取り権限を付与する。

今回のケースではひとまず組織全体許可とした。

以上でアプリが表示されるようになった。

参考URL

https://support.microsoft.com/ja-jp/help/4486472/we-can-t-find-any-apps-for-your-role-message-in-dynamics-365-for-phone

Excelに入力したフルパスからファイル名だけを抽出する

◆前提条件

・パスは円サイン「\」で区切られている

・「●」という記号が使われていない

・セル「E7」にフルパスが記載されているものとする

Excel関数
=RIGHT(E7,LEN(E7)-FIND("●", SUBSTITUTE(E7, "\", "●", LEN(E7) - LEN(SUBSTITUTE(E7, "\", "")))))

フルパス(セルE7)の位置、パスの区切り記号("\")については適宜書き換えてください。

参考記事

https://www.relief.jp/docs/excel-find-function-from-right.html

作成したjavaファイルとリリース用classファイルの間に漏れがないかを確認する

とあるプロジェクトでJavaファイルを作成した。

リリースするのは、コンパイルされたclassファイルのみである。

リリース用にclassファイルのみ固めたものの、元となるソースが漏れなく含まれているかを確認したい。

ファイル数で確認できそうだが、複数クラス出力するjavaもいるし…

そんな時は以下のようにする。

1. javaのみ固めたフォルダと、classのみ固めたフォルダをそれぞれ用意。
2. コマンドプロンプトを起動し、javaのみ固めたフォルダに移動して、以下を実行。
dir /b /s *.java > javalist.txt

※ファイルリストを取得する。/bはファイル名のみ、/sはサブフォルダを含む。拡張子を絞っている。

3. 同様にclassのみ固めたフォルダに移動して、以下を実行。
dir /b /s *.class > classlist.txt
4. 生成されたテキストをそれぞれエディタで開き、以下のように加工する。

・パッケージより手前のフォルダパスは削除

・拡張子を削除

5. 加工したテキストをWinMerge等の比較ツールで比較

・差異なく表示される。

・1Javaから複数クラス出力されたものは差異として出るが、一見してわかる。

以上、ただの愚直な手順でした。

ViewCreatorのクエリ作成にアクセスすると403権限エラー

掲題の通り、ViewCreatorのクエリ一覧からクエリ作成にアクセスすると、「403 アクセス権限がありません」エラーが発生する。

ログインしているユーザはテナント管理者なのになぜ…

念のため認可を見直してみても、ViewCreator関連の画面・処理権限は全てONになっている。

ユーザを変更してみても特に事象に変化はなし。

解決方法

やはり認可が原因で、welcome-allマッパーに権限が割り当たっていなかった

テナント管理>認可から、welcom-allマッパーに許可権限をつけることで解決した。

調査方法としてはrequestログを確認したところ、403の画面に飛んでしまう直前のリクエストにて「api/tenant/common/messages」を呼んでおり、

このURLでconf内をGrepかけたところ、routing-jssp-configのtenant-common.xmlがヒットし、中身を見るとwelcome-allマッパーに紐づけられていた。

まさかwelcome-allの権限がOFFになっているとは予想外だったが…そんなこともあるようだ。

Dynamics365でダッシュボードを開くと"RELEVANT_MESSAGE_IN_INCORRECT_ENVIRONMENT"エラー

Dynamics365環境にて、ダッシュボードを開くと以下のエラーが発生する。

f:id:aposke:20200901155220p:plain

エラー

RELEVANT_MESSAGE_IN_INCORRECT_ENVIRONMENT

解決方法

クライアント環境に合わないダッシュボードを表示しようとしているため、ダッシュボードの権限設定を見直す。

今回のケースでは、「Outlook用 アプリ ダッシュボード」を表示しようとしてしまっていた(これは、ブラウザページのタイトルで判明した)。

システムのカスタマイズから当該のダッシュボードを選択し、「セキュリティロールの有効化」から全てのロールを外すことで解決。

【Dynamics365】統一インターフェイスのエンティティ用に使える標準アイコン

Dynamics365の統一インターフェイスにした際、サイトマップに配置している各メニューにアイコンが表示されるが、

カスタムエンティティについては、デフォルトでパズルのピースのようなアイコンになっている。

これを変更したい場合は、ソリューションから対象のエンティティを開き、「アイコンの更新」の中に「統一インターフェイス」というタブがあるので、そちらから指定すれば変更できる。

このアイコンについては基本的に自前で用意するのが良いと思うが、標準でも選べるものがいくつか存在する。

標準で使えるいいものはないのかな?ということで、調べてみたものが以下。

f:id:aposke:20200901115309p:plain

f:id:aposke:20200901115321p:plain

f:id:aposke:20200901115330p:plain

f:id:aposke:20200901115340p:plain

f:id:aposke:20200901115348p:plain

f:id:aposke:20200901115356p:plain

この他にも存在するが、使えそうなのはこんなところ。

「msfp_」で始まるアイコンはサイズ・テイストともに統一インターフェイスに最適化されているようだ。

数が多くないのと、マッチしないとあまり使えないケースもあるかもしれないが

主要エンティティのアイコンをちょっと変更したい、という場合には使えるかもしれない。

Dynamics365のPluginRegistrationToolで登録時にエラー

以下のエラーが発生する。

Cannot open Sql Encryption Symmetric Key because Symmetric Key password does not exist in Config DB

解決方法

調べたところ、Dynamicsのデータ暗号化の設定をしていないことが原因の模様。

ブラウザからシステムに画面アクセスし、「設定」>「データ管理」>「データ暗号化」を開いて設定すればよいようだ。

しかし、データ暗号化の画面を開こうとすると以下のエラーに遭遇。

この種類の要求には HTTPS プロトコルが必要です。HTTPS プロトコルを有効にしてからやり直してください。詳細については、インストール後の手順と構成の手順を参照してください。

https環境を構成しないといけないらしい。

しかしhttpsに対応する余裕も予定もないので、DBに対して以下SQLを発行しSSLチェックを無効化する。

UPDATE [MSCRM_CONFIG].[dbo].[DeploymentProperties]
SET [BitColumn]=1
WHERE ColumnName='DisableSSLCheckForEncryption'

その後、APサーバを再起動

再度画面にアクセスすると、データ暗号化の画面が表示された。

暗号化キーの入力欄に暗号化キー(一定の強度が必要)を入力し、設定することでアクティブになった。

その後、再度プラグイン登録を行ったところ無事成功!

参考URL

https://sliong.wordpress.com/2015/03/13/crm-2013-migration-cannot-open-sql-encryption-symmetric-key-because-symmetric-key-password-does-not-exist-in-config-db/