Posts

Showing posts from 2010

List of Delivered PeopleTools Table Names

-- RECORDS AND INDEXES PSRECDEFN; PSRECDEFNLANG; PSRECFIELD; PSINDEXDEFN; PSKEYDEFN; PSDDLMODEL; PSDDLDEFPARMS; PSSPCDDLPARM; PSRECDDLPARM; PSIDXDDLPARM; PSRECFIELDDB; PSRECTBLSPC; -- FIELDS PSDBFIELD; PSDBFIELDLANG; PSDBFLDLABL; PSDBFLDLABLLANG; -- FIELD FORMATS PSFMTDEFN; PSFMTITEM; -- TRANSLATES PSXLATDEFN; PSXLATITEM; PSXLATITEMLANG; -- PAGES PSPNLDEFN; PSPNLFIELD; PSPNLTREECTRL; PSPNLHTMLAREA; PSPNLCNTRLDATA; PSPNLBTNDATA; PSPNLDEFNLANG; PSPNLFIELDLANG; PSPNLHTMLLANG; PSPNLBTNLANG; PSPNLACTIVEX; -- MENUS PSMENUDEFN; PSMENUDEFNLANG; PSMENUITEM; PSMENUITEMLANG; PSXFERITEM; -- PANEL GROUPS PSPNLGRPDEFN; PSPNLGDEFNLANG; PSPNLGROUP; PSPNLGROUPLANG; -- PEOPLECODE PSPCMPROG; PSPCMNAME; -- QUERIES PSQRYDEFN; PSQRYDEFNLANG; PSQRYBIND; PSQRYBINDLANG; PSQRYCRITERIA; PSQRYEXPR; PSQRYFIELD; PSQRYFIELDLANG; PSQRYFLAGS; PSQRYLINK; PSQRYRECORD; PSQRYSELECT; -- TREE STRUCTURES PSTREESTRCT; PSTREESTRCTLANG; -- TREES PST

To migrate Route Control Profiles from one DB to another

PeopleSoft does not deliver a means to migrate Workflow Route Control data from one PeopleSoft database to another, however, this can be accomplished with Datamover scripts. Create Datamover script rcexp.dms to export Workflow Route Control data from Source Database; SET LOG C:\TEMP\RouteControl_exp.LOG; SET OUTPUT C:\TEMP\RouteControl.dat; EXPORT RTE_CNTL_TYPE; EXPORT RTE_CNTL_PROF; EXPORT RTE_CNTL_HDR; EXPORT RTE_CNTL_LN; Or For more exact Route Control migration, example; SET LOG C:\TEMP\RouteControl_exp.LOG; SET OUTPUT C:\TEMP\RouteControl.dat; EXPORT RTE_CNTL_TYPE WHERE RTE_CNTL_TYPE='Administrative Area'; EXPORT RTE_CNTL_PROF WHERE RTE_CNTL_PROF = 'Admin Area (All)'; EXPORT RTE_CNTL_HDR WHERE RTE_CNTL_TYPE='Administrative Area' AND RTE_CNTL_PROF = 'Admin Area (All)'; EXPORT RTE_CNTL_LN WHERE RTE_CNTL_TYPE='Administrative Area' AND RTE_CNTL_PROF = 'Admin Area (All)' AND RTE_FROM_VALUE='AM' AND RTE_TO_VALUE='TR'; Crea

View XML, Resubmit and Cancel links Grayed out on Service Operation Monitor

The user who is signed in and wanting to View XML, Edit XML, Download XML, Resubmit, or Cancel a service operation must have full access to that service operation. This can be set in either of two places. 1- Navigate to PeopleTools>Integration Broker>Integration Setup>Service Operation. Enter the service operation in question. On that component there is a Service Operation Security link. Click on that. Enter a role permission list that is associated with the userid that needs full access to service operation in the monitor. Set it to full access. Click Return and Save the Service Operation. OR 2- Navigate to PeopleTools>Security>Permission & Roles>Permission List. Enter the role permission list that is associated with the userid. Click on the Web Services Page and insert a row for the desired service operation. Click on Edit and assign full access. Click Ok and Save. If the links or push buttons are still grayed out, then sign out, delete browser cache by g

How to Bulk Delete Messages from Message/Service Operation Monitor in Error Status

The following is how to delete messages in Error status by a delivered way. 1. Run messaging achieve process at PeopleTools>Integration Broker>Service Operation Monitor>Monitoring>Archive Monitor Data. This will archive all the service operations in Done or Cancel status. 2. Run appmsgpurgelive.dms to delete all the service operations in status other than "Done" or "Cancel" including Error. WORKAROUND: You can customize PSAPMSPURGELIVE.DMS. Set where clause in every delete statement at PSAPMSPURGELIVE.DMS. "where IBTRANSACTIONID in (Select IBTRANSACTIONID from PSAPMSGPUBHDR where PUBSTATUS=0 AND PUBLISHTIMESTAMP " " Now you can run the appmsgarch process. =============================================================================== In PT8.48 or above, You can actual use the filter in the service operation monitor to identify service operations in ERROR status. You need to go to the operation instance, publication contract and subcontrac

Interation Broker:The 'IsChanged=Y' flag is always present in the XML's , what are they ? and what do they signify ?

When sending and receiving messages, all blank data values get stripped. As a result, you cannot determine if a field value is blank by definition, or if its value was stripped in the messaging process. The PeopleCode functions - CopyRowset, CopyRowsetDelta and CopyRowsetDeltaOriginal, feature an IsChanged attribute that automatically gets set to identify fields that have been changed. Any field that has been changed displays the attribute IsChanged="Y". Note. The IsChanged attribute applies only to rowset-based messages. It does not apply to nonrowset-based messages, including container messages, or part messages. If you are writing subscription PeopleCode you reference the IsChanged value of the field in the message rowset, as always. However, the blanks appear with the attribute IsChanged="Y".

How to replace system generated message names for CI web services

When creating and providing web services on PT 8.48 and later, the System generated message names are not meaningful. How can customers create meaningful names? Follow the steps below to do this. 1. Save the system generated request message to a meaningful name,eg. MTEST.V1. 2.Navigate to PeopleTools>Integration Broker>Service Utilities> Service administration's WSDL page anddelete the service. 3. Open the service operation and change the request message name to the new name, eg. MTEST.V1. Save the change. 4. Navigate to Provide Web Services page and provide the service again.

Tools tables that are used for IB Service Operations:

-- Service PSOPERATION; --all services PSOPERATIONLANG; -- language specific descriptions -- Service Operation Versions PSOPRVERDFN; -- all the service operations PSOPRVERDFNLANG; -- language specific descriptions PSOPRVERDFNPARM; -- holds request / response message information , queue -- Service Operation Handlers PSOPRHDLR; -- all the handlers PSOPRHDLRLANG; -- language specific descriptions PSOPERATIONAC; -- handler details referring to DMS application class PSOPERATIONDMS; -- handler details referring to DMS script PSOPERATIONCI; -- handler details referring to CI's -- Service Operation Routings PSIBRTNGDEFN; -- all routings PSRTNGDFNLANG; -- language specific descriptions PSIBRTNGSUBDEFN; -- routing alias information PSRTNGDFNPARM; -- routing transformation information PSRTNGDFNCONPRP; -- routings specific connector override information PSOPRGENRTGPARM; -- holds list of auto generated routings

GenerateComponentPortalURL and GenerateComponentContentURL return NULL

1. Because these functions are being called outside of PIA, certain online system variables such as %Portal and %Node will also be NULL. As such, it will be necessary to hard-code some arguments to the GenerateXXXURL functions: GenerateComponentContentURL("EMPLOYEE", "ERP", MenuName.REQUISITION_ITEMS, "GBL", Component.REQ_APPROVAL_AMT, %Page, "U", &Rec); 2. The Base URI (e.g. http://www.myserver.com/psp/mysite/) is only available automatically in the context of a web server. If a process is not signed in via the web (e.g. Application Engine), the Node definition specified in the function is checked for that Base URI. Open the Node Definition (PeopleTools > Portal > Node Definitions) and enter the Content URI (.../psc/...) and Portal URI (.../psp/...) on the Portal page. These are used by the GenerateComponentContentURL and GenerateComponentPortalURL functions, respectively. By default these fields are empty. 3. The GetLocalNode

To send HTML Email with images via PeopleSoft emailing methods

Using SendMail() function Local string &MAIL_CC, &MAIL_TO, &MAIL_BCC, &MAIL_SUBJECT, &MAIL_TITLES, &MAIL_TEXT, &MAIL_FILES, &MAIL_FROM, &REPLYTO, &SENDER; Local number &MAIL_FLAGS; &MAIL_FLAGS = 0; &MAIL_TO = "test@test.com"; &MAIL_CC = ""; &MAIL_BCC = ""; &MAIL_SUBJECT = "Testing SendMail - html?"; &CONTTYPE = "Content-type: text/html; charset=UTF-8"; &MAIL_TEXT = "<html>logo<img src= 'http://www.test.com/dm/design/new_logo.gif'></html>"; &MAIL_FILES = ""; &MAIL_TITLES = ""; &MAIL_FROM = ""; &MAIL_SEP = ";"; &REPLYTO = ""; &SENDER = ""; &RET = SendMail(&MAIL_FLAGS, &MAIL_TO, &MAIL_CC, &MAIL_BCC, &MAIL_SUBJECT, &MAIL_TEXT, &MAIL_FILES, &MAIL_TITLES, &MAIL_FROM, &MAIL_SEP, &CONTTYPE, &

How to Publish PeopleSoft WSRP Producer to 3rd Party WSRP Consumer

Please go to PeopleTools->Portal->Structure and Content, open the content reference which you want to publish as WSRP portlet. Select "WSRP Produciable" check box. WSRP Publication is available in PeopleTools, and is thus supported by any application at a sufficiently high release (8.48+ recommended as 8.47 has limitations). Then go to PeopleTools->Portal->WSRP Production, find out this published WSRP portlet. Copy "Web Service Endpoint URL" and login to your non-peoplesoft site and enter the "Web Service Endpoint URL" to the "WSRP WSDL URL". NOTE: Peoplesoft is compliant with the WSRP standard. Users should first verify they can both produce WSRP and consume WSRP in PeopleSoft. Once WSRP works in PeopleSoft, please try to produce WSRP in PeopleSoft and consume in 3rd party portal.

How To Create and Load Custom Target Connectors

To create a custom connector please refer to 1. Peoplebooks: PeopleSoft Integration Broker > Using the Integration Broker Connector SDK 2. Review the information in the " SDK API Documentation The PeopleSoft Integration Broker Connector SDK" which includes API documentation in HTML format. The documentation lists and describes Java packages that you can use to develop custom connectors and includes information about package classes, inner classes, interfaces, constructors, methods, and fields. Access the Connector API documentation in the connector SDK directory, PS_HOME\webserv\ \applications\peoplesoft\PSIGW\SDK\docs\SDK\index.html. 3. Within the same directory PS_HOME\webserv\ \applications\peoplesoft\PSIGW\SDK\docs\SDK there is ReadMe.txt that provides additional information when using WebLogic and the Class files needed as well as how to compile the java files. When compiling the java file, use the Java files on the web server and use the correct version of Java. Tool

How the PeopleSoft Integration Gateway connectors are loaded, and where the connector information is stored?

The following is what happens when a user requests to loads connectors of an Integration Broker gateway: 1. On the Integration Broker Gateways page the user presses the Load Connectors button and PIA ICPanel servlet passes that request via Jolt connection to the local application server. 2. The app server generates a special internal service operation, with external operation name "gatewayservicerequest", connector class name TargetIntrospection, and no message body. 3. The app server issues an http post of the service operation request to the local Integration Gateway listening connector. 4. If a remote gateway's connectors are being loaded, the local gateway forwards the request to the remote one. 5. The target Integration Gateway invokes the Introspection service to load all the connector properties, this is, it calls the TargetConnector.introspectConnector() method and navigates through the returned ConnectorDataCollection object to gather the data. 6. If a remote gat

Think time error while trying to call COBOL program from AE/CI:

Error:Think-time PeopleCode event (RemoteCall), but a SQL update has occurred in the commit interval. (2,148) In PT 8.4x we need to follow a certain sequence prior to invoking the PushButton field. The basics on calling COBOL from AE/CI PeopleCode are as follows. Note that "tweaking" may be necessary to get it to work. 1. AE (Application Engine) must have Restart disabled so CommitWork() can be used to force a commit of the CI data to the database. 2. Set the CI's properties, except for the "PushButton" field (usually Y/N) used to kick off COBOL. 3. Save the CI (call Save()). 4. If Save is successful, call CommitWork(). 5. Set the CI PushButton property (toggle it) to trigger the COBOL process. 6. COBOL will run asynchronously. So you usually need to put a dummy loop to wait until it's done processing. Adding a delay will help avoid having the next CI record "bump" into the COBOL process, and will give you additional time to perform post

How to cause a time delay ( sleep ) from PeopleCode in AE Program

The below code can be used in a PeopleCode Step to cause a delay of 3 minutes - effectively putting the AE to sleep for desired duration. &current_time = %Datetime; &delay_time = AddToDateTime(&current_time, 0, 0, 0, 0, 3, 0); While True If %Datetime > &delay_time Then Break; End-If; End-While This program will loop until the time has arrived and then it will go on

About Fix, Patch, Bundle,Maintennce Packs, Service Packs in Peoplesoft

PeopleSoft Application and PeopleTools maintenance releases are intended to address defects, performance enhancements, regulatory changes (such as tax updates), or security issues. In general, feature enhancements are part of new releases which require a product upgrade. Application fixes and changes are delivered in a variety of means; these include individual postings (Patches), Bundles, Maintenance Packs and Service Packs. Fixes: Fixes for specific issues with an application may be posted as a standalone fix intended to address that specific issue; these are generally referred to as Patches. Patches: Patches almost always have pre-requisites that are included in the documentation for that Patch. Patches are created by development using the most recently released bundle, this means they may list that bundle as a prerequisite. There may be other pre-requisites that are also required, all pre-requisites are clearly documented in the notes for the Patch. Bundles Bundles a

The basics in working with CIs and CI collections

Below are some of the basics in working with CIs. A. The basic steps in working with CIs 1) Set the get or create keys (set key values) 2) Execute get() or create() If get() or create() returns False do some error handling and take appropriate action such as not trying to continue processing that record. If you're going to continue processing, you'll need to call PSMessages collection's DeleteAll() method to reset the ErrorPending flag to False. Else Continue on to #3 3) set the properties 4) Execute save() 5) Execute cancel() - This releases this instance (or record that you were working with) so that you can set the get or create keys for the next record/CI instance. This step is not necessary if your code goes out of scope. 6) If you're accessing the CIs from PeopleCode: (a) Use the following syntax to get a handle to the Session object. &MySession = %Session; Avoid using the following syntax. &MySession = GetSession(); If( &am

How to configure SMTP in Peoplesoft?

In order to generate email messages then SMTP settings must be configured for both the Application Server as well as the Process schedulers. These settings are configured through the PSAPPSRV.CFG and PSPRCS.CFG file respectively. ;=============================================================== ; Settings for SMTP mail ;=============================================================== SMTPServer=SMTP-01<---- name of your SMTP server (this can also be the IP address of the SMTP server) SMTPPort=25 <---- port number for your server (usually will be 25) SMTPServer1=PSP-SMTPG-01 <----- name of backup server (not necessary) SMTPPort1=25 <---- backup server port number SMTPSender=test@test.com <----- Valid email ID format SMTPSourceMachine=pop3.test.com <------ . .com (this can also be the IP address of the machine without the .com) Note: This needs to be the machine name of the server being configured, Application or Process Scheduler, NOT THE NAME OF THE DATABASE YOU ARE CO

How to delete multiple Process Instances at once??

Many users have wanted the ability to delete multiple Process Instances from the Process Monitor without having to look at the details for each and every Process Instance. To use this functionality, navigate to the Process Monitor and select the necessary filters you would like to use. In addition, choose a RUNSTATUS you would like to delete from, and upon doing a refresh, you will notice a change in the looks of the Process Monitor page. Two things should be significantly different: 1) The check boxes next to each Process Instance will have become 'ungreyed' 2) Three Yellow buttons will have become active on the bottom of the screen: DELETE REQUEST, CANCEL REQUEST, and HOLD REQUEST. Attached to this solution are screen shots showing the panel changes. If the described functionality above does not work for you, please consult your PeopleSoft Security Administrator and make sure your PeopleSoft ID has the necessary access to perform the DELETE function. If you are a PeopleSoft

How to delete Process Definition?

To delete Process definition from database, you have to delete in from all the tables given below and it is not possible to do from PeopleSoft's pages/panels. PS_PRCSDEFN PS_PRCSDEFNCNTDIST PS_PRCSDEFNBPNL PS_PRCSDEFNGRP PS_PRCSDEFNXFER PS_PRCSDEFNNOTIFY PS_PRCSDEFNMETA PS_PRCSDEFNMESSAGE PS_PRCSDEFNCOND

How to program the Application Engine to return warning status to process scheduler?

To program the Application Engine to return warning status to process scheduler:- Perform the below to set the AE_APPSTATUS field properly, in order to return the warning status to process scheduler after the AE finish. 1. Create an AET record for your application engine (AE) program if it does not have any, set it as primary state record 2. Add the field AE_APPSTATUS to the primary state record for your application engine program 3. In the AE program, create a peoplecode action, use the below code to set and return the warning status back to process scheduler accordingly. rem set to 1 to return warning, 0 to return success. AET_RECORD.AE_APPSTATUS = 1;

Peoplesoft Error: All Processing Suspended: Restart OPRID=PS, RUNID=RUN01, PI=5000(108,503)

All Processing Suspended: Restart OPRID=PS, RUNID=RUN01, PI=5000(108,503) What is this about and what should be done? This error can occur when Application Engine programs are restartable and run via the Process Scheduler, and the last run was No Success - And an attempt re-run, rather than re-start will produce error as well The cause of this message is that previously this same AE program was run using the same OPRID=PS & RUNID=RUN01. It was not Successful on initial run, and now an attempt to RUN the same program has occurred, instead of an attempt to RESTART the original that failed. Whether this error Happened in Development??? This message happened while the Customer was in Development phase of this AE program. It could have happened when this AE was in Production as well. However, what to do would have completely different emphasis depending on if this happens in Development or Productions. During the development cycle, we would expect that this AE would have to run many tim