RJ Ledger
RJ is the founder and owner of rjlSystems. He's a former CIO, Product marketing manager, process control engineer, chief network monitoring and control architect and multi-processor cpu (hardware) designer. His background includes networking/network design and well as satellite, radar and sophisticated intercept systems. You can view RJ's profile on LinkedIn: http://www.linkedin.com/in/rjledger
Homepage: http://rjledger.wordpress.com
FireFox 23 will be a Game Changer w/https sites
Posted in Best Practice, CRM, CSS3, HTML5, javascript, Misc, Mobility, Privacy, Security, Technical on 04/11/2013
There’s an option in FF (version 18.0 and up) called:
security.mixed_content.block_active_content
When FF 23 is released (20.0 is the current release) this option will be enabled by default. What this means is ANY ”mixed” https page will NOT load non https content.
So if you have constructed a site that has any http links in it and your site is on SSL (https) then users will experience ”failures”.
QUES: Is this a good thing?
ANS: YES! Attacks using ”bad links” are buried in https sites everywhere. You typically see a popup asking if you want to display the “non-https” content. When you do you take a BIG risk of infecting your system, getting hacked, etc. KUDOS to the FF team for taking this step to block non-https data by default!
I would strongly suggest you test this out NOW to make sure things will work right when FF 23 is released. Using FF 18.0 and up you simply need to:
A – key in about:config in the url/address line
B – search for the key: security.mixed_content.block_active_content
C – change the value to true
FYI – Chrome has already made such a change (you get a warning)..
IE 10 installs automatically on Windows Updates
If you have Automatic Update turned on:
” Users of Windows 7 Service Pack 1 (SP1), and 64-bit version of Windows Server 2008 R2 SP1 will receive Internet Explorer 10 as an important update if they have Automatic Updates enabled, or if they perform a manual scan for updates on Windows Update.”
NOTE: installations which use “WSUS” – Windows Server Update Services” and control the updates to their installations can easily block this. For individual PC’s NOT being managed by WSUS (most of us
there is a “blocker kit“.
Here is the direct download: IE10-BLOCKER
Sage Selling ACT & SalesLogix to Swiftpage
Well.. many of us saw this coming when Sage first announced ACT & SalesLogix NOT being part of it’s “core business”.
Here are some links to the official announcement:
globalcomms.sage.com
www.investors.sage
Plus another from Sharecast – Thanks “Nato”!:
www.sharecast.com
.. and of course, Swiftpage.. GREAT People!
SalesLogix Mobile Web Application 2.0 – A Video
Posted in CRM, HTML5, javascript, Mobility, Technical on 01/24/2013
A while back there was a video made/posted by the SalesLogix Training group on the Mobile Web Application (version 1.x). Along with the recent release of SalesLogix Version 8.0 was the release of Mobile 2.0.
2.0 builds on the the original functionality of the 1.x release (specifically 1.2) and gives us a much nicer (mobile) user experience. One of the things I especially like are what are called “List Actions” (I call them “Immediate Actions”). “IA’s” are available on all of the “List Views”. You get to them by simply clicking on the Icon (rather than the text) and they appear in a new line just below the list item.
For a look at “IA’s” and other things, jump over to uTube and take a look:
Oh yes, you do NOT have to upgrade your 7.5.4 SalesLogix to 8.0 to run Mobile 2.0 – BUT there are some features which ONLY work with 8.0 (SData). I’ll be posting just what these things are in a future blog.
Finally – One Place for all things Web Development?
Sounds too good to be true, doesn’t it? Only time will tell.
On Monday, October 8, 2012 there was an announcement by W3C on the alpha release of Web Platform Docs. The purpose of this is to establish a single point/place where we all can go for “All Things Web Development”.
Her’s a blog posting by Jean Paoli (President – Microsoft Open Technologies) on the announcement:
Bear in mind this site is only a few days old but it has names like Adobe, Facebook, Google, HP, Microsoft, Mozilla, Nokia, Opera that are stewards of the project. If they pull this off it will save all of us TONS of time (translate $$$) in development/research as related to web efforts.
Let us wish them the best and contribute to the effort for the common good! So jump over and take a look NOW!
SalesLogix Synchronization – Running as a Service
Posted in CRM, General, Misc, Technical, Uncategorized on 09/26/2012
It’s amazing how many times I run across a situation where the Main Sync (and/or Secondary Sync Servers) are running under the (Windows)Task Scheduler. At first, this does not seem to be an issue. However, on closer examination there’s a high degree of probability the (WTS) job is not passing in the “correct” sequence of “switches” (options).
The way this usually rears its ugly head is:
A – the job runs too long and another one tries to start up
B – the job fails to start for some unknown reason
C – the job “hangs” for some unknown reason(s)
The Saleslogix team solved this problem a LONG time ago with the introduction of “Sync As A Service”. Basically it is all “built-in” and the admin interface is thru the (WG)Admin application (click on “System” in the NavBar and then on the Sync Automation Services tab) and all you need to know to get started is in the HELP file (under Synchronization -> Running Synchronization from a Service).
All this is fine for the MAIN DB.. BUT what about the Remote Office you ask.. Well, as of the (current) latest release (7.5.4.xxxx) there is no automation for Sync on the RO…. BUT you can “fake it” via Windows Task Scheduler. Here’s info on how to do this from my KB – NOTE – DISCLAIMER – The following procedure may not be fit for any useful purpose – use at YOUR OWN RISK! It is an EXAMPLE of one I use at customer sites:
Using the Windows Scheduler you can schedule a Remote Office (or even a Remote User) to have synchronization run automatically.
Here is how:
TASK tab
run:
"C:\Program Files\SalesLogix\SyncClient.exe" /B "SLXRemote" /E /Q /L /G /Y /R /C /A /S /TD /TU
Start in:
"C:\Documents and Settings\All Users\Start Menu\Programs\SalesLogix"
Run as:
domain\administrator (NOTE: This is how I do it.. you may want to use another user)
SCHEDULE tab
Schedule: Daily
start time: 05:15
Repeat Task every 15 minutes
Until 24 hours
Schedule Task Daily Every 1 days
SETTINGS tab
Stop task if it runs for 2 hours 0 minutes
Don't start task if the computer is running on batteries
Stop the task if battery mode begins.
SECURITY tab
Group/Users
Administrators Full control
NOTE: Running Synch as a Service using the OOTB (Out Of The Box) approach also has additional benefits:
A – You can use the Synch Monitor Tool to see what it is doing. If it is NOT on your (LAN connected) PC than simply copy it (SLXMonitorConsole.exe w/the help file SLXMonitor.chm) to your system – to the SalesLogix App Directory, make a desktop shortcut and then configure (see Help FIle).
B – When it runs as a service it will insert a record in the SYNCJOBHISTORY table.
There is a LOT more to say about synch.. but let us leave it for another day – Happy Synching!
SQL Azure vrs. Amazon RDS SQL Server – Which Way?
Posted in Best Practice, CRM, General, SQL, Technical on 07/23/2012
SQL Server Central recently published an article on the (above) subject on July 11,2012. The author (Peter Marriott) makes an interesting statement:
“..It doesn’t take long to realise that Amazon RDS SQL Server is a very different beast from SQL Azure.”
He goes into features, power and size, Backup and Availability, Administration, and finishes up with a good “pro/con” set of statements on both approaches.
My takeaway was (IMHO) if you really want a “scale-able system”, Amazon is the way to go – NOT Azure! However, I do invite you to go and read the (fairly short and concise) article and comment.
#Outsourcing and #Offshoring – What is the REAL Truth Here?
Unless you live with your head stuck in a very dark place ..
… You have heard a “bit of” public discussion and comments about how “Outsourcing” is a bad thing.
Well – I am here to say ” reductio ad absurdum” -
Business is all about outsourcing and it starts at the lowest level. To start with a fairly absurd (and obvious situation), we do not “build our own mobile phones” – we pay someone else to do it – we “outsource”. On a higher plane – (most) businesses do not write their own accounting/erp package or their crm system – they “outsource”. There are TONS of examples we all can come up with and not have to “strain the brain” as one may say. The vast majority of SMB (Small/Medium Businesses) on the planet outsource and provide outsource services to those who do.
The fallibility of the “Outsourcing is bad” statement lays in the confusion between the words:
Outsourcing and Offshoring
The REAL “bad one” is Offshoring and those (in the public sector) who are saying “Outsourcing is bad” need to extract their brain from that deep dark place, look it (Outsourcing and Offshoring) up in the dictionary (or wikipedia), and stop being intellectually dishonest to all of us.
Made in the USA – or Was It?
Posted in Uncategorized on 07/04/2012
Today is July 4th – 2012 – Independence Day here in the USA. This is one of the National Holidays that does NOT fall under the Monday/Friday rule. It is ALWAYS on July 4th.
Most of us get together with family and friends, have some burgers, hot dogs, and of course – a “brew or two”
Many of us also display the American Flag – also known as “Old Glory”, “The Star Spangled Banner” – yes, it is the name of the National Anthem.. and it is also one of the names for the flag itself. The question I pose – is the flag you are flying “Made in the USA” – or is it one of the ones which was part of the $3.6MILLION dollars of imported flags ($3.3MILLION of which came from mainland China)?
How Do I Run a VBScript OUTSIDE of SalesLogix?
VBScripts CAN be run completely outside of SalesLogix. BUT you do not have access to the SalesLogix Application object.
First you need to be able to make a connection to the (SalesLogix) Provider. The key part here is to pass in a valid (SalesLogix Provider) connection string. I usually create a “.udl” file to do all the heavy lifting here. This is what the contents of a typical “.udl” looks like:
[oledb] ; Everything after this line is an OLE DB initstring Provider=SLXOLEDB.1;Password=mypassword;Persist Security Info=True;User ID=admin;Initial Catalog=SALESLOGIXV754DEV;Data Source=GOBIDEV;Extended Properties="PORT=1706;LOG=ON;CASEINSENSITIVEFIND=ON;AUTOINCBATCHSIZE=1;SVRCERT=;"
Now we need to concentrate on the actual script itself. For this example we assume the “.udl” file is called MyConnection.udl and is located at the root of “C” (C:\MyConnection.udl) :
Sub Main
Dim objCon 'SalesLogix Connection Object
Dim sConnString
Dim strSQL00
Dim objMyRS
Dim blnNewSlxConnection
'Get a connection to SalesLogix - Cannot use the Application Object in an Agent or outside of SalesLogix
' We have to do all of this "outside"
sConnString= "File Name=C:\MyConnection.udl"
'Now connect up
Set objCon = CreateObject("ADODB.Connection")
If Err.Number <> 0 Then
blnNewSlxConnection= False
If IsObject(objCon) Then
Set objCon = Nothing
End If
Err.Clear
Exit Sub
Else
blnNewSlxConnection= True
objCon.ConnectionString = sConnString
objCon.Open
End If
'Do some work - get data from USERINFO table
strSQL00 = "SELECT * FROM sysdba.USERINFO"
Set objMyRs = CreateObject("ADODB.Recordset")
With objMyRS
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.LockType = adLockBatchOptimistic
.Open strSQL00, objCon
End With
'Now pull in data from USERINFO... and do something with it
If Not (objMyRS.EOF Or objMyRS.BOF) Then
'OK
With objMyRS
If .RecordCount > 0 Then
'We have data - now do work...
While NOT (.EOF or .BOF)
strUserID = .Fields("USERID").Value
strLastName = .Fields("LASTNAME").Value
'Now do some work w/this data
Call WriteResultsToTraceFile(strUserID,strLastName)
.MoveNext
Wend
Else
'No data found...
End If
End With
'All done..close shop
If IsObject(objMyRS) Then
objMyRS.Close
End If
Set objMyRS = Nothing
If IsObject(objCon) Then
objCon.Close
End If
Set objCon = Nothing
The above is a very simple framework and certainly can be expanded. I have created an include file that contains several of the key functions:
Function NewSlxConnection(ByVal sConnString, objCon) Function CloseSlxConnection(objCon) Function GetRecordSetObj(objCon,ByVal strSQL) Sub CloseRecordSetObj(objRS) Function ChkError(strInfo) Function FixQuote(ByVal sSrcLine) Function ExecuteSQL(objCon, ByVal sSQL00) Function GetScalarValue(objCon, ByVal sSQL00) Function GetMultipleScalarValue(objCon,ByVal strSQL, ByVal iRecCount, strValue) Function GetMultipleValuesFromDB(objCon, ByVal strSQL, strValue) Function CreateIdFor(objCon, ByVal sTableName) Function CreateBlockOfIDFor(objCon,ByVal strTableName, ByVal sRecCount, strRecordID) Function IsEmptyRecordset(ByRef objRS) Function GetRecordCount(objCon,ByVal TableName, ByVal PKName, ByVal sWhere)
We use this include file in all our external VBScripts and for a small fee we do license it to anyone who is interested (along with some samples/examples).