EWS: Stop tracking changes while programmatically editing appointments - outlook

I'm editing Outlook appointments programmatically, synchronizing them with "appointments" of another software.
Next time my interface runs and I get the changelog, I don't want to get the changes I made programmatically on an Outlook appointment. Is there a way to stop tracking these changes?

Have you read the Filtered synchronization section in Mailbox synchronization and EWS in Exchange? I think the only way to ignore the changes your programmatic changes is to do a sync of user changes immediately before running your programmatic changes, then run your program, then do a SyncFolderItems repeatedly and discard the changes (don't do anything with them). That way, the next time you sync changes, you'll only get user created changes that you need to process.

Related

Power Automate flows will not complete

I have a flow that processes calendar updates as part of an Out of Office tracker, saving the items to a SharePoint list. The flows generally work well, until a time comes when someone updates recurring items, and the flow gets hammered with all the updates for that calendar event. With one update, it usually works ok, but if I get two or more, the flows stay in a running state and never finish. Will they ever complete? Is this a throttling issue?

Test and Enable CRM Mailbox programmatically

Is there a way to "Test and Enable" CRM Mailbox programmatically either using Powershell or CRM SDK? This is for initial user setup.
I have tried using Microsoft.Xrm.Data.Powershell, it does have Approve-CrmEmailAddress and Set-CrmUserMailbox but there doesn't seem to be a way to Enable Mailbox.
Afr thanks for trying out the Xrm Data Powershell module - I noticed that we haven't added that functionality yet so I'll work to get it checked in for the 2.6 release. As long as your mailbox has something to be enabled for (Incoming/Outgoing/ACT) then you can set the testemailconfigurationscheduled to true and check the result after it runs the test/enable process in the background. There also is a way to postpone/schedule it, but most folks want it run right away when they execute the request. You can also set the orgmarkedasprimaryforexchangesync, this tells the enable process to stamp the users mailbox so any other CRM environments know they no longer can sync with the users mailbox (only one org can sync to a mailbox at any one time).
HTH!
Sean
Afr - have you made any progress or found anything out with this? I am currently looking into the same thing. For some reason the mailboxes for a client of mine are being deactivated and upon reactivate I need to test & enable. But since the mailboxes that are deactivated are random - doing something dynamic in c# is a much better way to go.

Windows OS level file open event trigger

Colleagues, I have need to run a script/program on certain basic OS level events. In particular when a file in Windows is opened. The open may be read-only or to edit, and may be initiated by a number of means, either from windows explorer (open or ), be selected from a viewing or editing application from the native file chooser, or drag-n-drop into an editing or viewing application.
Further, i need the trigger to "hold" the event from completing the action until the runtime on the program has completed. The event handler program may return a pass state, or fail state. If fail state has been returned, then the event must disallow the initially requested action.
Lastly, I need to add to the file in question a property or attribute that will contain metadata that will be used by the above event trigger handler program to make a determination as to the pass/fail condition that will ultimately determine if the user is permitted to open the file.
Please note that this is NOT a windows event log situation, but one at the OS level file open event.
thanks very much for your help.
Edit
What I had hoped that someone was aware of was an OS level trigger, similar to how you can enable a trigger on an event-log writer occurance in Windows (ie: send an email, run a script when an event hits the event logger).
The application environment I work in, a PLM system, allows for event handling. So, when a user initiates an action, say a checkout of a file from an object, there are 3 available handlers or triggers that can be programmed. The "check" or "pre-action" trigger is a process that fires when the user starts initiates the event, but before the system permits it to be processed. So, one can block or otherwise alter the response of the system programmatically based on some condition, like user context.
I have also enabled startup/shutdown script firing via group policy, so i can delay a server shutdown until a database has closed properly. This was done in Windows server 2003. So, with that hook, i could manage shutdown or startup.
Hence, I had hoped someone might be aware of an OS trigger that would do the same for a file-open operation. This would be deployed on all workstations and desktops.
Again, if there are any ideas, it would be greatly appreciated.
Thanks again.
regards,
j
A couple strategies come to mind. One is to run the app with your own DLL to intercept API calls like WriteFile. Another would be to run the app under the debugger interface.

how to auto open an entity created in a workflow

I have run into a situation where I need to open a newly created quote at the end of a workflow. I have a feeling this is going to require me to create a a very simple custom workflow that uses "window.open", but I would like to avoid this if anyone has a better idea.
So I need to open a newly created quote as soon as it is created in a workflow. Anyone have any good ideas on how to do this?
Workflows are asynchronous; they run on the server (as opposed to the client) and do not run in realtime. eg a workflow that is triggered by creation of a record will run on the server sometime after the record is created (depending on system load etc - it could be a second or two, or could be half an hour later. If you have stopped the CRM Async service on the server, they might well never run.)
Because they run on the server the user has no interaction with them. As a result you can't open a window, as there's no user involved to open a window for...
What you probably want to do is make use of Dialogs (introduced in CRM 2011). You won't be able to use window.open() but as long as you've got a recent update rollup installed on the server you can present the user with a hyperlink to most CRM records.
Setup of Dialogs is much the same as Workflows, and they use the same mechanics under the hood. The difference is that they're syncronous (i.e. run in real-time) and they are client-side. There's some detail on Technet: http://technet.microsoft.com/en-us/library/gg334463.aspx

How to get notification of workflow errors?

I am having issues were a workflow is stalled because there is an issue with sending an email (send email activity). Typically, this is simply solved by resuming the workflow. I'm wondering if there any way to react to a workflow error, so the user knows they need to go in and resume the workflow.
I'm also wondering about this relative to a workflow that is attempting to assign a task to a user who no longer exists in the CRM or one that has an invalid email address, which I'm assuming would cause errors in workflows as well.
Any other suggestions related to this sort if issue would be welcome.
Thanks!
My point of view, is that monitoring can't be done inside CRM, because all CRM processes could be problematic (what happen if a workflow fails to monitor another workflow?)
The way I already done that, was by adding a SQL query (that check the workflow instance state) to a monitoring tool (such as Nagios with the check_mssql_health) or you can just create a small service that will send emails using SMTP.
Off the top of my head, I can't think of an automated way to do it (you could try attaching a workflow to a workflow instance record, but I'm not sure if that will do it).
I'd probably try to build a utility to query workflow instance records, and then notify users if necessary based on their status.

Resources