Professional Documents
Culture Documents
Contents
Introduction
Tool Basics
Handling Multiple Child Collection Rows
Testing/Troubleshooting
2
3
7
14
Introduction
The purpose of this document is to provide basic information about ExcelToCI,
and assistance with troubleshooting problems when using ExcelToCI. Although
there are no prerequisites to using ExcelToCI it is very helpful to have an
understanding of Component Interface (CI) technology. For additional
information on CIs and ExcelToCI see the PeopleTools Component Interface
PeopleBooks. You may also notice that the spreadsheet screenshots are not all
identical, and may look different from your spreadsheet. The reason for this is
that the document was developed and updated over multiple PeopleTools
releases.
Some things to remember:
1. Not all CIs are suitable for ExcelToCI.
2. The SOAPTOCI Peoplecode sets the CI properties in the same order in
which they appear in Application Designer. This will be a problem in cases
where properties need to be set out of sequence in order for Peoplecode
validations to work correctly.
3. Avoid using large complex CIs. However, if you elect to use them, send
them in smaller chunks to avoid running into problems such as timeouts,
and to improve the application server throughput.
4. Ensure that you use a copy of the ExcelToCI workbook found in
<PS_HOME>\excel for the PeopleTools release youre on. Also, make
sure you dont open multiple Excel workbooks at the same time, either
multiple ExcelToCI workbooks or a combination of ExcelToCI workbooks
and other Excel workbooks to avoid seeing strange behavior. Note the
following about the Excel spreadsheet (and macro file).
a. PT 8.49 - ExcelToCI2007.xlsm - Both the spreadsheet and macro are
in a single file. This file was released in the PT 8.49.30 or PT 8.49.31
PeopleTools patch.
b. PT 8.50 and later - Both ExcelToCI2007.xlsm and RelLangMcro.xla
(macro file) are used. Before opening the ExcelToCI spreadsheet,
copy both files to the Excel client machines test/working directory to
avoid errors.
NOTE: The following sections cover some of the available topics, not everything. See the
ExcelToCI documentation in the PeopleSoft Component Interface PeopleTools PeopleBooks
PeopleSoft PeopleTools 8.53 PeopleBook > PeopleSoft Component Interfaces > Using the Excel
To Component Interface Utility)
Tool Basics
Connection Page
Web Server machine name: Provide the web server machine name. If you
created auth token domain, then include it in the name. The name should match
the PIA URL server name (use the same name as when logging into PIA via the
browser), port and site name, and you should be able to log into PIA using the
web server, port and site name used here.
Protocol: Default is http. If you want to use https, ensure that the SSL
certificates are properly installed, including any required client certificates. One
way of testing whether SSL is properly installed is to open a browser and try
logging into PeopleSoft using the https port. If the certificates are invalid, you will
usually get a pop up message indicating possible problems with the certificates.
However, if you clicked Ok to continue in spite of the questionable certificates,
you wont see this popup on subsequent attempts to log into PeopleSoft.
NOTE: The default SSL setting (In WebLogic the setting is Two Way Client Cert
Behavior, and the default setting is 'Client Certs Not Requested') is supported. If
client cert setting is Client certs requested, but not required or more stringent,
uploads from Excel will not work.
HTTP/HTTPS Port: Provide the web servers port number. The default http port
is 80. The default https port is 443. Even though these are the standard defaults,
verify that the port number is correct in the case where the port number does not
3
appear in the PIA login URL because your system administrator can set up the
environment such that even though the port number is resolved without it being
specified when logging into PIA the port number might not be 80 or 443.
Portal: The name of the portal you are using. EMPLOYEE is the default portal
shipped with PeopleSoft.
PeopleSoft Site Name: The PeopleSoft site name that you entered when you
installed the PeopleSoft Internet Architecture. The default is ps. The site name
can be determined from the PIA browser URL, as it is the second field after the
port number in the URL. In sample below it is E910G21U. Also remember this
field is case sensitive.
http://sla.us.oracle.com:8200/psp/E910G21U/EMPLOYEE/HRMS/h/?tab=DEFAULT
Node: The PeopleSoft default local node name. The default is PT_LOCAL. To
determine the default local node name, log into PIA and navigate to PeopleTools
> Integration Broker > Node Definitions. Then press the search button without
providing any search criteria. The default local node will have a 1 in the Local
Node column and a Y in the Default Local Node column.
Language Code: The code for the language that the data is submitted to the
database in and the template is created in. If no language code is specified, the
base language is used.
Chunking Factor: The number of rows of data to be transmitted to the database
at one time. The default is 40. If the CIs being used are large and/or have much
Peoplecode, a smaller value will probably result in better throughput by the
application server. Testing will help determine a suitable value.
Error Threshold: The total number of errors that are permitted before
submission to the database ceases. When the error threshold is exceeded, an
error message appears and submission to the database stops. You should
specify a valid number instead of leaving it blank.
Submit Blanks As Input: This option is available in PT 8.51 and later. When
this option is set to Yes and a character input field selected for input contains only
blank spaces, the field will be included for submission instead of being ignored.
This option is set to No by default, for backwards compatibility. If full-width blank
space Unicode characters are entered as an input value in ExcelToCI, (this is
achieved by using an encoding that supports such Unicode characters) the field
will be submitted, the blanks will be sent, and the value will not be trimmed
before it is saved to the database. If regular ASCII blank spaces (also known as
half-width characters) are entered as a value for a character field, the field will be
submitted, but the value will be trimmed, so an empty string will be saved. In
essence, the field value will be cleared.
2.
Index passed to InsertItem() and Item() methods - The index passed to the
method being used (InsertItem or Item) is always 1. This means that the data
used to initially populate the new row will be taken from the existing row at index
1, even if the existing row is a future dated row. For EFFDT (effective dated
data), if you want to insert at other indexes, see the two solutions below for more
information on how this can be accomplished.
Template Page
New Template: Use this button to download and create a new template based
on a component interface.
Select Input Cell: Use this button to select fields to be included on the Input
page. The selected cells will have a pink background (as shown above).
Include For Submission: Use this button to include a single property to be
included on the Staging and Submission sheet. Properties that use default
values from the template must be included for submission. Cells that are
included for submission generally are properties that contain default values or
properties that you would like to see in the structure of the Staging and
Submission sheet. Properties that are included for submission are highlighted in
6
blue. Determine which fields you want to supply. Then enter the value into each
of these fields on the Template page. These properties and values will show up
on the Staging & Submission page, not the Data Input page.
Insert New Child: Use this button to Copy the selected row to be inserted as a
new child. This creates multiple occurrences of the same record type. For
example, if the selected row has a template identifier of 100, a new row is
inserted that also has an identifier of 100 and is an exact duplicate of the
selected row. If you want to upload multiple collection rows, see the next section,
Handling Multiple Child Collection Rows.
Note. Use Insert New Child when multiple children must be submitted under the same
parent record. Multiple children should not be created at identifier 000.
Complex scenario
Using the above example, suppose we need to be able to have multiple L1
(Roles) and L2 (RouteControls) collections. In this case well just illustrate
inserting two L1 and L2 rows. You will need to use the same technique for
additional rows up to the maximum number of rows you expect to upload. When
uploading, fill in the data for the number of rows from the left side, leaving any
blank rows to the right on the Data Input page.
10
A. Template page
1. Click on column 1 of the highest-level cell (in this case it is the L1 row), and
select Insert New Child. Repeat this for the maximum number of rows you
intend to upload. For this example were going to use three L1 and three L2
child rows, so we need to insert a total of 6 rows. Since theres already one
L2 child row we want to end up with five L1 rows and one L2 row initially, as
shown in the screenshots below.
11
2. Right-click on column 1 of row 21 above, copy and paste (Excel menu) the 310 row
contents into the alternating 300 rows so you have the desired hierarchy, as shown
below. This will allow us to insert up to three L1 collection rows, each with a L2
child row.
3. Press the New Data Input button to create a new Data Input page.
12
B. Data Input page: Note that the hierarchy is flattened and only two L1
rows have data. After entering the data press the Stage Data for
Submission button.
13
C. Staging & Submission page: Note that the third L1 row and its child row
are empty. When the data is uploaded the blank row will not be
submitted*.
* Note: On PT 8.49 and earlier the behavior is as described above (e.g. the
blank row will not be submitted). The 8.50 and 8.51 VB macro code logic
has a modification, which uploads the blank row. This can cause issues in
cases involving collection keys with default values. See Doc 758609.1 and
1288146.1 for additional information.
14
Testing/Troubleshooting
In terms of testing, first test the CIs underlying component online to ensure that it
works properly. Then test the CI using the CI Tester as described in section A
below before testing from ExcelToCI. Its a good idea to use this testing
sequence, especially when developing custom CIs (CIs built from custom or
delivered components). For additional information on developing and testing CIs
see Doc ID 1509602.1 - E-CI: Developing and Testing Component Interfaces
(CIs). This document has helpful information on developing and testing CIs, as
well as links to other related solution documents.
A. CI Tester
1. Open Application Designer in 3-tier (that is through the application servers
WSL port (see screenshots of Configuration Manager below). Note: Prior
to PT 8.48, the WSL process was automatically enabled to run, but in PT
8.48 later, it must be explicitly enabled from the psadmin menu.
15
16
i. Enter the values for the properties in the sequence in which the CI
properties appear. While doing so pay attention the behavior (for
example a value that was accepted by the system (no edit error)
being blanked after some subsequent properties values are
entered).
ii. For the Create Action enter the create keys, press the Create New
button and then enter the other properties values.
iii. For Update, enter the get key values, press the Get Existing button,
and then navigate to collection(s) into which youre inserting new
17
18
for example, first open the CI Tester in application designer, and then
set the above trace bitfield settings to enable tracing.
Allow Dynamic Changes=Y
6. PeopleCode debugger - Test with the PeopleCode debugger if you want
to step through the underlying PeopleCode. For this do the following.
i. Shut down the application server. Reconfigure the domain so that a
PeopleCode debugger application server process is started. Then
restart the application server.
ii. Open application designer in 3-tier through the same application
server.
iii. Open the CI to be tested.
iv. Select Debug > Enter Debug Mode from the menu. Then select
Break at start from the Debug menu selection.
v. Open the CI Tester and begin testing. The debugger will stop at the
first segment of PeopleCode that fires, and you can step through it to
follow the execution path.
B. ExcelToCI
1. ExcelToCI and SOAPTOCI logs Generating/reviewing these two logs
for a transaction is sometimes sufficient to find the source of the problem.
When submitting the data check the Generate Log checkbox as shown
below.
The Generate Log selection causes the following two log files to be
created. Note that a new log file is create each time you submit data.
i. SOAPTOCIxxx.log By default this log is created in the app server's
"files" directory (below the app server domain). The xxx is the
19
timestamp appended to the file name. This log shows the PeopleCode
execution path in the SOAPTOCI application package, and it can help
you quickly determine the cause of the behavior youre seeing.
ii. ExcelToCIxxx.log By default this log is created in users Temp
directory. The xxx is the timestamp appended to the file name. To
determine the location where your Temp directory is mapped to do the
following. On the Excel client machines desktop right-click on the My
Computer icon and select Properties. Then select the Advanced tab
and click on Environment Variables. Locate the Temp (or tmp)
variable mappings (it may be C:\Temp or some other location). A quick
alternative is to open Windows Explorer, enter %Temp% in the address
bar and press the Enter key. This will resolve to your Temp directory
location. This is normally where the ExcelToCIxxx log is placed. This
log simply contains the SOAP format message containing the Excel
data, and is useful in verifying that the uploaded data is the same as in
the Excel spreadsheet.
2. SQL/PeopleCode tracing After submitting the data locate and review
the SOAPTOCI log. If the log does not provide sufficient detail to narrow
down the source of the problem, enable SQL and PeopleCode tracing on
the application server and upload another transaction from Excel with the
Generate Log checkbox checked.
3. Comparing ExcelToCI to CI Tester results If the results from
ExcelToCI are different from those using CI Tester, test using CI Tester (in
3-tier) using the same values as from Excel with PeopleCode and SQL
tracing enabled on the application server. Save the trace file and then run
another transaction using ExcelToCI (with PeopleCode and SQL tracing
enabled on the application server). Save the second trace file. Compare
the execution path and values in the two trace files.
4. Debug from VBA - In some cases (for example, where values are not
being correctly handled in Excel, or other Excel related processing), you
can step through the VBA code to try and pin point the source of the
problem. To step through the VB code do the following:
i. From Excel, press Alt-F11 to open the VB Editor.
ii. Locate an appropriate location/line of code for the
Breakpoint, and press F9 to enable the Breakpoint (press F9
to disable it as well). Save the setting in VB.
iii. Go back to Excel, and perform the operation (such as submit
the data) to hit the VB Breakpoint you set above. Then step
20
C. Additional information/resources
1.
21
22
23
a signed number) will result in a No key match found error because the
SOAPTOCI libraries perform a string comparison of the incoming value to
the value in the database. For example, suppose a key value of 0.01 is
uploaded. When the Excel key value is compared to the value in the
database (.01), the comparison will fail, resulting in the above error. If you
still want to use such as key, you will need to customize the processing
PeopleCode so the match is based on the value (and the strings match).
One way of doing this would be to strip off the leading zero using one of
the PeopleCode Built-In functions.
9.
24