Call javascript application process
I use 5 APEX. I have a page that I use a button to call js and dynamic action.
I created the button on my page with action "Defined by the dynamic Action" and static id "ajax".
I added this js on my page 'function and declaration of global variables ' section:
$('_#ajax').click (function () {}
var ajaxRequest = new htmldb_Get (null, & APP_ID., 'APPLICATION_PROCESS is getId', 0);
var ajaxResult = ajaxRequest.get ();
Alert (ajaxResult);
$.ajax({)
url: " http://10.25.7.84/WS/selectionService/currentSelection/student ",
type: 'POST',
data type: 'json ',.
contentType: "application/json",
data: ' {'mode': 'set', 'ID': "[" + ajaxResult + "]","page": 1, "pageSize": 20 "}'
});
Alert (' we need to find a better message - value current selection complete ');
});
I have created a process called 'getid ':
DECLARE
p_app_id NUMBER: = 100;
p_page_id NUMBER: = 13;
BEGIN
...
END;
2 questions:
(1) I want this application process to be reusable for multiple pages/applications, so I need to replace the hard-coded "p_app_id", "p_page_id" with something I can put on each page. What is the best way to do it? Elements of the application? How and where should I set up on the page?
(2) in my js, I don't want to hard-code the IP address in the URL. url: "http://10.25.7.84/ws/selectionservice/currentselection/student". "" Y at - it something that I can use so that it uses the IP that APEX was running on?
Hi bobmagan,
bobmagan wrote:
I tried, but it doesn't seem to work. The application process worked when I had coded the 2 variables. Don't know if its something in the code, that's why I've included pieces that use 'p_app_id' and 'p_page_id '.
You can access the app ID and the ID of the Page in javascript and send it to your AJAX process as follows:
- JS code:
$('#ajax').click(function(){ var ajaxRequest = new htmldb_Get(null,&APP_ID.,'APPLICATION_PROCESS=getId',0); ajaxRequest.addParam('x01',$x('pFlowId').value); ajaxRequest.addParam('x02',$x('pFlowStepId').value); var ajaxResult = ajaxRequest.get(); //alert(ajaxResult); $.ajax({ url: "http://10.25.7.84/ws/selectionservice/currentselection/student", type: "POST", dataType: "json", contentType: "application/json", data: '{"mode":"set","ids":"[' + ajaxResult + ']","page":1,"pageSize":20}' }); //alert('We need to find a better message - Set Current Selection Complete'); });
- AJAX PL/SQL process:
DECLARE p_app_id NUMBER := APEX_APPLICATION.G_X01; p_page_id NUMBER := APEX_APPLICATION.G_X02; BEGIN ... END;
Kind regards
Kiran
Tags: Database
Similar Questions
-
Pass the parameter to the javascript application process
I'm trying to pass a parameter to an application process from javascript and don't know how to do this. What I want to accomplish is to create checkboxes to delete several records at once. Before these records can be deleted, I need to make sure that the resource_type_id is not used. To do this, I call a javascript function with an onchange event that calls an application process to perform a database search. I have included the code to create the boxes and the JavaScript below. I am new to APEX, so there may be a way easier and better to do. Any help or suggestion about a better way to proceed would be appreciated.
Thank you!
Creation of boxes *.
SELECT APEX_ITEM. CHECKBOX (20, RESOURCE_TYPE_ID, 'onchange = "CheckUsed (this.value)" '; ':') "Delete", RESOURCE_TYPE, APEX_ITEM.text(10,RESOURCE_TYPE_ID) RESOURCE_TYPE_ID
OF resource_types
ORDER BY RESOURCE_TYPE
< script language = "JavaScript1.1" type = "text/javascript" >
function CheckUsed (id)
{
get var = new htmldb_Get (null, $x('pFlowId').value, 'APPLICATION_PROCESS is ResourcesResourceTypeExists', 0);
Alert (Get.get ());
}NP, help!
Andy
-
Application process JavaScript
Hello
I want to run a JavaScript application process to update a table.
JavaScript:
function update_seq() {}
get var = new htmldb_Get (null,
& APP_ID.,.
'APPLICATION_PROCESS is update_rep_seq',
(0);
gReturn = get.get ();
get = null;
}
At the request of PL/SQL
BEGIN
INSERT INTO jmv_temp VALUES (SYSDATE, "in_process");
COMMIT;
EXCEPTION WHEN OTHERS THEN
HTP.p (' error: ' |) SQLERRM);
END;
If I run the process from a URL, it inserts my record.
.../f?p=500:4:465882208613569:APPLICATION_PROCESS=update_rep_seq
If I call the JavaScript from an element to the file didn't get inserted. Finally, I wish to pass parameters to do an update on a table.
No idea why the JavaScript call does not work?
Thank you
MelvinHello:
Try if change the last parameter in the 'htmldb-get' call from 0 to 4 makes a difference
CITY
-
The call for a process of application using JS by a button
Hello
I need to create a button that deletes the entire table All_References lines.
I have created a new process of shared components "Delete_All_References" call, then set it to run on demand.
PL/SQL block:
Begin
Delete from All_References;
End;
/
In the HTML header of the page on which lies the button 'Remove all references' or P13_DeleteAllReferences, I entered in the following:
< script language "JavaScript" type = "text/javascript" >
function Delete_All_References()
< /script >
I have then entered the settings button, set the action to "defined by dinamic action", then added onchang = "javascript:Delete_All_References();" "in HTML table cell attributes.
According to most of the tutorials when I click the button remove all the button of refereneces, my table should now get clear but it doesn't.
Can you guys please help?
Thank you and best regards,
DiezThe onchange event will work fine. Change the button back to a normal button instead of linking to a dynamic Action for now.
The only other thing I see which can cause a problem is your call to the method itself.
OnChange = "JavaScript:Delete_All_References();" »
Need to replace...
OnChange = "JavaScript:delete_all_references();" »
The called javascript method is case-sensitive.
Let me know if it suits it.
Malay Keith
www.blackhawkenterprise.com -
Problem with htmldb_Get call using an application process
Hello
I wonder if it might be possible to get several values with the gReturn = get.get (); When the call of a query application on process.
I need to put in place two elements of Application when the user selects a value in a list of selection.
That's what I call the process
var ID = document.getElementById('P50_STUDENT_ID').value;
get var = new htmldb_Get (null, & APP_ID., 'APPLICATION_PROCESS is autoAssign', 0);
Get.Add ('P50_STUDENT_ID', ID);
gReturn = get.get ();
-Development of application
$x('P20_FIRST_NAME').value = gReturn;
My application process looks like this:
I do the whole concatenation because I do not know if it; s a way to send each value separately when you call the get function.
v_Name varchar2 (200);
Start
Select student_first_name. » -'|| student_mi | » -'|| student_last_name | » -'|| student_user
in v_name
of stu_info
where student_id =: P20_STUDENT_ID;
HTP. PRN (v_Name);
exception, then that other then htp.prn ("an error occurred while retrieving last_name ' |") SQLERRM);
end;Watch Denes Kubicek Demo app:
http://Apex.Oracle.com/pls/OTN/f?p=31517:106:2350758884850191:noIt does exactly what you want.
HTH
Thomas -
do called ondemand dynamic process
Hi guys,.
I write a js code to call and run several processes application ondemand level as below - any process on request can be passed when the js code is triggered by button
#1.
function updateEmp (p_proc, p_empno) {}
var v_value = document.getElementById (p_empno) .value;
var v_proc = 'APPLICATION_PROCESS =' + p_proc;
asynchronous HTTP AJAX request using jQuery
$.ajax({)
type: 'POST',
URL: "wwv_flow.show",
data: {}
p_flow_id: $('#pFlowId').val (),.
p_flow_step_id: $('#pFlowStepId').val (),.
p_instance: $('#pInstance').val (),.
x 01: v_value,.
p_request: ' "' + v_proc + '"' / /'"APPLICATION_PROCESS =" + p_proc + ' "' designate the application process"
},
beforeSend:
function() {}
do something
},
success: / / to be called if the request is successful
function() {}
do something here
Alert (' test this value = "+ v_value);
}
});
}
#2. the call button (url redirect) is
JavaScript:updateEmp('OnDemandx',_'P3_EMPLOYEEID');
but when I hardcode the process name directly as below, it works.
, p_request: ' "APPLICATION_PROCESS = OnDemandx"
so, what could be the problem here?
Apex 5.x
Kind regards
Gor_Mahia wrote:
I write a js code to call and run several processes application ondemand level as below - any process on request can be passed when the js code is triggered by button
What exactly is the point of this? The result of each process on request will probably be different, so as well as use the "dynamic" process, the function must also manage the value returned by the callback dynamically, which it does not currently appear to support.
Always advanced postal code using the functionality of the syntax highlighted in the editor.
function updateEmp(p_proc, p_empno) { var v_value = document.getElementById(p_empno).value; var v_proc = 'APPLICATION_PROCESS=' + p_proc; // perform an asynchronous HTTP AJAX request using jQuery $.ajax({ type: "POST", url: "wwv_flow.show", data: { p_flow_id: $('#pFlowId').val(), p_flow_step_id: $('#pFlowStepId').val(), p_instance: $('#pInstance').val(), x01: v_value, p_request: '"' + v_proc + '"' //'"APPLICATION_PROCESS=' + p_proc + '"' refer to the application process }, beforeSend: function() { // do something }, success: // to be called if the request succeeds function() { // do something here alert('tested this value = ' + v_value ); } }); }
but when I hardcode the process name directly as below, it works.
, p_request: ' "APPLICATION_PROCESS = OnDemandx"
so, what could be the problem here?
Line 15: v_proc a string value is not a literal and so should not be enclosed in quotes:
function updateEmp(p_proc, p_empno) { var v_value = document.getElementById(p_empno).value; var v_proc = 'APPLICATION_PROCESS=' + p_proc; // perform an asynchronous HTTP AJAX request using jQuery $.ajax({ type: "POST", url: "wwv_flow.show", data: { p_flow_id: $('#pFlowId').val(), p_flow_step_id: $('#pFlowStepId').val(), p_instance: $('#pInstance').val(), x01: v_value, p_request: v_proc }, beforeSend: function() { // do something }, success: // to be called if the request succeeds function() { // do something here alert('tested this value = ' + v_value ); } }); }
Using the
apex.server.process
API would be clearer and involve a lot less typing. -
To access the settings of ajax in the application process
Hello
I have an ajax call, submitting a parameter called cBoxKey.
var get = new htmldb_Get(null,$v('pFlowId').value,'APPLICATION_PROCESS=TrackRows',0); get.add('cBoxKey','NOTREQUIRED'); get.get();
In the application process I can access the parameter 'cBoxKey' like below;
declare l_checkBoxKey varchar2(4000); begin -- -- Get the value of the global which will be set in JavaScript -- l_checkBoxKey := wwv_flow.g_cBoxKey;
However, this does not seem to work because when I replace
l_checkBoxKey := wwv_flow.g_cBoxKey;
with
l_checkBoxKey := 'NOTREQUIRED';
The application process is called and produces results (through the ajax call).
In my view, that the question is how access the "cBoxKey" parameter in the application process.
Any ideas on what could be wrong.
Thank you.
Hello
I check any specification of package APEX version wwv_flow, there is no variable of g_cBoxKey.
If you have idea there?
Change your JavaScript for
var get = new htmldb_Get(null,$v('pFlowId').value,'APPLICATION_PROCESS=TrackRows',0); get.addParam('x01','NOTREQUIRED'); get.get();
And then access process on demand as
l_checkBoxKey := APEX_APPLICATION.g_x01;
Kind regards
Jari -
Sending page apex to the application process (JSON) values
Hi all
A page 5 apex has a value in a hidden item, P5_CLASS
In the apex 5 page, I wrote a JavaScript to call for a process of application (PL/SQL) to retrieve the values of a table on Page 5.
var ajaxRequest = new htmldb_Get (null, & APP_ID., 'APPLICATION_PROCESS is Get_Class_Data', 0);
and I use the JSON object to display the rows in the table.
-----------
Problem
-----------
It works pretty well. But I need to send the value of the hidden element P5_CLASS to Get_Class_Data so that I can ask P5_CLASS-basedapplication process.
Help, please.Shiva says:
Thank you Paul,.So I can use
var ajaxRequest = new htmldb_Get (null, & APP_ID, 'APPLICATION_PROCESS = GET_CLASS_DATA', 0);
ajaxRequest.add ('F15_GLOBALVAR', $v ("#P5_CLASS")) to send the value to the application process?(F15_GLOBALVAR is an application-level element, I created in the shared components)
And to use this application in my sql in GET_CLASS_DATA, I can use sql... where class =: F15_GLOBALVAR?
Yes.
(Please zip code wrapped in \
...\
Tags to preserve the special characters and formatting.)
-
in IE progress bar problem with on call for application
I have several on the enforcement of the application process that I have called from javascript. The application process call pl/sql procedures in turn. Some of the procedures can take up to 10 seconds to complete, and while they are running, the screen just to freeze so that the user does not know that they are actually running. So, I would add some kind of a progression or Hourglass bar or an indication that things are moving.
So I found the instructions of . This works fine in Firefox but not in Internet Explorer.
My footer text:
< Style > #AjaxLoading {padding: 5px; do-size: 18px; width: 200px; text-align: center; left: 50%; top: 20%; position: absolute; border: 2px solid #666; background-color: #FFF ;}}
< / style >
< div id = "AjaxLoading" style = "" display: none; ">..." Treatment...
< img src = "" #IMAGE_PREFIX #processing3.gif "id ="wait"/ >"
< / div >
My javascript:
function create_invoice (pMilestoneNumber) {}
Okay var = ("are confirm you sure you want to charge this invoice?");
get var = new htmldb_Get (null, $v ('pFlowId'), 'APPLICATION_PROCESS is P110_CREATE_INVOICE', $v ('pFlowStepId'));
If (! OK)
return;
html_ShowElement ('AjaxLoading');
get.addParam('x01',pMilestoneNumber);
gReturn = get.get ();
Alert (gReturn);
get = null;
doSubmit();
}
In Firefox, the progress bar is displayed immediately after the user clicks ok to the confirmation request. In Internet Explorer, it does not appear until the application process of return with the return message.
Any help would be greatly appreciated.Hello
OK, it wasn't - it is just because there was a bug in my process it seemed that it worked. Sorry end that.
So I re-tested, and the same problem that you experience will occur if you use Chrome. I think the best way is to use the technique suggested in the original thread that you connected. I so like this:
function AjaxTest(){ if(confirm("Are you sure you want to bill this Invoice?")){ html_ShowElement('AjaxLoading'); var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=IE_TEST',$v('pFlowStepId')); gReturn = get.GetAsync(g_AsyncReturn); } } function g_AsyncReturn(){ if(p.readyState == 4){ alert(p.responseText); }else{ return false; } }
That seems to work for me.
In addition, you will notice in the example page, it shows the AjaxLoading element when loan State == 1, but in my experience, it doesn't work well not with chrome, so who's right for which I left out of the call back and just show before the process begins.
Van
Trent -
Call for a process of page by clicking a link
I have a report of the Apex with several lines and a column of link in. I would like to be able to call a page process to work on the line with the clicked link... I also need a couple of settings somehow to the process page that he calls a procedure that requires the parameters to operate correctly.
So-
When I click on a link on a line... maybe a couple of hidden objects page get ready.
The page is then submitted and my process calls the procedure by using the values of the elements defined above as its parameters.
Control is subject to the original page.
So, basically, I'm trying to allow a user to perform repetitive actions on each line.
My thought was to use a URL in the link and perhaps Javascript... or I am barking the wrong tree and is there a better way rather than a link?
Thoughts?
See you soon
KenYou have the right idea. JavaScript is the way to go. Assuming that the values that are passed are part of this line of data, you can build the call to process JavaScript.
Create two hidden objects on your page, make sure that they are not protected.
say P1_CITY and P1_STATESay your city query included and the State, define a column in the report as a link of the URL target with the following url
JavaScript:MyFunction('#City#',_'#State#');
Then set a javascript function in the HTML header section page
function myFunc (City, pState) {}
$x_value ('P1_CITY', City);
$x_value ('P1_STATE', pState);
doSubmit ('RUNPROC');
}Then a process on the page did you want and which is conditional on the APPLICATION = "RUNPROC."
-
The clarification of application process
Hello
I am faced with a simple application process in the apex 4.2 version
I have a page - which has a javascript function:
clearMessage (ITAC) function
{
get var = new htmldb_Get (null, & APP_ID., 'APPLICATION_PROCESS is assignment_update', & APP_PAGE_ID.);
get.addParam = ("x 01', CITA);
var output = get.get ();
obj = jQuery.parseJSON (output);
Apex. Submit({Request:'submit',showWait:true});)
}
With an application on request process:
declare
l_value varchar2 (200): = wwv_flow.g_x01;
Start
app_public.assignment_update (l_value,
: APP_ID,.
: APP_PAGE_ID,.
(: APP_USER);
end;
The problem is when the procedure works - he goes l_value with a null value.
Why pointers that will help a lot!
Thank you very much
JAS
Hello
Just for info. Do not use undocumented htmldb_Get JavaScript function.
You must use apex.server.process.
Kind regards
Jari
-
4.2 DOC BUG: all about the application process
"There is an error in Oracle Application Express Application Builder User Guide version 4.2 §8.8.1 " "on the implementation of the application process":
A process On Demand is a special type of procedure of demand that has a Point of On Demand process and executes when it is called from a process On demand page level or a browser AJAX call. On-demand processes are useful when you have logic of PL/SQL that you want to run different execution points on several pages.
At the request of the process generally must be created on a page and not at the level of the application. On request, process created at the application level are created with an initial authorization scheme of must not be Public user. This prohibits the process invoked with users in authenticated sessions.
As it is perfectly possible (and desirable) at the request of the application process to be invoked, [that] by authenticated users, this should probably read:
A process On Demand is a special type of procedure of demand that has a Point of On Demand process and executes when it is called from a process On demand page level or a browser AJAX call. On-demand processes are useful when you have logic of PL/SQL that you want to run different execution points on several pages.
At the request of the process generally must be created on a page and not at the level of the application. On request, process created at the application level are created with an initial authorization scheme of must not be Public user. This forbidden process be invoked from users not authenticated sessions.
In addition, the second paragraph is a new addition to the documentation for APEX 4.2. What is the reasoning for not creating processes on request at the application level? I've used them for a few years as a way to provide reusable, application- wide (for example, the file downloads and the AJAX content) only items authenticated Apex sessions.
Hello
Thanks again. I added a note to the 5.0 docs.
It is certainly very good create processes at the level of applications On Demand. However, if a process is tied to a single page, only, it is immediately obvious that the process belongs to the interface of this page. It's good from a maintenance point of view, because if you only use application-level processes, it may be more difficult to determine if the process is still in use and where it is called from.
Kind regards
Christian
-
adding additional drives in the application process
Hi, how it is possible to add additional disks in the application process? Now, go in the settings of the virtual machine in vCenter client to add disks after the virtual machine has been created in LCM. We take for the applicant specify how many additional disks and what size (just not RDM VMDK)
Thank you
It can get quite complicated because this is certainly not the standard features of LCM and would not be supported by VMware if this customization is not performed by the team of the Orchestration Services of our Professional Services organization... However, that being said, a general approach would be as follows:
Duplicate the workflow application for Virtual Machine to the category of workflow custom under user and give a custom name like ask VM
Add new entries to the custom workflow that are something like: additionalDiskCount (number) and additionalDiskSize (number) (which implies that all the additional disks would be the same size)
Update the workflow to store these values by using a standard LCM Action such as:
System.getModule("com.vmware.lcm").addDataToTokenKeyAsString (provisioningToken, additionalDiskCount, "additionalDiskCount");
System.getModule("com.vmware.lcm").addDataToTokenKeyAsString (provisioningToken, additionalDiskSize, "additionalDiskSize");
The two lines above will store the specified user to other values that the token of data in the database of LCM and you will be able to get it back later because it is related to this particular request token.
Hide the initial request button of the tab requests and create a new button that points to your custom workflow
Create a new workflow that takes an object of lcm:ProvisioningToken as an entry called "token".
Inside of this workflow (let's call it 'Add disks to ask'), you will need to retrieve the additionalDiskCount and additionalDiskSize values that have been stored with the token:
additionalDiskCount = System.getModule("com.vmware.lcm").getDataFromTokenKeyAsString (token, "additionalDiskCount");
additionalDiskSize = System.getModule("com.vmware.lcm").getDataFromTokenKeyAsString (token, "additionalDiskSize");
You then get the object of VMware3:VirtualMachine of your token:
VM = System.getModule("com.vmware.lcm.vim3").getVmFromToken (token);
Then, using those extracted values and the virtual computer object, use a loop to pass these parameters and some other default values you want in the workflow 'Add drive' (it's in the category library/VIM 3/Virtual Machine management/Device Management workflow.)
Once you have confirmed that this new workflow 'Add disks to ask' is working properly by passing only an object token with these entries of additional data stored with them, you can add this workflow for the reminder 'onCreate '.
The above process is a general approach that could be taken. The specifics of real workflows that you create are up to you and the support of this customization
Good luck!
Visit me on http://www.vcoteam.info for vCenter Orchestrator tips and tutorials
-
Show/hide a Div so that the application process will be executed
Hi all
I have the following problem:
I'm on APEX 3 and I have the page with 2 elements. When the user, enter the value in the first element on the page and navigate out of the element, in the second article should be the SYSDATE.
This must be done as:
1. set the fovus in the Item1.
2. navigate off the Item1 (with TAB or the mouse).
3 JavaScript function will be executed:
3.1 icon "Please wait...". "will be displayed.
3.2 application of getDbDate process will be executed.
3.3 the value returned by the getDbDate of application process is allowed in the Field2.
3.4 icon "Please wait...". "disappears.
Here ist the sample application: http://apex.oracle.com/pls/otn/f?p=MISCELLANEOUS:108
In Firefox, I have no problems to show the "Please wait...". "Icon, but the Explorer Intener shows me nothing. But the application process will be executed.
Any ideas?
Best regardsHello
See the example of CARL
http://HTMLDB.Oracle.com/pls/OTN/f?p=11933:62Kind regards
Jari
-----
My Blog: http://dbswh.webhop.net/dbswh/f?p=BLOG:HOME:0
Twitter: http://www.twitter.com/jariolai -
Application process, do not run after the validation error
Hi all.
APEX 4.1
XE 11 GR 2
WIN7
Firexfox
I have a page where I add additional javascript code to a page by using htp.p in a process of application "before the footer. It works fine as long as there is no validation error. When the validation fails (for example a UK-check with the location of the error value "Inline notification"), the page is re-fondue, but the application process is not running and so my extra code is missing from the page.
Is this intended behavior or am I doing something wrond?
Andreas
Addition:
I tried the sam using a 'local' page process, but these do not seem to fire.
Published by: Andreas Weiden on 22.12.2011 21:31Andreas Weiden says:
Is this intended behavior or am I doing something wrond?
This is the expected behavior. Generally, the process and calculations source item, the actions are not executed when the page is re-made after validation errors. They also provide great potential for confusion of side effects (for example reset to a default value for an item that had an invalid value sent).
However, the engine provides a special treatment for the process with the built-in Inline Validation errors displayed condition so that they will be run when a page is rendered with validation errors. See + {: identifier of the thread = 493070} + for an interesting discussion on this topic.
An alternative (and in my opinion a more classic and rather more clear) would be to generate the JS in a dynamic region of PL/SQL code on the Page zero. Always reuse the code on all or several pages, but is more clearly part of the rendering of the page as an application process and does not rely on a very obscure condition, being the only way you can make it work.
Maybe you are looking for
-
Why my compilation albums are placed in a section that is unique? I'd rather they were in alphabetical order like the rest of my albums. Anyone know how I can expose my music as I want. The people at Apple will continue to spoil the iTunes format or
-
Nighthawk AC19000 sound Readyshare USB suddenly not working not
Hello I have a scandisk USB plugged into the USB3.0 port that worked for more than 1 month. Suddenly, the reader is therefore more accessible. I tried to connect another external hard drive and got the same results. When I use the genius NG may not f
-
I get a green screen whenever I watch YouTube videos on the internet... I'm going to update the system and it will work for a little while, then come back later and boom a green screen. The audio is clear, but I'm getting very bored with this shit of
-
How to get the 'description' of a control property if the control is a part of the cluster?
Hi, dear all LV offers the possibility to work with the property 'description' of the individual control of the VI. The use of knots of property: reference VI > front propert > control [] property > Description. Unfortunately, I found a way to set or
-
cant conect to internet after reinstalling windows xp
system crashed and had to reinstall service pack 3 system operations. all files lost and now I can not even conect to the enternet. tried everything. need help making a wireless connection... Theres not even a frame local-lan or wireless on my comput