Announcement: A New Perspective

Sorry guys, I haven’t posted in the last four months or so. It is because I relocated myself from New Zealand to China. I am still having a base in New Zealand but my work is in China for now.

I am lucky to be an IT consultant. It allows me to continue my career even after moved 10,000+ km!

If the meaning of life is memories. The relocation definitely created a few new memories. I will share them in my future posts.

The announcement does stop here. My new blog site is up. I will blog from from now on. PLEASE SUBSCRIBE. Don’t worry I will gradutely move old posts from my old blog site to the new one. So everything will be in the same place.

If you want me to cover a specific topic please request by creating a GitHub issue.

Dynamics 365 CE: Integration via Azure Aware Plugins

In a previous post, I talk about integration via Azure Service Bus Queues. In that scenario, the Dynamics 365 CE is the data destination, i.e. A survey portal sends data to a Dynamics 365 CE instance. What do you do when Dynamics 365 CE plays a data source role in a data integration setup? For example, you Dynamics 365 CE wants to send an order message to a dispatch system.

Service Endpoint

By using an Azure enabled plugin, you can send a plugin execution context to a registered service endpoint. Microsoft has very nice documentation from how to register a service endpoint, to how to bound an Azure enabled plugin with a service endpoint.

Once a message lands in an Azure Service Bus queue, consuming an Azure Service Bus Queue messge is standard.


WebHooks work exactly the same way as Service Endpoints. The difference is who is the receiver of the (plugin context) messages. A Service Endpoint has to be an Azure Service Bus whereas WebHooks can be any 3rd party or bespoke web service endpoint.


SAS: Shared Access Signature

Power Knowledge: How to Express Yourself 1

Many people think the art of expression is just to render ideas with clarity. In fact, it is just level 1.  The goal is to make people like you and change their mind and behaviours.

Say the Conclusion First

Starting a talk with a conclusion never fails me. Then support your conclusion with reasons. “Global warming is harming the human race is because 1… 2… 3… The benefit of reducing carbon emission is A… B… C…”. With the conclusion in mind, it will be easier for your audience to enjoy the rest of your convey. You can re-iterate your conclusion again at the end.

Cut Out the Crap

If you are in a business meeting where the goal is to present facts or problem-solving.  It is unnecessary to add personal feelings, like “I couldn’t believe it when I heard Joe Blow’s regulation “. Instead, you should cut to the chase with findings and suggestions. “Joe Blow’s resignation will impact a lot of our clients. Therefore, we should kick off the hand over process immediately, and inform all of this client in a week of time”

“Cornerstone” Concepts

When the content is complex and difficult. You should deliver the content in multiple iterations. You can start by laying out a few “cornerstone” concepts. The “cornerstone” concepts are the foundation of the following up knowledge transfer. For example, if you want to teach someone machine learning, you should first introduce the concepts of datasets, supervised learning, unsupervised learnt, classification, and regression. Then you can dive deep into algorithms and blah.

Less is More

The less the time the more you need to prepare. If you only have 1 minute in a morning standup meeting. Don’t see it as a 60 seconds session. You should see it as three 20 seconds blocks, and prepare your content for each block. This way your expression will be more seamless. For example, the first 20 seconds is for achievements, and the seconds 20 seconds is for the next steps, and the last 20 seconds is for asking for support.