Oracle Analytics Cloud and Server

Welcome to the Oracle Analytics Community: Please complete your User Profile and upload your Profile Picture

OBIEE 11G JQUERY

Received Response
61
Views
10
Comments
Rank 3 - Community Apprentice

Hi all,

any one had used Jquery in OBIEE 11g.

i read an article that obiee 11g doesn't support JQuery. if there is any chance use jquery

Thanks in Advance

Welcome!

It looks like you're new here. Sign in or register to get started.

Answers

  • Rank 2 - Community Beginner

    a) Which "article"?

    b) Which "11g"?

  • You read it wrongly ...

    The exact wording I used in the blog post is:

    Keep in mind jQuery wasn’t there in OBIEE 11g, so that’s the main change required.

    OBIEE 12c has jQuery deployed and loaded in pages out of the box because it is used by OBIEE itself.

    OBIEE 11g doesn't come with an "embedded" jQuery, so you have to load it yourself before to use it if you need it. OBIEE is a web page in the end (sure a complicated one but still a web page), so you can load almost any javascript library you want.

  • Rank 2 - Community Beginner

    Ok you seem not to be able to or don't want to understand that "11g" doesn't mean a thing since it spans a lifetime of 5+ years and a multitude of versions...

    So simple answer: jquery examples exist in SampleApp 506 which runs 11.1.1.9 so it means that it is possible and all you have to do is run SA506 and see how it's done.

  • Rank 2 - Community Beginner

    @3275937

    By the way Oracle employees are supposed to have -Oracle or the likes in their user names!

  • Rank 3 - Community Apprentice

    Thanks a lot

    if u dont mind can u add below script in OBIEE 11G and see the result

    i want to know how to use jquery in obiee 11g

    when i use this script in obiee 11g its not working

    please help me how to use below script in obie 11g

    below is the image and output of below script

    it will be a great help to me

    pastedImage_0.png

    <script>

    // store found Agents objects here

    var agentsList = [];

    /*

    *

    */

    function isAgentAlreadyEnabled(path){

        var agentXml = obide.ServerRequests.retrieveIBotInfo(path, true);

        var k = obips.XMLDOM.selectSingleNode(agentXml, "//saw:ibot", saw.delivers.namespaceMap);

        var i = XUIGetElementText(obips.XMLDOM.selectSingleNode(agentXml, "IBotInfo/SchedulerRegistered")) == "1";

        return saw.delivers.isIBotScheduleEnabled(k, i);

    }

    function addLog(msg, type = 0){

        console.log('# addLog: '+msg);

        switch(type){

            case -1:

                color = '#ff0000';

                break;

            case 1:

                color = '#00ff00';

                break;

            default:

                color = '#999999';

        }

        var output = '<span style="color: '+color+'; font-style: italic;">'+msg+'</span>';

        $('#agentsEnablerLog').append(output+'<br/>');

    }

    function listAgents(){

        $.post('/analytics/saw.dll?CatalogTreeModel', {action: "search", path: "/", mask: "*", recurse: "t", sig: "coibot1", _scid: obips_scid}, function(data){

            addLog('loading list of agents...');

            var resultJson = data.substr(data.indexOf('{', data.indexOf('{')+1));

            var resultObj = jQuery.parseJSON(resultJson);

            //console.log(resultObj);

            addLog(resultObj.itemsinfos.length+' agents found (truncated='+resultObj.truncated+')');

            // make sure the <div> is empty

            $('#agentsEnablerList').html('');

            if(resultObj.itemsinfos.length == 0){

                $('#agentsEnablerList').append( 'no agent found' );

            }

            // save items on global variable

            agentsList = resultObj.itemsinfos;

            // loop over items

            $.each(resultObj.itemsinfos, function(i, e){

                //console.log(e.path);

               

                // is agent already enabled ?

                var agentEnabled = isAgentAlreadyEnabled(e.path);

                $('#agentsEnablerList').append( '<input type="checkbox" name="agentsToEnable[]" value="'+i+'"'+(agentEnabled ? ' disabled="disabled"' : '')+'/> '+e.path+(agentEnabled ? ' <i style="color:#00ff00;">(enabled)</i>':'')+'<br/>' );

            });

        });

    }

    function enableEnablingButton(){

        // if at least one checked => enable button

        if($('#agentsEnablerList input:checked').length > 0){

            $('#agentsEnablerCtrl #enableAgents').prop('disabled', false);

        } else {

            $('#agentsEnablerCtrl #enableAgents').prop('disabled', true);

        }

    }

    $( document ).ready(function() {

        // load required files (and more)

        $.post('/analytics/saw.dll?loadFunctionInTemplate', {funcMessageName: "kuiDeliversFiles", _scid: obips_scid}, function(data){

            // load a bunch of JS and CSS, they remove errors when loading the other files later

            $('head').append(data.substr(data.indexOf('<')));

            // find the path to be used to load OBI javascript files

            jqueryPath = $("script[src*='jquery']").first().attr('src');

            var loadPath = jqueryPath.substring(0, jqueryPath.split('/', 3).join('/').length);

            // load the required scripts (because few things must be overridden)

            $.when(

                $.getScript(loadPath+'/delivers/obide.ServerRequests.js'),

                $.getScript(loadPath+'/deliversShared/obids.AjaxRequest.js'),

                $.getScript(loadPath+'/delivers/deliverscommon.js')

            ).done(function(){

                /*

                 * ### override functions which can't work here because of context (not in catalog) ###

                 */

                // result handler function can't work without proper catalog UI

                if (!saw.deliverscommon) {

                    if (!saw.delivers) {

                        saw.delivers = function() {}

                    }

                }

                saw.delivers.handleSaveResult = function(b){

                    console.log('[saw.delivers.handleSaveResult]');

                    output = $('<span>').text(new XMLSerializer().serializeToString(b)).html();

                    if(output.indexOf("Success") >= 0){

                        addLog(output, 1);

                    } else {

                        addLog(output, -1);

                    }

                }

                // nothing to see here, just removing an error as it can't be called

                saw.catalogaction.IbotsActionHandler.prototype.updateDetails = function(a){

                    console.log('[saw.catalogaction.IbotsActionHandler.prototype.updateDetails]');

                }

                /*

                 * ### get list of agents ###

                 */

                 // display list of agents

                listAgents();

            }).fail(function(a1, a2, a3){

                console.log(a1);

                console.log(a2);

                console.log(a3);

                console.log('something went wrong ...');

            });

        });

       

        /*

         * ### events handlers ###

         */

        // enable button if at least one agent is selected

        $('#agentsEnablerList').on('click', ':checkbox', function(){

            // if at least one checked => enable button

            enableEnablingButton();

        });

        // enable selected agents

        $('#agentsEnablerCtrl #enableAgents').click(function(){

            addLog('Enabling agents...');

            // loop over list of selected items

            addLog($('#agentsEnablerList input:checked').length+' agents selected');

            addLog('The enabling is async, so the status can be delayed');

            var r = confirm("You are about to enable the selected Agents, are you sure?");

            if (r == true){

                $('#agentsEnablerList input:checked').each(function(i){

                    var catalogObject = agentsList[$(this).val()];

                    addLog('- '+catalogObject.path);

                    var a = saw.catalogaction;

                    var ibotHandler = new a.IbotsActionHandler();

                    ibotHandler.tItemInfo = catalogObject;

                    ibotHandler.enableIBotSchedule(ibotHandler.tItemInfo.path);

                });

                // reload list of agents

                $('#agentsEnablerList').html('loading ...');

                window.setTimeout(listAgents, 2000);

            } else {

                addLog('aborted!', -1);

            }

        });

        // check all link

        $('#agentsEnablerCtrl #checkAll').click(function(){

            $(':checkbox:enabled').prop('checked', true);

            enableEnablingButton();

        });

        // uncheck all link

        $('#agentsEnablerCtrl #uncheckAll').click(function(){

            $(':checkbox:enabled').prop('checked', false);

            enableEnablingButton();

        });

    });

    </script>

  • So now you are double posting: OBIEE 11G SCRIPT ISSUE

    3275937 wrote:i want to know how to use jquery in obiee 11g

    https://learn.jquery.com/about-jquery/how-jquery-works/

    You are just totally missing the point, nobody here is going to do your work in your place. You got the answer 4 times already.

    You apparently have no idea what jQuery is, so look on the jQuery website or one of the many "getting started" guide with jQuery and you will know how to use jQuery. You also seem to not be really familiar with javascript at all, because the point is that the library isn't included in 11g, so first thing is to maybe include it and then adapt the script as needed for it to work.

    Last point: keep in mind your browser (except if a old IE) has a developer extension with a console where you see javascript errors etc. So there you will be able to see why your page is empty.

    But YOU have to do the job, to be willing to learn, not ask others to do it for you without caring at all and not really even trying to learn it !

    PS: that actually make me regret I wrote the blog post and gave out the code freely !!

    PS2: it tooks 2 extra rows on 11g (SA506) to make it works (and it's what has been written in this thread already)

  • Rank 2 - Community Beginner

    What Gianni said plus 1'000'000!

    This is a forum where people participate. It's not a "do my job for free because I don't want to think about my problem" self-service buffet.

  • Rank 6 - Analytics Lead

    Jeeees guys.

    Calm down a bit. I agree, there are some folks that want their work done for them, they are frustrating as hell and have not discovered the power of google and some effort. Others have had a pile of crap dumped in their laps and told to 'make it work asap' and immediately reach for the forums for help without necessarily thinking the problem through first.

    With utmost respect, why even bother answering the question or then follow up to berate the OP?!? If you are going to answer it, great. If you have answered completely then leave it at that and leave the OP to figure out the rest.

  • Rank 2 - Community Beginner

    Because imprecise questions with little to no effort put into follow-ups doesn't help any other forum user who will come along looking for information.

    This article was written for a reason:   and it contains this little gem:

    It would have been easier if you had given the full use case at the beginning. This would have cost you a couple of minutes work (max. 30 min), but would have saved 24 hours in question and answers.

    Not mine. Timo wrote it.

    The article used as a basis for this whole thing is pretty clear if one takes the time to read it and just grep for "jquery" on the machine in question - or Windows search; whatever applies.

    Plus SampleApp - a prebuilt VM made by Oracle and hence more than accessible to the OP even compared to the "free for all" for us other common mortals and not insiders of the organization.

    Plus duplicate threads.

    PLUS the same question has been asked by the OP directly on Gianni's site.

    Imagine being someone actually looking for an answer to this very question and having to read through an endless thread of "getting blood out of a stone" demands for clarity, precision and pertinence. Because that is almost as confusing as not having the info at all.

    tl;dr - if there's no etiquette or effort put into any of the questions here then calling this construct a "community" is a contradiction in terms to say the least

Welcome!

It looks like you're new here. Sign in or register to get started.