Wednesday, May 15, 2013
Buyer Beware - Cont'd
The recent immigration reform bill that is being discussed has a lot of compromise built into it to allow highly skilled workers to more easily work in the US. As I've previously posted, I've had some negative experiences finding "highly skilled workers". In speaking to someone who places IT workers on H1B, he confirmed that there is a lot of bait and switch that occurs in the interviewing process. Having already been told by a former coworker that the proxy-interviewing was occurring, I thought I had heard the worst of it. But my headhunter source tells me that it's also common for someone who gets through the interviewing/bait and switch, who is inexperienced, to basically off-shore their work to cheaper labor back home. I guess I shouldn't be surprised but I'm curious about whether any of you who follow this blog have an opinion on this. Is this the tip of the iceberg? Does it matter how the work gets done so long as it's done?
Upcoming Topics
I've been doing some interesting development in the last few months that I'll blog about when things slow down. Some of the topics:
- Replacing Salesforce's standard rich text editor with TinyMCE, CKEditor, Redactor, and more.
- Spell checking and Salesforce
- Wrappers
Tuesday, June 19, 2012
Monday, June 18, 2012
Workbench Discovered
In typical form, I came across the Salesforce Workbench today while looking for the answer to something completely unrelated. I was reading a cookbook article on developing a mobile app on the relatively new mobile SDK and saw a reference to this Workbench. It looks like a lot of familiar capabilities like SOQL/SOSL search, object descriptions, etc.., wrapped up in a clean UI. One capability struck me right away, that almost every sys admin will want to be aware of, is the ability to SET a user's password. To the best of my knowledge, there was no other way to SET another user's password. I'm sure most sys admins out there will appreciate this capability. Check out the rest of the workbench here:
https://workbench.developerforce.com
http://wiki.developerforce.com/page/Workbench
https://workbench.developerforce.com
http://wiki.developerforce.com/page/Workbench
Friday, May 4, 2012
In the voice of Dr. Evil, "1 Billion records per hour!"
On a Friday night, we did a deployment that involved a data update into Salesforce. Whilst using the Apex Data Loader utility, I achieved a unprecedented 1 billion records per hour rate from Salesforce! This is over 300,000 records per second!
Thursday, May 3, 2012
Indexing Delay?
A business user recently showed me that if she created a contact in Salesforce and then searched for that contact, that the contact would not be found. It was so strange to see this that I opened a case with Salesforce support. Support recently replied and said that this was expected behavior and that newly created records may not be searchable for up to 30 minutes while indexing is processing! 30 minutes!!
Wednesday, April 18, 2012
Outlook Macro
We use a 3rd party product to integrate Salesforce.com with Outlook. The client that we use is a add-in for Outlook and for contact integration, it relies on the contact's MessageClass property's value to be "IPM.Contact". We've seen various products change the MessageClass from IPM.Contact to something else, like IPM.Contact.olTrans (for card scanners). Blackberry will also change the MessageClass in some cases. As a result, our add-in is not able to synch certain contacts with Salesforce.com. To get around this, I created a small macro based on some sources I've seen online to flip the MessageClass and exposed the macro as a button within the Contact ribbon in Outlook 2010. Below is the source code to change the MessageClass:
Sub Convert2Native()
Dim objApp As Outlook.Application
Dim objNS As NameSpace
Dim objSelection As Outlook.Selection
Dim objItem As ContactItem
Dim debugMode As String
Dim VarFileName As String
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objSelection = objApp.ActiveExplorer.Selection
debugMode = "no"
'setup logging
VarFileName = "C:\OutlookConvert2NativeLog" & "_" & Year(Now) & "_" & Month(Now) & "_" & Day(Now) & "_" & Hour(Now) & Minute(Now) & Second(Now) & ".txt"
Open VarFileName For Append As #2
Print #2, "Opening logging"
Print #2, "debugMode = " & debugMode
MsgBox "Converting " & objSelection.Count
Print #2, "Converting " & objSelection.Count
If debugMode = "yes" Then
For Each objItem In objSelection
If objItem.MessageClass = "IPM.Contact" Then
Print #2, "Converted Contact " & objItem.LastName & " from MessageClass " & objItem.MessageClass
objItem.MessageClass = "IPM.Contact.olTrans"
objItem.Save
Else
Print #2, "Did not convert Contact " & objItem.LastName & " from MessageClass " & objItem.MessageClass
End If
Next
Else
For Each objItem In objSelection
If objItem.MessageClass <> "IPM.Contact" And objItem.MessageClass <> "IPM.Contact.SD.Contact" And objItem.MessageClass <> "IPM.Contact.SD.Contact.Private" Then
Print #2, "Converted Contact " & objItem.LastName & " from MessageClass " & objItem.MessageClass
objItem.MessageClass = "IPM.Contact"
objItem.Save
Else
Print #2, "Did not convert Contact " & objItem.LastName & " from MessageClass " & objItem.MessageClass
End If
Next
End If
Close #2
End Sub
-------------------
Sources (thank you!):
http://msdn.microsoft.com/en-us/library/ee814736.aspx
http://ideasmiths.wordpress.com/2007/07/17/solution-macro-program-to-change-some-fields-in-outlook-2007-contacts-in-bulk/
Sub Convert2Native()
Dim objApp As Outlook.Application
Dim objNS As NameSpace
Dim objSelection As Outlook.Selection
Dim objItem As ContactItem
Dim debugMode As String
Dim VarFileName As String
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objSelection = objApp.ActiveExplorer.Selection
debugMode = "no"
'setup logging
VarFileName = "C:\OutlookConvert2NativeLog" & "_" & Year(Now) & "_" & Month(Now) & "_" & Day(Now) & "_" & Hour(Now) & Minute(Now) & Second(Now) & ".txt"
Open VarFileName For Append As #2
Print #2, "Opening logging"
Print #2, "debugMode = " & debugMode
MsgBox "Converting " & objSelection.Count
Print #2, "Converting " & objSelection.Count
If debugMode = "yes" Then
For Each objItem In objSelection
If objItem.MessageClass = "IPM.Contact" Then
Print #2, "Converted Contact " & objItem.LastName & " from MessageClass " & objItem.MessageClass
objItem.MessageClass = "IPM.Contact.olTrans"
objItem.Save
Else
Print #2, "Did not convert Contact " & objItem.LastName & " from MessageClass " & objItem.MessageClass
End If
Next
Else
For Each objItem In objSelection
If objItem.MessageClass <> "IPM.Contact" And objItem.MessageClass <> "IPM.Contact.SD.Contact" And objItem.MessageClass <> "IPM.Contact.SD.Contact.Private" Then
Print #2, "Converted Contact " & objItem.LastName & " from MessageClass " & objItem.MessageClass
objItem.MessageClass = "IPM.Contact"
objItem.Save
Else
Print #2, "Did not convert Contact " & objItem.LastName & " from MessageClass " & objItem.MessageClass
End If
Next
End If
Close #2
End Sub
-------------------
Sources (thank you!):
http://msdn.microsoft.com/en-us/library/ee814736.aspx
http://ideasmiths.wordpress.com/2007/07/17/solution-macro-program-to-change-some-fields-in-outlook-2007-contacts-in-bulk/
Subscribe to:
Posts (Atom)
