Skip to Content
avatar image
Former Member

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

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?

Add comment
10|10000 characters needed characters exceeded

  • Former Member

    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
    }
    
    
  • Get RSS Feed

0 Answers