Presentation Object Scanner

Overall many awkward sentences. Parts should be rewritten for ease of reading.

The purpose of the Presentation Object Scanner is to create the Repository used by the Presentation Object Security concept. The Repository is to be seen as the "map" over the client-server interaction in the system. This information could have been manually created, there are regular forms for managing the Repository that could have been used. However, to simplify this process, the Scan Tool can search source code for this information and insert it into the Repository (the database), thus avoiding a lot of manual work.

Contents

Scanning

The scanning is a two-step process.


The first step is to scan the source files/reports and store all found database objects in a build storage. This storage is allowed to contain redundant information due to performance issues. Therefore a second step is needed to remove redundancies and to transfer valid information to the actual repository.

The Scanner is able to scan Application Forms files (.cs/.resx/.xml) and Web pages and Portlets (.java). It can also scan the database for installed reports. For any other client type, the presentation objects must be manually registered.

Suggest rewrite of following lengthy piece and perhaps breaking out the verification steps.

The Scanner will find approximately 99% of the database objects. In most common cases the tool will find all database objects, but for more advanced client code constructions, there is a probability that the tool will miss some client/server call. The Scan Tool can create two different logs of warnings, one scan log and one transfer log. Examples of log entries are for instance when incomplete database objects have been skipped (scan log) or when a view not installed in the database has not been transferred to the repository (transfer log). The repository is a very important part of the systems and must contain all information about presentation objects and there database objects. grammar The logs are a help to further increase the possibility of getting a 100% correct repository.  Still it is possible that some information is missed by the Scan Tool. Therefore it is important to verify the contents of the repository. The easiest way is to use the Solution Manager, grant the presentation object to a test role containing only this presentation object and verify that the user can use the whole interface. If a database object is missing, the security mechanism will throw an exception or the user will be unable to reach a certain function. Note that the user should be granted the test role and a role with the Foundation1 Runtime Grants, normally FND_NORMAL.

The first step in the scanning process is to select the component you want to work with. This is done in the Select Component reference box. You can just type the name of the component (example: DEMORD) or use list of values. Afterwards, you select the files that should be scanned. Use the link Add Folder (to add all scanable files in a folder and its sub folders) or Add Files. If necessary Delete and Delete All. If reports are to be scanned, go to the Reports tab and select the reports. Having the component.xml file added using Add Files option will result in scanning window registrations and dynamic tab registrations.

When this is done you start the scan process by pressing the Start Scanning link. The scanning could generate warnings, logged in the Scan Log, if finding something it can not handle or evaluate. grammar For descriptions of the warnings, see  Warnings in the Scan Log below.

Figure 1: Presentation object scanning feature.

figure text missing

Click the View Scan Results link to view the results of the scan.

When the scanning is finished, the information will be stored in the build storage. Transfer the data to the live repository by pressing the Transfer Scan Results to Live Repository link. Having the Transfer Static Items option checked will make sure that unscanable items, listed in a special storage, are transferred and included to the repository. Until this step is performed the information will not be present in the repository and will not be "active", nor take part in an export. When performing the transfer, a Transfer Log could be created if some database objects could not be transferred to the repository. This would occur if some of the database objects that the Scan Tool has found did not exist in the database. The three most common reasons for this are:

Note: Database object in a few packages in the framework will never be transferred to the repository. Their packages would cause internal deadlocks if administrated through the normal security administration since they themselves are involved in this administration. The packages concerned are: FND_USER_API, FND_SESSION_API, SECURITY_SYS, PRES_OBJECT_UTIL_API and PRES_OBJECT_GRANT_API. End user grants to these packages are handled in the script Foundation1 Runtime Grant.sql. Warnings about methods in these packages could thus be ignored here.

After the transfer it is recommended to verify the contents of the repository in the IFS/ Solution Manager/ Administration/ Security/ Presentation Objects (See Manage Presentation Objects )
 

Warnings in the Scan Log

The log generated can contain the following different types of warnings.

Warning Description
Could not open file frmDemoCompany.cs The Scan Tool could not open the file. For example, the file could have been deleted on disk after it was added to the list of files that are to be scanned.
The Presentation Object frmDemoCompany lacked a description. The Scan Tool has generated the default description Demo Company instead.

 

Since no description was found, Scan Tool generated one instead based on the name of the Presentation Object. If this name is accepted, no change of the repository is necessary. However, this indicates that a description should be added to this form in the source file. It is the attribute "Text" that is missing for the Application Form.
An incomplete database object Demo_Company_API. was discovered for frmDemoCompany. Complete it and add it manually. Only part of the name of the database object has been found which indicates a code construction that the Scan Tool can not interpret. Change the construction in the sourcefile and rescan or add the database object manually into the repository.
An incomplete dependency was found:  ---> frmDemoCompany The Scan Tool found a dependency, but it could not be resolved completely and was not added. The most common reason for this warning is that variables containing form names have been used instead of the actual form names as strings when calling functions. Example of functions scanned for is Sal.ModalDialog(). Investigate this manually and add the dependency to the repository if necessary or change the source code if possible and rescan the file.
Report method is missing for repDemoCompany. If a method should exist, add it manually Reports are scanned by investigating the view comments for the report view. If a report method is stated in the view comments, the report will show up in the report order dialog within IFS/InfoServices. However if a method is not stated, the report will not show up in the report order dialog but it will still be possible to run the report by ordering it explicitely from some client. This design feature sometimes makes it impossible for Scan Tool to find the report method and connect it to the report. If such a method should be connected to the report, it will have to be added manually to the repository.

Export

When the repository is verified you can create an export file of the repository. The function can be reached from the Export link in the scanner. You can export the repository to a script file. Note that it is only the information in the repository that will be a part of the export and newly scanned objects has to be transferred from the build storage to the repository before they will be included in an export.

Reset

The Reset link removes all Presentation Objects stored for the selected module. Optionally it is possible to remove only the automatically (by the Scan Tool) created objects. Dialogs asking for what action to take will appear.

The above dialog will be followed by the following confirmation dialog where you can proceed with the reset or cancel the reset.

 

URL Parameters

URL Protocol: Ifswin:Ifs.Application.PresentationObject.Scanner

Parameters:

component=
Which component (ex: appsrv)

sourcefilepath=
Start path to use when the user selects Add files.

files=
A number of files to pre-select. If any file is missing, just ignore it.

Example: Ifswin:Ifs.Application.PresentationObject.Scanner?Component=ORDER&sourcefilepath=D:\Project\components\order\source\order\client