Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

C#

【C#】【Dynamics CRM】Pluginにおけるトレースと例外処理

Dynamics CRM Pluginでの例外処理、例外の確認方法が同期・非同期などで異なるので、その点について確認していきたいと思います。 例外処理結果の違い Dynamics CRM Pluginで例外をスローすると、同期・非同期で結果の表示方法が違います。 同期であれば、We…

【C#】【Dynamics CRM】PluginにおけるPre・PostEntityImagesの利用

Dynamics CRM Pluginでは、例えばUpdateに登録したPluginの場合、ContextのInputParameterに送られてくるデータは更新されたデータのみになります。 しかしながら、シナリオによってはUpdateする前の値と比較し何かしらの処理を行いたい、もしくはUpdate後の…

【C#】【Dynamics CRM】【Azure】Azure Webサービス Webジョブで定期実行

Dynamics CRM でお客さんがやりたいことリストのトップへ常に名を連ねるものが外部データ連携だと思います。 SFA的に使うにしても、やはり何かしらのデータを外部から持ってこないと始まるものも始まらない、みたいな感じはどこでもありますね。 基本的なア…

【C#】【Dynamics CRM】PluginのContextを用いた関連レコードの作成

個人的にPluginのよくあるパターンとして、CreateMessageに設定して、作成されるレコードに関連づいたレコードを作成する、というものがある気がします。 もちろん、ワークフローでも可能なアプローチですが、例えば一括で複数件の関連レコードを作成する、…

【C#】【Dynamics CRM】PluginのContextについて

Dynamics CRM Pluginは各Messageの処理に関連付けて登録し、処理を実行します。 その実行する際に、実行ContextがPluginにパラメータとして渡ってきます。 Contextには様々な種類のデータが格納されて来ますが、そのContextの概要とContextの中で重要な位置…

【C#】【Linq to SQL】Linq to SQL によるCRUD操作

SQL ServerへのCRUD操作をちゃんと把握したく、改めて色々と調べてました。 ADO.NETによる接続ライブラリは大きく分けて3種類の模様です。 DataSet Linq to SQL Entity Framework 最初は[1.]をやろうと思って調べていたんですが、なんか色々と回りくどい、面…

【C#】【Dynamics CRM】Pluginの作成(概要)

今までいくつかのプロジェクトでDynamics CRM のPluginを作成してきたけども、認識として曖昧な部分もあったので、改めて全体的な内容を確認し直して、書き留めておきたいと思います。 Dynamics CRM におけるPluginの概要 Dynamics CRMではレコードの作成時…

【C#】【Dynamics CRM】並列処理の実行結果比較

今回はDynamics CRMで実際に並列処理結果を比べたらどうなるの? というのをやってみました。 実施方法は3種類。 ・一つ目は単純にforを回して、レコードをCreateし続けるもの。 ・二つ目は前回作成したParallel.ForによるCreate。スレッド数の制限は無し。 …

【C#】【Dynamics CRM】Parallel.Forによる並列処理

前回Dynamics CRMのExecuteMultipleRequestによる一括実行を書き留めましたが、今回は.netの並列処理の1つであるParallel.For処理方法を記載してみたいと思います。 詳しくはやっぱりDynamics CRM team Blogで実践されてますが、ここはやっぱり自分でも試し…

【C#】TPL:Parallelによる並列処理

前回Dynamics CRM のExecuteMultipleRequestによる一括処理を調べて、この次は並列処理かな! と思ったのですが、 そもそもDynamics CRMで並列処理、という前に、並列処理そのものの理解を深めないといけないな、ということで。 .NET Frameworksによる並列処…

【C#】【Dynamics CRM】ExecuteMultipleRequestによる一括実行

Dynamics CRMにおいて、C#などの外部プログラムでCUD操作を行う際、基本的に1件ずつレコードを処理する形になります。 ですが、ExecuteMultipleRequestクラスを利用することで、Dynamics CRM各Execute Messageの一括実行が可能になります。 これが意外と性能…

【C# 】【Dynamics CRM】事前バインディングのエンティティフィルタリング

前回すべてのエンティティの事前バインディング方法を記載したので、今回は特定のエンティティに絞った事前バインディングの方法を確認しておきたいと思います。 概要 Dynamics CRM SDKで提供されているサンプルコードのCrmSvcUtilExtensionsフォルダのBasic…

【C#】【Dynamics CRM】事前バインディングの手順

Dynamics CRMでは.NETプログラム(CS・VB)を作成する際、事前バインディングという手法(ツール?)を提供しています。 毎度毎度やり方を確認しているので一度ちゃんとまとめておきたいと思います。 今回はDynamics CRM Onlineにて実施。 実施環境 Windows …

【C#】【Dynamics CRM】QueryExpression によるページングの指定

Dynamics CRM から組織サービス経由で大量のデータを取得(RetrieveMultiple)する場合、標準で取得件数5000件制限が付与されています。 予めフィルターしたデータを取得するのであれば、あまり問題にはなりませんが、 5000件を超えるデータを取得することが…

【C#】Settingファイルの使い方

C#

ユーザー固有の設定情報を保存する場合はどうすればいいのか? というなんとも初歩的なところがわからなかったので、色々と調べていました。 初めはある知識だけで、app.config改変できるんじゃね!? と思っていたら、 ConfigurationManagerクラスにそんな…

【C#】【Dynamics CRM】BlukDeleteJobの作成

Dynamics CRMのデータを一括削除する必要があったので、 その辺りを調べていたのだけど手法としては3つあるかなぁと。 Dynamics CRM における削除手法 単純にservice.Delete にGuidを渡してあげる BlukDeleteJobを生成する。 ExecuteMultipleをDeleteに渡し…

【C#】【Dynamics CRM】Metadataの取得

Dynamics CRMのプライマリフィールドを調べたい! とうことで、Metadata取得周りを漁っていたのですが、随分めんどくさかったので、簡単にまとめました。 概要 まず理解する必要があるのは【MetadataFilterExpression】【MetadataPropertiesExpresion】の2つ…

【C#】【Dynamics CRM】

毎度毎度仕事でDynamics CRMへコネクションするのだけど、 毎度毎度調べ直している気がするので、接続方法を少しづつ書き留めておこうと思う。 概要 とりあえず、一番簡単にDynamics CRM Onlineへ接続する方法 CrmConnectionクラスのParseメソッドにそのまま…

【C#】C#でMDBファイルへ接続

仕事でMDBファイルへ接続して、うんちゃらかんちゃらするものがあるとのことで とりあえず簡単に接続する方法を調べた。 概要 基本的にはADO.NETでOleDbConnectionに接続文字列を渡して、Connectionを確立するらしい。 参考URL 下記サイトが様々なデータベー…

【C#】NLogでMail通知

NLogでメール通知ってどうやるんだろうなぁ。 やっぱSMTPサーバ立てないとダメかなぁと思っていたら、Gmailでできるやん! というのがあったので、やってみた。 参考 まんまだけど、下記公式Wikiを参考。 NLog/NLoggithub.com NLog Config まずNLogコンフィ…

【C#】ロギジングライブラリのNLogを使ってみた

仕事でLog出力も備えたアプリを作成する必要があったので、メジャーどころ(?)なNLogを使ってみた。 これは便利!(っていっても他のものを使ったことが無いので、比較的なことはできてないけど) 公式 NLog NLogwww.nuget.org VisualStudioであれば基本的…

【C#】CoreTweetやってみた

最近、ちょこちょことCoreTweetを試している。 よーやくプログラムをマシに触れるようになってきた気がするよ。 ■CoreTweet(日本語版GitHub) CoreTweet/CoreTweetgithub.com 一番ありがたいおまとめは、下のサイト .NET向けのTwitterライブラリ「CoreTweet…