Chapter Contents |
Previous |
Next |
SAS Companion for the Microsoft Windows Environment |
Creating New Notes Documents |
The NOTESDB access engine enables users to add data to an existing Notes database. However, the NOTESDB access engine does not provide a way for retrieving information from existing Notes documents. The NotesSQL ODBC driver allows for retrieval of data from Notes databases. See Retrieving Information from Pre-Existing Notes Documents for these details.
Using the NOTESDB access engine and the DATA step or SCL code, you can create new Notes documents. However, the engine cannot create a new database. A client version of Lotus Notes and a valid Notes user ID certification must be installed on the machine that will be using the NOTESDB engine.
Note: The Notes directory must be in the system path.
However, Lotus Notes does not have to be running in order for the SAS System to access it. The user will be prompted for a password to access the Notes server through the SAS System.
In general, DATA step or SCL code that interacts with a Notes database has the following components:
FILENAME fileref NOTESDB; |
In your DATA step, use PUT statements with data directives to define which database you want to use and the data you want to send.
Note: Although the directives that you specify to access
a Notes database are not case-sensitive, the fields that you specify using
those directives are. Also, only one directive per PUT statement is permitted.
Each directive should be delimited with an exclamation point and surrounded
with single quotes.
The data directives you can use are:
Note: If you attempt to access a Notes server through
SAS, you will be prompted for your password to the server.
You can populate fields, which can be edited, of the following types:
!NSF_FIELD! field-name <bitmap-filename> |
Use these directives to perform actions on the Notes database:
Note: The contents of PUT statements that do not contain
directives are concatenated to the data associated with the most recent field
value.
Using the Business Card Request Database uses the Business Card Request database supplied by Lotus Notes. This DATA step creates a new document in the database and supplies values for all of its fields.
Using the Business Card Request Database
01 filename reqcard NOTESDB; 02 data _null_; 03 file reqcard; 04 put '!NSF_DB! examples\buscard.nsf'; 05 put '!NSF_FIELD!Status! Order'; 06 put '!NSF_FIELD!Quantity! 500'; 07 put '!NSF_FIELD!RequestedBy! Systems'; 08 put '!NSF_FIELD!RequestedBy_CN! Jane Doe'; 09 put '!NSF_FIELD!NameLine_1! Jane Doe'; 10 put '!NSF_FIELD!NameLine_2! Developer'; 11 put '!NSF_FIELD!AddressLine_1! Software R Us'; 12 put '!NSF_FIELD!AddressLine_2! 123 Silicon Lane'; 13 put '!NSF_FIELD!AddressLine_3! Garner, NC 27123'; 14 put '!NSF_FIELD!AddressLine_4! USA'; 15 put '!NSF_FIELD!PhoneLine_1! (910) 777-3232'; 16 run;
Line 1 assigns a fileref by using the FILENAME statement to point to Notes instead of to an ordinary file. NOTESDB is the device type for Lotus Notes. Line 3 uses the assigned fileref to direct output from the PUT statement. Line 4 indicates which Notes database to open. Lines 5 to 15 specify the field and the value for that field for the new Notes document that is being created. Status is the field name and Order is the value that is placed in the Status field for the particular document. Line 16 executes these SAS statements. A new Notes document is created in the Business Card Request database.
Creating a New Document from a Data Set
uses each observation in the SALES data set to create a new document in the
qrtsales.nsf
database and fills in the
Sales
,
Change
, and
Comments
fields
for the documents.
Creating a New Document from a Data Set
01 data sasuser.sales; 02 length comment $20; 03 format comment $char20.; 04 input sales change comment $ 12-31; 05 cards; 06 123472 342 Strong Increase 07 423257 33 Just enough 08 218649 4 Not high enough 09 ; 10 run; 11 filename sales NOTESDB; 12 data _null_; 13 file sales; 14 set sasuser.sales; 15 put '!NSF_DB! qrtsales.nsf'; 16 put '!NSF_FORM! Jansales'; 17 put '!NSF_ADD!'; 18 put '!NSF_FIELD!Sales !' sales; 19 put '!NSF_FIELD!Change!' change; 20 put '!NSF_FIELD!Comments!' comment; 21 put '!NSF_CLR_FIELDS!'; 22 run;
Line 11 assigns a fileref by using the FILENAME statement
to point to Notes instead of to an ordinary file. NOTESDB is the device type
for Lotus Notes. Line 13 uses the assigned fileref to direct the output from
the PUT statement. In line 15, the NSF_DB data directive indicates which Notes
database to open. Lines 18, 19, and 20 specify the field and its value for
the new Notes document that is being created.
Sales
is the field name and
sales
is the value that is placed in the Status field for the particular
document. Line 22 executes these SAS statements. A new Notes document is
created in the Business Card Request database.
Expanding on the Business Card Request database example, you can create multiple Notes documents within a single DATA step or SCL code by using action directives as well as data directives. Creating Multiple Notes Documents within a Single DATA Step shows how to create multiple Notes documents within a single DATA step.
Creating Multiple Notes Documents within a Single DATA Step
01 filename reqcard NOTESDB; 02 data _null_; 03 file reqcard; 04 put '!NSF_DB!Examples\buscard.nsf'; 05 put '!NSF_FIELD!Status! Order'; 06 put '!NSF_FIELD!Quantity! 500'; 07 put '!NSF_FIELD!RequestedBy!Systems'; 08 put '!NSF_FIELD!RequestedBy_CN! Jane Doe'; 09 put '!NSF_FIELD!NameLine_1! Jane Doe'; 10 put '!NSF_FIELD!NameLine_2! Developer'; 11 put '!NSF_FIELD!AddressLine_1! Software R Us'; 12 put '!NSF_FIELD!AddressLine_2! 123 Silicon Lane'; 13 put '!NSF_FIELD!AddressLine_3! Garner, NC 27123'; 14 put '!NSF_FIELD!AddressLine_4! USA'; 15 put '!NSF_FIELD!PhoneLine_1! (910) 555-3232'; 16 put '!NSF_ADD!'; 17 put '!NSF_CLR_FIELDS!'; 18 put '!NSF_FIELD!Status! Order'; 19 put '!NSF_FIELD!Quantity! 10'; 20 put '!NSF_FIELD!RequestedBy! Research and Development'; 21 put '!NSF_FIELD!RequestedBy_CN! John Doe'; 22 put '!NSF_FIELD!NameLine_1! John Doe'; 23 put '!NSF_FIELD!NameLine_2! Analyst'; 24 put '!NSF_FIELD!AddressLine_1! Games Inc'; 25 put '!NSF_FIELD!AddressLine_2! 123 Software Drive'; 26 put '!NSF_FIELD!AddressLine_3! Cary, NC 27511'; 27 put '!NSF_FIELD!AddressLine_4! USA'; 28 put '!NSF_FIELD!PhoneLine_1! (910) 555-3000'; 29 run;
Line 1 assigns a fileref by using the FILENAME statement
to point to Notes instead of to an ordinary file. NOTESDB is the device type
for Lotus Notes. Line 3 uses the assigned fileref to direct the output from
the PUT statement. Line 4 indicates which Notes database to open. Lines 5-15
specify the field and the value for that field for the new Notes document
that is being created.
Status
is the field name and
Order
is the value placed in the
Status
field for this particular document. Line 16 forces the creation
of a new Notes document. Line 17 clears the values for the fields that are
used with the !NSF_FIELD! data directives in the previous lines. Lines 18-28
specify the field and the value for that field for the second Notes document
that is being created.
Status
is the field name and
Order
is the value placed in the
Status
field for the second document. Line 29 executes these SAS statements.
A second Notes document is created in the Business Card Request database.
Only one !NSF_DB! data directive is issued in the preceding example. By default, the second Notes document is created in the same database as that referenced in the !NSF_DB! data directive on line 4. In order to create the second Notes document in another database, you would have to issue another !NSF_DB! data directive with the new database filename prior to the execution of line 18. The key additions to this example are the action directives on lines 16 and 17.
Note: All directives are not case
sensitive. However, the values following the data directives, such as form
name and field name, are case sensitive.
Preparing SAS/GRAPH Output for a Notes Document |
!NSF_FIELD! RTF-field-name < bitmap-filename |
Exporting SAS/GRAPH Output into a Notes Document uses the modified syntax.
Note: This example uses the
Electronic Library sample database.
Exporting SAS/GRAPH Output into a Notes Document
01 title1 'US Energy Consumption for 1955-1988'; 02 proc gplot data=3Dsampsio.energy1;03; 03 plot consumed*year / des=3D'D0319U01- 04 1';04 run; 05 dm 'graph1; export "c:\usenergy.bmp" "format=3DBMP"'; 06 quit; 07 08 filename newdoc NOTESDB; 09 data _null_; 10 file newdoc; 11 put '!NSF_DB!Examples\hrdocs.nsf'; 12 put '!NSF_FIELD!Subject! US Energy Consumption'; 13 put '!NSF_FIELD!Categories! Office Services'; 14 put '!NSF_FIELD!Body! US Energy Consumption for 1955-1988'; 15 put '!NSF_FIELD!Body<c:\usenergy.bmp'; 16 run;
Lines 1-6 contain code that is taken from the SAS/GRAPH
samples by using a sample data set to generate SAS/GRAPH output. Line 8 assigns
a fileref by using the FILENAME statement to point to Notes instead of to
an ordinary file. NOTESDB is the device type for Lotus Notes. Line 10 uses
the assigned fileref to direct the output from the PUT statement. Line 11
indicates which Notes database to open. Lines 12-14 specify the field and
the value for that field for the new Notes document that is being created.
Subject
is the field name and
US Energy Consumption
is the
value that is placed in the
Subject
field for this particular document. Line 15 indicates a display of
usenergy.bmp
bitmap file in the
Body
field because the
<
rather than
!
is used to separate the field value from the
field name. Line 16 executes these SAS statements. A new Notes document
is created in the Electronic Library database.
In the preceding example, the Detailed field is an RTF field. When using RTF fields, you can intersperse data and bitmaps.
Using SAS with the NotesSQL ODBC Driver |
Note: This assumes that a Notes ODBC driver
and datasource have been configured.
Both Windows and Windows NT 4.0 with Service Pack 3 require the following software:
Note: Installation of Service Pack 3 for Windows NT
4.0 upgrades the ODBC drivers to version 3.0 (3.0.23.1 driver manager). This
may cause other ODBC 2.0 drivers to fail. Consult your third-party vendor's
ODBC reference.
NotesSQL is an ODBC driver provided by Lotus. It can
be downloaded free of charge from
http://www.lotus.com
.
After you have the software, you must:
Lotus provides a file (.nfs) that explains how to set up the driver.
You must complete the Lotus Notes ODBC 2.0 Setup screen. Add the appropriate information to these fields:
Note: Examples are in parentheses.
buscard
)
Test Notes Access
)
c:\notes\data\buscard.nsf
).
Click [OK] after you have completed the Setup screen.
Retrieving Information from Pre-Existing Notes Documents |
The SAS/ACCESS to ODBC pass-through engine allows users to retrieve information about existing Notes documents in a Notes database. Using ODBC to Retrieve Information from Pre-existing Notes Documents shows an example of how to use the DATA step to retrieve information from the Business Card Request database
Using ODBC to Retrieve Information from Pre-existing Notes Documents
01 proc sql; 02 connect to ODBC ("dsn=3Dbuscard"); 03 create table sasuser.buscard as 04 select * from connection to 05 ODBC (select * from All_Requests_By_Organization); 06 disconnect from ODBC; 07 run;
Line 1 processes SQL statements to manipulate SQL views
and tables. Line 2 connects to ODBC, which establishes a connection to Notes
through the SAS/ACCESS to ODBC driver and the NotesSQL ODBC driver by using
the 3Dbuscard data source. Lines 3, 4, and 5 create a table and sasuser.buscard
from the data that is retrieved from the Notes Business Card Request database
table which is called
All_Requests_By_Organization
. This is the default view that is assigned to the Business Card Request
database. Line 6 disconnects from ODBC and closes the connection to the Notes
database. Line 7 executes these SAS statements. A new data set named
buscard
is created in the SASUSER
library.
As another alternative, you may view the available tables within Notes databases by using the SQL Query Window. The SQL Query Window, a component of SAS, is an interactive interface that allows you to easily build queries without being familiar with SQL. You can invoke it by issuing the QUERY command from the command line.
For more information about PROC SQL, see SAS Procedures Guide.
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.