wareSource

Lotus Domino Designer 8: Web Agents and Web Services

Course Code: DDWAWS8
Product: Lotus Notes/Domino R8.0.1
Duration: 2 days
Topics/Pages: 11 topics / 188 pages
Price (US dollars):
$45 per user

Description

The Domino HTTP server task is extremely versatile. In addition to its HTML rendering tasks, it also executes several types of design elements coded in Java or LotusScript:

  • Agents run by a Form’s WebQueryOpen and WebQuerySave events.
  • Agents run by the ?OpenAgent URL command.
  • Web Services that run in response to a SOAP request message.

This course covers the development and security of these design elements. You will also learn debugging and run time error handling techniques.

This course also takes a close look at Web Service client requirements and teaches you how to code a simple Web Service client using a SOAP toolkit.

Course goals

This course will teach you how to:

  • Describe the differences and application of Agents run from a Form’s WebQueryOpen and WebQuerySave events and those run from the ?OpenAgent URL command.
  • Code Agents run by the Form’s WebQueryOpen event to work within the document context as well as perform lookups to other databases.
  • Conditionally run WebQueryOpen Agents depending on document state.
  • Define the server, database, and Agent security measures and ensure that Agents are run in the proper context.
  • Code Agents run by the Form’s WebQuerySave event to translate and validate user entries and provide useful feedback to users and redirect them to natural landing points in the application.
  • Code Agents run by the ?OpenAgent URL command to perform powerful actions and produce reports from Domino data, and learn different ways that a browser can run the ?OpenAgent command.
  • Debug Agent code and add run time error handling routines as well as how to analyze Agent-specific browser errors.
  • Define the key components and protocols of Web Services technology.
  • Use Web Services Explorer to perform basic testing of a Web Service.
  • Describe the differences between the various Web Services programming models and SOAP message formats as they apply to Web Services design element properties.
  • Code Web Services using LotusScript that accept simple and complex data types as parameters.
  • Code a simple Web Services client that runs from a browser and uses a SOAP toolkit.
  • Import a WSDL to create a LotusScript library that can be used by Notes or Domino to consume a Web Service.
  • Debug Web Services provider and client code and handle runtime code errors as well as SOAP faults.
  • Employ the Remote Debugging, Agent Logging, Profiling, and DDM Probe features to fully analyze Agent and Web Service operation and performance.


Audience

This course is designed for experienced programmers well versed in using Domino Designer 8. It assumes that you have:

  • thorough knowledge of the Domino Designer 8 development environment, including Form and View design, as well as how to use properties boxes, and how to set the ACL
  • mastered the Topics covered in these courses:
  • Domino Designer 8: Basic Notes Applications
  • Domino Designer 8: Basic Browser Applications
  • knowledge of Web technologies, including servers, browsers, HTML, Cascading Style Sheets, and some basic JavaScript.

While mastery is not expected, you should have a working understanding of LotusScript and the various Notes product objects.

This course is part of a series of Domino Designer 8 training courses. Follow these paths to master all aspects of developing applications using Domino Designer.


Domino Designer 8: Basic Notes Applications provides the base knowledge for this additional training:

Client Track

  • Configure Domino to use DB2 as a database engine and build applications that access relational data, DB2 for Domino 8 Administrators and Developers.
  • Specialize in programming Notes applications to respond to built-in user interface features, Domino Designer 8: Special Notes Features.
  • Convert an application written for Notes clients to be used in browsers, Domino Designer 8: Basic Browser Applications.
  • Provide data to cutting-edge Web applications, Domino Designer 8: Web Agents and Web Services.


Language Track. These languages apply to both Notes and browser clients:

  • Learn sophisticated application techniques that fully exploit the formula language in Domino Designer 8: Formula Language.
  • Develop sophisticated applications and Agents with LotusScript in Domino Designer 8: LotusScript.
  • Add powerful client-side scripting to browser applications in Domino Designer 8: JavaScript.


Duration

This course is sold as a 2-day course.


Course design

This is a lecture/lab course in which you will closely examine demonstration code and either modify or create additional Agent and Web Services code. You will immediately apply the concepts and techniques as you work in your own project database.

Outline


Topic 1: Introduction 

Agents
Web Services
What follows
Exercise: Create demonstration database


Topic 2: WebQueryOpen Event Agents

Form computation sequence
Step 1: Create the Agent and set its properties
Step 2: Code the Agent
Step 3: Call the Agent from the Forms WebQueryOpen event
Agent authority
Step 4: Set the Agent properties Security tab options
Who can run the Agent
Database ACL
Exercise: Set default email address in Review form
Agents and document access Fields
Prevent Agents from being run out of context
Exercise: Prevent Agents from being run out of context

Topic 3: WebQuerySave Event Agents 

Form computation sequence
$$Return or WebQuerySave event?
Create WebQuerySave Agent
Print statements
When Print statements are ignored
Stop document from being saved
Exercise: Part Form validation


Topic 4: Web Agents

Create a Web Agent
Run Web Agents
Agent context versus document context
Agent ouput
Pass argument(s) to a Web Agent
Parse URL arguments
@Command([RunAgent])
Exercise: Browser-based reporting
Example: I forgot my password Web Agent
Example: Download view in Excel Web Agent


Topic 5: Web Agent Error Handling

WebQueryOpen event Agents
WebQueryClose event Agents and Web Agents
Runtime error handling
Web server response codes
Common 4xx and 5xx response codes
Agent-specific browser errors
HTTP server performance and Agents run by browsers


Topic 6: Web Services Concepts 

Web Services basics
Definitions
Domino 8 and Web Services
What Web Services are publicly available?
Testing a Web Service
Exercise: Web Services Explorer
SOAP programming models and formats
Exercise: Multiple, detailed stock quotes
Web Services versus Web Agents
Web Services clients


Topic 7: Web Service Properties 

Domino-based Web Service from Web Services Explorer
Create Web Service design element
Import WSDL file
Web Service properties and the WSDL
Show WSDL
Basics tab
Advanced tab
Security tab
Alternative security model
Get Domino Web Service information from a browser
Domino-based Web Service from browser


Topic 8: Web Service Programmers Pane 

Code the operations
Web Service context
Resulting WSDL
WSDL from the client perspective
Greeting Web Service code
Simple data types for request and response parameters
Explicit data type conversion
Multiple request parameters
Complex data types
Web Service accepts an array as parameter
Web Service responds with array


Topic 9: Consume Web Services 

PocketSOAP Examples page
VBScript
PocketSOAP
Greetings from Domino button
Exercise: Understand lookup examples
Send array to Web Service
Receive array from Web Service
Class objects
Exercise: Save changes to a Part
Notes, LotusScript, and PocketSOAP
Notes/Domino native Web Service consumers


Topic 10: Web Service Error Handling

SOAP faults
SOAP Fault Example page
Web Service-side error handling
Client-side error handling of VBScript errors
Web Service system-generated SOAP faults
Web Service developer-defined SOAP faults
Client-side error handling of a SOAP fault


Topic 11: Remote Debugging, Logging, and Profiling 

Remote LotusScript Debugger
Java debugger support
Domino Server Log
Private Agent log
Agent Log database
Agent performance and Agent Profiling
DDM Application Probes