tag:blogger.com,1999:blog-34020393.post7253409038450786916..comments2024-03-27T10:59:38.307-07:00Comments on Jim's PeopleSoft Journal: What is an IScript?Jim Marionhttp://www.blogger.com/profile/12995110203807924786noreply@blogger.comBlogger211125tag:blogger.com,1999:blog-34020393.post-61528690571970315182020-08-13T21:34:51.533-07:002020-08-13T21:34:51.533-07:00@Siv, I don't see where you are writing anythi...@Siv, I don't see where you are writing anything back to the client. It looks like you are just invoking the Cobol. Could you move your code to an App Engine and use the ProcessRequest API to schedule the App Engine to run immediately? App Engines don't have commit/think time issues.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-57074448983208824622020-08-08T20:38:45.046-07:002020-08-08T20:38:45.046-07:00Hi Jim,
I am executing the below code from IScrip...Hi Jim,<br /><br />I am executing the below code from IScript FieldFormula in order to run delivered cobol program using Remotecall before connecting to 3rd party payment center and it is giving "Caught exception: Think-time PeopleCode event (RemoteCall), but a SQL update has occurred in the commit interval. (2,148)" message and unable to proceed. I've tried commitwork and sqlexec("commit") but it didn't help. Please suggest to resolve the issue.<br /><br />import SCC_EQUATION_ENGINE:Equation;<br />import SCC_EQUATION_ENGINE:Equation_Exception;<br />import SCC_EQUATION_ENGINE:Equation_Space;<br /><br />Function IScript_Function()<br /> &rsSCT = CreateRowset(Record.STDNT_CAR_TERM); /* create Rowset */<br /> &numRead = &rsSCT.Fill("WHERE EMPLID = :1 AND STRM = :2", "10XXXXX", "2200"); /* Fill rowset */<br /> <br /> For &sctIndex = 1 To &numRead;<br /> <br /> &sEquation_Name = "SFSETVAL";<br /> <br /> &sEquationSpaceName = &sEquation_Name | "_REMOTECALL";<br /> <br /> &esTuiCalcSpace = create SCC_EQUATION_ENGINE:Equation_Space();<br /> &esTuiCalcSpace.sName = &sEquationSpaceName;<br /> &esTuiCalcSpace.ClearGlobals();<br /> &Rc_Oprid = %OperatorId;<br /> &esTuiCalcSpace.SetGlobal("A_SELECT", "String", "N");<br /> &esTuiCalcSpace.SetGlobal("CALC_CAREER", "String", " ");<br /> &esTuiCalcSpace.SetGlobal("VALUE_FOUND", "String", "N");<br /> &esTuiCalcSpace.SetGlobal("INSTITUTION", "String", &BUSINESS_UNIT);<br /> &esTuiCalcSpace.SetGlobal("ACAD_CAREER", "String", "GRAD");<br /> &esTuiCalcSpace.SetGlobal("STRM", "String", &STRM);<br /> &esTuiCalcSpace.SetGlobal("BILLING_CAREER", "String", "GRAD");<br /> &esTuiCalcSpace.SetGlobal("EMPLID", "String", &EMPLID);<br /> &esTuiCalcSpace.SetGlobal("BUSINESS_UNIT", "String", &BUSINESS_UNIT);<br /> <br /> &eqTuiCalcEquation = create SCC_EQUATION_ENGINE:Equation();<br /> &eqTuiCalcEquation.sName = &sEquation_Name;<br /> &eqTuiCalcEquation.sSpaceNameIn = &sEquationSpaceName;<br /> &eqTuiCalcEquation.sSpaceNameOut = &sEquationSpaceName;<br /> &eqTuiCalcEquation.bLogInfoMsgs = True;<br /> <br /> REM CommitWork();<br /> SQLExec("COMMIT"); <br /> <br /> &eqTuiCalcEquation.Execute();<br /> <br /> If &eqTuiCalcEquation.iMessageNumber <> 0 Then<br /> MessageBox(%MsgStyle_OK, "Equation Run Status", 8954, 3042, "Equation Run Failed");<br /> MessageBox(%MsgStyle_OK, "Equation Failure", &eqTuiCalcEquation.iMessageSet, &eqTuiCalcEquation.iMessageNumber, "Equation Run Failed");<br /> End-If;<br /> <br /> CommitWork();<br /> <br /> End-For;<br />End-Function;<br /><br /><br /><br />Thanks,<br />SivAnonymoushttps://www.blogger.com/profile/03779741752180627545noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-5437066129519178162020-07-27T02:33:03.266-07:002020-07-27T02:33:03.266-07:00Hi Jim,
Is it possible to mimic the delivered peo...Hi Jim,<br /><br />Is it possible to mimic the delivered peoplesoft sign in(PSOPRDEFN.OPRID and password) from the third party application using iscript? Please let me know if this is possible and it would be helpful if you can guide me through the process.<br /><br />Thanks, Kapilpsspiderhttps://www.blogger.com/profile/14136719211799889670noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-28000306685022419632019-07-10T19:14:37.547-07:002019-07-10T19:14:37.547-07:00@Piyush, %Request and %Response only apply to onli...@Piyush, %Request and %Response only apply to online PeopleCode and are not available in batch processes. It is quite common to use them in a component. I believe you have two options:<br /><br />1. Don't use a CI, but rather use AWE directly. Typically an AWE approval component is used to share approval information and interface with AWE. Since you are using a batch process, you don't need the review component, just AWE.<br /><br />2. Modify the component by wrapping the Approval Status Monitor initialization method in an if block to test the %CompIntfcName similar to this: http://peoplesoft.wikidot.com/forum/t-879793/bypass-peoplecode-if-called-from-a-component-interface.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-75955298281889821222019-07-01T02:59:38.650-07:002019-07-01T02:59:38.650-07:00Hello Jim,
First of all I would like to thank you ...Hello Jim,<br />First of all I would like to thank you for creating a blog where we can get perfect answers for your queries.<br />We have a batch process build for auto approval of performance document of the employee. This batch process uses CI on the e-performance Approval component.<br />In the this Component on Component Post Build event, an application package peoplecode EOAW_Monitor.Monitor.awStatusMonitor is being called.<br /><br />This code is using %Request and %Response. But, these system parameters are returning NULL while processing. I am not getting why system parameters are being returned NULL during processing. Could you please let me know the possibility for the same.<br /><br />Thanks<br />Piyush JPiyushhttps://www.blogger.com/profile/15391757356317045639noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-13357312056262519412018-02-27T17:20:53.642-08:002018-02-27T17:20:53.642-08:00Thanks Jim, actually I did try setting the user ag...Thanks Jim, actually I did try setting the user agent in the header and it did seem to like it and let me pass through and download the JSON that the iScript was serving - so it does seem like an option for cases where IB usage is not the preferred method.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-34020393.post-53543000908755656792018-02-27T11:31:43.807-08:002018-02-27T11:31:43.807-08:00@DS, there is no other supported option. Unfortuna...@DS, there is no other supported option. Unfortunately, creating an IB REST service is the recommended approach. The problem is the PeopleSoft webserver today uses browscap to determine device capabilities (mobile, desktop, etc) and it expects to find your browser. If it doesn't, then you must be using an unsupported browser. iScripts are for UI only, and expect a real web browser. Integration Broker, on the other hand does not.<br /><br />Here are a couple of other options:<br /><br />1. Change the user agent string to match a common browser string. No guarantees this will work, but it is an option.<br /><br />2. Define a standard IB integration, not REST, and make your HTTP request to the HttpListiningConnector. Often this is easier to configure.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-45706020950648699302018-02-27T09:20:01.860-08:002018-02-27T09:20:01.860-08:00Hi Jim,
I'm trying to invoke a iScript url u...Hi Jim, <br /><br />I'm trying to invoke a iScript url using Node JS (https-get). The iScript itself when tested through browser, returns a JSON, so I know that it is working ok. However when I do a https-get from Node JS, it is returning an error - <b> Failed processing Browscap file. as it could be missing. Please contact your system adminstrator. </b> I see another person had this error above. But I'm not sure what technology he/she was using. <br /><br />I'd really like to avoid creating a IB service, only to be called again from my Node JS REST API logic which in turn is called from the API client. It feels redundant.<br /><br />Is there any other way?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-34020393.post-81374512083020151042017-09-26T09:54:11.427-07:002017-09-26T09:54:11.427-07:00@Raj, yes, but the complexity depends on what your...@Raj, yes, but the complexity depends on what your requirements. If you require an authenticated session, then you will have to convert the signon page to use Ajax to authenticate rather than a direct submit. If authentication isn't important, then you can just modify the onsubmit JavaScript attached to the signon HTML template in your web server's psftdocs folder.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-67808711646673889102017-09-26T09:28:09.251-07:002017-09-26T09:28:09.251-07:00Hi Jim,
Can we display a peoplesoft pop-up page af...Hi Jim,<br />Can we display a peoplesoft pop-up page after user click on the sign in button. I mean the pop up page in the same delivered blue color page where user enters the login credentials. Is this possible?<br /><br />Thanks,<br />RajAnonymoushttps://www.blogger.com/profile/08745284456700573951noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-50594717613414322152017-09-11T08:02:54.903-07:002017-09-11T08:02:54.903-07:00@Vivek, per the error message displayed, some page...@Vivek, per the error message displayed, some pages can't be framed. The author has code to protect the contents. With that in mind, I assume you are asking how to open this content without the PeopleSoft frameset? If so, did you try passing the True value for the New Window parameter? I suspect that will still show the frame, but you can define a CREF for the iScript and check the box for no template. Another alternative is to add a "break frames" JavaScript to your iScript.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-23999635758352703162017-09-11T00:29:04.460-07:002017-09-11T00:29:04.460-07:00Hi Jim,
Need your help in below scenerio.
This i...Hi Jim,<br /><br />Need your help in below scenerio.<br /><br />This is in regarding the epayment gateway we are trying to access using IScript and JSP File.<br />I have configured Setup Payment Merchant, Setup Payement Processing, Hosted payment Adpater Setting. Then we are writing the peoplecode<br /> ViewURL(GenerateScriptContentURL(%Portal, %Node, Record.WEBLIB_MI_HPAY, Field.ISCRIPT1, "FieldFormula", "IScript_gotocyb"));<br /><br />Below is the Iscript code.<br /><br />Fetched the Production or development/Testing environment and the JSP URL from the Message Catalogue (26000, 2 and 3 respectively)<br /><br />Get the universal unique id using the Java Class java.util.UUID<br /><br />Get the Signed Date and Time with UTC Time Zone using Oracle SQL Statement<br /><br />Assign Transaction Type as Authorization (Secure Acceptance Compliance)<br /><br />Assign Payment Method as Card and default the Card Type as Visa (001)<br /><br />If this not a production environment default the Name and Address Details as per the CyberSource Test Data.<br /><br />Using the Reponse.Writeline generate the dynamic html script pointing to the relevant CyberSource JSP file with the required values<br /><br />Clear the Global Variables.<br /><br /><br /> <br /> <br /> <br /> <br /><br />But the third party page is not opening inside peoplesoft frame.<br />/***************************************************/<br />This content cannot be displayed in a frame<br />To help protect the security of information you enter into this website, the publisher of this content does not allow it to be displayed in a frame.<br /> <br /> What you can try: <br /> Open this content in a new window <br /> <br />/***************************************************/Vivek Tyagihttps://www.blogger.com/profile/00655198220133715142noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-32019289676279592822017-03-09T13:28:18.804-08:002017-03-09T13:28:18.804-08:00@Srini, no there is not. The AWE team ran into thi...@Srini, no there is not. The AWE team ran into this same issue. Their work-around was to use a URL definition that points to the base application URL. Another solution I have used is to select the portal (or content, depending on your purpose) base URL from the default local node.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-9528936031433216952017-03-09T12:54:11.229-08:002017-03-09T12:54:11.229-08:00Hi Jim,
This may be a silly question - but is ther...Hi Jim,<br />This may be a silly question - but is there an application engine equivalent of ViewContentURL function. I have an online page to transfer a user to external site for paying an AR item using credit card. I need to automate the procedure and send the transactions over using payment tokens doing a silent post. I want to be able to reuse what I have done for online page and exploring the options. Of course, I get this in the AE: Function ViewContentURL cannot be run in the Application Engine. (2,636)<br />-SriniSrinihttps://www.blogger.com/profile/11561414817762746714noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-68055601011893560462016-07-21T11:57:55.777-07:002016-07-21T11:57:55.777-07:00@Deepika, I'm still questioning whether loggin...@Deepika, I'm still questioning whether logging out will give you what you want. It sounds like you do have trusted nodes. PSFT_HR/LM are the default local node names. HRMS and ELM are the portal node names. You configure trusted nodes for the default local node, not the portal node. If you continue down this direction and have the user logged out of PSFT_HR when they transfer to ELM, they will also be logged out of ELM (assuming trusted nodes). This means the user will be taken to a login page and have to log in again. Normally, customers don't want to do that. It violates the point of trusted nodes.<br /><br />With that said, you are on the right track with that JavaScript. The JavaScript snippet you identified is not the one that makes an Ajax request though. You want to find $.ajax or $.get. Using "$", though, requires jQuery, which may be more than you want. You might just look for a light-weight Ajax library you can embed (just a few lines of JavaScript) rather than a whole library like jQuery. The right part of that JavaScript you posted is timeOutURL.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-68907462244506655402016-07-21T06:41:22.756-07:002016-07-21T06:41:22.756-07:00Thank you Jim.
1. Today i wrote an Iscript and in...Thank you Jim.<br /><br />1. Today i wrote an Iscript and in that function, i tried to redirect and same time used %request.logoutURL but obvious it just logs me out.. as it seems iscript code will b sent to server at one shot and logout takes precedence. This doesnt seem to be correct approach.<br /><br />2. I also created one html object and tried writing ajax code but seems syntax or the way i am trying to trigger ajax code is not the right one. I tried following http://jjmpsj.blogspot.com/2014/07/unlimited-session-timeout.html blog but i couldnt relate the purpose of (root). I was wondering whether u just need to write a piece of code in my html object as an example:<br /><br /> root.setTimeout(function () {<br /> /* some pages don't have timeouts defined */<br /> if (typeof (timeOutURL) !== "undefined") {<br /> if (timeOutURL.length > 0) {<br /> resetUrl = timeOutURL.replace(/expire$/, "resettimeout");<br /> if (totalTimeoutMilliseconds !== null) {<br /> root.clearTimeout(timeoutWarningID);<br /> root.clearTimeout(timeoutID);<br /> <br /> timeoutIntervalId =<br /> root.setInterval(resetTimeout /* defined below */,<br /> root.warningTimeoutMilliseconds);<br /><br />Not sure though.<br /><br />As i mentioned previously, we are using single sign on. Still from one of the link on HR. i am trying to open ELM PIA and want to get signout only from HR system. Hoping this is something feasible , i m trying.<br /><br />and as per trusted nodes.. so far we have PSFT_HR and PSFT_LM because earlier from HR itself we were opening ELM system on same page/window but now I am redirecting and opening a new window with ELM node , not PSFT_LM. I am assuming, its not required to add ELM node in HR side under trusted node.<br /><br />Could you please guide the right way to handle this, only if it is feasible.<br /><br />Thanks a ton,<br />Deepika<br />Anonymoushttps://www.blogger.com/profile/01623290823381129386noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-7966162849628502592016-07-20T13:03:09.860-07:002016-07-20T13:03:09.860-07:00@Deepika, if your signout is sending to the logout...@Deepika, if your signout is sending to the logout URL, then yes, what you see is expected. If you use Ajax to invoke the signout URL, however, you can still maintain control over the target.<br /><br />It is not normal to sign out of either HR or ELM when transferring between the two. Normally a customer would configure the two as trusted nodes so that they accept each other's tokens. Signing out of one would erase the PS_TOKEN cookie and invalidate the token so it is no longer available to the other.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-90677337231502227392016-07-20T03:56:33.649-07:002016-07-20T03:56:33.649-07:00Hi Jim,
Need your help.
I tried using html object...Hi Jim,<br /><br />Need your help.<br />I tried using html object to redirect to elm from hr and its fine.<br />but now, i want to auto signout from hr and dont want user to enter credentials again in ELM.<br /><br />I thought of write expire code in html using javascript but if this get fires my redirect code gets ignored.<br /><br />and if I redirect first then signout, it signout from both system. <br /><br />Could you please give me any idea, how can i handle this. I want to signout from HR but auto authenticate to elm and redirect to elm.. all on one click. Anonymoushttps://www.blogger.com/profile/01623290823381129386noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-84759263759959200652016-07-18T23:40:58.539-07:002016-07-18T23:40:58.539-07:00Hi Jim,
Thank you for your response,
My concern ...Hi Jim,<br /><br />Thank you for your response,<br /><br />My concern is : As an example, I logged into HR system and now on click of one link, it should sign me out from HR system and redirect me to ELM by auto logged based on my HR userid and password. Is that feasible?<br /><br />Thanks,<br />DeepikaAnonymoushttps://www.blogger.com/profile/01623290823381129386noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-77265895639418368462016-07-18T21:54:25.102-07:002016-07-18T21:54:25.102-07:00@Deepika, yes, you could use an iScript as the tar...@Deepika, yes, you could use an iScript as the target. If not logged in, the user would be prompted to sign in before continuing.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-41978619856868637722016-07-16T23:31:31.621-07:002016-07-16T23:31:31.621-07:00Hi Jim,
My question is not exactly related with t...Hi Jim,<br /><br />My question is not exactly related with this post.<br /><br />I have one requirement, user logsin to HR system and based on his role and on click of a URL, I need to redirect him to ELM portal using single signon.<br /><br />I though of using iscript for that but was wondering how can i authenticate user by this way.<br /><br />Could you please share your ideas on this,<br /><br /><br />Thanks,<br />DeepikaAnonymoushttps://www.blogger.com/profile/01623290823381129386noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-71372333542719266802016-06-21T13:47:38.168-07:002016-06-21T13:47:38.168-07:00@Raju, it sounds like you are using the iScript li...@Raju, it sounds like you are using the iScript like a FUNCLIB function. You don't invoke iScript functions from PeopleCode, you access them as URLs. This means you either browse to them directly or use Ajax to access them.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-44084521850023523922016-06-21T09:33:12.006-07:002016-06-21T09:33:12.006-07:00Hi Jim,
I am creating the Iscript to popup a w...Hi Jim,<br /><br /> I am creating the Iscript to popup a window to show some information. I am using java script in HTML to open a new window. I am calling the Iscript function in Field change. I am getting error as "Response.Write is not available in this context.". So I have created the a HTML field and placed in Main page and calling through it. This time I didn't face error but New window is not opening. Where as if call the same Iscript function in Page activate it is working.<br /><br />Is there any other way calling the new window ?.<br /><br />Thanks in Advance.<br /><br />Thanks,<br />RajuAnonymoushttps://www.blogger.com/profile/01759697957310918068noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-66450500802065836982016-04-26T22:45:44.248-07:002016-04-26T22:45:44.248-07:00Captcha with PeopleTools is actually quite common....Captcha with PeopleTools is actually quite common. I suggest asking this question on the <a href="https://community.oracle.com/community/oracle-applications/peoplesoft_enterprise/peoplesoft_general_discussion" rel="nofollow">PeopleSoft OTN forum</a>.Jim Marionhttps://www.blogger.com/profile/12995110203807924786noreply@blogger.comtag:blogger.com,1999:blog-34020393.post-75544394453190511332016-04-26T22:21:34.222-07:002016-04-26T22:21:34.222-07:00Hi Jim,
Thanks for providing the option but I am ...Hi Jim,<br /><br />Thanks for providing the option but I am little confused now. Could you please mind letting me know how should I get the value of variable named "captchapassed" from the below code of JSP from the peoplecode -<br /><br />My JSP file code -<br /><br /><%@page import="com.octo.captcha.module.servlet.image.SimpleImageCaptchaServlet" %> <br /> <% <br /> String userCaptchaResponse = request.getParameter("jcaptcha"); <br /> userCaptchaResponse = userCaptchaResponse.trim(); <br /> Boolean captchapassed = false; <br /> if( userCaptchaResponse.equals("") || userCaptchaResponse == null ) <br /> { <br /> %> <br /> <br /> <br /> <% <br /> } <br /> else <br /> { // Captcha text is not blank or null <br /> try <br /> { <br /> captchapassed = SimpleImageCaptchaServlet.validateResponse(request, userCaptchaResponse); <br /> } <br /> catch(Exception e) <br /> { <br /> %> <br /> <br /> <br /> <% <br /> } <br /> System.out.println("captcha passed = " + captchapassed ); /* Logging to weblogic console for debugging purpose */ <br /> if(captchapassed) <br /> { // On captcha validation success redirect to the psp servlet with login command <br /> %> <br /> <br /> <br /> <% <br /> } <br /> else <br /> {// On captcha validation failure redirect to the signon page with error code set to custom# - 20001 <br /> %> <br /> <br /> <br /> <% <br /> } <br /> } <br /> %>Ashu Narulahttps://www.blogger.com/profile/04876414981648235964noreply@blogger.com