Search This Blog

Sunday, October 23, 2022

Fetching and Parsing Data from Other Online Source To Oracle Database Using Web service in Oracle Apex

1. Create a table using the below code.

CREATE TABLE  "EMP_INFO" 
   ( "SERIAL" NUMBER, 
"GROUP_NAME" VARCHAR2(100), 
"EMP_NAME" VARCHAR2(100), 
"DESIGNATION" VARCHAR2(100), 
"MOBILE_NUMBER" VARCHAR2(20), 
"EMAIL_ADD" VARCHAR2(10)
)

2. Create a Page then Create a Region With Classic Report type. 

select * from EMP_INFO

3. Create a button like (Pull Data) to execute the process.

4. Create a Process and use the below code  

begin
insert into EMP_INFO
(SERIAL,GROUP_NAME,EMP_NAME,DESIGNATION,MOBILE_NUMBER,EMAIL_AD)select col001, col002, col003 , col004, col005, col006
from table
( apex_data_parser.parse
(  p_content=> apex_web_service.make_rest_request_b('https://raw.githubusercontent.com/Qaiums/Fatch-Data-From-Cloud-In-Oracle-Apex/main/emp_info.csv', 'GET')
, p_file_name=> 'emp_info.csv', p_skip_rows=> 1 )
);
end ;

5. Assign the button to execute the process. 


You can also Fetch and Parse from File Browser Item using APEX_DATA_PARSER. 

That's It...

Tuesday, October 18, 2022

API Calling From Oracle Apex Using JavaScript

1. Create a blank page then create a region.

2. Create two items (Like P46_URL and P46_RESPONSE) , One for inputting web service URL and another one is for getting response. 

3. Copy-pest the below JavaScript function into page propertice> Function and Global Variable Declaration 

function CALL_TO_WEBSERVICE()
{
 var urlvariable;
 var ItemJSON;
 var v_url = apex.item("P46_URL").getValue();
 URL = v_url ;  
 var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = callbackFunction(xmlhttp);
    xmlhttp.open("GET", URL, false);
    xmlhttp.onreadystatechange = callbackFunction(xmlhttp);
    xmlhttp.send(ItemJSON);
$x("P46_RESPONSE").value = xmlhttp.responseText;

}

function callbackFunction(xmlhttp) 

{

 // alert(xmlhttp.responseXML);

}

4. Create a button and create a Dynamic Action on click event the button with Execute JavaScript Action. just call the function below. 

CALL_TO_WEBSERVICE();

5. That's All. Now just put the Web Service URL into the URL item and click on the button. 

Wednesday, October 12, 2022

Remove (Leave site? Changes you made may not be saved. Prevent this page from creating additional dialogs.) Warning Dialogs from Oracle Apex

In Oracle Apex whenever we move one page to another page then we may face this dialog warning. Sometimes it's good but sometimes users feel bored. 

So here we see how to remove this warning dialog?

Leave site? 

Changes you made may not be saved.

𐄂 Prevent this page from creating additional dialogs.

Solution:

Goto page properties> Navigation Menu> Warn on Unsaved Changes > Disable it.

That's it. 



Tuesday, October 11, 2022

Real Time Notification in Oracle Apex Using Ajax Callback Process.

Run time notification in oracle apex. Here it shows only one page. But you can do it globally for getting notifications from any page. 

1. Create a Table For Notification

 CREATE TABLE "NOTIFICATION_TABLE"  

 ( "PID" NUMBER, 

 "MESSAGE" VARCHAR2(30),

 "SEEN_TIME" TIMESTAMP (6), 

 "SEEN_TYPE" VARCHAR2(1)

 )

2. Put the function into the Notification page>> Function and Global Variable Declaration

(function loop(i) {

   setTimeout(function() { 

       apex.server.process ( 

          'AJAX_NOTIFICATION_CALL',

          {}, // params

          {

              async     : true,

              dataType  : 'json',

              success   : function(data) {

                 if (data.MESSAGE) {

                     if (data.SEEN_TYPE == 'N') { 

                      apex.message.showPageSuccess(data.MESSAGE);

                     }

                 }

             }

          }

       ); 

       loop(i);

   }, 4000); // 4sec forever

})();


3. Create an Ajax Call back process and put the below code into this process. Finally, Remane the process name as AJAX_NOTIFICATION_CALL.

BEGIN

       APEX_JSON.OPEN_OBJECT();

       FOR c IN (

           SELECT * FROM NOTIFICATION_TABLE WHERE SEEN_TIME IS NULL ORDER BY PID 

           FETCH FIRST 1 ROWS ONLY

       ) LOOP

           APEX_JSON.WRITE('MESSAGE', c.MESSAGE);

           APEX_JSON.WRITE('SEEN_TYPE', c.SEEN_TYPE);

           UPDATE NOTIFICATION_TABLE

           SET SEEN_TIME = LOCALTIMESTAMP,

                SEEN_TYPE = 'Y'

           WHERE PID = c.PID; 

       END LOOP;

       APEX_JSON.CLOSE_OBJECT();

    END;

4. Finally input the value into the NOTIFICATION_TABLE  table from anywhere and check the Notification page without loading. 

Thursday, September 22, 2022

Check any one Checkbox In Oracle Apex

Sometimes we have some requirements like the user can not check more than one option. So we can do the solution for this purpose using javascript.


1. Create a report as usual then example below code.

select EMPLOYEEID,

       EMPLOYEENAME,

       EMAIL,

       MOBILE,

       apex_item.checkbox(1,'#ROWNUM#') checkbox  -- code for creating check box in classic report 

  from EMPLOYEES ;


2. Use the blow javascript in  Function and Global Variable Declaration.

$('input[name="f01"]').on('change', function(){

    $('input[name="f01"]').not(this).prop('checked',false);

});

//Here f01 is the name of the check box column.  



Tuesday, September 20, 2022

XML Visualization And Download the XML into a txt File In Oracle Apex

 


1. Create a page and a region with 
PL/SQL Dynamic Content type. Put the below code into PL/SQL Code 

DECLARE

v_text     CLOB;

BEGIN

HTP.p ('<span id="TEST_ID">');      

      FOR i

         IN (

     select to_char(XML)   "Information" 

FROM EMPLOYEES where EMPLOYEEID=1243 )

 LOOP

         v_text := i."Information";

         HTP.p ('<pre>' || replace(v_text,'&amp;','&') || '</pre>');

      END LOOP;

      HTP.p ('</span>');

END;


2. Put the like HTML link code above the code. 

HTP.p ('<a download="Information.txt" id="downloadlink"  ><b>Download</b><br><br><br<br></a> ');  

3.  Finally copy-pest the below JavaScript into page properties>  Function and Global Variable Declaration  Option. Make sure TEST_ID and downloadlink these two id is in the proper place.

(function () {

var textFile = null,

  makeTextFile = function (text) {

    var data = new Blob([text], {type: 'text/plain'});

    // If we are replacing a previously generated file we need to  

    // manually revoke the object URL to avoid memory leaks.

    if (textFile !== null) {

      window.URL.revokeObjectURL(textFile);

    }

    textFile = window.URL.createObjectURL(data);

    return textFile;

  };

  var create = document.getElementById('create'),

    textbox = document.getElementById('TEST_ID'); 

    var link = document.getElementById('downloadlink');

    link.href = makeTextFile(textbox.innerHTML.replace("&amp;", "&").trim());

    link.style.display = 'block';

})();

Language Change Using Google Translator

1. Create a global region on 0 page with a static content type.

2. Copy-pest the below code then hide or customize UI yourself.

<div id="google_translate_element"></div>

<script type="text/javascript">

function googleTranslateElementInit() { new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element'); }

</script>

<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit">

</script>

</body>

</html>

Tuesday, September 13, 2022

DBMS_REDACT Advanced Security Feature

How to leverage the data redaction from the Advanced Security feature in order to protect your sensitive data in your application even before it leaves your ATP

You have to execute the below code using the Admin user.

BEGIN

  DBMS_REDACT.ADD_POLICY(

  object_schema          => 'redact', -- (Schema Name)

  object_name            => 'credit_card', -- (Table Name)

  column_name            => 'card_val', --(Column Name)

  policy_name            => 'redact_REG_EXP',

   function_type       => DBMS_REDACT.PARTIAL,

   function_parameters => 'VVVVFVVVVFVVVVFVVVV,VVVV-VVVV-VVVV-VVVV,*,1,12',  -- (Column Value Expression)

   expression          => '1=1',

   policy_description  => 'Partially redacts our credit card numbers', -- Description/Comments

   column_description  => 'card_val contains credit card numbers in VARCHAR2 format' -- Description/Comments

);

END; -- More Details

 

Friday, September 9, 2022

Interactive Report Upper Scroll Bar

1. Make an ID in the region Static ID 


2. Page CSS Inline 


#ID .t-fht-thead{

  overflow: auto !important;

}

Create a Form Using Python for Save Data into Excel like a Database

#Download Pyhton from here https://www.python.org/downloads/  #Download Python: #Click the “Download Python 3.x.x” button (the latest versio...