|More Application Designer Options||KEVIN RESCHENBERG|
Continuing with the theme from last week,
here are a few more App Designer items that you might be a little less familiar to
some of us.
I've previously written about using "Find In..." to create a file of PeopleCode for
easy searching (see Exporting PeopleCode as text
and Searching PeopleCode). You might
also have noticed a "View" dropdown on the Find In... dialog. This dropdown becomes
available when you select a project name instead of specifying "entire database."
It's pretty important. It doesn't control the way the results are displayed—it actually controls
what is searched. If you specify "development," the search will cover items related
to the objects in the project. For example, if your project contains a record definition,
then all of the record PeopleCode for that record will be searched. If you specify
"upgrade," then only the objects appearing on the Upgrade tab in your project—generally
the objects that were changed—will be searched. This can have a big effect
on the results. It's probably best to use "development" in most cases.
Output window tabs
The Output Window is the area at the bottom of the screen containing tabs called
Build, Find Object References, etc. When you perform an operation that creates output,
the appropriate tab is activated. For example, if you do a Find Object References, that
tab becomes the active one. Have you lost your other output—a Find In... search,
for example? No. The output is still there and you don't need to rerun your search.
Just click on the tab.
If you right-click on a line and select Copy, only that one line will be copied to the
clipboard. To copy multiple lines, highlight them first, right-click on one of the lines,
and select Copy. Note that the one you right-clicked will lose its highlight but it is
Double-clicking on a line in the output will generally cause the selected item to be
opened. Double-click on a line in Find Object References, for example, and that object
will be opened. Double-click on the "SQL build script for all processes written to file"
line in Build and the script will be opened in your text editor.
Insert Objects into Project
An App Designer project can include objects that App Designer doesn't manage.
For example, you can insert a process definition into a project and then
migrate it. Just use the
"Insert Objects into Project..." menu item.
One of the "objects" that you can insert is a file reference. A file reference
is simply a reminder. Use Insert Objects into Project to create one of these reminders.
You will be prompted to choose a file. The file reference will then appear under the
Upgrade view. App Designer does absolutely nothing with these except to hold them
for you as a reminder to migrate a file or run a script. On the Upgrade view, the Action will show
"none" and the Upgrade and Done flags will be disabled.
We set project options under Tools | Options. Be sure to set at least the first
option, "Insert Object into Project," when you create a new project. This specifies
when an object is attached to the project. I use "when object is modified and saved,"
but that's just a personal preference. Likewise, on the second option I prefer
"Do not insert related objects with current object." It doesn't hurt to insert
the related objects (pages related to a component, for example), but remember
that App Designer will assume you want to migrate all those objects—until
you do a compare.
One of the checkboxes at the bottom of this dialog is "Show objects in project." This
is a strange one. It puts a little black diamond next to each object that is actually
part of the project, and not next to the attributes listed under that object.
It seems obvious to me what's part of the project and what's not, so I don't really
understand the purpose of this one.
Open a record definition and click on the Record Type tab. In addition to the
self-explanatory type choices, there is a field called "non-standard SQL table name."
A record definition called MYTABLE will normally be used to create a database
table called PS_MYTABLE. This is what happens if the non-standard name field is
left blank. If you fill it in, that value becomes the name of the table. For
example, if you enter MYTABLE in that field, the database object will be called
MYTABLE instead of PS_MYTABLE. I recently saw a situation in which the developer
needed to create a non-standard name and accomplished it by creating a view
directly within the database to read all of the data from a standard table.
This is the long way around; he could have simply set this field to the
This field can be handy when you are writing SQL against PSRECDEFN. It is either
blank or it gives the true name of the table. You could write a DECODE, CASE
or similar to determine the correct name of the database table.