Quantcast
Channel: MSDN Blogs
Viewing all 29128 articles
Browse latest View live

Minecraft Hour of Code Tutorial Will Inspire Students to Learn Computer Science Skills

$
0
0

To the community of 100 million players around the world, Minecraft represents many things - creativity, strategy, collaboration and survival, just to name a few. What many may not realize is that Minecraft has the power to transform learning on a global scale.

...(read more)

Experiencing Data Latency for Many Data Types - 11/17 - Resolved

$
0
0
Final Update: Tuesday, 17 November 2015 18:21 UTC

We've confirmed that all systems are back to normal with no customer impact as of 11/17, 18:20 UTC. Our logs show the incident started on 11/17, 17:30 UTC and that during the 1 hour that it took to resolve the issue.
  • Root Cause: The failure was due to errors talking to a dependent service.
  • Lessons Learned: We are actively investigating the issue and working on a long term fix to avoid this in the future.
  • Incident Timeline:  50 minutes - 11/17, 17:30 UTC through 11/17, 18:20 UTC
We understand that customers rely on Application Insights as a critical service and apologize for any impact this incident caused.

-Application Insights Service Delivery Team

Update: Tuesday, 17 November 2015 17:18 UTC

Root cause has been isolated to errors while calling into a dependent service which was impacting multiple data types.  We have done mitigation steps to stop the issue from occuring. However, customers will continue to see latency above 2 hours during the time period of 11/17/2015 15:30 UTC to 11/17/2015 16:00. This data is actively being processed by our backlog processing.
  • Work Around: None
  • Next Update: Before 11/17 21:30 UTC
-Application Insights Service Delivery Team

Teach Kids to Code with Minecraft and Code.org!

$
0
0

Microsoft and Code.org team up again!

You know, I'm just going to let the Minecraft team and Code.org do their own talking on this one...

https://code.org/

 

 

 

And here's a direct link to the Minecraft module:

https://code.org/mc 

 

It starts off with a video from Jens, who leads development on Minecraft:

https://studio.code.org/s/mc/stage/1/puzzle/1 

  

There are a lot of next steps you can take in your (or your student's) learning adventure, after you're done with this awesome code block editing goodness. One step is Microsoft Small Basic, which is a text-based programming language (object-oriented, built off of BASIC and Visual Basic), made for learners (starting at age 8 -- you learn while you go), and it graduates you into the free Visual Studio Code, where you'll learn Visual Basic, Java, JavaScript, C#, Python, Ruby, HTML, and more! Mix in some amazing social sharing/collaborating features, support for Lego Mindstorms EV3, and support for Microsoft Kinect, and you have a fantastic teaching tool! See all the Unique Features of Microsoft Small Basic.

   

Progress on to Microsoft Small Basic:

  1. Explore:
    1. The Unique Features of Small Basic
    2. 49 Small Basic Student Testimonies
  2. Learn:
    1. Small Basic Getting Started Guide
    2. Small Basic Teaching Curriculum
    3. Small Basic Reference Documentation
  3. Engage:
    1. Small Basic Blog
    2. Small Basic MSDN Forum

Have a good bye!

   - Ninja Ed

 

 

EWS Streaming Notifications with Exchange 2013

$
0
0

Below are some pointers on EWS streaming events with Exchange 2013/Exchange Online.

The basics:

Affinity in Exchange 2013/Wave 15 is handled the client application using cookies and headers.  Subscription code needs to gather information using AutoDiscover, and create batch list of mailboxes to subscribe to then and set appropriate headers for the initial subscription request and for each subsequent EWS request related to the subscription.  Subscriptions do break, so it’s extremely important to have a heavy amount of error and recovery checking.  Also keep in mind that what goes over the wire and comes back on the wire is of equal or greater importance than your actual code – so be able to log traffic and review it when you run into issues.

It’s important that every developer read the following articles and go over their content several times to be sure they understand how writing code for steaming notifications works:

How to: Stream notifications about mailbox events by using EWS in Exchange
https://msdn.microsoft.com/EN-US/library/office/dn458792(v=exchg.150).aspx
Note that while this article has helpful information that it does not cover the needed affinity settings.

How to: Maintain affinity between a group of subscriptions and the Mailbox server in Exchange
https://msdn.microsoft.com/EN-US/library/office/dn458789(v=exchg.150).aspx
Note
: This is probably the most important article on EWS Streaming notifications.

Handling notification-related errors in EWS in Exchange
https://msdn.microsoft.com/EN-US/library/office/dn458788(v=exchg.150).aspx

Notification subscriptions, mailbox events, and EWS in Exchange
https://msdn.microsoft.com/EN-US/library/office/dn458791(v=exchg.150).aspx

GetStreamingEvents operation
https://msdn.microsoft.com/EN-US/library/office/ff406172(v=exchg.150).aspx
 

Review this code to see how an application might be written:

EWS: Streaming Notification Sample
http://blogs.msdn.com/b/emeamsgdev/archive/2013/04/16/ews-streaming-notification-sample.aspx
Be sure to fully review this code before writing your own code - it may save you a good amount of and some grief. 

Since EWS Impersonation will be used in code it’s important to understand how it works code-wise:

Impersonation and EWS in Exchange
https://msdn.microsoft.com/en-us/library/office/dn722377(v=exchg.150).aspx

Working with impersonation by using the EWS Managed API 2.0
https://msdn.microsoft.com/en-us/library/office/dd633680(v=exchg.80).aspx

The importance of EWS Impersonation while using an application account.
http://blogs.msdn.com/b/webdav_101/archive/2012/06/27/the-importance-of-ews-impersonation-while-using-an-application-account.aspx

Need to continue the connection every 30 minutes:

EWS Notifications hold an open connection to Exchange for 30 minutes in order to receive notifications for the subscription.  After 30 minutes that connection will timeout and the connection close.  Code needs to be written so that it catches the connection close event and reopens the connection.  A closing connection won't kill the subscription but rather closes the connection in order to keep from holding up the server and max connections.  So, if you lose the connection just reconnect.  The general rule is don't have a connection open and listening for events unless you need to.  Keep in mind that there is an open connection limit.

Prepare the service account and mailboxes:

Create an account for doing EWS Impersonation and be sure that its configured properly to access the mailboxes the code is going to be doing subscriptions against.  Impersonation access is charged to the mailbox being accessed and not to the service account – this allows one account to access many mailboxes without encountering concurrency throttling limits.

How to: Configure impersonation
https://msdn.microsoft.com/en-us/library/office/dn722376(v=exchg.150).aspx

You should check to be sure that impersonation is working correctly using EWSEditor or by using the Microsoft Remote Connectivity Analyzer.

Microsoft Remote Connectivity Analyzer
https://testconnectivity.microsoft.com/

EWS Editor
https://ewseditor.codeplex.com/

Coding:

There are many steps involved in coding for streaming subscriptions.  At times code will need to do autodiscover for an existing batch subscription from scratch and possibly create separate subscriptions.  Subscriptions can and due break – so be sure to write fault tolerant code and be sure to have the ability to log traffic.  Code written for Exchange 2010 won’t work properly with 2013 or Exchange Online since how streaming subscriptions work has changed.

With the EWS Managed API one Service object can be created and used with the impersonating account to do the needed subscription calls and for gathering the changes.  So, one service object can handle the subscription or many mailboxes.

Code should be written to handle subscriptions on one thread and use other threads for processing the results.  So, after calling GetStreamingEvents you can spawn new thread with the results in order to do processing.  Be sure to NOT use EWS Managed API object across threads as they are not designed for such usage.  Note that if you define an object such as a service object as a public static then you are exposing it across threads – so, don’t do that.  When you need to open a new thread to do work you need to create a new service object to do the work.

You can use any language on any platform for using EWS calls.  However, you will likely find that most samples are written in C# and most applications use the EWS Managed API.

EWS Managed API... open source?  YES!  It's now Open Source!!!
http://blogs.msdn.com/b/webdav_101/archive/2014/09/29/ews-managed-api-open-source-yes-it-s-now-open-source.aspx

Creating a subscription list:

Do AutoDiscover against every mailbox which needs to be subscribed to and gather needed info per the above document.  Using this information create an initial list of mailboxes to subscribe to.

  • Mailbox SMTP address.
  • External EWS URL
  • Grouping Information (AD site)

Build lists of mailboxes to batch subscribe with:

  • This list needs to be sorted by External EWS URL first then by Grouping information. 
  • Now create separate lists per External EWS URL + Grouping information. Each of these lists will be used for individual batch subscriptions. If one of these new lists have over 200 items, then create more lists of up to 200 items.  Each entry in the list always needs to have the same External EWS URL and Grouping information.

Note that the first mailbox in each of the resulting subscriptions lists is going to be used in several ways.  This first mailblox will be the anchor mailbox and used in the X-AnchorMailbox header.  The code will also be impersonating as that mailbox when subscribing.

The headers:

There are several headers which MUST always be set correctly in each EWS requests in order to for the subscriptions to work.   Some developers gloss over these headers or don’t implement them correctly and even don’t implement them because they second-guess their importance – the end result is the code eventually fails.

  • X-AnchorMailbox (this should be the first mailbox in the subscription list).
  • X-PreferServerAffinity (set to true)
  • X-BackEndOverrideCookie (This is returned from the initial subscription to the first mailbox in each subscription list – ie the anchor mailbox.)

When subscribing you be sure to specify an anchor mailbox to ensure the subscription code works.  This is done by setting a "X-AnchorMailbox" header on every EWS request involved in the subscription to the SMTP address of one of the mailboxes in each list and the SMTP address which should be used is the STMP address of the first mailbox in the list.   Setting the "X-AnchorMailbox" header helps Exchange route the traffic of the requests correctly.

Logging:

Be sure to add the ability to trace/log traffic when needed.  This will likely help greatly when you run into issues and can be invaluable in a production environment.  Exchange IIS logs can provide some information; however, in most cases involving subscription code the full content of the request and response (both headers and bodies) are needed in order to troubleshoot issues. 

EWS Best Practices - Tracing and logging
http://blogs.msdn.com/b/webdav_101/archive/2015/05/03/ews-best-practices-tracing-and-logging.aspx 

Be sure to set ReturnClientRequestId on the service object being used so that the client id will be in the traffic logged in traces and logs.  This allows a person reviewing the traffic to tie client side traffic and server side traffic together.  Set SendClientLatencieson the service object so that server information is returned when subscribing against an Office 365 mailbox. When SendClientLatencies is set on the request some diagnostic information will be in the EWS responses which can greatly help in diagnosing issues – such as the FQDNs of the mailbox and CAS server which processed the calls.

Instrumenting client requests for EWS and REST in Exchange
https://msdn.microsoft.com/en-us/library/office/dn720380(v=exchg.150).aspx

Errors:

As noted above, it is very important to code for errors.  In some case you may need to re-subscribe from the start – yes all the way back to the initial AutoDiscover and batching.  An example of this is when ErrorProxyRequestNotAllowed is thrown and which is usually caused by a failover or mailbox move.  Office 365 will do failovers once a day or so to balance the load, for patching and maintenance - this will cause ErrorProxyRequestNotAllowed to be thrown as failovers are done to different sites and another site would have a different Grouping Information value. 

In addition to streaming related errors, your code could run into Exchange throttling policy issues – so be sure to read on the subject.  Keep in mind that throttling is your friend and it’s there to help be sure that programs don’t dominate a server.  Every program should be able to self-throttle so that the fail-safe measures of Exchange throttling don’t kick in.

Handling notification-related errors in EWS in Exchange
https://msdn.microsoft.com/EN-US/library/office/dn458788(v=exchg.150).aspx

EWS throttling in Exchange
https://msdn.microsoft.com/en-us/library/office/jj945066(v=exchg.150).aspx

Exchange workload management
https://technet.microsoft.com/en-ca/library/jj150503(v=exchg.150).aspx

 

 

Sample chapter: Overview of Windows PowerShell 5.0

$
0
0

This chapter from Windows PowerShell Step by Step, 3rd Edition covers the basic use and capabilities of Windows PowerShell, how to install Windows PowerShell, how to use basic command-line utilities inside Windows PowerShell and access Windows PowerShell help, and run and get help on basic Windows PowerShell cmdlets.

After completing this chapter, you will be able to

        • Understand the basic use and capabilities of Windows PowerShell.
        • Install Windows PowerShell.
        • Use basic command-line utilities inside Windows PowerShell.
        • Use Windows PowerShell help.
        • Run basic Windows PowerShell cmdlets.
        • Get help on basic Windows PowerShell cmdlets.

The release of Windows PowerShell 5.0 continues to offer real power to the Windows network administrator. Combining the power of a full-fledged scripting language with access to command-line utilities, Windows Management Instrumentation (WMI), and even Microsoft Visual Basic Scripting Edition (VBScript), Windows PowerShell provides real power and ease. The implementation of hundreds of cmdlets and advanced functions provides a rich ecosystem that makes sophisticated changes as simple as a single line of easy-to-read code. As part of the Microsoft Common Engineering Criteria, Windows PowerShell is the management solution for the Windows platform.

Read the complete chapter here.

Dual Booting Ubuntu and Windows 10

$
0
0

Even though I hit a ton of online resources outlining the details, I struggled a lot getting this to work. So in this blog I am outlining what worked for me.

My setup was a office laptop (Lenovo X1 Carbon) with Trusted Platform Module (TPM), secure boot and Bit-locker enabled. My goal is to dual boot Ubuntu 15.10 with Windows 10.

Setup the installer USB

Get a USB thumb drive and format it as FAT32. NOTE: Do NOT use NTFS, otherwise the installation will completely fail with Kernel Panic

image

I downloaded my Ubuntu 15.10 from http://www.ubuntu.com/desktop. Then I downloaded the Universal USB Installer from http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/. I used the following setting to create the installer pen drive

image

Setup your PC for Dual Boot

If you do not have secure boot (UEFI or bitlocker) life is simple. But if you are reading this blog, then definitely you are not in that boat.

First of all disable boot-locker before making any changes into startup settings. Just type Bitlocker in the search box and choose Manage Bitlocker. In that turn it off.

image

Also ensure you have a empty partition to install Ubuntu onto. If you do not you need to partition your disk. There are various freeware and even Windows Disk Management can do that for you. I have the following D drive that I intended to install Ubuntu onto

Capture

Disable Secure Boot

From WinKey+R run the command

shutdown.exe /r /o /f /t 00

Windows will restart with the following screen, choose Troubleshoot

20151112_200310

In the next, advanced options screen choose UEFI Firmware settings

20151112_200348

The use the restart button

20151112_200423

This will bring up the BIOS window. It will differ for different PC/Laptop, but in any case you need to disable various secure boot options. In my Lenovo Thinkpad, I followed the following screen.

Go to Security –> Secure Boot and Disable Secure Boot

20151112_201347

20151112_201409

Then in startup enable legacy boot.

20151112_202504

Save the changes and exit (F10) and boot into windows

Installing Ubuntu

Now in Windows run the same command as before

shutdown.exe /r /o /f /t 00

This will bring up the following options, choose “Use a Device”

20151113_180925

In that use “Boot Menu”

20151113_180946

If you have done everything right the machine will restart and offer a boot menu with your USB thumb drive listed as an option.

20151113_181034

Selecting the bootable thumb drive should launch Ubuntu installer. Choose Install Ubuntu to start installing. Follow through the installer wizard.

20151113_181101

Experiencing Latency and Data Loss for Availability Data Type - 11/17 - Resolved

$
0
0
Final Update: Tuesday, 17 November 2015 20:28 UTC

We've confirmed that all systems are back to normal with no customer impact as of 11/17, 20:20 UTC. Our logs show the incident started on 11/17, 19:20 UTC and that during the 1 hour that it took to resolve the issue 25% of webtests running in san Antonio experienced loss of webtest results and invalid failures.
  • Root Cause: The failure was due to issues in a back end server. In order mitigate the issue we have removed this server from rotation.
  • Lessons Learned: We are actively investigating the issue to help determine what occurred.
  • Incident Timeline: 1 Hours - 11/17, 19:20 UTC through 11/17, 20:20 UTC
We understand that customers rely on Application Insights as a critical service and apologize for any impact this incident caused.

-Application Insights Service Delivery Team

Initial Update: Tuesday, 17 November 2015 20:09 UTC

We are aware of issues within Application Insights and are actively investigating. Some customers may experience Latency and Data Loss. The following data types are affected: Availability in the San Antonio region.
  • Work Around: None
  • Next Update: Before 11/17 22:30 UTC
We are working hard to resolve this issue and apologize for any inconvenience.
-Application Insights Service Delivery Team

ASP.NET 5 Overview for Apex Systems

$
0
0
I presented ASP.NET 5 at a Webinar for Apex Systems Inc on Tuesday, November 17, 2015. Here is the presentation material with the slides, links and my contact information. Download PPTX or view slideshow below SlideShare: http://www.slideshare.net/shahedC3000 ...read more...(read more)

Ensure to use the Retail Initialize in all AX companies configured with Retail

$
0
0

This is a quick article to let you know that when configuring AX and Retail you will need to use Retail Initialize function in all companies that will be using Retail.  The location of the Initialize button is in Retail >> Setup >> Parameters >> Retail parameters >> in the menu bar, click Initialize.

When Initialize is ran for the first time, it will create the Retail tables, jobs, forms, etc. Running Initialize a second time will attempt to create these same entities.  Since they already exists, you will be presented with an Infolog with errors stating that they already exists and it is unable to create them.  The big catch here is that running the Initialize also marks the SYSTEMINUSE flag for that company in the RETAILPARAMETERS table.  If you do not run the Initialize in additional companies, most of the Retail functionality will work but there are a few checks here and there that will cause issues. 

In one such instance, posting a Retail Statement will process successfully, but there will not be any records in the RetailCustInvoiceJourTable table as a check is made for the SYSTEMINUSE flag on whether it needs to copy the CustInvoiceJourTable to the RetailCustInvoiceJourTable.  This can be correct after the fact by re-running the job to copy the contents, but it is best to avoid this scenario.

We are looking to create additional checks to prevent the initial creation of things such as the Retail store, registers, etc. in a company that hasn't been initialized yet.  Until a fix is released to perform these checks, please ensure that you have Initialized any company that will be utilizing Retail.

PathCchCanonicalizeEx doesn’t actually canonicalize filenames (AKA: Hey Larry, it helps to RTFM).

$
0
0

So I was working on some file path parsing logic the other day and I ran into a problem – I was converting a file name passed in on the command line to a long filename acceptable path (one starting with \\?\). As I mentioned before, the Win32 APIs that accept \\?\ filenames assume that the filename specified is a valid path to the filename. That means that filenames with \\?\ prefixes cannot have “.” or “..” characters in the filename.

The good news is that there’s a convenient API you can call that handles removing the “.” and “..” filename components – PathCchCanonicalizeEx. As the API documentation states, it “Simplifies a path by removing navigation elements such as "." and ".." to produce a direct, well-formed path.”

What the API documentation doesn’t state (which I unfortunately assumed) was that when presented with a relative pathname, the PathCchCanonicalizeEx API, the PathCchCanonicalizeEx API would convert the relative pathname to an absolute pathname.

Oops.

Note to self: Always read the API documentation. And don’t make assumptions about functionality that isn’t actually there.

Fortunately it appears that contrary to documentation, the PathIsRelative API works just fine in determining if an input filename is relative or absolute. So there’s an easy solution to the problem:

wstring fileToCanonicalize;if (PathIsRelative(inputFilename.c_str())
{
    fileToCanonicalize = GetCurrentDirectoryAsString();
    fileToCanonicalize += L"\\";
}
fileToCanonicalize += inputFilename;
PathCchCanonicalizeEx(..., fileToCanonicalize.c_str(), ...);

SSAS tabular model database fails to restore due to out of memory error

$
0
0

We have 2 customers getting an out of memory error when they backup or restore a large tabular model database.

   

In the case of restoring a database backup, it is a 300GB .abf file restore on an SSAS server with 1TB of memory. When all the files are extracted to the data folder, the server needs to load the data, memory usage by SSAS goes up quickly then fail with error

   

Memory error: Allocation failure . If using a 32-bit version of the product, consider upgrading to the 64-bit version or increasing the amount of memory available on the machine. An error occurred when loading VertiPaq data for the table 'ttttttt' in the database 'dddddd'. Database object is corrupt and cannot be queried. Delete this database from server, restore it from backup or create/process it.

   

When the error happens, there is still a few hundred GB of memory available. However, the Free memory is 0. It turns out during file extraction, SSAS starts to create a very large standby cache in Windows, even though the available memory can be 400GB, the 400GB is already used as standby cache.

   

We found if we clean the standby cache during the database file restore, it all works. I suspect the server cannot get free memory from the standby cache fast enough while the database process wants to allocate large amount of memory quickly.

   

Thanks to the author of the following blog, we were able to resolve the problem.

   

http://www.artisconsulting.com/blogs/greggalloway/2010/12/29/analysis-services-and-the-case-of-the-standby-cache

   

   

During the restore, we monitor the usage of standby cache, and clear the cache once it reaches a certain amount. At the end of the restore, SSAS requires large amount of memory rapidly to load data into memory. This is where it always failed until we keep the standby cache on cap.

   

Since the customer has no MD instance on the server to use the ASSP, I copy the clear cache functions into a console C# app. It works quite well.

   

Below is the perf mon graph on system cache vs SSAS memory usage on a successful restore when we clear the standby cache manually

   

 

   

For comparison purpose, below is perf mon counter when restore fails if the standby cache just keeps increasing. The available memory is still very high, but the free memory drops to 0 when the problem happens. There is no counter for free memory in perf mon, otherwise it will be a better graph.

   

   

 

There is a challenge to ASSP function ClearFileSystemCache on an SSAS tabular instance, because tabular instance does not support importing an external assembly.

 

To solve this problem, you can either install a second SSAS instance in multidimensional mode , or you can extract the code from ASSP http://asstoredprocedures.codeplex.com/SourceControl/latest then wrap the function calls in a .NET console application.

Service Update 1 for Dynamics CRM Online 7.1.1 がリリースされました!

$
0
0

みなさん、こんにちは。

Dynamics CRM Online の管理者様には既に電子メール (英語) で通知されているとおり、Dynamics CRM Online 2015 Update 1.1 (7.1) に修正プログラムがリリースされました。

日本データーセンターにて管理されている CRM Online 組織 (URL に crm7 が付帯する組織) は、2015 年 11 月 17 日の夜以降に適用されております。

APAC (アジア太平洋地域) のデーターセンターにて管理されている CRM Online 組織 (URL に crm5 が付帯する組織) は、2015 年 11 月 18 日の夜以降に適用されます。

Microsoft サポート技術情報 :
URL: https://support.microsoft.com/en-us/kb/3104429

 
概要

- Dynamics CRM Online 2015 Update 1.1 (7.1) へのリリースです。設置型にはこのリリースはありません。
- エクスポートした Microsoft Excel でコピー/貼り付けを行うとエラーが発生する、印刷すると Microsoft Excel に問題が発生する等、複数の修正がされてます
- お客様の Dynamics CRM Online 組織に自動でアップデートされます。お客様はこの修正プログラムをスケジュールする必要はありません。
- 修正された内容等の詳細はサポート技術情報 3104429をご参照ください
- 適用後のバージョンは以下の通りです

 

Dynamics CRM のバージョンの命名規則については、こちらを参照してください。


- 野田 良二

 

Dynamics CRM 2015 Outlook 同期に関するホワイトペーパー その 3

$
0
0

みなさん、こんにちは。

前回に引き続き Outlook クライアントの同期に関するホワイトペーパーを紹介します。
本記事はシリーズもののため、前回の記事を見られていない方はご覧ください。

Dynamics CRM 2015 Outlook 同期に関するホワイトペーパー その 1
Dynamics CRM 2015 Outlook 同期に関するホワイトペーパー その 2

Microsoft Dynamics CRM: How it works documentation:   
http://www.microsoft.com/en-us/download/details.aspx?id=48718

今回は、Dynamics CRM 2013 / 2015 の特定のシナリオにおいて、
各コンポーネントやプロセスがどのように関わって同期されるかを紹介します。

Dynamics CRM 2013 / 2015 における同期処理

Outlook クライアントの同期は、フィルターで定義した条件に基づき同期されます。
最初に CRM から Outlook にレコードが複製され、その後 CRM または Outlook 上で
変更されたものは、システムフィルターの条件に基づき同期されます。

Outlook クライアントでアイテムを変更

以下の図は、同期されている取引先担当者のレコードを Outlook クライアントで変更した際の
同期の流れを示しています。

変更は Outlook クライアントのローカルデータベースに格納され、同期処理のタイミングで
CRM に反映されます。
ポイントは、Outlook クライアントがローカルデータベースから
キャッシュをすべて読み込み終わる前に変更操作を行うと、ステップ 2 で検出されないため
同期されません。これらの問題に対処するため Outlook クライアントはアイテムの更新日時と
同期ステータスを記憶し、それらをもとに MAPI コンテンツを作成します。
これにより最後に同期されたのちに変更した操作も次回の同期対象となります。

image

Dynamics CRM でアイテムを変更

以下は、同期されているレコードを CRM でレコードを変更した場合の同期の流れを示しています。
Outlook クライアントからサーバー上の PrepareSync API が呼ばれ、最新の同期から変更された
アイテム情報が返却されます。
その後、Outlook クライアントのローカルデータベースに格納され、
Outlook クライアントに反映されます。

image

変更のマージ

Outlook クライアントの同期は Outlook → CRM、CRM → Outlook と双方向です。
同期が実行されるとそれぞれのアイテムは最新バージョンとして XML ファイルに記録されます。
アイテムが Outlook または CRM のいずれかで変更されると、変更日時から判断し、
XML ファイルと最新のアイテムの列を比較し変更が同期されます。
Outlook CRM の両方で変更が行われた場合、最新の変更が優先されそれ以前の変更を上書きします。

以下の例では、3 つのフィールドを変更した際のシナリオです。フィールド AB のように
Outlook と CRM の両方で変更された場合、同期が実行されると XML ファイルと比較が行われ
Outlook よりCRM 側の変更日時が新しいため CRM 側の変更が同期されます。
そのため、Outlook 側の変更は失われます。

image

アドレス帳の同期処理

Outlook クライアントでは、Outlook 上で電子メールや予定を作成する場合、
宛先に CRM 上の取引先担当者を設定することが出来ます。宛先に設定できるエンティティは、
既定では取引先担当者のみですが、取引先企業や潜在顧客も表示させることが可能です。

 

同期ルールまとめ

Outlook クライアント上の操作における同期のタイミングを示したものです。
Yes は操作してすぐに同期されることを意味しています。
Explorer は Outlook のビュー、
Inspector はビューからアイテムをダブルクリックして表示される画面を示しています。

image

* CRM からレコードを削除する場合、追跡しないボタンをクリックしたのちに出力される
ダイアログで明示的に削除を選択する必要があります。

同期に関連する設定

Outlook クライアントの設定(Outlook クライアントのファイル>CRM>オプション)

設定説明
Outlook 取引先担当者の [会社] フィールドを更新しますOutlook 取引先担当者の会社フィールドを更新する
このコンピューターを、Outlook とユーザーの主要な Microsoft Dynamics CRM 組織との間で同期を実行する、クライアントに設定する同期クライアントの設定
CRM​​ の項目を同期するための同期間隔を設定するOutlook との自動同期をスケジュール

 

CRM のシステム設定

設定説明
未承認のユーザーとキューの電子メール処理

電子メール アドレスがシステム管理者に承認されているユーザーおよびキューのみの電子メールの処理を許可する場合は、以下のチェック ボックスを選択します。
- 承認されたユーザーのみの電子メールを処理する
- 承認されたキューのみの電子メールを処理する

Exchange フォルダーに対するフォルダーレベルの追跡を使用Exchange 追跡フォルダーを設定し、メッセージをそれらのフォルダーに移動して、実質的にすべてのデバイスで自動的に追跡することができます。
CRM ユーザー間で送信された電子メールを 2 つの活動として追跡CRM​​ ユーザーの間で 2 つの電子メール活動、つまり送信者と受信者に電子メール活動が 1 つずつ作成されます。


その他、同期に関するよくある質問もガイドには記載されていますのでご覧ください。

まとめ

3 回に渡り Outlook 同期について紹介してきましたがいかがだったでしょうか。
Outlook クライアントは、日ごろからよく利用する Outlook から CRM をご利用いただける
利用者にとってメリットが大きいツールです。一方、Outlook クライアントの同期処理は
パフォーマンスに直結するため、適切な設定を意識する必要があります。
この記事を皆様に役に立つものとなることを期待しています。

- プレミアフィールドエンジニアリング 河野 高也

PHP and Azure Data Services

$
0
0
When we think of PHP we also think of MySQL. The perfect relationship. PHP can provide the logic and MySQL can provide the data storage. There are others like SQLite, Postgres, MariaDB, MongoDB and more. All of these provide great functionality and performance ...read more...(read more)

Dynamics CRM Online certification to Australian government security requirements

$
0
0

Six months ago we announced the important news confirming the Certification of Microsoft Office 365 and Microsoft Azure by the Australian Signals Directorate (ASD) via Australian Government’s Independent Registered Assessors Program (IRAP).

Australian government certification for Microsoft cloud services

This certification is for the handling of unclassified but sensitive data, known as Unclassified (DLM) within Australian government. This includes the majority of state and federal government data including private and personally identifiable information.

ASD established a Certified Cloud Services List and published a revised Information Security Manual (ISM) that provides a streamlined and effective way to verify the security of cloud services.

Increasingly, Australian Government agencies are turning to cloud services as a platform for innovation and efficiency. The Certified Cloud Services List streamlines the process by which those agencies can assure themselves of security and compliance by providing a Certification that can be trusted.

Australian government certification for Microsoft Dynamics CRM Online

Today, we have announced that Microsoft Dynamics CRM Online has also completed Certification to Australian Government security requirements for unclassified sensitive government data. This provides an assurance that any government agency can confidently adopt our cloud services, knowing that the security protections in place reach the high bar set by the Australian Signals Directorate.

Microsoft Dynamics CRM Online is the first customer relationship management solution able to provide this level of assurance in Australia, complementing our existing Certification of Office 365 and Microsoft Azure under the same program. Microsoft is the only cloud provider in Australia delivering a complete set of trusted cloud services covering Infrastructure-as-a-Service for computing, storage, database services and identity management; Platform-as-a-Service for modern applications; Software-as-a-Service for productivity and customer relationship management.

Demystifying data security

I think this certification is critically important to help you make appropriate decisions about using cloud services. We really aren’t short of extensive information on our cloud services, and the security and privacy of your data that your education institution stores there. We have heaps of information on the Office 365 Trust Center, the Microsoft Azure Trust Center and the Microsoft Dynamics CRM Trust Center. And there is no shortage of detailed information about our information security features (here’s a typical slide I picked up from one of our PowerPoint presentations, about 2048-bit encryption)

image

But often the leaders in education organisations don’t want to understand the details - what they want to know is the simple answer to the “Is it okay to use this?” question. And as an IT manager, that’s where the federal certification helps to simplify the conversation, because you can answer “Yes” confidently with the certification information. Whichever of our cloud services that your staff and students will be using - whether it’s the various Microsoft Azure services, Office 365 Education or Dynamics CRM Online, you’ve got the ring of confidence that comes from the certification (from ASD, who have possible the coolest strapline on their website Smile)

image

NB: All of these services are now also delivered from data centres within Australia, and we’re in the middle of migrating all of our Australian customers from other datacentres to the Australian ones. New customers are automatically deployed in the Australian data centres.

Learn MoreRead more about today's CRM Online certification announcement


Microsoft Dynamics CRM Online certified by the Australian Government for the handling of unclassified sensitive data

$
0
0

This morning we made an exciting announcement about Microsoft Dynamics CRM Online that can change the conversations you have with your Government agency prospects and customers.  Microsoft Dynamics CRM Online has completed Certification to Australian Government security requirements for unclassified sensitive government data via Australian Government’s Independent Registered Assessors Program (IRAP).  Microsoft Dynamics CRM Online is the first customer relationship management solution able to provide this level of assurance in Australia, joining Office 365 and Microsoft Azure Certifications under the same program.

This means that Government agencies can adopt Microsoft cloud services knowing that the security protections in place reach the high bar set by the Australian Signals Directorate.

To learn more read the full announcement from James Kavanagh, CTO, Microsoft Australia.

Questions that inspire action and GROWTH

$
0
0

Having spent some time today with a number of Microsoft’s distributors to help their people support the growth of their Partners, I thought I would share a number of the topics we explored in the form of some questions to ask yourselves…

The context for this meeting centred on business growth (profitable growth at that) and creating lasting value with customers. So, let’s jump right in and in no particular order (which is intentional)… 

  • To what extent do you feel comfortable that the services you provide today will be relevant to customers in 6-12 months?
  • How well do you feel that you balance your time working ON Vs IN your business (planning Vs executing)?
  • Could everyone in the business articulate your value proposition?
  • Why do customers buy from you?  Does that give you a competitive advantage and are you exploiting it as much as we could/should?
  • If you were to ask 10 business owners to share their top 3 frustrations today, do you have solutions that could help them?
  • How exposed would you feel if you lost your best sales guy / girl?
  • Of the new business you won this month, what percentage of this was generated from marketing activity and then, digital marketing activity?
  • How confident are you that prospective talent sees you as a destination employer?
  • What percentage of your existing team would recommend working for your organisation?
  • To what extent are the top team aligned in terms of the goal of the business?
  • How many new customers did you win this month? How is it trending over the last 6 months and is that sustainable?
  • How much profit did your organisation generate in the last 6 months outside of typical business hours?
  • What solutions / services will you be selling in 6 months’ time?
  • How many of your last 10 customer wins referred a new prospect to you?
  • How are your people feeling right now?

Perhaps by reading through the above questions and thinking of your answers this may help to inspire new thoughts or perhaps it triggered an aha or eureka moment… I will wait to hear…

CAPI2 code that will try to translate a CSP handle into a CNG handle

$
0
0

This blog post is with respect to CAPI2 and CNG.

We might encounter situations where in our CAPI2 code we see that the CSP handle being used is CNG. This might be tricky to understand as we are using a CAPI2 provider.

The reason is: There are many places in CAPI2 code that will try to translate a CSP handle into a CNG handle. This is the way the code is implemented and the selection criteria is based either on the ALG_ID or on the nature of the provider. If ALG_ID indicates CNG OR if a CNG provider is used, the CNG flag is set.

By default for OID "1.2.840.113549.1.1.11", if we don't use a CNG provider and do not initialize the CRYPT_OID_INFO structure (that contains the ALG_ID attribute), it sets the values as shown below: 

 0:000> dx -r1 (*((CRYPT32!_CRYPT_OID_INFO *)0x768bc02c))

(*((CRYPT32!_CRYPT_OID_INFO*)0x768bc02c))       [Type: _CRYPT_OID_INFO]

    [+0x000] cbSize           : 0x24

    [+0x004] pszOID          : 0x768bc2e0 : "1.2.840.113549.1.1.11" [Type: char *]

    [+0x008] pwszName    : 0x768bc2cc : "sha256RSA" [Type: wchar_t *]

    [+0x00c] dwGroupId    : 0x4

    [+0x010] dwValue       : 0xffffffff

    [+0x010] Algid            : 0xffffffff

    [+0x010] dwLength     : 0xffffffff

    [+0x014] ExtraInfo        [Type: _CRYPTOAPI_BLOB]

    [+0x01c] pwszCNGAlgid    : 0x768bb83c : "SHA256" [Type: wchar_t *]

    [+0x020] pwszCNGExtraAlgid : 0x768bc53c : "RSA" [Type: wchar_t *]

 

0:000> dx -r1 (*((CRYPT32!_CRYPT_ALGORITHM_IDENTIFIER*)0x15f688))

(*((CRYPT32!_CRYPT_ALGORITHM_IDENTIFIER*)0x15f688))                [Type: _CRYPT_ALGORITHM_IDENTIFIER]

    [+0x000] pszObjId         : 0x1123424 : "1.2.840.113549.1.1.11" [Type: char *]

    [+0x004] Parameters       [Type: _CRYPTOAPI_BLOB]

 

For example, CryptSignCertificate() checks the ALG_ID and based on its value it sets the CNG flag. In the above case since Algid is 0xffffffff (CALG_OID_INFO_CNG_ONLY) so the CNG flag is set.

If we set the ALG_ID to say CALG_SHA_256, the CNG route is not followed. The issue here is not with the CAPI2 CSP, but it's the way the CAPI2 code is implemented.

Visual Studio Code - NEW FEATURE: Yo Code - Streamlined Customizations for VS Code

$
0
0

This feature was added in October in Visual Studio Code v0.9.1.

We re-purposed the Yeoman generator we used for the VS Code Node.js sample generator-code and we are now using this to make creating common customizations easier.

Tip: If you still want access to the sample, you can find out how on the Node.js page.

In this release of the generator, we have the ability to create two common customizations:

  1. Additional color themes
  2. Syntax highlighters/bracket matchers

In the future, we'll add other options for rich customization of VS Code.

If you have a TextMate color theme (.tmTheme) or a TextMate language specification (.tmLanguage), you can bring them into VS Code using the 'code' Yeoman generator.

Install and run the code Yeoman generator as follows:

  1. npm install -g yo
  2. npm install -g generator-code
  3. yo code

yo code

The Yeoman generator will walk you through creating your customization prompting for the required information. Once the generator is finished, copy the generator's output folder to a new folder under the.vscode/extensions folder and restart VS Code to use the new features.

In the future you will be able to publish these customizations to an external gallery to share them with the community.

Tip: If you want to share your customization with others in the meantime, you can simply send them a copy of the output from the generator and ask them to add it under their.vscode/extensions folder.

   

Check out all the new features and update to VSC v0.9.2:

https://code.visualstudio.com/updates

  

Have a great day!

   - Ninja Ed


Power BI Weekly Service Update

$
0
0

This week we focused on making your experience creating and sharing dashboards easier than ever. Being able to position tiles wherever you want, duplicate entire dashboards, and improved error messages all make it quicker and easier to create dashboards the way you want. Once your dashboards are just how you want them, improvements to groups and full screen mode make it easier to share your creations with those who matter most.

Duplicate Dashboards
Freely Position Dashboard Tiles
Improved Navigation for Full Screen View
Better Experience when Inviting Peers from your Organization to Power BI Groups
Improved Error Messages for Tiles

Duplicate Dashboards

Sometimes, you may want to create dashboards that have similar tiles for different groups of viewers. For example, you may have a dashboard for a manager that has tiles for all his direct reports and a dashboard for each of their reports with only the tiles that pertain to them. Previously you would have to make each dashboard individually, but now you can use an existing dashboard as a starting point, and just duplicate it as many times as you need.

To do this, start with the dashboard you want to duplicate. In this case, we are starting with a dashboard showing key metrics for a business, including metrics for each report.

 

To make a dashboard for each report, you just need to click the ‘…’ on the dashboard’s top right and select Duplicate Dashboard.

 

Give the duplicate dashboard a name.

 

And finally, modify the new dashboard as you see fit. In our case, we removed the tiles that pertained to the other reports and rearranged a few tiles.

 

Freely Position Dashboard Tiles

Previously, tiles always gravitated towards the top left corner of the dashboard unless there was another tile in the way. Now, you no longer are restricted to that layout when designing the layout of your dashboards. You have full control to put your tiles wherever you choose on the dashboard.

 

Improved Navigation for Full Screen View

To make presenting your dashboards and reports even easier, we have made some improvements to Full Screen Mode. Now, when you click through a dashboard to a report in full screen mode, you can easily rotate through the report pages.

You can move left and right within the report pages and back to the dashboard by using the controls on the bottom right that appear when you move your mouse.

 

Not using a mouse? You can also navigate with your keyboard! Use the left and right arrow keys to move back and forth, and the backspace to go back. The space bar toggles you fit to screen view and Esc exits you out of full screen mode.

Better Experience when Inviting Peers from your Organization to Power BI Groups

Power BI groups bring you and your colleagues together to collaborate, communicate and connect with your data. You can create a group either in Power BI or Office 365. Then, you can invite co-workers into this group workspace where you can collaborate on your organization’s shared dashboards, reports and datasets. You can read more about how to create Power BI Groups here.

Until now, if you wanted to invite peers from your organization to your Power BI group, they needed to be in Azure Active Directory (they are already a user of Office 365 or Power BI user). Now, you can invite peers from your organization to your group, even if they are not in Azure Active directory.

The experience to invite users not in AAD to Power BI Groups is the same as it is for users already in AAD. You can edit an existing Group and add a colleague to the group.

 

If the colleague is not a Power BI user and their identity is not AAD, Power BI sends an email invite to Nancy to join Power BI.

Once they sign up for Power BI to access the group, you will see them as a member of the group. 

Improved Error Messages for Tiles

On occasion, you may encounter errors on your tiles. These could be due to many different issues, such as a field name changing in a dataset. We want to help you get going again as soon as possible when these errors happen, so we improved the messaging you get when these errors happen.

 

You will be able to view details about the error, and if you need extra help, access a troubleshooting article in our documentation by clicking Get help.

We hope that you like these new features. Try them out and let us know what you think in the comments section below!

Last but not least, check our past weekly updates to stay up to date on the latest and greatest for the Power BI service.

Viewing all 29128 articles
Browse latest View live




Latest Images