InterAction CRM Bug INT_TPS_CHANGE_MANAGEMENT

July 5th, 2018 No comments

InterAction CRM (by LexisNexis), has a bug that causes you database to fill up with GB of unnecessary data.

Do you have the problem?

To check, get your Database administrator to run a standard SQL Server report, disk usage by top tables.

When you run the report you will see that generally the INT_TPS_CHANGE_MANAGEMENT is one of, if not the, largest tables in the system.

If this table is large, greater than 1GB, then you have a problem.

What is causing it?

The INT_TPS_CHANGE_MANAGEMENT table is an audit table of changes that occur due to the Outlook Sync processes.
There is a clean up routine that trims this audit table of old data, but there is a bug that causes it to fail to clean up these old rows.

How can I fix it?

Surprisingly easily.

To find and fix the problem, do the following:

  1. Launch InterAction Administrator
  2. Run “User Contact List”
  3. Sort the list by date desc.
  4. You will find that most users were all sync’d recenlty, but there are one or two old users who have left the firm but still have the firm sync enabled. They will have very old dates for “Last Firm sync”.
  5. For each of these old sync users
    1. Disable the sync
    2. Save the changes

      You can now manually execute your Database maintenance script, which should be setup to run weekly on your process manager server.

      Database Maintainence

      Now you can do a little maintenance on your database to

      1. Rebuild database Indexes
      2. Shrink the database

      And you should saved some space on your system.
      The example in the screen shots cleaned up 3 years worth of old logs
      Example: 3.8GB and 15.3 Million rows of data was trimmed to 580MB and only 2.1 million rows of data.

Categories: InterAction Tags:

Reset SQL Server SA Login via Powershell

June 13th, 2018 No comments

The Problem

You have lost or forgotten the SA password for you SQL Server box!!

The solution

This is really easy to fix.
On the server do the following:

  1. Launch Powershell as an administrator
  2. Run:
    Install-Module dbatools
  3. Answer “Y” when prompted (twice for me).
  4. Run
    Reset-DbaAdmin -SqlServer localhost\SQLEXPRESSS

    (or whatever your database is, a “.” will suffice for a standard default sql installation”)
  5. Answer “Y” to the prompts
  6. Enter your new sa password when prompted
  7. Wait

That should be it.
Try logging in as “sa” with your new password and you can now are good to go.

Full details of the dbatools can be found here; https://dbatools.io/functions/other/reset-dbaadmin/

Categories: SQL Server Tags:

invoicely change Tax Id to ABN

May 31st, 2018 No comments

The Problem

In Australia the tax identification number is ABN (as you should know otherwise you wouldn’t be reading this blog post)

In Invoicely it appears on your invoices as Tax ID, or in the system as Tax Identification Number

The Question

How do you change Invoicely so that Tax ID is replaced with ABN on your invoices.

The Answer

Although un-intuitive it is actually really easy.
For

  • Your Business – click Business Settings >> Edit Business Information
  • A Client – click Clients >> then click on the client to edit

Now

  • make sure the Tax ID field is empty, Cut your or your clients ABN from the “Tax Identification Number”
  • Scroll down to the “Custom Fields” section
  • In the first field enter “ABN”
  • In the second field enter/paste the ABN Number
  • Save

Now view an invoice and it will have removed Tax ID (as there is no value recorded in that field any longer), and show ABN which is your first custom filed.

Ahh, so simple..

P.S. being a software developer, the other way to solve this (invoicely!), would have been to provide a system setting like “Tax ID Display Name” and I could have just typed ABN, and that could have overwritten the work Tax Identification on the two or 3 areas where it is displayed 😛

Categories: Business Tags:

Dual Monitor Setup – Display Flicker

May 30th, 2018 No comments

The Problem

I have a reasonably decent video card, a XFX R9 280x TDBD.

I recently bought a second monitor and hooked it up. Old monitor was running on HDMI, whilst the new monitor was running on a Mini DP to DP connection.

I fired it up and my new 23.8 Inch AOC IPS display started flickering and jumping around??? It was a full hoizontal artifact across the screen that seemed to jump around and jitter and jutter when I moved the mouse or opened applications.

Investigation

To me it appeared to be a video driver software issue. I tried playing around with the display settings and by choosing different preferences I actually made the Jitter/Jutter move from appearing on my new display to my old display, WTF? It must be a software issue if I am able to impact which screen the problem appeared on by changing software settings.

I tried full clean driver installs. I upgraded to the latest driver, and then when that didn’t work I downgraded to 17.11.1. No change.
I tried running from different ports, HDMI, DVI and DP and still no luck so not the cables.

I eventually found that in the Radeon Settings, I could open preferences and click “Restore Factory Defaults” and it would stop the problem.. However on the next reboot it would be back.

The solution

I finally googled a discussion on toms hardware where it was suggested that:

Check the clocks of your video card. They are not supposed to downclock as much with two monitors. The memory and GPU core clocks should be higher than the normal idle, otherwise they can't handle 2 monitors correctly

That makes sense, running two monitors requires a little more oommpphhh, and if your video card is running under-clocked then it may struggle.

I downloaded and installed the GPU-Z and went to the sensors tab and noticed my core clock and memory speeds seemed to be way down.
I watched when I clicked, “Restore Factory Defaults” and sure enough the Clock and memory bumped up by almost double, and the flicker stopped.

So I then remembered that I had installed MSI Afterburner at some point in the past.
I fired it up and checked how that was configured. It seemed that an empty profile (i.e. the memory and core clocks set to minimum) had been loaded and set to “Apply overclocking at system startup”.

So the problem was caused by a down clocked video card, not being able to handle running two monitors.

Problem solved, and it has not flicker once whilst I wrote this post 😛

Categories: Hardware Issues Tags:

AWS Lambda-Canary Node Js

February 26th, 2018 No comments

The Scenario

I am learning about AWS Lambda functions and doing a small tutorial that works through using the lambda-canary blueprint which uses python 2.7

The Problem

I want to do this same canary function in Node.js 6.10, but I could not find out how to do this.

The solution

Below is the code sample that I came up with to implement the lambda-canary-nodejs lambda function

var http = require('http');

exports.handler = (event, context, callback) => {

    var site = process.env['site'];
    var expected = process.env['expected'];
    
    console.log('Checking website: ' + site);
    
    http.get(site, (resp) => {
        let body = '';
    
        // read the data
        resp.on('data', (chunk) => {body += chunk; });
    
        // The whole response has been received. 
        resp.on('end', () => {
            // validate that the expected value is in the returned stream
            if(body.indexOf(expected) > 0){
                console.log('website is up')
                callback(null, event['time']);
            } else {
                console.log('website did not respond as expected')
                var error = new Error('website did not respond as expected');
                callback(error);
            }
        });

    
    }).on("error", (err) => {
        console.log("Error: " + err.message);
        callback(err);
    });
    
};

Items to note about this code:

  1. process.env[‘key’] is how you access the environment varialbes/li>
  2. environment variables are case sensitive, so the string index must match variable name as defined on the lambda function
  3. callback accepts an error object as the first parameter when it fails

So to implement this you would:

  1. Create a new blank function
  2. Past in this code
  3. Setup 2 x environment variables, site & expected
  4. Create a test of type scheduled event
  5. Test the code

Categories: AWS, Lambda Tags:

VSTS package management with teamcity nuget authentication issue

October 6th, 2017 No comments

The problem

You have your nuGet packages being hosted on VSTS, and published a feed via package managment.

Using teamcity to setup a build where the visual studio solution needs to reference your custom nuGet packages from VSTS .

You setup the first build step as “Nuget Installer” and configure it to restore your packages from the .sln file.

When you run the build it will fail with authentication issues connecting to the VSTS Nuget feed, with a 401 Unauthorized.

The solution

In your build configuration:

  1. click “Build Features”.
  2. Choose “Add Build Feature
  3. In the drop down choose “nuGet Feed Credentials”
  4. Enter the path to your VSTS nuget package
  5. Enter your credentials
  6. Save it

Now run your build and it will successfully authenticate you against VSTS and download your packages.

Categories: Uncategorized Tags:

Grant Connect SQL Server – TSQL

July 27th, 2017 No comments

The issue

You are having connection problems to the database and all the permissions look correct but you cannot login.
Fire up the SSMS and expand the Security tree at the individual database and you notice that your login is there but with a little red down arrow.

The Fix

You need to grant “Connect” to your user.

Assume your user is a domain account DOMAIN\username

use MyDatabase 
GO

Grant Connect to [DOMAIN\username];

Categories: SQL Server, T-SQL, Uncategorized Tags:

SQL Server Management Studio on Hi Res Screen

September 13th, 2016 No comments

The problem

You are using SSMS on one of these new wizbang hi res screens and all the dialogs are tidy and small and you cannot addminister your SQL Server.

The Fix

I found this somewhere on the internet and it works.

Step1: Create the Ssms.exe.manifest

Take the following code and save into a file called, Ssms.exe.manifest

<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?>
 
<assembly xmlns=&quot;urn:schemas-microsoft-com:asm.v1&quot; manifestVersion=&quot;1.0&quot; xmlns:asmv3=&quot;urn:schemas-microsoft-com:asm.v3&quot;>
 
<dependency>
  <dependentAssembly>
    <assemblyIdentity type=&quot;win32&quot; name=&quot;Microsoft.Windows.Common-Controls&quot; version=&quot;6.0.0.0&quot; processorArchitecture=&quot;*&quot; publicKeyToken=&quot;6595b64144ccf1df&quot; language=&quot;*&quot;>
    </assemblyIdentity>
  </dependentAssembly>
</dependency>
 
<dependency>
  <dependentAssembly>
    <assemblyIdentity type=&quot;win32&quot; name=&quot;Microsoft.VC90.CRT&quot; version=&quot;9.0.21022.8&quot; processorArchitecture=&quot;amd64&quot; publicKeyToken=&quot;1fc8b3b9a1e18e3b&quot;>
    </assemblyIdentity>
  </dependentAssembly>
</dependency>
 
<trustInfo xmlns=&quot;urn:schemas-microsoft-com:asm.v3&quot;>
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel level=&quot;asInvoker&quot; uiAccess=&quot;false&quot;/>
    </requestedPrivileges>
  </security>
</trustInfo>
 
<asmv3:application>
  <asmv3:windowsSettings xmlns=&quot;http://schemas.microsoft.com/SMI/2005/WindowsSettings&quot;>
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings=&quot;http://schemas.microsoft.com/SMI/2005/WindowsSettings&quot;>false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>
 
</assembly>

Save that and then copy it into the directory where your SSMS.exe lives.
Mine was SQL 2014 and it lived in “C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio”

Step 2: Update the registry

Save this into a .reg file and run it

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
&quot;PreferExternalManifest&quot;=dword:00000001

Step 3: run it

Run SSMS and sit back and marvel at how it sizes its dialogs correctly.

Categories: SQL Server Tags:

EntityFramework force the update of an object

June 3rd, 2016 No comments

The Problem

You are trying to save some changes to an object.
Your code looks like the following:

But the changes are not being saved

The Solution

Entity framework is not aware that the job object has been changed so you need to tell it, by adding line 8.

Note if you wish to control a specific propety and flag that only 1 columns has change

Categories: c# Tags:

Windows 10 – KB3147458 – Windows update failure – 0x80070003 – ERROR_PATH_NOT_FOUND – FIXED!!

April 26th, 2016 2 comments

The Problem

I have numerous windows 10 machines and my desktop PC has started failing to apply the windows updates.

These two windows updates failed to install

  • Cumulative Update for Windows 10 Version 1511 for x64-based Systems (KB3140743)
  • Cumulative Update for Windows 10 Version 1511 for x64-based Systems (KB3147458)

Note: because of these issues I have set my windows update to notify and let me choose when to download and install

Setup Windows Update via Group Policy

The Symptoms

  • You are told there is a new update and you let it download and install.
  • Once completed you are asked if you wish to restart, so click restart
  • You are told that it is getting ready to install updates
  • In my case it gets to 3% and then reboots
  • Next it gives a message, “Cannot complete install. Undoing changes”
  • The computer reboots again
  • On login, you are told some udpates were unsuccessful

The Issue

In my particular instance this fixed the issue.

I first went and viewed the log file: C:\Windows\Logs\CBS\CBS.log
Depending on how long it has been since the error occured you may need to look for a file called “CbsPersist_20160425131704.log” where the number is the date/time of when the log file was created.

Open the file and search for “0x80070003 – ERROR_PATH_NOT_FOUND”

I found mine is a section as follows:

The issue is that one or more of the 16 drivers it is attempting to update has failed to be installed with a Path Not found error, but which one/s?

To find the details of the erroring driver update go to this file: c:\windows\Inf\setupapi.dev.log

Open this file and search for “Exit status: FAILURE”

I found the following, item of interest:

As you can see it is saying path not found in the FileRepository folder.
So I went looking and its right, I had no “capimg.inf_amd64_5a4379f63bea786c” folder!

The fix

In my case I have many other healthy windows 10 machines so I went and looked and sure enough they had the missing folder.

So I firstly copied the folder onto a usb key from the healthy machine.

There is a security issue with the FileRepository folder in that you will have no permissions on this folder.
To copy the “capimg.inf_amd64_5a4379f63bea786c” folder into the FileRepository directory you will need to go into the Advanced security and take ownership first. I am an admin on my PC, so I changed ownership to the Administrators group and then gave administrators full persmissions.

Once that is done you should be able to copy the missing folder into the FileRepository directory.

Next try to apply the update again and in my case it worked.

Windows10Update Success

Categories: Uncategorized, Windows Forms Tags: