Friday, March 21, 2014

Collaborate 2014 Schedule

I am just getting caught up after HEUG Alliance. What a great conference! As always, it was a lot of fun visiting with customers, partners, and colleagues. I heard some amazing stories and learned a few new tricks. Now it is time for the next conference: Collaborate 2014 is only a couple of weeks away. I love hearing your stories and challenges. Hunt me down and share your stories with me. Besides the demo grounds, here are two places you will find me:

  • Tuesday, 8 Apr 3:00 PM-4:00 PM So You Think You Know PeopleSoft? Do You Know the PeopleSoft Interaction Hub? – You Own It !, session ID 109490, Level 4, Lando 4301B
  • Thursday, 10 Apr 08:30 AM-09:30 AM PeopleTools Developer: Tips and Techniques, session ID 108600, Level 4, Marcello 4401A

I fly out Thursday night, but if I can make it, I plan to attend Mike Doyle's session Advanced PeopleSoft Development Techniques, which contains examples based on my book PeoleSoft PeopleTools Tips & Techniques.

28 comments:

Kevin Weaver said...

Looking forward to seeing your sessions and I am also bummed to see that I am presenting my Mobile Approvals presentation at the same time that Mike is presenting the "Advanced PeopleSoft Development Techniques".

I Have since update my presentation and now have a version that runs on Node.js and serves up pretty decent content that have been greatly enhanced thanks to jQuery Mobile.

See you next week!

Jim Marion said...

@Kevin, sounds great. I look forward to seeing your mobile session. I am a fan of node.js. For others that might be interested, can you add your session ID, date, time, and room number as a comment?

Kevin Weaver said...

I will be presenting Mobile Approvals in PeopleSoft, my approach was to use Integration Broker to server up very simple HTML forms and serve that content via a ESB or an external web sever like Node.js.

Session ID: 101630
Title: Mobile Approval in PeopleSoft
Date: 4/10/2014
Time: 3:00 PM-4:00 PM
Room: Level 4, Lando 4301B

Kevin Weaver said...

Jim,

What did you call that application that consumed a PeopleSoft restful service? I thought you called it a "microsoft widget", but I could not find anything close to what I saw during you presentation when I search Google.

Thanks!

Jim Marion said...

@Kevin, Windows Gadget.

Mani S said...

Jim,
Off-topic : is there anyway a table from a particular PS Query be replaced by another table?

I have two PS Queries to be built - both use the same tables except for one - is there anyway I could build just one PS Query and replace one table with another?

Jim Marion said...

@Mani, query information is stored in meta data, so it is possible, but very risky.

Mani S said...

Thanks for the response, Jim.. I had the same idea too. And if I leave out any of the metadata tables that would impact the PS Query..

One more question - I am trying to execute a PL/SQL statement from PeopleCode. I have the following code in a SQL object:

DECLARE i INTEGER; BEGIN
SELECT COUNT(*) INTO i
FROM DBA_INDEXES
WHERE index_name = %P(:1); IF i = 0 THEN EXECUTE IMMEDIATE 'CREATE UNIQUE INDEX %P(:2) ON %P(:3) (%P(:4)) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10 NOPARALLEL NOLOGGING'; END IF; END;

:1 and the other 'colon' are bind variables for which I am trying to pass values from PeopleCode. But this doesn't work.. Any idea where I am going wrong? Your help would be much appreciated :)

Jim Marion said...

@Mani, I have only done this in App Engines using %Execute. A quick Google search for %Execute SQL PeopleSoft turns up several examples.

From regular PeopleCode I have executed PL/SQL by placing the PL/SQL in a PL/SQL function and then selecting that function as a column.

Mani S said...

Thanks a lot, Jim.. Actually, my app engine cycles through multiple CreateSQL fetch statements and based on validations, required the PL/SQL to run.

I've put the index creation part as a separate SQL object and processed it.

Is there anyway I can execute a 'Create Index' statement without using SQLExec? and without placing the DML statement in a SQL action?

Your help is much appreciated. Thank you!

Jim Marion said...

@Mani, your index question is a good one to post on the PeopleSoft General Discussion OTN forum.

Mani S said...

@Jim,
Thank you :) I had posted the question on the OTN forum :) will wait for a response :)

Mani S said...

Hi Jim,
Would it be possible to pass values from a sub-page to the calling page?

I have a sub-page and a standard page. When I click on a button on the standard page, I want a fields value in the parent page to be set to a new value. Any help or pointers on this would be greatly appreciated!

Thank you!

Jim Marion said...

@Mani, sub pages share the component buffer, so any values you change in the sub page are automatically changed in the parent.

Mani S said...

@Jim : Thank you. That issue is fixed.

Jim, can an FSCM page be opened from HCM? Similar to how TransferPage works?

Thank you!

Jim Marion said...

@Mani, yes. Make sure the HCM and FSCM nodes trust each other. After setting up trusted nodes, you will want to update the node definition URL's and create CREF's for the target components.

Mani S said...

Thanks a lot, Jim! :) My issue is now resolved.. :) Is there any possible way I can pass values between two different components? Without having to modify anything in the destination component? I have to pass values from a page in one component to a page in another component, which has a different search record and the field which I should populate on the destination component belongs to a different record .. any ideas on how this can be achieved?

Mani S said...

This is what I am doing currently..
&URLString = GenerateComponentRelativeURL(%Portal, %Node, MenuName."MANAGE_PAYROLL_PROCESS_(GBL)", %Market, Component."GP_SS_PSLP_ADMINVW", Page."GP_SS_PSLP_ADMINVW", "U", &rec);

and passing level 0 record field's value (not search record)

&content1 = "&FROM_DATE=06/29/2014";
ViewURL(&URLString | &content1);

And in the destination component's page activate, checking if there is any value returned from %Request.GetParameter(FROM_DATE).. If yes, I would assign the new value from the URL.

Jim, is there something that I am not doing right?

Jim Marion said...

@Mani, if you pass values on the URL that match the search record's search keys, then no, you don't need to modify any PeopleCode. It does not matter that the fields differ between the two components.

On your next question, it sounds like you are not using a search record, so yes you need to write PeopleCode. I try to avoid PageActivate for data model changes because whether or not a page is visible is usually irrelevant from a data perspective. I reserve PageActivate for visual changes. The most common event for data changes is RowInit. Another thing I noticed from your sample is your date format. The PeopleCode date format is CCYY-MM-DD.

Mani S said...

Thanks a ton, Jim!! :) This is exactly how I did it and even used the same approach for opening a page in FSCM.

Really appreciate your contribution to the PeopleSoft community!!

chandu said...

we are planning to upgrade our peopletools from 8.52 to 8.53.Our new version of PeopleTools (8.53) comes with Java version 1.7,
Is it possible to upgrade to Java version 1.8 while staying on PeopleTools 8.53

Jim Marion said...

@Chandu, it may be possible, but not recommended.

Mani S said...

Jim,
Is it possible to dynamically add columns to a grid using PeopleCode?

Like if I wish to add 5 new columns to my grid, would that be doable?

Jim Marion said...

@Mani, rows yes , columns no. a work around is to add the rows at design time and hide them. then make them visible when you want them.

Anonymous said...

Hello Jim,

We are implementing email Approvals for workflows in 9.1 with 8.51 tools. I ran into issue when the approver send his response the EOAWEMC process picks the email from mailbox but treats it as spam and logs the transaction in MCFEM_MAIL_MAIN. The point to be taken is the email was sent in text/html format. But the if the same response is sent in text/plain format, EOAWEMC process picks it and approves the transaction.Could you please help on how to solve this..?

Thanks
Arun

Jim Marion said...

@Arun, I am not sure what causes this. You may have to file a support case for this. If you have control over the HTML e-mail, you may want to check it for consistency. There are certain inconsistencies in HTML e-mails that cause mail servers and clients to treat them as spam. For example, incorrect headers, missing plain text alternative, etc.

truffing said...

I think I'm missing something somewhere. We have setup a custom approval workflow with email approvals. The email approval comes in from the user as expected, and updates a table called EOAWEMC_PND_HDR. The following field is updated in EOAWEMC_PND_HDR, COMPLETE_FLAG = 'Y. The issue I have is the workflow step is never updated with the approval or denial. I'm trying to figure out what I'm missing in my setup to get the email approval\denial to update the workflow step. Can somebody help me with this? Am I missing some setup?

MAK said...

@truffing , If you have trace or anything that will really help. verify your custom workflow has IB setup too like Message, Queues & the App Package code on what to do for the response email and all that stuff. The complete_flag is set to 'Y' specifying it did parse the email for that transaction and now it triggers urs custom IB message of ur workflow and rest of it. check Oracle support for detail setup. Even I did custom AWE and complete email approval setup from scratch.