Recognize record created from outlook/email in plugin - c#

I'd like to perform some operation in mscrm plugin, if a new record is created automatically by CRM client for Outlook. Eg. it can be a contact or an incident created from an email.
Is there way to check this condition?
We have contact's first name and last name filled oppositely and incident without the caseorigincode field filled, when created from an email in Outlook. Maybe there is a better workarround to solve these two issues. But still I am wondering about the original question.

According to the sources available online, there is really no reliable way to solve this.
There was property CallerOrigin until CRM 4. Then it got deprecated, but continued working for some time, as state in another answer (https://stackoverflow.com/a/14812885/1474519). But it doesn’t seem to be working anymore in CRM 2015.
I found couple advices with IsExecutingOffline and IsOfflinePlayback, but it is really not solving the problem.
I also found a tip to check this code HttpContext.Current.Request.Url.ToString();. This doesn’t work for me.
I found the most complete information here: http://blog.simpletrees.com/2012/03/executioncontextcallerorigin-in.html
According to this article, I am sending a value in a hidden field from my form (or thru API, from plugin, from workflow). As this field is not set when a record is created from outlook, I can recognize the record being created from Outlook. There is of course problem, this field might not be set when importing records or when using mobile app. But I don’t see a better way to go.
Therefore, I started request on Microsoft Connect to add this functionality. You can vote for it here: https://connect.microsoft.com/dynamicssuggestions/feedback/details/1776771

You could add an attribute to the contact and incident to save the origin of the creation.
Then you add a plugin that listens to the Create event of the entities and register it only for client side (offline) execution.
Or you check the PluginExecutionContext for the IsExecutingOffline and IsOfflinePlayback properties to check if the creation was initiated from outlook and store the appropriate value.
https://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.ipluginexecutioncontext_members.aspx

Related

How to get a JSON file (or something similar) with lightning data from http://en.blitzortung.org?

I am currently working on my school project - Android app that informs you about strong lightning strikes near your house in real time.
There are some websites like blitzortung.org or lightningmaps.org (or other), any ideas how can I get nice output file from one of these sites, so that I can obtain geographical data, determine whether it is near your house or not, and send a push notification for user? Displaying the strikes on the map are not needed.
I am using an Android Studio, Visual Studio 2015 as well as MS SQL database.
Thanks
You can get complete source code for this from following URL
https://github.com/wuan/bo-android
It's using data from lightningmaps.org
You can give a try to Open Weather or check this answer.
For Push you can use FCM. Just google "How to implement GCM in android?" you will whole lot of help.
According to blitzortung forum:
Please remember that Blitzortung data may not be used for commercial
purposes. General operator data access info: login to your main
Blitzortung Org account, and click the 'compendium' link under
'project area'. If you haven't already, you might also see
http://www.lightningmaps.org/doc/intro

Get user detailed activity on Documents in Sharepoint 2010

I currently have a client that needs to generate a report on the user's changes on the documents on every Document Library on every site collection.
I know I can use the Audit module OOB, but it doesn't show enough detailed data on the changes made on each item.
I was thinking about the detailed version history on the documents, but I would have to populate through every item of every list on every site collection. Something like this.
I was thinking about doing a custom page that combines both. I can filter the audit info of a particular user on a particular date range, and use the ItemId to get it's versioning details up to the audit date.
What do you think? could that be possible? is there a better way?
Thank you!
I recommend you develop a EventReceiver implemented in sitecollection level, so you can save "custom-made" any changes in elements of lists or libraries. So you can have your custom audit log in alternate database.
See also: http://msdn.microsoft.com/es-ec/library/ee231563.aspx
The EventReceiver is a good feature to keep high control in SharePoint Functionality.
Sorry for my bad english.

Dynamics CRM 2011 - Custom form with duplicate checking

I need to create a custom opportunity form which will almost mirror the out of box one but would like to add a section for checking duplicate records.
The overall goal is that when the form is filled out that section should populate with possible duplicate records to merger with.
I know there is out of box duplicate checking but not sure if it can be implemented this way.
Thanks,
Jon
You should be able to build a Web Resource in an IFrame that uses javascript to call the RetrieveDuplicatesRequest message. Here's a link that should help:
http://crm-edinburgh.com/2011/08/crm-sdk-using-detect-duplicates-settings-in-code/
This assumes that you already have Duplicate Detection set up and running.

Is there a way to automatically re-send an email according to certain rules with Outlook 2007 and MS Exchange?

I am looking for a solution to the following problem:
My manager wants to automatically send a second message when he sends an email to X and there is no response in two days. If there is no further response in 2 more days, send another message.
Before I start building anything, I wonder if there is already a product/solution that does that? Can anybody recommend an already existing tool?
We use MS Exchange and he uses Outlook 2007.
Auto Follow Up is a tool I've used in the past for this specific purpose. Also, always check www.slipstick.com for listings of Outlook/Exchange add-ins - they seem to be the best source (disclaimer: I have no affiliation with that site or any of its add-ins)
It's not an existing solution, but in case you don't get any answers:
You can use Exchange Web Services to do this: pointing it at his Sent Items folder. So this is basically what you would do:
Use SyncFolderItems against his Sent Items, say every 1 hour. The first time you do this use null as the SyncState, thereafter use the last SyncState the server sent you.
Write them to a SQL table: { ItemId NVARCHAR(MAX), ChangeKey NVARCHAR(MAX), MessageID NVARCHAR(MAX), Sent DATETIME }. MessageID would be the Message-ID header from the message.
Run a query (say once a day) that selects the rows where the Sent value is more than 2 days ago.
Use GetItem to retrieve the original mail and resend (first clearing/deleting Message-ID) it using SendItem.
Delete the selected rows.
These items will land up in the Sent Items folder and will be picked up by your application (as they are actually new mails); and re-processed in 2 days.
Use SyncFolderItems against his Inbox, again maybe every hour (maybe immediately after the first operation against Sent Items). Keep a unique SyncState for this operation.
Grab the In-Reply-To header. Delete any rows with a maching MessageID.
Grab the References header; and split it into a list. Delete any rows with a matching MessageID.
Would this solve your problem:
http://www.followupthen.com/
Perhaps not exactly what you want and it isn't integrated into Outlook.
I don't think you will find exactly what you want. This is functionality which belongs to a CRM, not to email software.
Having said that, the Getting Things Done Outlook Add-In will get you in that direction. It won't automatically send a follow up mail, but it can take care of a notification so you send it yourself. (but this plugin is not free - $75 - you have to decide yourself if that's worth it)
With the GTD add-in you can send a mail, and select the option "Send and Action". After pressing send mail, you can select the action "#Waiting For", and press ok. Now it will create an outlook task, with the subject and contents of the email you sent automatically filled. You can set all the task properties, like end date and notification time.
After two days at the notification time, you get a (default) outlook popup, where you can open the task. With one click you can open the corresponding email and use reply or forward to send your followup. You can create a new task or modify the existing task for the next followup.
If you receive a reply in the mean time, and open the mail, you can use the "related task" button to find the corresponding task to mark it as complete. It also adds buttons like defer and delegate to your mail.
There is a 30-day trial. I am not connected to netcentrics, but I have bought and use this plugin.
Have you looked into automating Outlook using Visual Basic for Applications? If you aren't familiar with VBA, or if the thought of writing VBA gives you nightmares (I've had a few), then you might find some example VBA code on the web that accomplishes something similar to what you are trying to do, and then you could just tweak it. I know you said that you wanted an existing tool, but I thought I would throw this out there as a sort of last resort. It's not ideal, but I'm pretty sure it would solve your problem.

SHAREPOINT 2007 LLISTS created by helpdesk.wsp

I am given a task to make a feature that autogenerates a ticket ID for a list.
However, I found out that the template used for the site is a helpdesk.wsp template.
Now, I am having problems stapling the said feature to Service Requests because it is currently under LLISTS and not LISTS.
See attached image.
Can someone help me on this?
Thanks.
janejanejane
I solved this by just adding my newly created column to the default Content Type which is "Service Request". Weird. But it behaves accordingly now.

Categories