Tip #1362: Trigger Power Automate on Associate / Disassociate

Many to many relationship is everywhere, from good old marketing lists to web roles in Power Apps portals. The secret sauce is in the little hidden intersect entity holding the relationship together, those of you who used FetchXml Builder from XrmToolBox to craft a query, are very familiar with. The messages to control the relationship are appropriately named Tweedledum and Tweedledee Associate and Disassociate.

Wouldn’t that be nice to be able to automate some business processes when records are associated and disassociated? For example, when someone is added to a marketing list we might want to say hello or, when someone is no longer a portal administrator, we’d like to say “Nyah nyah nyah nyah nyah nyah”?

These little messages have been tormenting us for as long as I can remember. Power Automate has given me a glimpse of hope by accepting [manually entered] intersect entity name but refusing to fire when the records were added or removed. Currently there is no other way to intercept those messages except writing a plugin. Or is there?

Well, plugin is still required but we don’t have to write anything because we can use webhooks.

Continue reading

Tip #1361: For whom the bell tolls

Who hasn’t heard of Sydney Harbour Bridge?! But didn’t you know awesome footage of its construction is available? More importantly, did you know that the bridge toll is only charged one way – in the direction of the city? It also varies depending on time of the day and day of the week but that’s less important for our discussion.

Power Platform also charges toll in the form of request limits and capacity add-on. Unlike Sydney Harbour Bridge toll however, Power Platform observes and taxes your travel in both directions.

Hold on, you might say, what does it even mean?! I call Common Data Service, not other way around. Well, actually, you are going to be called by CDS if you register a webhook. Turns out, that’s counted as an API call or, rather, Power Platform request.

Our good friend Marius Agur Hagelund Lind and Stephen Siciliano, Partner PM Director, Power Automate at Microsoft(a.k.a. the guy who “owns” Power Automate) had a conversation on the subject just couple days ago.

Marius
Will webhooks/service buses registered on message steps count as a platform request as part of the “api limits”? E.g: if I register a webhook to an Azure Function on read of account, will that “cost” 1 platform request?

Yes, any inbound or outbound calls (in this case, to service bus or functions), count as a request that the limits apply to. 

Stephen, Power Automate Deity

Tîpp Jäår
Now, what were you saying about varying that charge depending on time and day?…

Cover image by RodhullandemuOwn work, CC BY-SA 3.0, Link

Tip #1360: Customizing the activity timeline

You migrate data to Dynamics 365/Common Data Service and in the migration, you close activities. After the migration, the activity timeline shows the migration account in the top line of every activity.

Say you want to have the timeline display something other than the account who closed the task. How do you customize this layout?

  1. Open the form in the legacy customization experience.
  2. Go to properties of the timeline/social pane
  3. Click the activity tab and change “display activity using” to “card form.”

From the “select a card form for each activity” section, select the card form you want to use for each activity type–change the activity type and select the card form you want to display in the timeline.

If you don’t want to show the modified by, remove it from the card form.

Be careful when editing the card form–if you make too many changes, the timeline may stop working correctly–be sure you test any changes that you make before releasing them.

Cover image: Wikimedia Commons

Tip #1359: Whose fault is it in Power Automate?

Smart people are very useful. Sometimes just talking to them helps you understand the technology better. Consider, for example, John Liu educating ignorant yours truly about the intricacies of failing Power Automate flows.

tl;dr

For a flow run to be a success, all execution paths including those containing skipped actions, must complete.

Continue reading

Tip #1358: Are you fit?

Nope, it’s not about weight loss programs. Nor, strictly speaking, it’s about Power Platform. I can’t believe I’m even writing this tip but, after discovering that some of my very technically proficient friends asked me to rotate my phone during the meeting because they could only see my nose (it’s big but not THAT big, ok?), I don’t feel I have any choice.

Repeat after me:

Right mouse click (or tap and hold on a phone) on the nose (can’t miss it), then click/tap Fit to frame.

Want to pin, fill, or switch instead of fitting? Look no further than the official support article.

Tip #1357: Avoid Power Automate emails being marked as spam

Today’s tip is from Tadashi Zialcita and it looks like one the best tips in terms of usefulness / word count ratio. Can you beat that? Send your tip to jar@crmtipoftheday.com.

To avoid an email from Power Automate being marked as spam, set it as important.

<ENDOFTHETIP>

GIF drop jaw bloo - animated GIF on GIFER - by Gull

Don’t abuse the newly discovered magic though or you will be risking the fate of my secret marketing technique – fool me twice and off to the bin you go!

Cover photo by Hannes Johnson on Unsplash

Tip #1356: Handle mandatory autonumber fields in automation

The usual workaround for dealing with business required fields when creating records in automation is to make them non-required, deal with the automation and then switch the required option back on.

Now, add an autonumber on top of that. That’s right, you want the mandatory field to be blank so that the generator kicks in. “Who would make an autonumber field a business required one?!” you’d ask and be absolutely right. But someone designing salesorder entity thought they know better and made ordernumber both autonumber and business required. And, before you ask, no, you cannot change business required setting.

“What’s the big deal” – you say – “just move the field to the header and forget about it”. And you’d be absolutely right if we didn’t talk about automation. Looks like Power Automate (which you should be using) handles it graciously and does not insist on you filling in order number for new records. Workflow (synchronous it must be), however, knows better, and puts the order number under Other fields section and insists on you filling it in.

That’s the pickle I found myself in. It only shows how often do I touch out of the box Dynamics 365 Sales entities but

How on Earth people were creating salesorders in workflows all this time?!

The Enabler

Maybe I’m missing something trivial (it happened more than once before, you know) but my layman workaround is to set the field to something that is [almost] guaranteed to be empty. How about Address 2: UPS Zone of the owning user? Done!

Autonumber and I are both happy now. Of course, as my luck would have it, the client is almost guaranteed to repurpose this field next month to store Secret Santa assignee. Because, you know, who would in their mind use Address 2: UPS Zone for anything?!

Cover photo by Digital Buggu from Pexels

Tip #1355: Sales order – why you no recalculate?

For one of our customers we only use write-in products for the sales orders. (Some of you may wonder why do we use built-in sales orders in the first place but it eeez what it eeez). What I did notice is that the sales order entity will not recalculate manual items until the price list is set even though it absolutely irrelevant for the write-in products. Ah, blast, let me create a dummy price list and use it. Problem solved.

Except it’s a hasty solution for an RTFM issue. Not quite sure when did this flag make the first appearance, maybe even in CRM 1.2 but price list can be made optional in Dynamics 365 Sales. Just follow the instructions.

This week resolution: go out and deal with real issues more often.

Cover photo by Alvaro Reyes on Unsplash

Tip #1354: UI Flow: Setting document typeface properties

I recently was evaluating using UI Flow RPA to automatically print barcode labels. Using Microsoft Word or Wordpad and a freely available barcode TTF, I passed the barcode value to the document and hit the print button.

All worked as expected, except I could not get the flow to properly record selecting the correct font. Mouse cursor movements are not captured, and in Word the recently used fonts list dynamically changes in length, so I could not dependably select the correct font.

I resolved the issue by creating a document with the desired font and font size already selected, then changing the application path in the UI flow to the file path of that document, rather than the application file.

The result is Word or WordPad are launched with the correct font selected, and the barcode was created successfully.

The also seems to be a good solution for getting past the recent items screen in Word and other Office 365 applications with RPA–don’t launch the application, launch a file associated with the application.

Cover photo by Alexander Andrews on Unsplash