Skip to Content
0

SSO between Enterprise Portal and EPM Add-In in the Firefox browser.

May 11, 2017 at 08:54 AM

75

avatar image

Hello!

I am trying to implement Single Sign-On between our Enterprise Portal and the EPM Add-In, so I followed the instructions in the following documents:

https://archive.sap.com/documents/docs/DOC-20003

https://www.sap.com/documents/2015/08/dc14da49-557c-0010-82c7-eda71af511fa.html#

I also downloaded the WAR file (PCNW10_SS_WP.war) from the second document and it worked like a charm. The only problem is that it only works on Internet Explorer!

I unpacked the WAR file so I could read the source code included in it and noticed that on the EPM_AddIn.js file, on the LaunchOffice function, there is this getActivexObjectRef(), which explains why it won't work on browsers other than the IE.

Now that I have the EPM extension installed on Firefox, my question is what do I need to do to make it work on it?

10 |10000 characters needed characters left characters exceeded

I found a solution myself. Hacking through SAP's javascript files, I found that all I had to do was change a function and add another on the EPM_AddIn.js file, as follows:


/*
 * This function was changed.
 */
function getActivexObjectRef(sObjectId) {
    return getOfficePlugin(sObjectId);
}

/*
 * This function was added to the file.
 * Author: Francivan Bezerra
 */
function getOfficePlugin(sObjectId) {
    var supportActiveX = (Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(window, 'ActiveXObject')) || ('ActiveXObject' in window);
    var plugin = null;

    if (supportActiveX) {
        plugin = new ActiveXObject(sObjectId)
    } else {
        var hasEPMPlugin = false;

        for (var i = 0; i < navigator.plugins.length; i++) {
            if (navigator.plugins[i].name == 'NP EPM Plugin' || navigator.plugins[i].name == 'SAP BusinessObjects EPM Office Client') {
                hasEPMPlugin = true;
                break;
            }
        }

        if (hasEPMPlugin) {
            plugin = document.getElementById('NPEPMOfficePlugin');
            if (!plugin) {
                var obj = document.createElement('object');
                obj.id = 'NPEPMOfficePlugin';
                obj.type = 'application/x-vnd-sap-epm';
                document.body.appendChild(obj);
                plugin = document.getElementById('NPEPMOfficePlugin')
            }
        }
    }
    return plugin
}

0
* Please Login or Register to Answer, Follow or Comment.

0 Answers