Monday, February 13, 2012

Salesforce – Critical Update in my DE Org.

critical updates details for reference. May or may not be applicable for everyone.

 

image

image

Salesforce – System Overview–first snapshot

Good for Salesforce Administrator to see in single view

image

image

Tuesday, November 8, 2011

EXCEL – 2D to flat

Input Data:-

Product VS Score

Resolution

Sound

HD TV

2

3

LCD TV

3

2

Expected output:-

Product

Category

Score

HD TV

Resolution

2

HD TV

Sound

3

LCD TV

Resolution

3

LCD TV

Sound

2

Create Excel macro and type below code. This will generate the expected output in Sheet2.

Sub Generate_Click()

    Dim oSht1, iSht1 As Worksheet
    Dim iRowNumber As Integer
    Dim iColNumber As Integer
    Dim iEndRowNumber As Integer
    Dim iEndColNumber As Integer
    Dim iOutputRowNumber As Double
    Dim i, j As Integer
    Set oSht1 = Sheet2
    Set iSht1 = Sheet1
    iRowNumber = 2
    iColNumber = 2
    iEndRowNumber = 3
    iEndColNumber = 3
    iOutputRowNumber = 2
    oSht1.Cells(1, 1).Value = "Product"
    oSht1.Cells(1, 2).Value = "Category"
    oSht1.Cells(1, 3).Value = "Score"
    For i = iColNumber To iEndColNumber
        For j = iRowNumber To iEndRowNumber
            oSht1.Cells(iOutputRowNumber, 1).Value = iSht1.Cells(j, 1).Value
            oSht1.Cells(iOutputRowNumber, 2).Value = iSht1.Cells(1, i).Value
            oSht1.Cells(iOutputRowNumber, 3).Value = iSht1.Cells(j, i).Value
             iOutputRowNumber = iOutputRowNumber + 1
        Next j
    Next i

End Sub

Monday, November 7, 2011

Salesforce :- “INVALID_SESSION_ID: Invalid Session ID found in SessionHeader”

 

We have other system integrated with Salesforce using integration users. Recently we across error message after deploying new integration process in production instance. After looking deep into new deployed code, we found that we are using logoff in newly deployed integration.

Adding log off shouldn’t cause problem but if you go thru below then you will understand it is true.

  1. Organization wide we have one single IP exposed to outside world.
  2. Salesforce ties up the session to user id and ip address from where it is initiated. Salesforce has setting to tie up session id to source IP address. Setup > Security Control > Session Setting. We have this setting false, still salesforce ties up session to IP as organization wide we have single IP exposed.
  3. Web application side, we were logging only once and all other instances were reusing the same session id or instance.
  4. We did not faced this issue in TEST environment as there wasn’t enough load happening
  5. Were able to figure out the issues using below pictorial method.
    image 

Application Instance consist of following

  1. Apps I
    1. Login
    2. Process
  2. Apps 2 –
    1. Login
    2. Process
    3. Log off

We resolved this issue by removing logoff from newly deployed integration. Another approach was to use separate integration user which is not realistic as we will be needing to maintain multiple user and their user id, password and security token.

Monday, September 5, 2011

Siebel - Terminating/blocking user from Siebel application without changing LOGIN ID

 

We change Login ID most of time when we need to block or terminate user from Siebel application. Whereas we can achieve this by configurations as well. In Vanilla Siebel we have field called as "Employment Status", by leveraging this field and using small configuration we can have more granular reason of blocking or termination of account.

To achieve this I have exposed this field on "Employee List More Info View" view as below.

image

Secondly I have added this field into "Login User" business component along with Search specification as [Employment Status]='Active' . Details are as below

IMG2

With Employement Status as "Active", I was able to access Siebel properly whereas when change was made to other than "Active" got error message as below.

img3

Note:- Please make sure that SADMIN, other proxy account and integration accounts are set to “Active” before rolling out new change.

Friday, September 2, 2011

Salesforce – Apex DataLoader and Automated migration interface

 

Scenario :- We wanted to build the automated Employee interface which will create/update/terminate User inside Salesforce when changes are done in Organizational HRMS.

 

To build we have following options -

  • Use Apex Dataloader
  • Build Standalong Java apps and use Salesforce Webservices
  • Use of other tools like Apatar, OnDemandInformation etc.

Based on License/development cost and scalability we decided to use Apex Dataloader. If you wanted to use Apex data loader then either you can use the lastRun date to find out which records to interface or stamp status back to source data (Database table). If you decide to stamp status back to source data then dataloader does not provide the functionality to do that (atleast I am not aware :-) ). To achieve we wrote small java program which will use success file and error files generated by loader and will update the source database table.

Here is high level flow.

Salesforce Data Loader Interface Wrapper Specification

Flow:-
First run the data loader using configuration
once completed call java program with appropriate connection parameter and log file location. Java program will update the source records as success if found in success file and error if found in error file.

Enjoy :)