Category Archives : Programming

This category is designed for entries which relate to software development


To a Healthy Life

Hi All,

Apologies for the lack of articles recently.  I’ve been up to my usual design & architecture antics, but it’s not always blog worthy.  However, I’m strongly considering publishing some examples of the kinds of architecture and documentation which I build on a regular basis.  That is for another time.

Today’s article is conspicuously lacking technical content – because it’s not focused on technology for a change.

This article is about dealing with a heavy workload; dealing with the aspects of work which hampers your ability to collaborate, to perform at a high level and to generally to be productive.  I was asked by a colleague recently how I manage to still function when swamped with an apparent array of issues, pressure, lack of structure and other workplace conundrums. 

My answer was as simple as it was succinct: Whilst I value my work and my contributions there, I equally value my family and my personal time.

It was different when I was younger. 

Like most young programmers, early in my career I’d work long hours and put stress on my relationships with my significant other, friends and family.  I don’t think this is rare, it’s probably something of a rite of passage (for better or for worse).  Something changed when I hit my 30s, and I started to value my personal time even in the face of the growing challenges of how to stay relevant in a fast paced, always changing IT industry.  My hobbies and my home life started to gain more attention (and funding!), and although I remain committed to my work, my colleagues and to my clients, I’m equally guarded about my personal time.

These days I’m more seasoned and experienced, and it shows

In fact, I suspect it’s my equal focus on personal and professional time which makes my ability to focus on each sharper.  You can’t just talk about a healthy work/life balance, you have to make it work.

Another aspect of my life fundamentally changed just over 4 years ago, when we welcomed my first son into the world.  From that day onwards, I had an increasingly important role to play at home, and it continues to this day.  if, in the past, I had found it sometimes challenging to separate work from home life, it was not the case now.  Today, when I’m greeted at the door by my two beaming young sons amidst the chaos of delighted squeals of happiness, the angst and stresses from a full work day (or week) just melt away.

Naturally, the answer can’t always be to raise a family.  That said, there’s a few ways you might be able to engineer a healthier balance yourself.

1. Discipline.

When I take annual leave, I’m off the grid.  I don’t check work emails, and I won’t answer the phone (unless it’s an emergency).  Leave is my personal time, and provides me with the option to refresh/re-energise and get back some of my raw passion for technology.  Having said that, I make it my mission to do as much as possible leading up to any time off to ensure that my colleagues and clients have all the information they would need to continue working without my direct involvement. 

I also don’t have work email routing to my mobile phone.  I can still check work email (via a web browser), but I refuse to have mail “pushed” into my personal time via my phone.  These days it’s getting harder to separate work from life, but this is one aspect you can control.

2. Leave problems at the door

There are just some days when you aren’t going to solve all the world’s problems and you can’t be afraid to let some of it rest for another day.  The passage of time can be terrible for project timelines, but time has other benefits.  It can buy you time for further reflection, it can provide a window for others to provide insight or options; and in many cases it can help you to reclassify things you might have cast as a high priority, but which really aren’t.

3. Set goals, take enjoyment from your personal time

We all understand the value of setting goals at work, so why not do so when you aren’t at work?  Setting some individual goals, and making plans in your personal time can be equally as rewarding as shipping a product or promoting a solution to Production on time.  Draw motivation from professional and personal time in equal measures.

4. Keep it simple

Life’s full of rules and complexity.  I find often that the simplest approach is mostly the better option, which is why this list ends here.  Find what works for you.

Enjoy, R


CRM Reporting Extensions – SSRS not listed

Just a quick entry in case you are trying to solve a problem when attempting to install CRM Reporting Extensions.  You might encounter a situation where you specify the SQL Server machine or instance name, but proceeding to select the SSRS instance produces a blank list. 

So you need to install Reporting Extensions AFTER you’ve successfully installed Dynamics CRM.  Partially this is so that the Organisation and associated reports (if any) are correctly published to SSRS.  Aside from this, also verify the following…

First thing to check is that you’re installing the Reporting Extensions on the SSRS/SQL location and NOT the CRM Application server(s).

If so far everything is correct, check the log file for the installer.  You can specify a location other than the default, invoke the installer from a command prompt like this:

image

SetupSrsDataConnector /Q /CONFIG c:\temp\install-config.xml /L c:\temp\log.txt

If you find the following in the installer log:

  • “Could not find a local RS instance corresponding to the reporting url http:///<reportserver> for organization <org name>”
  • “Organization <org name> does not have reports published”

It could be that you’re trying to install against a 32 bit version of SQL Server, or an unsupported edition (see supported editions and how to check your edition of SQL Server in the References, below).

You can also use the command line to specify a configuration file, here’s an example:

<crmsetup>
  <srsdataconnector>
    <configdbserver></configdbserver>
    <autoupdateconfigdb>1</autoupdateconfigdb>
    <reportserverurl>
http://servername/Reportserver</reportserverurl>
    <autogroupmanagementoff>0</autogroupmanagementoff>
    <instancename>Titan</instancename>
    <configsku>OnPremise</configsku>
    <!– Set enabled = true for DB webstore integration.  Set configdb=”true” for config db webstore integration–>
    <webstore enabled=”false” configdb=”false” />
    <monitoring>
<!– Monitoring service account name and password. It can not be local system or network service account –>
      <serviceaccountname></serviceaccountname>
      <serviceaccountpassword></serviceaccountpassword>
    </monitoring>
  </srsdataconnector>
</crmsetup>

References

Microsoft Dynamics CRM reporting requirements – https://technet.microsoft.com/en-us/library/hh699754.aspx

How to determine the version, edition and update level of SQL Server and its components – https://support.microsoft.com/en-au/kb/321185

Install Microsoft Dynamics CRM Reporting Extensions using a command prompt – https://technet.microsoft.com/en-us/library/hh699725.aspx