Correcting the Transaction Detail Report (XML Publisher)

Submitting the Transaction Detail Report to Run

  1. Log on as user sysadmin on TEST (illuminat on PROD).
  1. Choose Receivables Superuser responsibility (Receivables Supervisor on PROD)
  1. Choose Requests Submit, and then Single Request.
  1. Enter tr%det% in the Name field and press tab. The report ‘Transaction Detail Report appears in the field.
  1. Enter Transaction Number Low: 10050 Transaction Number High: 10060
  1. Under Upon Completion, click the Options button.
  1. Under Template Name, change FORMAT2 to TEMP. Click OK.
  1. Click Submit.
  1. The report is submitted. Click the Refresh Data button continuously to update the display.

Template Location

The XML template that is being updated is located in the Public folder (project_folder) on x.x.x.x. If you cannot log on to this server, use applmgr/applmgr as the username and password.

Navigate to the ARSetupXML folder. The report that is being modified is the Transaction Detail Report.rtf. This file was copied to TDR1 VS.rtf, which is being modified.

Registering the Template

To register the RTF file as an XML template in Oracle Applications (OA), you must set up a Data Definition and then a Template. To set up a Data Definition:

  1. Log on as user sysadmin on TEST
  1. Choose XML Publisher Administrator
  1. Navigate to Data Definitions.
  1. To list the current data definitions, under Search, enter Receivables in the Application field, and then click Go.
  1. To enter a new Data Definition, click the Create Data Definitions button.
  1. The four mandatory fields are Name, Application, Code and Start Date.
Name Enter any name you choose
Application Receivables
Code Any name you choose
Start Date Today’s Date
  1. On completion, click Apply.

Next, a template must be set up. To create a new template, follow these steps:

  1. Click on Templates, and then click Create Template.
  1. The six mandatory fields are Name, Application, Type, Code, Data Definition and Start Date.
Name Enter any name you choose
Application Receivables
Type RTF
Code Any name you choose
Data Definition The name of the data definition enter in the above steps
Start Date Today’s Date
  1. A Template File can be entered now. All fields are mandatory:
File Click the Browse button and choose ARSetupXML TDR1 VS.rtf from the Public folder
Language English
Territory United States

Updating the Registered Template

  1. In XML Publisher Administrator, click on Templates.
  1. Enter ‘Receivables’ in the Application field.
  1. Click Go.
  1. The list of templates registered under Receivables is displayed. Click on TEMP.
  1. To update the template after any changes were made, click on the Update template icon (the Pencil) under Update.
  1. Click Browse and choose ARSetupXML TDR1 VS.rtf from the Public folder. Then click Apply.

Disabling a Template

To disable a template, set the End Date to a date (such as the Start Date). To restore the template, list all template where ACTIVE = NO. Then remove the End Date.

Troubleshooting Method

When the report was submitted, it completed with a warning. The message in the log stated:

+————- 1) PUBLISH ————-+

Beginning post-processing of request 264770 on node ERPTEST at 29-MAY-2006 10:34:20.

Post-processing of request 264770 failed at 29-MAY-2006 10:34:20 with the error message:

One or more post-processing actions failed. Consult the OPP service log for details.

+————————————–+

To view the OPP service log, OPP must be accessed from the Oracle Applications Manager.

  1. Logon to Oracle Applications Manager in TEST.
  1. Ensure that Application Services is selected, and then click Go.
  1. Click Output Post Processor.
  1. Click Output Post Processor again.
  1. Click Log.

This is the OPP service log. The following was noted:

Caused by: oracle.xdo.parser.v2.XPathException: Unknown expression at EOF: .//for each:G_LINES.

at oracle.xdo.parser.v2.XSLProcessor.reportException(XSLProcessor.java:782)

at oracle.xdo.parser.v2.XSLProcessor.newXSLStylesheet(XSLProcessor.java:564)

… 15 more

From this log, there was an error with G_LINES. It should have been for‑each:G_LINES. Therefore, this would be the starting point to resolve this problem.

To fix this file, a working XML template file, “Revised UTT Invoice V3 (file 1).rtf”, was opened and compared to the “TDR1 VS.rtf” file (file 2). The tags were meticulously compared, together with the XML source, “XML Transaction Detail Report.xml”.

Changes Made

  1. The group tags were checked to ensure that they had ‘for-each’ and not ‘for each’.
  1. The header consisted of an images and text grouped together. This was replaced with a single header image (as file 1 had it).
  1. The text was being shifted in the output report. Tables were used instead of tabs to keep the text formatted.

Refer to the Oracle® XML Publisher User’s Guide, which is located in the Public folder, under the “User Manualsxml” folder in the file XML Publisher.pdf.

Configuring NetMeeting

Step 1:        From the Command Prompt or the Run dialog box, enter conf.

Step 2:        The Windows NetMeeting loads.

Step 3:        Enter the user’s first name, last name and email address. Under the Security tab, check both checkboxes to encrypt incoming and outgoing calls.

Step 4:        To dial in, click the Place Call button. In the Place a Call dialog box, enter the server to call in the To field. This is either oracleserver or oraclesrv.

Step 5:        Enter the following information:

Username: applmgr
Password: applmgr
Domain: domainname

Reconciliation Open Interface

On Test environment:

Prerequisites to Using the Reconciliation Open Interface

  • Check the Use Reconciliation Open Interface check box in the System Parameters window. Setting Up 2 – 35
  • Define Open Interface Float Status and Open Interface Cleared Status in system parameters.
  • Customize the Reconciliation Open Interface package and view. The Reconciliation Open Interface objects include the following view and package, which you would have customized to work in your environment:
  • CE_999_INTERFACE_V (view) – cev999in.sql (physical file)
  • CE_999_PKG (package) – ceab999s.pls (physical file) – ceab999b.pls (physical file)

To enable the Use Reconciliation Open Interface checkbox:

  1. Choose Cash Management Superuser responsibility
  1. From the Navigator, choose Setup > System > System Parameters
  1. Check the Use Reconciliation Open Interface checkbox
  1. Click the Open Interface tab. Under Open Interface Status Code, enter into the following fields:
    • Float Status: Negotiable
    • Clear Status: Reconciled

Most likely, the CE_999_INTERFACE_V view already exists within the system. However, the CE_999_INTERFACE table does NOT exist. It must be created as follows:

CREATE TABLE CE.CE_999_INTERFACE AS SELECT * FROM APPS.CE_999_INTERFACE_V;
CREATE VIEW CE.CE_999_INTERFACE_V AS SELECT * FROM CE.CE_999_INTERFACE;
CREATE SYNONYM APPS.CE_999_INTERFACE FOR CE.CE_999_INTERFACE;
CREATE SYNONYM APPS.CE_999_INTERFACE_V FOR CE.CE_999_INTERFACE_V;

Then grant privileges on the table CE_999_INTERFACE:

Grant select, insert, update, delete, index, references, alter on CE_999_INTERFACE to public;
col grantee format a8
col grantor format a8
select * from dba_tab_privs
where table_name = 'CE_999_INTERFACE';

You may be required to rename OR delete the view in APPS with the same name:

RENAME CE_999_INTERFACE_V TO CE_999_INTERFACE_VS;
DROP VIEW APPS.CE_999_INTERFACE_V;

To validate views with status ‘INVALID’:

ALTER VIEW CE_999_RECONCILED_V COMPILE;
ALTER VIEW CE_999_REVERSAL_V COMPILE;

In order to recreate the original view APPS.CE_999_INTERFACE_V, see the file $CE_TOP/admin/odf/cevw.odf. You may be required to reconstruct the SQL code from that given in this file.

The CE_999_INTERFACE table seems to have been deleted. The script that was used to create the table must be rerun. To find this table, check the Stage11510 folder to locate the file:

mkdir ~/ce
for i in `find /emcb/Stage11510/oraApps/ -iname 'ce*'`; do cp $i ~/ce/; done
  1. Cash Management Superuser
  1. View > Available Transactions
  1. Bank Statements > Manual Clearing > Clearing Transactions
  1. In the Find Transactions form, choose an Account Number for Recurrent Account (1429625Rec).

On Production:

  1. Cash Management Manager
  1. View > Available Transactions
  1. Bank Statements > Manual Clearing > Clear Transactions

The CE_999_INTERFACE_V view should already have been created in the database when the database was set up.

To see the contents of the DBA_OBJECTS view:

Col owner format a6
Col object_name format a30
SELECT
OWNER,
OBJECT_NAME,
OBJECT_TYPE,
CREATED,
STATUS
FROM
DBA_OBJECTS
WHERE
OBJECT_NAME LIKE ‘CE_999%’
;

To see the contents of the DBA_SYNONYMS view:

SET LINESIZE 150
SELECT
OWNER,
SYNONYM_NAME,
TABLE_OWNER,
TABLE_NAME
FROM
DBA_SYNONYMS
WHERE
SYNONYM_NAME LIKE ‘CE_999%’
;

To see the contents of the DBA_VIEWS view:

SET LONG 800
SET LINESIZE 800
SET LONGCHUNKSIZE 800
SET WRAP OFF
SELECT
OWNER,
VIEW_NAME,
TEXT
FROM
DBA_VIEWS
WHERE
VIEW_NAME = ‘CE_999_INTERFACE_V’
;

To troubleshoot any problems viewing data in the application, the CE_999_TRANSACTIONS_V view must be analyzed. Specifically, the WHERE clause must be examined to determine if all criteria are met.

One of the views in the FROM clause is the AP_BANK_ACCOUNTS. The AP_BANK_ACCOUNTS view needs the CLIENT_INFO variable set in SQL*Plus to view the data in this view. To view the value of this variable, enter:

SELECT USERENV (‘CLIENT_INFO’) FROM DUAL;
OR
SELECT SYS_CONTEXT ('USERENV', 'CLIENT_INFO') FROM DUAL;

To set this parameter, use the DBMS_APPLICATION_INFO package:

EXEC DBMS_APPLICATION_INFO.SET_CLIENT_INFO (‘102’);

By removing all lines from the WHERE clause of then gradually adding them back one at a time in a SQL query, it was determined where the problem occurred. The last line of the WHERE clause was with the Transaction Date and only when this line was added was no rows returned.

Cloning Multi Node To Single Node

This document briefly outlines the procedure for cloning an 11i multi node instance to a single node instance.

Assumptions
1. SOURCE Instance is split on 2 NODES:
SOURCE DB NODE – Both APPS and DB services installed on 1st Server
Application tier services are shut down
SOURCE APPS NODE – Both APPS and DB services installed on 2nd Server
Application tier services are started
2. TARGET instance is to be a single node (may be a new machine or one of the above)

Summary

Shut down the apps server
Start all services on db server
Run autoconfig to convert to instance to a single node
Run the preclone perl scripts
Copy files to new location
Convert source to 2 nodes by running autoconfig
Run clone scripts on Target

Cloning SOURCE Instance

1. Refer to the latest version of the cloning documentation on Metalink (Metalink Doc ID: 230672.1) to determine which patches to apply before cloning.

2. Shutdown the application server by running the adstpall.sh script:
cd /oraprod/oracle/prodcomn/admin/scripts/PROD_finsvr/
./adstpall.sh apps/apps

Log off source APPS node
Log on source DB node

Make multi node a single node to begin cloning.
1. cd /oraprod/oracle/prodcomn/admin/scripts/PROD_finsvr

2. Start all application services on database Source DB Node using adstrtal.sh:
cd /oraprod/oracle/prodcomn/admin/scripts/PROD_finsvr
./adstrtal.sh apps/apps

Even though the listener and concurrent manager are the only services started on PROD, you will need to ensure that you start ALL services. Verify that the Concurrent Manager is up.

3. Run autoconfig:
cd /oraprod/oracle/prodcomn/admin/scripts/PROD_finsvr
./adautocfg.sh

Read prompt carefully, choosing default responses where possible.

Migrating to AutoConfig on the Source DB Node (necessary only if a new rapid clone patch is applied).

4. cd /oraprod/oracle/prodappl/ad/11.5.0/bin (that is, $AD_TOP/bin)

Create appsutil.zip file:
perl admkappsutil.pl

appsutil.zip created in $APPL_TOP/admin/out

On the database tier (finmgr), copy or FTP the appsutil.zip file to the RDBMS_ORACLE_HOME.

5. Copy file appsutil.zip to /oraprod/oracle/proddb/9.2.0/*
unzip -o appsutil.zip

Generate and Apply AutoConfig Configuration files
This step performs the conversion to AutoConfig. Once completed, the previous configuration will not be available. The database server and the database listener must remain available during the AutoConfig run. All other database tier services should be shut down.

Warning: Running AutoConfig on the database node will update the RDBMS network listener file. Save the listener file before you run autoconfig.

7. Change directory to RDBMS_ORACLE_HOME/appsutil/bin
cd /oraprod/oracle/proddb/9.2.0/appsutil/bin

adconfig.sh contextfile=PROD_finmgr.xml appspass=apps*

8. Prepare the source system database tier for cloning
cd /oraprod/oracle/proddb/9.2.0/appsutil/scripts/PROD_finmgr (that is, $RBDMS_ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME
perl adpreclone.pl db Tier

9. Prepare the source system application tier for cloning
cd /oraprod/oracle/prodcomn/admin/scripts/PROD_finmgr (that is, $COMMON_TOP/admin/scripts/$CONTEXT_NAME)
perl adpreclone appsTier

10. Stop all services (DB and APPS)
cd /oraprod/oracle/prodcomn/admin/scripts/PROD_finmgr/
./adstpall.sh apps/apps
Shutdown database listener (addlnctl.sh stop apps/apps)
Shutdown database (addbctl.sh stop apps/apps)
Or run the stopDB script in /oraprod/scripts (doing so will attempt to shut the services again)

11. Copy files
Create the respective folders on target node:
clondb
clondata
clonora
clonappl
cloncomn

Copy the files from Source DB Node to Target Node. As root user, mount source node on target Node by editing /etc/exports on target node and adding the line where the source files are located (i.e. /oraprod/oracle).

Then restart NFS on the target server by entering the following command at the command prompt (as root user):
service nfs restart

12. On the target node (that is, where the clone is being created), do the following:
a. su – applmgr
b. cd /orapatch (new clone top directory)
c. mkdir prodfiles (where we want the files copied to)
d. su – root
e. Mount SOURCE directory onto TARGET directory
f. Copy the files using the operating system utilities

May need to ensure that the owner name and group of target directories are applmgr and dba respectively and not nfsmount.

To convert from single node to multi node:

Run autoconfig on Source Apps Node to make Source Instance 2 Node.

When a report is run on the target instance we get an error: “File server could not verify its initialization parameters when viewing output”. Patch 4244610 was applied, but this did not resolve the issue.

Removed spaces from listener.ora file in /orapatch/oracle/clonora/8.0.6/network/admin/clon_newtest/listener.ora. Removed all spaces near the APPLFSTT parameter. Removed everything and left reference to database alone. Bounce listener.

To change color and name, go to SysAdmin/ Security/Profile/System, under profile %Site%, change Site Name to new name. To change color, navigate to profile %Color% JavaColorScheme and Service:Visual Attributes for Settings where the colour can also be changed.

Setting Up Oracle Alerts To Send Email Notifications

This document shows how to set up Oracle Alerts to send email notifications.

1. Navigate to Alerts and enter the following information:

Application: Application Object Library
Description: Send email Notification
Name: Send Email Notification

Under Periodic > Periodic Details
Frequency: Every N Calendar Days
Days: 1
Start Time: 07:00:00
End Time: 18:00:00
Check Interval: 00:30:00

Keep: 2 Days
End Date:

Select Statement:

select w.notification_id,
w. group_id,
w.message_type,
w.message_name,
rtrim(f.email_address),
substr(f.description,1,30) name,
w.to_user,
substr(w.subject,1,100) message_text
INTO
&notification_id,
&group_id,
&message_type,
&message_name,
&email_address,
&name,
&to_user,
&message_text
from
wf_notifications w,
fnd_user f
where
w.recipient_role = f.user_name and
w.status=’OPEN’ and
trunc(begin_date) = trunc(sysdate)

2. Click the Actions button.

3. Enter the following information:

Actions – Send Email Notification
Action Name: Email User
Description: Send User an email
Action Level: Detail

Action Details – Email User

To: &EMAIL_ADDRESS
Subject: PROD NOTIFICATION:&NOTIFICATION_ID – &MESSAGE_TYPE – &MESSAGE_NAME

Select Text.

Enter the following text into the textbox:

&NAME

Please log in to Oracle Applications and check your Notifications. &MESSAGE_TEXT

Link to Oracle:
http://appsserver.serverdomain.com:8000/OA_HTML/US/ICXINDEX.htm

This is an unattended messaging system. Please do NOT respond to this email.

Oracle Applications

4. Action Sets – Send Email Notification

Seq: 1
Action Set Name: Email Notification
Suppress Duplicates:
Enable:

5. Alert Details – Send Email Notification

Under the Outputs tab:

Output Name: NOTIFICATION_ID
Description: NOTIFICATION_ID
Detail:
Summary:

Output Name: GROUP_ID
Description: GROUP_ID
Detail:
Summary:

Output Name: MESSAGE_TYPE
Description: MESSAGE_TYPE
Detail:
Summary:

Output Name: MESSAGE_NAME
Description: MESSAGE_NAME
Detail:
Summary:

Output Name: EMAIL_ADDRESS
Description: EMAIL_ADDRESS
Detail:
Summary:

Output Name: NAME
Description: NAME
Detail: 40
Summary: 40

Output Name: TO_USER
Description: TO_USER
Detail:
Summary:

Output Name: MESSAGE_TEXT
Description: MESSAGE_TEXT
Detail: 150
Summary: 150

Setting Up Cash Management Open Interface

In SQL*Plus, execute script ce_999_int.sql as user apps to create the interface table.
Ensure that the view was not changed before running script.
After running script, ensure that there are no invalid objects for owner CE.

#ce_999_int.sql
 create table ce.CE_999_INTERFACE
 (
 TRX_ID Number(15) unique,
 BANK_ACCOUNT_ID NUMBER(15) not null,
 TRX_TYPE VARCHAR2(20) not null,
 TRX_TYPE_DSP VARCHAR2(80) not null,
 TRX_DATE DATE not null,
 CURRENCY_CODE VARCHAR2(15) not null,
 STATUS VARCHAR2(15) not null,
 STATUS_DSP VARCHAR2(80) not null,
 AMOUNT NUMBER(17,2) not null,
 GL_DATE DATE not null,
 CREATION_DATE DATE not null,
 CREATED_BY NUMBER(15) not null,
 LAST_UPDATE_DATE DATE not null,
 LAST_UPDATED_BY NUMBER(15) not null,
 TRX_NUMBER VARCHAR2(15),
 EXCHANGE_RATE_TYPE VARCHAR2(30),
 EXCHANGE_RATE_DATE DATE,
 EXCHANGE_RATE NUMBER(17,2),
 CLEARED_AMOUNT NUMBER(17,2),
 CHARGES_AMOUNT NUMBER(17,2),
 ERROR_AMOUNT NUMBER(17,2),
 ACCTD_AMOUNT NUMBER(17,2),
 ACCTD_CLEARED_AMOUNT NUMBER(17,2),
 ACCTD_CHARGES_AMOUNT NUMBER(17,2),
 ACCTD_ERROR_AMOUNT NUMBER(17,2),
 CLEARED_DATE DATE
 )
 /
create or replace view apps.CE_999_INTERFACE_V
 as select
 ROWID ROW_ID,
 TRX_ID,
 BANK_ACCOUNT_ID,
 TRX_TYPE,
 TRX_TYPE_DSP,
 TRX_NUMBER,
 TRX_DATE,
 CURRENCY_CODE,
 STATUS,
 STATUS_DSP,
 AMOUNT,
 GL_DATE,
 CREATION_DATE,
 CREATED_BY,
 LAST_UPDATE_DATE,
 LAST_UPDATED_BY,
 EXCHANGE_RATE_TYPE,
 EXCHANGE_RATE_DATE,
 EXCHANGE_RATE,
 CLEARED_AMOUNT,
 CHARGES_AMOUNT,
 ERROR_AMOUNT,
 ACCTD_AMOUNT,
 ACCTD_CLEARED_AMOUNT,
 ACCTD_CHARGES_AMOUNT,
 ACCTD_ERROR_AMOUNT,
 CLEARED_DATE
 from CE.CE_999_INTERFACE
 /
 accept database char prompt 'Enter database to connect to: '
 connect apps/apps@&database
 rem compile all invalid database objects
 alter view CE_999_RECONCILED_V compile
 /
 alter view CE_999_TRANSACTIONS_V compile
 /
 alter view CE_AVAILABLE_TRANSACTIONS_V compile
 /
 alter view CE_RECONCILED_TRANSACTIONS_V compile
 /
 alter package CE_AUTO_BANK_CLEAR compile body
 /
 alter package CE_AUTO_BANK_MATCH compile body
 /

2. Start Enterprise Manager
On the database server, change directory to db/9.2.0
Source the database environment
run $oemapp dbastudio

Select the APPS schema
Select the CE_999_PKG body
Enable the clear and unclear procedures
Compile procedure bodies

Bank Statement SQL Loader Scripts

Before uploading bank statement file (SQL Loader data file), ensure that the data file exactly maps to the lines.ctl and the headers.ctl.

Sample control files (Files may need to altered to best match statement)
 # HEADER.CTL
LOAD DATA
APPEND INTO TABLE ce_statement_headers_int_all
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
( BANK_ACCOUNT_NUM CONSTANT 'XXXXXXXXXXXX',
#ADD BANK ACCT NUMBER ORG_ID CONSTANT '23',
#DETERMINE ORG ID STATEMENT_NUMBER,
STATEMENT_DATE "TO_DATE(:STATEMENT_DATE,'YYYYMMDD')",
DUMMY_COLUMN FILLER,
DUMMY_COLUMN2 FILLER,
DUMMY_COLUMN3 FILLER,
DUMMY_COLUMN4 FILLER,
DUMMY_COLUMN5 FILLER,
DUMMY_COLUMN6 FILLER,
DUMMY_COLUMN7 FILLER,
DUMMY_COLUMN8 FILLER,
DUMMY_COLUMN9 FILLER,
DUMMY_COLUMN10 FILLER,
CURRENCY_CODE CONSTANT 'TTD' )

# LINES.CTL
load data
append into table ce_statement_lines_interface
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
( STATEMENT_NUMBER,
TRX_DATE "TO_DATE(:TRX_DATE, 'YYYYMMDD')",
BANK_ACCOUNT_NUM CONSTANT 'XXXXXXXXXXXX',
#ADD BANK ACCT NUMBER LINE_NUMBER SEQUENCE(COUNT),
currency_code constant 'TTD',
dummy_filler2 filler,
dummy_filler3 filler,
dummy_filler4 filler,
dummy_filler1 filler,
TRX_CODE,
TRX_TEXT,
AMOUNT,
BANK_TRX_NUMBER,
dummy_filler5 filler,
dummy_filler6 filler )

Save the data file as a .csv file.

Note:

To determine org_id, issue the following command in SQL*Plus:

Select ORGANIZATION_ID, NAME From HR_ALL_ORGANIZATION_UNITS;

11i Printer Setup Basics

This document details the basic steps in installing a new printer in the Oracle E-Business Suite. It is derived from the AIM documentation which deals with printer setup.

This document assumes that the printer has already been set up at the OS level.

Installing a New Printer

1. Printer types > Navigate – Install – Printer – Types
This window you must define a printer type for your new printer.
Use the exact name of the printer as defined at the OS Level
An example would be if you had a line printer, you may name it
“LINE” or “LN03” for the model number of the printer. This name
will be associated to the actual printer name when you register
the printer to Oracle Applications.

2. Printer > Navigate -Install – Printer – Register
You must have defined a printer type before you can register a new printer.
The value for printer name will be the operating system printer name.
Then choose the printer type that you defined in the previous step.

3. Printer types > Navigate – Install – Printer – Types
You will need to come to this form again to associate the below printer
styles to the printer type that you defined above.

4. Print Styles > Navigate – Install – Printer – Style
If you are definig new styles specifically for your printer, you would do
this here. Please review manual for the specific parameters needed to be
defined. Oracle Applications reports are designed to work with standard
shipped styles:
Portrait
Landscape
Landwide
A4
Dynamic Portrait

You may point to the seeded styles that we have, but if you have customized
reports you may have to create a new printer style to accommodate the custom
report(s).

5. Printer Driver > Navigate – Install – Printer – Driver
Oracle does provide the printer drivers for the above Styles, so unless you
are adding your own, it should not be required to define one right now.
If you are definiing your own, you must specify a unique printer driver name
and an unique user name for a given platform.

6. Lastly, if any new updates or changes have been made to any of the printer
definitions, you must bounce the concurrent manager to ensure that all changes
do take effect.

Creating an Initialization String

An Oracle Applications printer driver has two fields, the “Initialization”
and the “Reset” fields, that are used to pre and/or post append printer
control commands. The field may contain a series of commands, typically.

The initialization string is printing device dependent. Therefore, a basic string must be obtained from the vendor or from the vendor’s manuals.

The Hewlett Packer Printer Command Language (PCL) has become the pseudo-
standard for many printer makers. Currently, the language version is up to
version PCL6. Each version is moderately backward compatible with the prior
versions. That is, a newer printer can also interpret some PCL4 or PCL5e
commands.

A simple PCL string looks like: /eE/e&l1O/e(s0P/el8D/e&k4S
In Oracle Applications /e denotes the beginning of a PCL command, the escape
character. The command /eE instructs the printer to reset to the machines
default settings. Landscape paper orientation is set with the /e&l1O command.
A single digit change to the same paper orientation command can initiate a
portrait setting, /e&l0O.

Creating a Printer prt File

Each Printer Style and Printer Driver has an SRW Driver associated with
it. The SRW driver controls

a) What is SRW driver?

(1) Oracle Application reports are all generated by Oracle Reports. SRW stands for SQL*ReportWriter. SRW drivers are driver files, which are used to define output files of SRW reports into a certain format during the generation of reports. Therefore SRW drivers are only pertain to Oracle Report output files.

(2) A SRW driver controls page break, carriage return, line feed, text bold on/off, and text underline on/off instructions within the output files of Oracle Application reports. SRW drivers are designed for the DEC LN03 printer, and all printers that understand the same control characters as the LN03 printer.

(3) SRW driver files have file extension “.prt”, such as L.prt for landscape style, P.prt for Portrait Style, etc.

b) When to use SRW driver?

While submitting a report with or without a printing request involved (copies > or = 0), an output file is generated by Oracle Reports. Oracle Reports generate a requested report into an output file using the SRW driver definition for text/non-postscript reports. Therefore, a SRW driver should be always used while defining a printer for Oracle Application Reports.

c) How to define SRW driver while registering a printer for Oracle Application?

to register a printer, you need to log on to Oracle Application as a System Administrator Responsibility. SRW driver needs to be defined for both Printer Style and Printer Driver. Therefore there are two places require SRW driver being defined:

(1) In Printer Style form with navigation path:
Install -> Printer -> Styles

(2) In Printer Driver form with navigation path:
Install -> Printer -> Drivers

In the SRW field, you can define SRW drivers by
typing the SRW file name without file extension
to define the SRW driver.

d) Difference of SRW drivers for Printer Style and Printer Driver?

SRW drivers for Printer Style and Printer Driver are used at different situations depending on if a printing request to be involved. When the report is not being printed (Number of Copies = 0 and the target printer field is blank), OracleReports uses the SRW driver named by the
Printer Style in the Printer Styles form. On the other hand, when the report is to be printed (Number of Copies > 0), Oracle Reports uses the SRW driver named by Printer driver in the Printer Drivers form.

e) Where SRW driver files reside

SRW driver files reside in $FND_TOP/reports/, and they have the file extension “.prt”.

L.prt HPL.prt
P.prt HPP.prt
A.prt HPA.prt
W.prt HPW.prt
PD.prt HPPD.prt

Usually SRW drivers that file names contain “HP” are more proper for HP printers, and the ones without “HP” are for digital printers. In the driver files different letters stand for different printing style, such as “L” for landscape, “P” for Portrait, “W” for landwide. “PD” for portrait dynamic printing.

f) Common issues related with SRW drivers

(1) Lines in a reports wrapped to the next page improperly for landscape style printing.
The default for Landscape Style is rows = 66 and columns = 132 in the driver
files, which sometimes cause lines wrapped to next page improperly.
By setting rows = 57,columns = 132 in the Printer Style form

The values of rows and columns setting in the Printer Style form overwrites the width
and height values in SRW driver files. But it is a good practice to make sure the
rows and columns setting in the Printer Style form match the width and height values in
SRW driver files.

(2) Using L.prt or P.prt for HP printer cause junk characters printed on the reports.
As mentioned previously, SRW drives that the names contain “HP” are more proper for HP printers. Therefore, one should use SRW drivers that the names contain “HP” as the SRW driver files to avoid junk characters being printed on reports. Also, refer to the Header description located at the top of each .prt SRW driver file.

Quick And Dirty Backup and Recovery Test Procedure

Step 1.      Shutdown the TEST instance:

./oratest/scripts/stopTEST.sh

Step 2.      Backup the directory /oratest/oracle and all it subdirectories.

Step 3.      Rename the directory /oratest/oracle to /oratest/oracle_backup

Step 4.      Restore from backup /oratest/oracle

Step 5.      Verify Recovery by Comparing file sizes between oracle and oracle_backup

Step 6.      Start the TEST instance:

./oratest/scripts/startTEST.sh

Step 7.      Log on to TEST instance and TEST functionality.

Step 8.      Remove directory /oratest/oracle_backup