Posts

Showing posts from 2012

Generating Component Interface APIs

Image
Build Peoplesoft JAVA API: 1.        Open the PeopleSoft Application Designer. 2.        From the PeopleSoft Application Designer, open a component interface. 3.         Click the right pane and select  PeopleSoft APIs  from the Build menu. ( Before using your component interface, you must apply security to it and test it.) 4.       The Build PeopleSoft API Bindings dialog box prompts you for the types of bindings to create. Ensure you deselect COM Type Library Build, because you are creating Java files. To create APIs for a specific component interface or interfaces, click None. This clears the selected APIs, so you can select the appropriate APIs for your component interface. These APIs begin with the name of your component interface. In addition to the APIs for the selected component interface, you also must generate the API files for the following generic component interface properties: CompIntfcPropertyInfo CompIntfcPropertyInfoCollect

Java API - Unable to get the Component Interface

Performing the GET call on the  component interface using a Java client fails, despite all security being set correctly. In this case you would be able to do GET  using the CI tester in three tier, which indicates that security is not the issue.   The problem here was that the package structure of the API classes got changed from PeopleSoft.Generated.CompInfc to myNewpackage.Test.peoplesoft.   If you change the package structure of the API classes in anyway, e.g., you create different folder names other than what is generated during the API build, the Session object which controls all access, security, and errorLoging, will be unable to find the CI interfaces. The underlying JOA layer expects the following package structure:"PeopleSoft.Generated". The PeopleSoft Package structure should not be altered in either the directory structure or through the use of the package statement in the java classes.

Error when trying to access to the CI initially (for example, when opening the CI Tester in Application Designer) .

a) Log into PIA (PeopleSoft Internet Architecture) via the browser, and navigate to PeopleTools > Security > Permission Lists.   b) Open the appropriate permission list.   c) Click on the Component Interface tab and enter the CI name.   d) Then click on the Edit link and add access to the CI's methods. Then click Ok.   e) Save the change on the permission list page.   f)  Test access to the CI again. In some cases you may need to delete the appropriate cache for the change to take effect.  

Peoplesoft SFTP

Image
Transferring a file using SFTP to specified target location: (Thanks to Jawahar who helped me in this article) A lot has been mentioned about sFTP support in PT 8.51. Below gives clear idea on SFTP. Are there any specific pre-requirements for using file transfer protocols? Yes. Though FTP can be used directly by giving the URL as a string to the peoplecode method, other protocols (ftps, sftp, http and https) require the URL to be passed as a URL identifier only. When an URL identifier is created, URL properties link on the page gets enabled. Users need to provide the URL properties specific to the protocol they are using on this "URL properties" page. The URL properties differ based on the protocol choosen. Once URL Identifier is ready, it can be used in any of the file attachment peoplecode methods just like the existing way.   What are the authentication methods supported for sftp? Password and Public Key authentication are supported.

Consume a 3rd party web services in PeopleTools 8.50 +

Image
Consume a 3rd party web service: Navigate to Main Menu -> PeopleTools -> Integration Broker -> Web Serives -> Consume Webservices There are various Delivered steps involved: 1) Input the 3rd Party WSDL: (Here we tested with : http://www.gama-system.com/webservices/servertime.asmx?WSDL ) (Ensure that you uncheck Build Document Messages if u r going to use non rowset messages) Refer:  Build Document Messages 2) Click on Next and Check related WSDL Service 3) Select Appropriate Service with relevant Port  4) Click on Service Operation we are going to use 5) Click on Next 6) Click on Next 7) click on Finish 8) Click on View Consumed Service or Navigate to Main Menu -> PeopleTools -> Integration Broker ->Integration Setup -> Services 9) Click on Service Operation (GETDATE) 10) Provide Appropriate Security (Permission List) by clicking Service Operation Security Use Below Code to invoke the Service Operation Thr

Build Document Messages while Consuming Webservice

Image
For any tools version greater than 8.50, while consuming web services (in first page) we can see one Option ‘Build Document Messages’. This option is checked by Default.  Use this to build document type messages for the consumed service. Clear the box to build nonrowset-based messages for the consumed service.

XML Parser error CreateXmlDoc (159,5)

Image
When we try to test input message (request XML) using service operation tester we faced below error. The same XML worked in SOAPUI successfully. The we realized we need to add <?xml version="1.0" ?>  before the XML request. Then we got the appropriate response.

Information about Application Engine Program Type 'Import-Only'

What is 'Import Only' Program Type in Application Engine ? This is a specific program type, that only get set when your generated an Application Engine program from a File Layout. This is a program type for a simple peoplesoft import job only. After the Application Engine program was generated or modified, it is recommended to change the type back to Normal, not using the 'Import only'.  But so far, we don't see any big difference for sample File layout import job when using this Application Engine program type and the Normal type. Does it affect commit points, and if so, how? No, it work the same as Normal Application Engine program type. How would a program inserting rows into a table, and reading them from a flat file be affected? As explained earlier, this program type is only set when using File Layout to generated AE automatically in app designer, the generated AE should be strictly used from this purpose, it would affect the other program.

Application Engine Using Exec() Function in PeopleCode Step Fails with Think-Time Error

There are Restrictions on Use of the Exec() Funtion in PeopleCode Events - and there is also a Restriction in Application Engine (AE) programs.  This is based on whether the execute of the external program is Synchronous, or Asynchronous.   If Asynchronous execution is selected - the execution is not 'tied' directly to the continuing execution of the running AE program, so no Think-time error results from this choice. With Synchronous execution it is different - the AE program will wait for the exectution of the command before continuing with the current process.  In order for this to work with no error - a Commit has to happen before the Exec takes place. If the AE was written to be Restartable, then just make sure that the previous step has been committed before the step with the Exec.  And if the AE has the Disable Restart checked, then a CommitWork() will need to be inserted into the PeopleCode step, so that this Commit takes place. Once a commit has been done, th

How to Make a Private PeopleSoft Query to Public using Update SQL:

The difference between a public PeopleSoft query and a private PeopleSoft query is the population of the OPRID field on the following tables: PSQRYDEFN PSQRYSELECT PSQRYRECORD PSQRYFIELD Update Statements Below: UPDATE PSQRYDEFN SET OPRID = '' WHERE QRYNAME = 'QUERY_NAME'; UPDATE PSQRYSELECT SET OPRID = '' WHERE QRYNAME = ' QUERY_NAME'; UPDATE PSQRYRECORD SET OPRID = '' WHERE QRYNAME = ' QUERY_NAME'; UPDATE PSQRYFIELD SET OPRID = '' WHERE QRYNAME = ' QUERY_NAME';

How to set SyncServiceTimeout in Peoplecode

The correct syntax is "&msg.IBInfo.SyncServiceTimeout = 360000". The sample code that should work is: &msg = CreateMessage(Operation.PROCESS, %IntBroker_Request); &msg.SetXmlDoc(&xml); &ret = &msg.IBInfo.LoadConnectorPropFromRouting("~GENERATED~12752769"); &msg.IBInfo.SyncServiceTimeout = 360000; &msg.IBInfo.ConnectorOverride = True; &msg_Resp = &msg.SyncRequest(Node.BPEL); &xmlResponseDoc = &msg.GetXmlDoc();

How to Migrate Integration Broker Definitions

Managed definitions - services, service operations, service operations handlers, service operations routings, messages and message queues - can be inserted into a project within Application Designer and copied to a file for later migration to another database using copy from file.   Copying a routing requires that  the sending and receiving nodes are defined on the target database. If they are not defined on the target database, you must include the message node in the project. An exception to this is the local default node. During project copy, any routing referencing the local default node will be modified to reference the default local node of the target system.   For pre-8.50 tools release:     WSDL and Schema are nonmanaged definitions and hence use the delivered Datamover scripts   to export/import these definitions.   In 8.50+ tools release WSDL and Schema are managed definitions and can be migrated using Project Copy.   Prior to creating and copying the project and

Passing session id (which we got from Login Operation) to other operations (like Insert/Update…etc)

We know how to consume (any) webservices in Peoplesoft. But there may be some scenario like below. We got one webservice from third party and we consumed successfully. Now we need to invoke each operations in the service Like Login/Isvalid/Insert/Update. We are able to successfully invoke login which results session id. We need to pass session id to invoke other operations. Like passing to Set-Cookievalue in HTTP header. (In Java there is some option Like SESSION_MAINTAIN_PROPERTY). We tried below and worked successfully. Put the below code in other operations before getting response. &lmsgGoRequest.IBInfo.IBConnectorInfo.Cookies = &sessid;