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:

  1. 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!

    ReplyDelete
  2. @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?

    ReplyDelete
  3. 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

    ReplyDelete
  4. 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!

    ReplyDelete
  5. 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?

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

    ReplyDelete
  7. 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 :)

    ReplyDelete
  8. @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.

    ReplyDelete
  9. 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!

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

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

    ReplyDelete
  12. 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!

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

    ReplyDelete
  14. @Jim : Thank you. That issue is fixed.

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

    Thank you!

    ReplyDelete
  15. @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.

    ReplyDelete
  16. 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?

    ReplyDelete
  17. 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?

    ReplyDelete
  18. @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.

    ReplyDelete
  19. 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!!

    ReplyDelete
  20. 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

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

    ReplyDelete
  22. 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?

    ReplyDelete
  23. @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.

    ReplyDelete
  24. Anonymous10:53 AM

    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

    ReplyDelete
  25. @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.

    ReplyDelete
  26. 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?

    ReplyDelete
  27. @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.

    ReplyDelete