Tuesday, October 13, 2015

MicroStrategy and Salesforce Integration

MicroStrategy is a platform which provides Business Intelligence service,  interactive dashboards, scorecards, highly formatted reports, ad hoc query, thresholds and alerts, and automated report distribution.

Integrating Salesforce.com and other applications with MicroStrategy, will turbocharge your operational reporting with advanced analytics and excellent visualization in MicroStrategy. In such an environment, MicroStrategy is able to mix data from Sales, product, operations with financial data and give insights which are not possible to derive from just one application.

These reports can be displayed inside Salesforce.com using a Canvas application. This enables users to view MicroStrategy reports without navigating out of Salesforce.

Some of the problems encountered in MicroStrategy in such integrations are:

1. Database is in Use.
Solution: Set the CreateDB parameter to 2.

The following are valid values for the ‘Create Database/CreateDB’ setting:
  • If set to 0 (No), the driver will check to see if a database exists and if does not find one the connection will fail.   The driver will not attempt to create the locally embedded database.
  • If set to 1 (ForceNew), the driver will delete the existing database if it exists and will create a new database for each new connection.
  • If set to 2 (NotExist), and the driver detects an existing database it will not attempt to create the database.  If the driver does not find an existing database it will create the database.
2. QueryEngine encountered error: Connect failed.

2015-10-01 20:21:41.534-05:00 [HOST:ABC485-1.abc123.com][PID:34749][THR:2837067520][Query Engine][Error][0x80042300] QueryEngine encountered error: Connect failed.


Error type: Odbc error. Odbc operation attempted: SQLDriverConnect. [HY000:-40: on SQLHANDLE] [MicroStrategy][ODBC Salesforce driver][Salesforce]General error: java.util.ServiceConfigurationError: javax.xml.ws.spi.Provider: Provider com.ddtek.sforce.externals.org.apache.cxf.jaxws22.spi.ProviderImpl could not be instantiated: java.lang.NoClassDefFo Connection String: DSN=SF;UID=abc@xyz.com;..
 This is due to JDK environment setup issue and requires a manual restart.
3. "column not found" issue
Solution: "REFRESH SCHEMA SFORCE;" before the query of the cube, so this should run every time the cube is executed.

If you need any additional details on Salesforce.com and integration, please feel free to contact ketan.benegal@thecloudfountain.com.

source: [www.thecloudfountain.com]



Creating Home Tab on Service Cloud Console

***An old post that I didn't publish****

Salesforce Service Cloud Console is an application targeted for call centers with high volume activity. In such call centers, Customer Service Representatives(CSRs) have to address customers' concerns over different channels and require information from various sources, e.g. information regarding billing, inventory, orders, products, etc.

Service Cloud Console was specifically designed to address these requirements for the CSRs. CSRs rarely have the need for home tab. However, there maybe situations where they need to view:
  • Home tab: To view calenders, dashboards, messaging components.
  • Tasks: In case CSRs need to setup tasks, e.g. service requests.
We will discuss how to add the above mentioned tabs to Navigator Tab in this blog.

Display Home tab
Please follow the steps as mentioned below:
1. Create a Web Tab by Navigating to Setup->Create->Tabs.
2. Select Full Page width
3. Set the Tab Type to URL and enter other details as shown in the screenshot below.
4. Set the Button or Link URL to /home/home.jsp?isdtp=vw
5. Set the visibility of the tab at the profiles.
6. Add the tab to the Service Cloud Console app.




Display Task list view tab
 To display Task List view tab, please follow the steps mentioned above with the Button or Link URL set to /00T?isdtp=vw

NOTE: This displays the list view without any buttons. If you would like to view the refresh button, set the value isdtp=nv


source: [www.thecloudfountain.com]

Wednesday, April 21, 2010

Integration Broker - Errors

Schema Validation Tester Error:

Fatal Error: ( line: 0 column: 0 ) An exception occurred! Type:NetAccessorException, Message:Could not open file: http://machname:portno/PSIGW/PeopleSoftServiceListeningConnector?Operation=GetSchema&xsd=KAB_IB_TST_MSG.Version_1Error: ( line: 2 column: 17 ) Unknown element 'KAB_IB_TST_MSG'Error: ( line: 3 column: 15 ) Unknown element 'FieldTypes'Error: ( line: 4 column: 32 ) Unknown element 'KAB_TEST_IB_REC'Error: ( line: 4 column: 32 ) Attribute 'class' is not declared for element 'KAB_TEST_IB_REC'Error: ( line: 5 column: 27 ) Unknown element 'OPRID'Error: ( line: 5 column: 27 ) Attribute 'type' is not declared for element 'OPRID'Error: ( line: 6 column: 33 ) Unknown element 'OPRDEFNDESC'Error: ( line: 6 column: 33 ) Attribute 'type' is not declared for element 'OPRDEFNDESC'Error: ( line: 8 column: 23 ) Unknown element 'PSCAMA'Error: ( line: 8 column: 23 ) Attribute 'class' is not declared for element 'PSCAMA'Error: ( line: 9 column: 33 ) Unknown element 'LANGUAGE_CD'Error: ( line: 9 column: 33 ) Attribute 'type' is not declared for element 'LANGUAGE_CD'Error: ( line: 10 column: 32 ) Unknown element 'AUDIT_ACTN'Error: ( line: 10 column: 32 ) Attribute 'type' is not declared for element 'AUDIT_ACTN'Error: ( line: 11 column: 38 ) Unknown element 'BASE_LANGUAGE_CD'Error: ( line: 11 column: 38 ) Attribute 'type' is not declared for element 'BASE_LANGUAGE_CD'Error: ( line: 12 column: 33 ) Unknown element 'MSG_SEQ_FLG'Error: ( line: 12 column: 33 ) Attribute 'type' is not declared for element 'MSG_SEQ_FLG'Error: ( line: 13 column: 40 ) Unknown element 'PROCESS_INSTANCE'Error: ( line: 13 column: 40 ) Attribute 'type' is not declared for element 'PROCESS_INSTANCE'Error: ( line: 14 column: 37 ) Unknown element 'PUBLISH_RULE_ID'Error: ( line: 14 column: 37 ) Attribute 'type' is not declared for element 'PUBLISH_RULE_ID'Error: ( line: 15 column: 33 ) Unknown element 'MSGNODENAME'Error: ( line: 15 column: 33 ) Attribute 'type' is not declared for element 'MSGNODENAME'Error: ( line: 18 column: 12 ) Unknown element 'MsgData'Error: ( line: 19 column: 18 ) Unknown element 'Transaction'Error: ( line: 20 column: 34 ) Unknown element 'KAB_TEST_IB_REC'Error: ( line: 20 column: 34 ) Attribute 'class' is not declared for element 'KAB_TEST_IB_REC'Error: ( line: 21 column: 30 ) Unknown element 'OPRID'Error: ( line: 21 column: 30 ) Attribute 'IsChanged' is not declared for element 'OPRID'Error: ( line: 22 column: 36 ) Unknown element 'OPRDEFNDESC'Error: ( line: 22 column: 36 ) Attribute 'IsChanged' is not declared for element 'OPRDEFNDESC'Error: ( line: 24 column: 25 ) Unknown element 'PSCAMA'Error: ( line: 24 column: 25 ) Attribute 'class' is not declared for element 'PSCAMA'Error: ( line: 25 column: 22 ) Unknown element 'LANGUAGE_CD'Error: ( line: 26 column: 21 ) Unknown element 'AUDIT_ACTN'Error: ( line: 27 column: 27 ) Unknown element 'BASE_LANGUAGE_CD'Error: ( line: 28 column: 23 ) Unknown element 'MSG_SEQ_FLG'Error: ( line: 29 column: 27 ) Unknown element 'PROCESS_INSTANCE'Error: ( line: 30 column: 27 ) Unknown element 'PUBLISH_RULE_ID'Error: ( line: 31 column: 23 ) Unknown element 'MSGNODENAME'

1) Copy the url in to the address bar of the browser:
http://machine:portno/PSIGW/PeopleSoftServiceListeningConnector?Operation=GetSchema&xsd=KAB_IB_TST_MSG.Version_1

2) Got the following error:


-
-
-
SOAP-ENV:Server
null
-
-
Integration Broker Response
20
505
-
-








3) Solution:
Check if GETROUTINGS Service Operation is Active.

GETROUTINGS Service Operation was not Active.

4) Copy the url in to the address bar of the browser:
http://machname:portno/PSIGW/PeopleSoftServiceListeningConnector?Operation=GetSchema&xsd=KAB_IB_TST_MSG.Version_1

Result: Should be able to view the XSD.

-----------------------------------------------------------------
Deadlock Exception
Msg: Exception message: ORA-00060: deadlock detected while waiting for resource
Solution:
Resubmit all the failed messages and clear the integration broker. The failed messages should be resubmitted one at a time to resolve the deadlock issue.

Wednesday, April 7, 2010

PeopleSoft Compare Reports in HTML, XML and Excel

Compare Reports in HTML and Excel

1. Run ‘regedit.exe’.
2. Navigate to HKEY_CURRENT_USER\Software\PeopleSoft\PeopleTools\Release8.40\PSIDE
3. Edit UpgHTMLOutput/UpgXMLOutput and change the value data from 0 to 1 to view it in HTML/XML.
4. Create the new DWORD entry UpgTextOutput and enter the DWORD value as 1 to view it in Excel.

Tuesday, October 13, 2009

Creating Custom Search for Custom Component

To create a custom search for a customized component, the steps are:

1) Create a search view for the main component.

2) Create a search page and add a page for the new search component. The best way is to make a copy of an already existing search page of delivered component e.g. customer. The reason is, there are work records which are required on the search page.

3) Create the search component and add those pages.

4) Create your own application class in the RB_FILTER application package and your class should extend FilterForm. Some of the basic methods needed in the simplest form are linkTo and addNew in your class apart from the constructor.

5) The grid which will display the search results on the search page should have the following item:

a) A push button/hyperlink e.g. RECORD.FUNCLIB_BO_CDM FIELD.GSRCH_LINK_PB.

b) Peoplecode on the field change event of the field for the pushbutton/hyperlink, which should create a component level object of your class and call the linkTo method in which you will pass the current row.

c) On the search button of the search page (RB_FLT_FORM_WRK.PB_FILTER2) do the same as above.

6) For adding a new record, on the add page, write code for fieldchange event of the Add button (FUNCLIB_BO_CDM.GSRCH_ADD_PB). Call addNew method of the component level object of your class and pass the current row (which contains default values e.g. 'NEXT' for key fields).

7) To transfer from the main component to the search component seamlessly, create an entry in the Component Navigation component. Create a local object of RB_CDM:RB_CDM_UTILITIES:ConfiguredTransfer class in searchInit event of the search record of your main component using the transactionId of the row created in the Component Navigation. Call the doTransfer method of the object. The effect is: When the user clicks Return to Search on the main component, it will take him/her to the search component search page.

8) Create a row in the Configurable Search setup in Setup CRM-> Common Definitions.


P.S. The search record for the search component should be Installation record.



Tuesday, August 18, 2009

"If" by Rudyard Kipling.

If you can keep your head when all about you
Are losing theirs and blaming it on you,
If you can trust yourself when all men doubt you,
But make allowance for their doubting too;
If you can wait and not be tired by waiting,
Or being lied about, don't deal in lies,
Or being hated, don't give way to hating,
And yet don't look too good, nor talk too wise:

If you can dream - and not make dreams your master,
If you can think - and not make thoughts your aim;
If you can meet with Triumph and Disaster
And treat those two impostors just the same;
If you can bear to hear the truth you've spoken
Twisted by knaves to make a trap for fools,
Or watch the things you gave your life to, broken,
And stoop and build 'em up with worn-out tools:

If you can make one heap of all your winnings
And risk it all on one turn of pitch-and-toss,
And lose, and start again at your beginnings
And never breath a word about your loss;
If you can force your heart and nerve and sinew
To serve your turn long after they are gone,
And so hold on when there is nothing in you
Except the Will which says to them: "Hold on!"

If you can talk with crowds and keep your virtue,
Or walk with kings - nor lose the common touch,
If neither foes nor loving friends can hurt you,
If all men count with you, but none too much;
If you can fill the unforgiving minute
With sixty seconds' worth of distance run,
Yours is the Earth and everything that's in it,
And - which is more - you'll be a Man, my son!

Rudyard Kipling (1865-1936)

-- My fav poem. I studied it in school. :)

Thursday, March 5, 2009

Hibernate Notes - 1

Random notes on Hibernate:

Some important objects of Hibernate:
1) SessionFactory: Threadsafe/immutable cache of compiled mappings to a single database. For each database there is one SessionFactory object. It's a factory of sessions and client of ConnectionProvider. Holds optional secondary-level cache of objects.

2) Session: Single threaded, short lived object. Factory of Transactions. Wraps up JDBC Connection. Holds mandatory first-level cache of objects.

3) Transaction: Single threaded, short lived object. Represents atomic units of work. A session might span multiple Transactions.


State of Instance objects:
1) Persistent: Object is associated with a persistent context. It has a persistence identity(primary key). Hibernate guarantees that the persistent identity is equivalent to the java identity.

2) Detached: Object was once associated with persistence context, however the context is closed. Hibernate makes no guarantee about the relationship between the persistent context and java context.
3) Transient: Object is not and never has been associated with persistence context. Has no persistent identity(primary key value).