Salesforce, Python, SQL, & other ways to put your data where you need it

Need event music? 🎸

Live and recorded jazz, pop, and meditative music for your virtual conference / Zoom wedding / yoga class / private party with quality sound and a smooth technical experience

Bienvenue! Welcome!

My goal is to help you work faster.

I must speak and teach until I hear 10 people say, "That thing you taught me? I used it! And it saved me time!"

(Ahem ... although maybe blogging slower than I'd hoped. Ugh, coders' repetitive stress injury.)

So check out the tutorials. Play with code. Tell me about your triumphs.

DevOps vs. ITSM Maturity

29 Nov 2022 🔖 devops 💬 EN

DevOps maturity is important, but might it be secondary to other technology maturity models?

Continue Reading

Should CI testing always be automated?

28 Nov 2022 🔖 devops 💬 EN

  • Q: Should testing always be automated in continuous integration?
  • A: Yes. Sorta. Huh?
Continue Reading

Securing CI/CD pipelines

28 Nov 2022 🔖 devops 💬 EN

Here are some considerations to keep in mind when deciding where to store sensitive information as you secure a CI/CD pipeline:

Continue Reading

Use Subflow EVERYWHERE

21 Nov 2022 🔖 salesforce flow integration intermediate tips web development 💬 EN

Flownatic Salesforce admins! Have you ever let a Salesforce Developer (like the ones at UnofficialSF) write complicated Apex so you could call it in your Flow as an Action?

What if I told you that developers could depend on your flows instead when they need to do something complicated?

Continue Reading

SFDX and Git exercises for beginners

18 Nov 2022 🔖 salesforce tutorials git vscode 💬 EN

Congratulations – you have a new job at Banana Stand Corporation!

The company’s primary production Salesforce org lives at https://bananastand.my.salesforce.com/, with important sandboxes at https://bananastand--staging.sandbox.my.salesforce.com/ and https://bananastand--dev.sandbox.my.salesforce.com/.

The most important shared Git repository corresponding to https://bananastand.my.salesforce.com/ lives at https://github.com/BananaStandCompany/salesforce_primary/.

  • Q: How do you successfully enhance these live Salesforce orgs without irritating colleagues who also use https://github.com/BananaStandCompany/salesforce_primary/?
  • A: Read on!
Continue Reading

Git and GitHub exercises for beginners

18 Nov 2022 🔖 git tutorials vscode 💬 EN

Congratulations – you have a new job at Banana Stand Corporation!

The corporate blog lives at https://bananastand.example.com/blog and it’s your job, as a new HTML and CSS expert, to make the blog even more beautiful than it already is.

The shared Git repository containing a codebase full of .html and .css files that drive the way https://bananastand.example.com/blog looks is hosted on the internet at https://github.com/BananaStandCompany/website_corporate_blog/.

  • Q: How do you successfully make the blog more beautiful without irritating colleagues who also use https://github.com/BananaStandCompany/website_corporate_blog/?
  • A: Read on!
Continue Reading

Jitterbit: replace a non-breaking space

07 Oct 2022 🔖 salesforce jitterbit integration databases tips 💬 EN

Some visitor typed a non-breaking space into their address when filling out a form. 123 Sun St, New York, NY 10001 is just 30 characters long, but as I tried to data-load an address into an Oracle VARCHAR2(30)-typed column (THE_ADDRESS) with Jitterbit, Oracle complained: ORA-12899: value too large for column ... (actual: 31, maximum: 30). Jitterbit logs showed the actual address submitted in my flat-file source column “address” as 123 Sun St, New York, NY 10001.

“Allow truncation of character fields to avoid field length errors” was already checked on the database target side of the Jitterbit transformation … so what was this all about?

Continue Reading

CumulusCI Minimum Viable Build

26 Sep 2022 🔖 salesforce minimum viable build 💬 EN

While the cci project init command will throw a lot of useful empty files into a blank folder for you, and will create a fileset that supports launching a scratch org with the cci flow run dev_org command, it generates a lot of files you don’t necessarily need right away. I’ve built a sample project and hosted it at GitHub to show off what I, personally, have found is actually necessary. You can download a copy and run cci flow run dev_org within it to see what I mean (although be sure to read below and note the /.sfdx/sfdx-config.json hand-edit you need to make).

Continue Reading

Download your org schema with CumulusCI

16 Sep 2022 🔖 salesforce vscode 💬 EN

I made a new codebase that lets you use CumulusCI (CCI) to easily download the definition of every object and field in a Salesforce org (part of its “metadata”) onto your hard drive as a plain-text file formatted in the JSON punctuation standard.

Continue Reading

Compare Flow versions in VSCode for Salesforce

16 Sep 2022 🔖 salesforce vscode flow tutorials 💬 EN

Today I had to propose quickly hotfixing a Flow in production. It was terrifying – it’s production! I don’t work in Flow all the time!

Not only did I send screenshots to the org’s admins of my inactive-but-newer version … I needed to be really confident and proofread the difference between the underlying XML codebase between the two versions before I could swear I’d done the right thing.

So here’s what I did:

Continue Reading