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

Tip #1353: Rename entity form

Remember our entity creation guide? Surprisingly it did withstand the test of time. But I’d like to make a small addition. When you done creating the fields, do yourself a favor and rename the main and quick create forms. Don’t care what the new name is as long as it’s NOT Information.

Why? Because when the time comes to include your entity in another solution, and come it will, and you need to customize the form, you will NOT see this screen:

(╯°□°)╯︵ ┻━┻

and at that very moment you will silently say “THANK YOU”.

Cover photo by unsplash-logoAllie

Tip #1352: Can’t create a trial database?

You create a Power Apps trial at www.powerapps.com, but if you try to create an environment with a CDS database you get an error that adding a database requires at least 1 GB of free space.

The reason you are getting this error is because when you create the environment, you choose what type of environment it is, and the default choice is sandbox. Sandbox environments require that you have paid storage capacity. But if you choose “trial” for the environment type, you should be able to create your environment with no problem.

Tîpp Jäår $0.02 + GST

What sets the trial aside is that it’s a time-limited environment. It will expire in 1 month unless you convert it into a production environment. Sandbox is treated the same as production, i.e. it does not expire.

Cover photo by unsplash-logoKarlie Mitchell

Tip #1351: Flows not triggering after environment copy

Today’s tip from Ankita Chavan – a good reminder to get your housekeeping in order while copying the environments. Got a tip of your own? Send it to jar@crmtipoftheday.com!

We were working on the full copy of data from UAT Environment to dev Environment and we were testing existing functionality. We found that flow was not triggering. We tried the following solutions:

  1. Import and Export the flows and Change the Environment but this failed.
  2. Created a new flow, but this also failed.

After the environment copy background processes are disabled by default. (this is very much deliberate to avoid unintended side effects like email processing, for example – t.j.)

Go to the https://admin.powerplatform.microsoft.com/ -> Select Environment -> Edit and Check the Administration Mode of the Environment.

The Administration mode of the Environment should be disabled for the flows to run. If the administration mode is enabled, none of the Asynchronous Processes including Power Automate will get triggered.

Tip #1350: Modify webhook return status as needed in Power Automate

Power Automate is very handy to serve as a webhook. Add When a HTTP request is received trigger and you’ll get a URL to call after you save the flow. (Genuinely curious if it should be “an HTTP instead.)

Any flow triggered by HTTP request executes asynchronously, i.e. it returns to the caller immediately after accepting the input. Your flow by default will return to the caller with HTTP status 202 (Accepted). The problems start if you have no control over the calling party and the implementation is a complete bonker very sensitive to the return codes. For example, one of the form engines I’m using (part of the Elementor page builder in WordPress, if you must know) wouldn’t take 202 for an answer and believes that something went wrong on the other end.

To modify the return status code, simply add HTTP Response action at the end and specify any status you feel is appropriate.

For now I’m keeping it PG with status 200 but a few evil scenarios come to mind…

Cover photo by P C from Pexels

Tip #1349: Calculated field from related record

When Marius Agur Hagelund Lind poked me with this tip I was like, duuuude, who doesn’t know that? Turns out, not a single person in my family knew that so here it is.

All yours, Marius

Here’s an oldie but goodie.

Did you know that you can use related records to calculate a field value?Well you can! Simply type in the relationship name followed by a period, then the field name of the related record.

Tada!

Nick Doelman pointed out that you can reference a calculated field on the parent record, and that could reference a calculated field on it’s parent. So you could cascade it however far you wish.

Which means you can build a “top level value” if it’s a self-referencing field.

Finale

Ever wanted to use “set value” in a business rule to get a value from a parent record? Well here’s how:

  1. Create a calculated field, name it something silly like: _internal_calculated_reference_fieldname
  2. Reference the parent record
  3. Create a business rule, set the actual field value to the calculated value
  4. Optional: set the condition to be “state = active”. This way it won’t update when the record has been deactivated.

Tîpp Jäår $0.02 + VAT

This is something I use quite often to bubble up the values, e.g. show up a parent company’s phone number and email on a contact record without the need for a quick view form.

One caveat if you start including calculated fields that use related records, into the views. They cannot be used to sort the results.

Cover photo by unsplash-logoJosh Durham

Tip #1348: Convert CER to a PFX like a boss

I have nothing but respect for Nick Doelman but his affinity with a mouse device is starting to wear me off. Yes, I’m talking about his recent post on conversion of a CER file into a PFX file. Screen after screen after screen. Phleee-a-a-se… Just looking at those give me a mental carpal injury. Plus you end up with a certificate in your local store wasting precious bytes. It should not be that difficult.

tl;dr

Future me, pay attention, this is all you need to know:

openssl pkcs12 -export -out cert.pfx -inkey priv.key -in cert.crt -certfile bundle.crt

What is this sorcery?

I assume if you’re dealing with certificates, you’re not adverse to a bit of developer’s jiggery-pokery a.k.a command line. I also assume you are here because you don’t trust an online converter and you did not find these or these instructions easy to understand. Let me compare creating the pfx certificate to one of the greatest culinary achievements ever: strawberry 2-ingredients sorbet.

Ingredients

CertificateSorbet
2-3 text files:
  • cert.crt (or .cer) – contains the actual certificate
  • priv.key – contains the key (this one you should really keep a secret)
  • bundle.crt – CA and intermediate certificates bundle optionally provided by your certificate issuer
1 lb / 455g strawberry
1 openssl.exe (any good cook should already have one but we also provide instructions how to make one from scratch) ¼ cup / 85g honey

Preparation

CertificateSorbet
If you have Linux or Mac, you’re all set. If you have Git for Windows, OpenSSL is already in C:\Program Files\Git\usr\bin\openssl.exe.Hull the strawberries by using a straw to push out the stem of each strawberry.
If you have Chocolatey then this should do the trick of installing openssl:
choco install openssl
Cut strawberries in half and place on a parchmen paper-lined baking sheet and freeze until hardened.
Otherwise head off to openssl wiki and pick your favorite.Add the frozen strawberries and honey to a food processor and combine until evenly mixed.
Magic command line:
openssl pkcs12 -export -out cert.pfx -inkey priv.key -in cert.crt -certfile bundle.crt
Transfer to a loaf pan and transfer to freezer until completely frozen.
Enjoy!Enjoy!

Cover photo by Pressmaster