We have a number of backoffice processes that, in order to make them more effective, should record history in slx when the process occurs. For example, sending automated surveys to our clients, or performing software activations.
We would like to record these actions in SLX history, but these processes occur where no SLX is running, and often, where no direct human interaction is taking place.
What is the best way to create history records? Essentially we want do do the identical thing that “Add Note” does in the Notes/History tab, and we would populate the fields automatically, setting the account, contact, regarding, note text, etc, automatically.
My preference would be to use existing SLX stored procedures, (as opposed to using SLX objects). Any guidance would be appreciated.
That’s exactly what you do – link via the Provider (or SQL direct if you have no remote) and simply add a new row into History table. If you run SLXProfiler – add a note – you will see exactly what you need to do e.g.
Here’s something to get you started:
Sub RecordToHistory (sAccID, sConID, sCat, sDesc, sType, sNote)
Dim objSLXDB, objRS, strSQL
Set objSLXDB = New SLX_DB
Set objRS = objSLXDB.GetNewRecordSet
strSQL = “SELECT * FROM HISTORY WHERE 1=0”
objRS.Open strSQL, objSLXDB.Connection
.Fields(“HISTORYID”).Value = Application.BasicFunctions.GetIDFor (“HISTORY”)
.Fields(“TYPE”).Value = cstr(sType)
.Fields(“ACCOUNTID”).Value = sAccID
.Fields(“ACCOUNTNAME”).Value = CheckForNull(Application.BasicFunctions.CurrentAccountName)
.Fields(“CONTACTID”).Value = sConID
.Fields(“PRIORITY”).Value = “None”
.Fields(“CATEGORY”).Value = CheckForNull(sCat)
.Fields(“DESCRIPTION”).Value = CheckForNull(sDesc)
.Fields(“STARTDATE”).Value = cstr(Now)
.Fields(“COMPLETEDDATE”).Value = cstr(Now)
.Fields(“ORIGINALDATE”).Value = cstr(Now)
.Fields(“USERID”).Value = Application.BasicFunctions.CurrentUserID
.Fields(“USERNAME”).Value = Application.Users.Item(Application.BasicFunctions.CurrentUserID).Name
.Fields(“DURATION”).Value = cstr(0)
.Fields(“TIMELESS”).Value = “F”
.Fields(“RESULT”).Value = “Complete”
.Fields(“COMPLETEDUSER”).Value = Application.BasicFunctions.CurrentUserID
.Fields(“ATTACHMENT”).Value = “F”
.Fields(“NOTES”).Value = CheckForNull(Left(sNote, 254))
.Fields(“LONGNOTES”).Value = CheckForNull(sNote)
If ErrorCheck (Application.Translator.Localize(“Error updating [History]…”)) > 0 Then exit sub
Set objRS = Nothing