webMethods Developer User’s Guide
VERSION 6.5
webMethods, Inc. South Tower
3877 Fairfax Ridge Road Fairfax, VA 22030 USA
webMethods Administrator, webMethods Broker, webMethods Dashboard, webMethods Developer, webMethods Fabric, webMethods Glue, webMethods Installer, webMethods Integration Server, webMethods Mainframe, webMethods Manager, webMethods Mobile, webMethods Modeler, webMethods Monitor, webMethods Optimize, webMethods Portal, webMethods Trading Networks, and webMethods Workflow are trademarks of webMethods, Inc. webMethods and the webMethods logo are registered trademarks of webMethods, Inc.
Acrobat, Adobe, and Reader are registered trademarks of Adobe Systems Incorporated. Amdocs is a registered trademark, and ClarifyCRM is a trademark of Amdocs Inc. Ariba is a registered trademark of Ariba, Inc. BEA and BEA WebLogic Server are registered trademarks, and BEA WebLogic Platform is a trademark of BEA Systems, Inc. BMC Software and PATROL are registered trademarks of BMC Software, Inc. BroadVision is a registered trademark of BroadVision, Inc. ChemeStandards and CIDX are registered trademarks of Chemical Industry Data Exchange. Unicenter is a trademark of Computer Associates International, Inc. PopChart is a registered trademark of CORDA Technologies, Inc. Kenan and Arbor are registered trademarks of CSG Software, Incorporated. SNAP-IX and Data Connection are registered trademarks of Data Connection Corporation. DataDirect, DataDirect Connect, and SequeLink are registered trademarks of DataDirect Technologies Corp. D & B and D-U-N-S are registered trademarks of Dun & Broadstreet, Inc. Entrust is a registered trademark of Entrust, Inc. Hewlett-Packard, HP, HP-UX, and OpenView are trademarks of Hewlett-Packard Company. i2 is a registered trademark of i2 Technologies, Inc. AIX, AS/400, CICS, DB2, Domino, IBM, Infoprint, Lotus, Lotus Notes, MQSeries, OS/390, OS/400, RACF, RS/6000, S/390, System/390, VTAM, z/OS, and WebSphere are registered trademarks; and Informix, SQL/400, Communications System for Windows NT, IMS, MVS, SQL/DS, and Universal Database are trademarks of IBM Corporation. InnoDB is a trademark of Innobase Oy. JBoss is a registered trademark, and JBoss Group is a trademark of JBoss Inc. JD Edwards is a registered trademark of J.D. Edwards & Company and OneWorld is a registered trademark of J.D. Edwards World Source Company. Linux is a registered trademark of Linus Torvalds. X Window System is a trademark of the X.org Foundation. MetaSolv is a registered trademark of Metasolv Software, Inc. ActiveX, Microsoft, Outlook, Visual Basic, Windows, and Windows NT are registered trademarks; and SQL Server is a trademark of Microsoft Corporation. MySQL is a registered trademark of MySQL AB, Ltd. Teradata is a registered trademark of NCR International, Inc. Netscape is a registered trademark of Netscape Communications Corporation. ServletExec is a registered trademark, and New Atlanta is a trademark of New Atlanta Communications, LLC. CORBA is a registered trademark of Object Management Group, Inc. UNIX is a registered trademark of X/Open Company Ltd. Oracle is a registered trademark of Oracle International Corporation. PeopleSoft and Vantive are registered trademarks, and PeopleSoft Pure Internet Architecture and WorldSoftware are trademarks of PeopleSoft, Inc. Infranet and Portal are trademarks of Portal Software, Inc. RosettaNet is a trademark of RosettaNet, a non-profit organization. SAP and R/3 are registered trademarks of SAP AG. Siebel is a registered trademark of Siebel Systems, Inc. SPARC is a registered trademark, and SPARCStation is a trademark of SPARC International, Inc. SSA Global and SSA Baan are trademarks of SSA Global Technologies, Inc. EJB, Enterprise JavaBeans, Java, JavaServer, JDBC, JSP, J2EE, Solaris, and Sun Microsystems are registered trademarks; and Java Naming and Directory Interface, SOAP with Attachments API for Java, JavaServer Pages and SunSoft are trademarks of Sun Microsystems, Inc. SWIFT and SWIFTNet are registered trademarks of Society for Worldwide Interbank Financial Telecommunication SCRL. Sybase is a registered trademark of Sybase, Inc. UCCnet and
eBusinessReady are registered trademarks of Uniform Code Council, Inc. Verisign is a registered trademark of Verisign, Inc. VERITAS is a registered trademark of VERITAS Operating Corporation, and VERITAS Software and VERITAS Cluster Server are trademarks of VERITAS Software Corporation. W3C is a registered trademark of Massachusetts Institute of Technology.
Contents
Contents
About This Guide . . . 17
Document Conventions . . . 17
Additional Information . . . 18
Chapter 1. Getting Started with Developer . . . 19
What Is Developer? . . . 20
Before You Use Developer . . . 20
Starting Developer . . . 20
What Does the Developer Window Contain? . . . 23
The Navigation Panel . . . 24
Navigation Panel Icons . . . 24
Refreshing the Contents of the Navigation Panel . . . 27
The Fabric Tab . . . 27
Fabric Tab Icons . . . 28
The Recent Elements Tab . . . 28
The Editor . . . 29
The Properties Panel . . . 31
The Results Panel . . . 33
Working in the Developer Window . . . 33
Moving Between Panels . . . 33
Performing Actions . . . 34
Resizing Areas in the Developer Window . . . 35
Hiding and Showing Panels . . . 35
Dragging Movable Borders . . . 36
Switching Perspectives . . . 36
Opening, Closing, and Restoring Sessions . . . 37
Restoring a Session on a Server . . . . 38
Notification of Server Shutdown . . . 39
Changing Your Password . . . 39
Password Requirements . . . 39
Using Online Help . . . 41
Chapter 2. Managing Elements in the Navigation Panel . . . 43
What Is an Element? . . . 44
Creating New Elements . . . 45
About Element Names . . . 45
C o n t e n t s
Guidelines for Naming Elements . . . 46
Editing Elements . . . 47
Specifying Dependency Checking Safeguards . . . 47
Notes About Performing Actions on Elements . . . 48
Opening and Closing Elements in the Editor . . . 49
Moving and Copying Elements . . . 50
General . . . 50
Moving and Copying Services . . . 51
Copying Elements Between Servers . . . 51
Moving and Copying Adapter Notifications and Related Elements . . . 52
Renaming Elements . . . 55
Saving Changes to Elements . . . 57
Deleting Elements . . . 57
Finding Elements and Fields . . . 59
Finding Elements in the Navigation Panel . . . 59
Finding Fields in Editor Trees . . . 61
Locating Invoked Services . . . 63
Finding Dependents and References . . . 63
Finding Dependents . . . 63
Finding References . . . 65
Inspecting Pipeline References . . . 66
Caching Elements . . . 70
Clearing the Developer Cache . . . . 70
Chapter 3. Working with Packages . . . 73
What Is a Package? . . . 74
Package Management . . . 74
Creating a Package . . . 76
Guidelines for Naming Packages . . . 76
Viewing Details for a Package . . . 77
Copying a Package to Another Server . . . 77
Documenting a Package . . . 79
Reloading a Package . . . 80
Deleting a Package . . . 80
Exporting a Package or Element . . . 81
Assigning a Version Number to a Package . . . 81
Viewing the Patch History for a Package . . . 82
Identifying Package Dependencies . . . 84
Contents
Assigning Startup, Shutdown, and Replication Services . . . 87
What Is a Startup Service? . . . 87
What Is a Shutdown Service? . . . . 87
What Is a Replication Service? . . . 88
Guidelines for Assigning Startup, Shutdown, and Replication Services . . . 88
Assigning Startup, Shutdown, and Replication Services . . . 89
Removing Startup, Shutdown, and Replication Services . . . 90
Chapter 4. Locking and Unlocking Elements . . . 91
Basic Concepts . . . 92
What Is a Lock? . . . 92
How Do I Know Who Has an Element Locked? . . . 92
When Do I Lock an Element? . . . . 93
When Do I Unlock an Element? . . . 93
Locking Elements . . . 93
Locking Elements . . . 93
Locking Java and C/C++ Services . . . 94
Locking Templates . . . 95
System Locking Elements . . . 96
Viewing the Status of Locked Elements . . . 96
Copying, Moving, or Deleting Locked Elements . . . 97
Unlocking Elements . . . 98
Unlocking Elements Using Developer . . . 98
Unlocking an Element Using the Integration Server Administrator . . . 99
Unlocking a System Locked Element . . . 101
Viewing an Element’s Corresponding Server Files . . . 102
Automatically Unlocking Elements After Saving . . . 102
Troubleshooting . . . 103
Lock/Unlock Problems . . . 103
Package Management Problems . . . 104
Save Problems . . . 104
Other Problems . . . 105
Frequently Asked Questions . . . 105
Chapter 5. Assigning and Managing Permissions . . . 107
Basic Concepts . . . 108
What Is an ACL? . . . 108
What Happens When a Client Runs a Service with ACLs? . . . 108
Am I Required to Use ACLs? . . . 110
C o n t e n t s
Assigning ACLs to Elements . . . 111
The Permissions Properties . . . 112
ACLs and Inheritance . . . 113
Default ACLs and Inheritance . . . 114
Viewing ACL Information on a Server . . . 114
How ACLs Affect Other Developer Features . . . 115
ACLs and Locking . . . 115
ACLs and Testing/Debugging Services . . . 116
ACLs and Creating, Viewing, and Deleting Elements . . . 116
Troubleshooting . . . 117
Chapter 6. Building Flow Services . . . 119
Basic Concepts . . . 120
What Is a Flow Service? . . . 120
What Is a Flow Step? . . . 121
What Is the Pipeline? . . . 122
What Are Input and Output Parameters? . . . 123
A Process Overview . . . 124
Creating a New Flow Service . . . 125
Package and Folder Requirements . . . 125
Using the Default Logic Options . . . 125
Inserting Flow Steps . . . 126
Declaring Input and Output Parameters for a Service . . . 126
Supported Data Types . . . 127
Specifying Input Parameters . . . 127
Specifying Output Parameters . . . 129
Completing the Input/Output Tab . . . 129
Assigning an Output Template to a Service . . . 132
Specifying Run-Time Parameters . . . 134
Maintaining the State of a Service . . . 135
Configuring a Service’s Use of Cache . . . 136
Types of Services to Cache . . . 136
Services Suited for Caching . . . 136
Services That You Should Not Cache . . . 136
Controlling a Service’s Use of Cache . . . 137
Specifying the Duration of a Cached Result . . . 137
Using the Prefetch Option . . . 138
Specifying the Execution Locale . . . 139
Configuring Service Retry . . . 140
About the Maximum Retry Period . . . 141
Contents
Assigning Universal Names to Services . . . 143
Configuring Service Auditing . . . 145
Enabling Auditing for a Service . . . 147
Specifying When Audit Data Is Generated . . . 147
Including the Pipeline in the Audit Log . . . 149
When Is a Copy of the Input Pipeline Saved in the Audit Log? . . . 149
Service Auditing Use Cases . . . 151
Error Auditing . . . 151
Service Auditing . . . 152
Auditing for Recovery . . . 153
Auditing Long-Running Services . . . 153
Setting Auditing Options for a Service . . . 153
Audit Level Settings in Earlier Versions of Developer . . . 154
Printing a Flow Service . . . 155
Chapter 7. Inserting Flow Steps . . . 157
What is a Flow Step? . . . 158
Inserting and Moving Flow Steps . . . 158
Changing the Position of a Flow Step . . . 160
Changing the Level of a Flow Step . . . 160
Setting the Properties of a Flow Step . . . 161
The INVOKE Step . . . 163
Specifying the Service Property . . . 163
Invoking a Built-In Service . . . 164
Invoking a Service on Another webMethods Integration Server . . . 164
Building an INVOKE Step . . . 164
The BRANCH Step . . . 166
Branching on a Switch Value . . . 167
Specifying the Switch Variable . . . 167
Specifying the Label Value . . . 168
Branching on an Expression . . . 169
Branching on Null and Empty Values . . . 170
Specifying a Default Step . . . 172
Using SEQUENCE as the Target of a BRANCH . . . 173
Building a BRANCH Step . . . 175
The REPEAT Step . . . 177
Specifying the REPEAT Condition . . . 178
Setting the REPEAT Counter . . . 178
When Does REPEAT Fail? . . . 178
Using REPEAT to Retry a Failed Step . . . 179
C o n t e n t s
The SEQUENCE Step . . . 183
Using SEQUENCE to Specify an Exit Condition . . . 183
The LOOP Step . . . 184
Specifying the Input Array . . . 185
Collecting Output from a LOOP Step . . . 186
Building a LOOP Step . . . 187
The EXIT Step . . . 188
The MAP Step . . . 191
Chapter 8. Mapping Data in a Flow Service . . . 193
What is Data Mapping? . . . 194
What Does the Pipeline Tab Contain? . . . 194
Pipeline Tab for an INVOKE Step . . . 195
Pipeline Tab for a MAP Step . . . 197
Pipeline Modifiers . . . 198
Printing the Pipeline Tab . . . 198
Basic Mapping Tasks . . . 199
Linking Variables . . . 199
What Happens When webMethods Integration Server Executes a Link Between Variables at Run Time? . . . 204
Linking to Document and Document List Variables . . . 206
Linking Variables of Different Data Types . . . 207
Examples of Structural Transformations on the Pipeline Tab . . . 208
Converting a String List to a Document List . . . 208
Linking to and from Array Variables . . . 209
Guidelines for Linking to and from Array Variables . . . 211
Deleting Links Between Variables . . . 212
Applying Conditions to Links Between Variables . . . 213
Linking Multiple Source Variables to a Target Variable . . . 213
Assigning Values to Pipeline Variables . . . 214
Assigning a Default Value to a Variable . . . 215
Initializing Variables in a Flow Service . . . 216
Referencing Other Variables . . . 216
Setting a Value for a Pipeline Variable . . . 216
Copying Set Values Between Variables . . . 217
Dropping Variables from the Pipeline . . . 218
Adding Variables with the Pipeline Tab . . . 219
Working with Transformers . . . 220
What Are Transformers? . . . 220
Using Built-in Services as Transformers . . . 221
Contents
Linking Variables to a Transformer . . . 223
Transformer Movement . . . 225
Transformers and Array Variables . . . 226
What Is Dimensionality? . . . 226
Example . . . 226
Solution . . . 226
Validating Input and Output for Transformers . . . 227
Copying Transformers . . . 228
Expanding Transformers . . . 229
Renaming Transformers . . . 230
Debugging Transformers . . . 231
Chapter 9. Creating IS Schemas, IS Document Types, and Specifications . . . 233
Creating an IS Schema . . . 234
What Does an IS Schema Look Like? . . . 234
Schema Browser . . . 235
Schema Details Area . . . 238
Creating an IS Schema . . . 239
Creating IS Schemas from XML Schemas that Reference Other Schemas . . . 241
Editing a Simple Type in an IS Schema . . . 242
Setting Constraining Facet Values . . . 243
Creating an IS Document Type . . . 244
Creating an Empty IS Document Type . . . 245
Creating an IS Document Type from an XML Document, DTD, or XML Schema . . . 246
Creating an IS Document Type from a Broker Document Type . . . 248
The Envelope Field . . . 251
Adapter Notifications and Publishable Document Types . . . 252
Editing an IS Document Type . . . 252
Modifying Publishable Document Types . . . 253
Printing an IS Document Type . . . 253
Using an IS Document Type to Specify Service Input or Output Parameters . . . 253
Using an IS Document Type to Build a Document Reference or Document Reference List Field 254 Specifying Field Properties . . . 255
Creating a Specification . . . 256
Chapter 10. Performing Data Validation . . . 259
What Is Data Validation? . . . 260
What Is Data Validated Against? . . . 260
Applying Constraints to Variables . . . 261
Considerations for Object Constraints . . . 263
C o n t e n t s
Viewing the Constraints Applied to Variables . . . 265
Performing Input/Output Validation . . . 266
Specifying Input/Output Validation via the Input/Output Tab . . . 267
Specifying Input/Output Validation via the INVOKE Step . . . 268
Performing Document Validation . . . 269
Performing Pipeline Validation . . . 270
Performing XML Validation in webMethods Integration Server . . . 271
Performing Validation from within a Java Service . . . 271
Validation Errors and Exceptions . . . 273
Validation Exceptions . . . 273
Running Out of Memory During Validation . . . 274
Chapter 11. Testing and Debugging Services . . . 275
Testing and Debugging . . . 276
Testing Services . . . 276
Testing Services from Developer . . . 277
Entering Input for a Service . . . 278
Saving Input Values to a File . . . 280
Loading Input Values from a File . . . 280
Viewing the Results of the Service . . . 281
Copying Variables from the Results Panel . . . 283
Run-Time Exceptions . . . 284
The Call Stack . . . 285
The Pipeline Dump . . . 286
Testing Services from a Browser . . . 286
Testing Services that Expect XML Documents as Input . . . 287
Working in Debug Mode . . . 288
Entering Debug Mode . . . 288
Combining the Step and Trace Commands in Debug Mode . . . 289
Resetting Debug Mode . . . 290
Using the Trace Tools . . . 290
Tracing into a Child Flow . . . 292
Using the Step Tools . . . 292
Stepping though a Child Flow . . . 294
Using the Step Tools with a MAP Step . . . 294
Setting Breakpoints . . . 295
What Happens When a Breakpoint is Encountered? . . . 296
Setting Breakpoints on Transformers . . . 297
Contents
Disabling Flow Steps, Transformers, and Conditions . . . 298
Disabling Flow Steps . . . 298
Disabling Transformers . . . 299
Disabling a Condition Placed on a Link Between Variables . . . 301
Modifying the Current Pipeline . . . 302
Saving and Restoring the Pipeline . . . 303
Saving the Results . . . 303
Saving the Contents of the Results Panel . . . 304
Saving the Pipeline at Run Time . . . 305
Restoring the Pipeline . . . 306
Loading a Saved Pipeline into the Results Panel . . . 306
Loading a Saved Pipeline at Run Time . . . 307
Other Debugging Techniques . . . 308
Using the Server’s Debug Facility . . . 308
The Contents of the Server Log . . . 309
Server Debug Levels . . . 309
Writing Information to the Server Log . . . 310
Writing an Arbitrary Message to the Log . . . 310
Dumping the Pipeline to the Log . . . 311
Chapter 12. Building Coded Services . . . 315
Basic Concepts . . . 316
The IData Object . . . 316
Services Take IData Objects as Input and Return IData as Output . . . 316
Getting and Setting Elements in an IData Object . . . 317
Creating IData Objects . . . 317
Building Services Using Java . . . 318
How Java Services Are Organized on the Server . . . 318
Building Java Services with Developer . . . 319
Using the Developer IDE . . . 320
The Java Service Editor . . . 320
The Shared Tab . . . 322
Creating a Java Service with Developer’s IDE . . . 323
Generating Java Code from Service Input and Output Parameters . . . 325
Setting Run-Time Options for a Java Service . . . 326
Building Java Services with Your Own IDE . . . 327
The Namespace Directory . . . 327
The Source Code Directory . . . 328
Writing the Source Code for a Service . . . 328
Using the webMethods API . . . 328
C o n t e n t s
Commenting Code for the webMethods Integration Server . . . 329
Using the jcode Utility . . . 330
Make Mode . . . 330
Fragment Mode . . . 331
Composite Mode . . . 331
Other jcode Commands . . . 332
Building Services Using C/C++ . . . 332
Generating Files for a C/C++ Service . . . 333
The Java Code for a C Service . . . 334
Building the C/C++ Source Code . . . 335
Building Services Using COM . . . 336
Requirements . . . 337
Invoking Methods from Existing COM and DCOM Objects . . . 337
Creating the Object . . . 337
Invoking the Object . . . 338
Writing and Invoking a Visual Basic Service . . . 338
Compiling a Visual Basic Service . . . 339
Invoking a Visual Basic Service . . . 339
Invoking a VB Service Using Late Binding . . . 339
Invoking a VB Service Using Early Binding . . . 341
Chapter 13. Creating Client Code . . . 345
Basic Concepts . . . 346
Building a Java Client . . . 346
Assumptions . . . 346
Third-Party Libraries . . . 348
Limitations . . . 348
Procedure . . . 349
Files That Are Generated . . . 349
Building a C/C++ Client . . . 350
Assumptions . . . 350
Limitations . . . 350
Procedure . . . 351
Files That Are Generated . . . 351
Building a Visual Basic Client . . . 352
Assumptions . . . 352
Environment Setup . . . 352
Limitations . . . 352
Contents
Files That Are Generated . . . 353
General Files . . . 353
Files for the User Interface . . . 354
Files Containing the Code that Invokes the Service . . . 354
File Containing the Code that Interacts with webMethods Integration Server . . . 354
Building an Excel Client . . . 355
Assumptions . . . 355
Limitations . . . 355
Procedure . . . 355
Files That Are Generated . . . 356
Building a Browser-Based Client . . . 356
Assumptions . . . 357
Limitations . . . 357
Invoking Services with a URL . . . 357
Using the HTTP GET Method . . . 358
Using the HTTP POST Method . . . 358
Input to the Service . . . 359
Output from the Service . . . 360
Chapter 14. Subscribing to Events . . . 361
The Event Manager . . . 362
What Are Event Handlers? . . . 363
What Happens When an Event Occurs? . . . 363
Managing Event Subscriptions . . . 364
Subscribing to an Event . . . 364
Creating Event Filters . . . 366
Creating Event Filters for Services . . . 368
Viewing and Editing Event Subscriptions . . . 369
Suspending Event Subscriptions . . . 369
Deleting an Event Subscription . . . 370
Building an Event Handler . . . 370
Sample Event Handler . . . 371
Working with Alarm Events . . . 372
Building Handlers for Alarm Events . . . 373
Working with Audit Events . . . 374
Building Handlers for Audit Events . . . 374
Working with Exception Events . . . 376
Building Handlers for Exception Events . . . 376
Working with Guaranteed Delivery Events . . . 377
Guaranteed Delivery Events and Transaction Events . . . 378
C o n t e n t s
Building Handlers for Guaranteed Delivery End Events . . . 380
Working with Port Status Events . . . 380
Building Handlers for Port Status Events . . . 381
Working with Replication Events . . . 381
Building Handlers for Replication Events . . . 382
Working with Session Events . . . 382
Building Handlers for Session Start Events . . . 383
Building Handlers for Session End Events . . . 383
Building Handlers for Session Expire Events . . . 384
Working with Stat Events . . . 384
Building Handlers for Stat Events . . . 385
Working with Transaction Events . . . 386
Building Handlers for Transaction Start Events . . . 387
Building Handlers for Transaction End Events . . . 387
Chapter 15. Building Services that Retry . . . 389
Overview . . . 390
Requirements for Retrying . . . 390
Adapter Services and Retry Behavior . . . 390
Building a Service that Throws an Exception for Retry . . . 391
How to Build a Service that Throws an Exception for Retry . . . 391
Example—Building a Service that Throws an Exception for Retry . . . 394
Appendix A. webMethods Flow Steps . . . 397
BRANCH . . . 398
Branching on a Switch Value . . . 398
Branching on Expressions . . . 399
Properties . . . 400
Conditions That Will Cause a BRANCH Step to Fail . . . 400
EXIT . . . 401
Properties . . . 401
Examples of When to Use . . . 402
INVOKE . . . 402
Properties . . . 402
Conditions That Will Cause an INVOKE Step to Fail . . . 403
LOOP . . . 403
Properties . . . 404
Conditions That Will Cause a LOOP Step to Fail . . . 405
MAP . . . 405
Properties . . . 405
Contents
REPEAT . . . 406
Properties . . . 407
When Does REPEAT Fail? . . . 408
Examples of When to Use . . . 408
SEQUENCE . . . 408
Properties . . . 409
Conditions That Will Cause the SEQUENCE Step to Fail . . . 410
Appendix B. Regular Expressions . . . 411
What Is a Regular Expression? . . . 412
Using a Regular Expression in a Mask . . . 412
Regular Expression Operators . . . 413
Appendix C. Supported Data Types . . . 419
Data Types . . . 420
Java Classes for Objects . . . 421
How webMethods Developer Supports Tables . . . 423
Default Pipeline Rules for Linking to and from Array Variables . . . 424
Appendix D. Conditional Expressions . . . 427
Overview . . . 428
Syntax . . . 429
Comparing Java Objects to Constants . . . 431
Checking for Variable Existence . . . 432
Operators . . . 432
Relational Operators . . . 432
Standard Relational Operators . . . 433
Lexical Relational Operators . . . 435
Logical Operators . . . 437
Precedence . . . 438
Addressing Variables . . . 439
Addressing Variables that Contain Special Characters . . . 440
Typing Special Characters in Expressions . . . 441
Rules for Use of Expression Syntax with the Broker . . . 442
Appendix E. jcode tags . . . 445
jcode Template . . . 446
jcode Example . . . 447
C o n t e n t s
Appendix F. Validation Content Constraints . . . 451
Overview . . . 452
Content Types . . . 452
Constraining Facets . . . 462
Appendix G. Validation Errors and Exceptions . . . 465
Overview . . . 466
Validation Errors . . . 466
Validation Exceptions . . . 480
IS Schema Generation Errors and Warnings . . . 484
Appendix H. Using Source Control with the Integration Server . . . 489
Basic Concepts . . . 490
What Is a Third-Party Source Control Application? . . . 490
Is Source Control the Same as Locking? . . . 490
Methods of Using Source Control . . . 490
Components of a webMethods Solution . . . 491
Package Components . . . 491
Location of a Package . . . 492
Contents of a Package . . . 492
Global Components . . . 497
Adding Components to Source Control . . . 498
Choosing a Development Methodology for Java Services . . . 498
Checking Components In to Source Control . . . 499
Checking In the ns Directory . . . 499
Checking Components Out of Source Control . . . 500
Updating Files That Are in Source Control . . . 501
About This Guide
About This Guide
This guide describes how to create services using webMethods Developer. It contains information for developers who want to build services using the webMethods flow language or a programming language such as Java, C/C++, or Visual Basic.
To use this guide effectively, you should know how to program in Java, C/C++, and/or Visual Basic if you will be creating services in those languages.
Document Conventions
Convention Description
Bold Identifies elements on a screen.
Italic Identifies variable information that you must supply or change based on your specific situation or environment. Identifies terms the first time they are defined in text. Also identifies service input and output variables.
Narrow font Identifies storage locations for services on the webMethods Integration Server using the convention folder.subfolder:service. Typewriter
font
Identifies characters and values that you must type exactly or messages that the system displays on the console.
UPPERCASE Identifies keyboard keys. Keys that you must press simultaneously are joined with the “+” symbol.
\ Directory paths use the “\” directory delimiter unless the subject is
UNIX-specific.
[ ] Optional keywords or values are enclosed in [ ]. Do not type the [ ] symbols in your own code.
A b o u t T h i s G u i d e
Additional Information
The webMethods Advantage Web site at http://advantage.webmethods.com provides you with important sources of information about webMethods components:
Troubleshooting Information. webMethods provides troubleshooting information for
many webMethods components in the webMethods Knowledge Base.
Documentation Feedback. To provide documentation feedback to webMethods, go to the
Documentation Feedback Form on the webMethods Bookshelf.
Additional Documentation. All webMethods documentation is available on the
C H A P T E R
1
Getting Started with Developer
What Is Developer? . . . 20
Before You Use Developer . . . 20
Starting Developer . . . 20
What Does the Developer Window Contain? . . . 23
Working in the Developer Window . . . 33
Opening, Closing, and Restoring Sessions . . . 37
Changing Your Password . . . 39
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
What Is Developer?
webMethods Developer is a graphical development tool that you use to build, edit, and test integration logic. It provides an integrated development environment in which to develop the logic and supporting objects that carry out the work of an integration solution. It also provides tools for testing and debugging the solutions you create.
Developer lets you rapidly construct integration logic with an easy-to-use implementation language called the webMethods flow language. Flow language provides a set of simple but powerful constructs that you use to specify a sequence of actions (steps) that the Integration Server will execute at run time. Developer also has extensive data
transformation and mapping capabilities that allow you to quickly drag-and-drop data fields from one step to the next.
Besides providing tools for constructing flow services, Developer provides additional editors and tools for creating various objects that support the execution of an integration solution. For example, you use Developer to create the document types and schemas used for data validation and to define triggers that launch the execution of services when certain documents are published.
Before You Use Developer
Developer builds and edits services directly on a server. To use Developer you must: Have access to a webMethods Integration Server on which you can build and test services.
Have a user account on that webMethods Integration Server.
Belong to a group that is a member of the “Developers” ACL (access control list) on that webMethods Integration Server.
If you do not have access to a webMethods Integration Server or you do not have an appropriate user account or access rights, see your server administrator.
Starting Developer
Use the following procedure to start Developer on your workstation. Before you start Developer keep the following in mind:
Make sure that the Integration Server with which you want to use Developer is running. You cannot work with Developer if the server is not running.
If you are starting Developer for the first time on a UNIX system, verify that the DEVELOPER_DIR and JAVA_DIR settings in developer.sh specify the paths where Developer (DEVELOPER_DIR) and Java Runtime Environment (JAVA_DIR) reside. If these settings are not correct, update them before starting Developer.
Starting Developer
1 Depending on which operating system is running on your workstation, do the following:
2 In the Open Session dialog box, complete the following:
Important! You can only connect webMethods Developer version 6.5 to a webMethods
Integration Server version 6.1 or version 6.5.
To start Developer
If you are running... Do this...
Windows a On the Start menu, click Programs, and then click
webMethods.
b Click webMethods Developer.
UNIX a Navigate to the directory where you installed
Developer.
b Run bin/developer.sh.
In this field... Specify...
Server type The registered type for the server on which you want to open a session. The default type is Integration Server.
Server The name and port assignment of the webMethods Integration Server in ServerName:PortNum format.
Example rubicon:5555
Specify the name and port assignment of a server...
...and enter a user account that has developer privileges.
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
3 Click OK.
Note: Servers to which you have successfully logged on in the
past are listed in the Server list. You can select a server from this list or type its name and port number.
Username The name of a valid user account on this server. (The user name must be a member of a group belonging to the Developers ACL.)
Use the exact combination of upper- and lower-case characters with which it was originally defined. IS user names are case sensitive.
Note: The server is installed with a default user account called
“Developer” that has developer privileges.
Password The password for the user account in Username. Use the exact combination of upper- and lower-case characters with which it was originally defined. IS passwords are case sensitive.
Note: The default password for the Developer user account is
isdev.
Uses secure
connection Whether the session will be opened through HTTP or HTTPS. If you want to open an HTTPS session on the selected server using the Secure Socket Layer (SSL), select this check box. If you want to open an HTTP session on the server, clear this check box.
Uses proxy Whether the session will be opened through the default proxy server. If you want to open a session on the selected server using your proxy server, select this check box.
In this field... Specify...
Tip! When you run Developer from the command line, Developer writes messages to the
console. The amount and type of information that is written is determined by the debug level under which Developer is operating. The default debug level is 4. If you want more detail written to the console, set the debug level to 10. You can change the debug level by editing the ini.cnf file located in webMethods6\Developer\config.
What Does the Developer Window Contain?
What Does the Developer Window Contain?
The Developer window is divided into the following areas:
Navigation panel. You use the Navigation panel to select, lock, copy, move, delete, or
rename elements. For more information about this panel, see “The Navigation Panel” on page 24.
Fabric tab. You use the Fabric tab to connect and disconnect Fabric sessions, and to
display, filter, and register Web services. For more information about this panel, see
“The Fabric Tab” on page 27.
Recent Elements tab. You use the Recent Elements tab to quickly access elements you
have recently viewed. For more information about this panel, see “The Recent Elements Tab” on page 28.
Editor. You use the editor to examine and edit an element you opened from the
Navigation panel or Recent Elements tab. For more information about the editor, see
“The Editor” on page 29.
Properties panel. You use the Properties panel to view and edit the properties for an
item. For more information about this panel, see “The Properties Panel” on page 31.
Results panel. You use the Results panel to view the result of a service’s execution, to
view the variables that a service adds to the pipeline, and to view the contents of those variables. For more information about this panel, see “The Results Panel” on page 33.
Note: When you start Developer, it verifies that the other webMethods components
support the same locale as Developer. If the locale of an add-in component is not
supported by the Developer locale, Developer displays a message in the console warning you of the locale mismatch. For example, if you start Developer in an English locale with a localized Japanese add-in component, Developer displays the following message in the console:
Warning: The following plug-ins are running localized versions even though Developer is not: ComponentName; VersionNumber.
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
Developer main window
The Navigation Panel
The Navigation panel displays the contents of packages on the webMethods Integration Servers on which you have an open session. You use the Navigation panel to perform tasks such as creating, opening, locking, copying, moving, renaming, and deleting elements.
Elements in the Navigation panel are shown in a hierarchical structure where the server is the topmost element in the hierarchy. Packages on the server contain one or more folders, which contain other elements that you can create and edit using Developer (for example, services, specifications, and IS document types).
For more information about the tasks you can perform on elements in the Navigation panel, see Chapter 2, “Managing Elements in the Navigation Panel” and Chapter 3, “Working with Packages”.
Navigation Panel Icons
Each item in the Navigation panel contains an icon that denotes the item’s type. The following table describes what each icon represents.
The Navigation Panel displays the contents of servers, packages, and folders.
The Editor displays the
controls you use to examine and edit an element you have opened from the Navigation panel or Recent Elements tab. The Fabric Tab displays available Web services, if a Fabric session is open. The
Recent Elements Tab
displays the elements you viewed most recently.
The Properties Panel displays the properties for an item.
The Results Panel displays the results of a service’s execution.
What Does the Developer Window Contain?
This icon... Represents...
A server. You can have multiple server contexts displayed in Developer.
The active server context is the one that is highlighted in the Navigation panel. To display the contents of the server, click the symbol next to its name.
A package. A package contains a set of services and related files, such as
specifications, IS document types, and output templates. To display the contents of a package, click next to its name.
A folder. A folder contains related services and optional folders (called
subfolders). To display the contents of a folder, click next to its name.
A flow service. A flow service is a service written in the webMethods flow
language.
A Web service connector. A Web service connector is a flow service that
invokes a Web service located on a remote server. Developer uses a WSDL document to automatically generate a Web service connector.
A Java service. A Java service is a service written in Java. A C service. A C service is a service written in C/C++.
A specification. A specification is a formal description of a service’s inputs
and outputs.
A trigger. A trigger associates one or more publishable document types
with one or more services. At run time, when the Integration Server receives a document that satisfies the conditions of the trigger, the Integration Server executes/invokes the associated services. For more information about creating triggers, see the Publish-Subscribe Developer’s Guide.
An IS document type. An IS document type contains a set of fields used to
define the structure and type of data in a document.
A publishable document type. A publishable document type is an IS
document type with specific publishing properties. Instances of publishable document types can be published and subscribed to. Publishable document types can be used anywhere an IS document type is needed.
A publishable document type for an adapter notification. An adapter
notification can have an associated publishable document type that the adapter uses to send the notification data to an Integration Server or a Broker.
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
An IS schema. An IS schema is the blueprint or model document against
which you validate an XML document. The schema defines what can and cannot be contained in the XML documents it validates.
An adapter notification. An adapter notification enables an adapter to
receive event data from the adapter’s resource. There are two types of adapter notifications:
Polling notifications, which poll the resource for events that occur on the resource.
Listener notifications, which work with listeners to detect and process events that occur on the adapter resource.
For information about creating an adapter notification, refer to the documentation provided with the adapter.
An adapter service. An adapter service connects to an adapter’s resource
and initiates an operation on the resource. Adapter services are created using service templates included with the adapter. For information about creating adapter services, refer to the documentation provided with the adapter.
A listener. A listener is an object that connects to an adapter resource and
waits for the resource to deliver data when an event occurs on the resource. Listeners work with listener notifications to detect and process event data on the adapter resource.
For information about creating a listener, refer to the documentation provided with the adapter.
A connection. A connection is an object that contains parameters that
adapter notifications and listeners use to connect to a resource. For information about creating a connection, refer to the documentation provided with the adapter.
A flat file dictionary. A flat file dictionary contains record definitions, field
definitions, and composite definitions that can be used in multiple flat file schemas. For more information about creating a flat file dictionary, see the Flat File Schema Developer’s Guide.
A flat file schema. A flat file schema is the blueprint that contains the
instructions for parsing or creating the records in a flat file, as well as the constraints to which an inbound flat file document should conform to be considered valid. Using flat file schemas, you can translate documents into and from flat file formats. For more information about creating a flat file schema, see the Flat File Schema Developer’s Guide.
An XSLT service. An XSLT service converts XML data into other XML
formats or HTML, using rules defined in an associated XSLT stylesheet.
What Does the Developer Window Contain?
Refreshing the Contents of the Navigation Panel
The Navigation panel on your screen is not dynamically updated when other users lock, unlock, add, delete, or rename elements on a server. To refresh the Navigation panel to reflect any changes made to the contents of the servers you are working with, use the
SessionRefresh command.
The Fabric Tab
Use the Fabric tab to connect and disconnect Fabric sessions. Once you have opened a Fabric session, you can display, filter, and register Web services. Within the Fabric tab, Web services are sorted in alphabetical order. Simply select a Web service to view more information about the service. For more information about using Fabric with Developer, see the Web Services Developer’s Guide.
Fabric. Developer displays all of the Web services registered in the Fabric
below the Fabric name. Developer displays the subnet locator port or the WAN locator URL for the Fabric to which you are connected.
A Web service. A Web service is a service that uses specific XML- based
protocols and interface descriptions to communicate.
An Unknown Node. The webMethods component used to create/develop
the element is not installed on the client machine.
An Unknown Service. The webMethods component used to create this
service is not installed on the client machine.
This icon... Represents...
Note: Other installed webMethods components might add elements to the Navigation
panel that are not described in the preceding table. For information about these elements, refer to the documentation provided with these installed components.
Note: Refreshing the session is different from restoring a session. Restoring a session
allows you to save changes to an element you were working with when the Integration Server shuts down unexpectedly. For more information about restoring sessions, see
“Restoring a Session on a Server” on page 38.
Note: When you select a Web service in the Fabric tab, the editor (the middle area of the
Developer window between the Navigation panel and the Properties panel) does not change. This is because Web service details and logic cannot be modified using Developer.
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
Fabric Tab Icons
The following buttons on the Fabric tab toolbar are shortcuts to frequently-used commands.
The Fabric tab also contains icons to represent the Fabric and the Web services that are registered within Fabric. The following table identifies these icons.
The Recent Elements Tab
The Recent Elements tab lists the last 30 elements you viewed in the editor. Developer adds an element to this panel when you close the element. You can use this panel to quickly open elements that you have recently viewed and closed.
You can clear the list of elements currently displayed in the Recent Elements tab by
Use this
button... To...
Connect to a Fabric session while working in Developer. Equivalent to SessionOpen Fabric.
Disconnect from a Fabric session while working in Developer. Equivalent to SessionClose Fabric.
Refresh the display of Web services. Equivalent to SessionRefresh
Fabric.
Create an expression that filters the contents of the Fabric tab based on the value of a Web service property. Equivalent to
SessionSet Fabric Filter.
Remove the filter from the contents of the Fabric tab and display all the registered Web services. Equivalent to SessionClear Fabric
Filter.
This icon... Represents...
Fabric. Developer displays all of the Web services registered in the
Fabric below the Fabric name. Developer displays the subnet locator port or the WAN locator URL for the Fabric to which you are connected.
A Web service. A Web service is a service that uses specific XML-
based protocols and interface descriptions to communicate.
Tip! To view a tool tip containing the fully qualified name of the element, the package in
which the element resides, and the host name and port number of the server, rest the mouse pointer on the element name.
What Does the Developer Window Contain?
Developer handles changes to the Recent Elements list as follows:
When you close an open element in the editor, Developer adds the element to the top of the Recent Elements list.
Developer remembers the contents of the Recent Elements tab between sessions. If you attempt to open an element that was deleted after you closed your previous Developer session, Developer alerts you that the element cannot be found and then removes the element from the list.
If you attempt to open an element listed in the Recent Elements tab that another user has deleted, moved, or renamed during your Developer session, Developer displays a message alerting you that the element cannot be found.
If you move or rename an element during your current session, Developer
automatically refreshes the Recent Elements tab to reflect the change. If you delete an element, Developer removes the element from the Recent Elements list.
For more information about selecting elements in the Recent Elements tab to view or edit in the editor, see “Opening and Closing Elements in the Editor” on page 49.
The Editor
The editor contains the controls that you use to examine and edit an element you open from the Navigation panel or Recent Elements tab. The contents of the editor vary depending on the type of element you select.
For some element types, the editor is divided into multiple areas, including tabs
containing additional editing controls for the element. You switch among areas within the editor just as you would between the Navigation panel or Recent Elements tab and the editor. To select a different area, click any white space in that area. To display the contents of a tab, click the tab name.
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
Editing controls for an element
As mentioned earlier, you can use the Navigation panel and Recent Elements tab to select one or more elements to view or edit in the editor. It is helpful to display multiple elements in the editor when you are editing an element and you would like to refer back to another element for information. For example, if you are creating or editing a trigger, you may want to quickly view the document types and services associated with that trigger.
Each element you open has its own tab in the editor. The element’s title bar contains the fully qualified name of the element and icons to indicate the element’s type and lock status. For more information about these icons, see “Navigation Panel Icons” on page 24
and “What Is a Lock?” on page 92.
If you open an element from the
Navigation panel...
...editing controls for that element are displayed in the editor.
In this example, a specification is opened in the editor.
The editor lists the input and output fields that were created for this specification. These lists are also referred to as “trees.”
Tip! You can press CTRL+ALT+RIGHT ARROW to toggle forward between open elements
What Does the Developer Window Contain?
Editor with multiple elements opened
The Properties Panel
The Properties panel displays the properties for the currently selected item in the
Developer window. You use this panel to view and edit the properties of an item (such as an element, a step in a flow service, a field in a document, or a link between two
variables).
The properties that Developer displays in this panel vary depending on the item you select and which area of the Developer window has the focus. Developer identifies the item for which properties are displayed beneath the title bar of the Properties panel.
Each opened element in the editor has its
own tab. Click to view tabs that are not currently visible. Click to close the active element
(that is, the element that is currently displayed).
The element’s title bar displays the element’s fully qualified name.
Some elements have specialized tabs.
Tip! You can locate the active element in the Navigation panel by using the EditLocate in Navigation command.
Tip! If the Properties panel displays the properties for an item (for example, a document
field) and you want to display the properties for its parent element (for example, the document type to which the field belongs), click the title bar of the parent element in the editor, the tab of the parent element in the editor, or the white space within the editor.
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
Properties panel
Depending on the type of property you select, you edit a property by:
Typing a value in the box to the right of the property name (for example, to specify the namespace and local names that make up the universal name for a service)
Selecting a value from a list (for example, to specify a validation processing rule) Clicking a button next to the property name and supplying values on a dialog box (for example, to specify an index when linking to or from an array variable)
Clicking the browse button to locate an element (for example, a service)
The tips area beneath the list of properties includes a description of the selected property and its values. To obtain this information for a particular property, click the property name.
Description of the selected property.
Name of the item for which properties are displayed.
Properties are grouped into categories.
Click to expand the list of properties beneath a category. Click to collapse the list of properties beneath a category.
Drag to resize the Property and Value columns.
Tip! You can also paste text into the box that you previously copied to the clipboard. Note: Developer accepts the text you type in a property box when you move the focus
outside of the box or press ENTER. You can cancel your edits before you perform either of these actions by pressing ESC.
Working in the Developer Window
The Results Panel
The Results panel shows the result of a service’s execution, the variables that a service adds to the pipeline, and the contents of those variables. You can use this panel to quickly examine the data produced by the service while you are testing and debugging the service. You can also save the data to a file and use it as input for a later test.
Results panel
For more information about service execution results, see Chapter 11, “Testing and Debugging Services”.
Working in the Developer Window
Moving Between Panels
Before you can perform an action on an item that is displayed in the Developer window, you must first select the panel in which that item appears (that is, give that panel the “focus”). You can only select one panel in the Developer window at a time. Developer indicates which area has the focus by highlighting the area’s title bar in blue.
To switch from one panel of the Developer window to another, click any white space or field within the panel to which you want to switch. This action changes the focus to the new panel and makes its menu commands and toolbar buttons available for use.
Click a variable name...
...to view its contents in the pipeline at this stage of the service’s execution.
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
Performing Actions
Before you can perform an action on an element, you must select the element in one of the following ways:
Single-click the title bar of an element in the editor. Right-click an element.
Single-click one or more elements in the Navigation panel.
The actions that are available for an element depend on which area of the Developer window has the focus. For example, to run a service, the service must be open in the editor and have the focus.
There are a number of ways to perform an action on an element after you select it:
Menu commands. You can select a command from the menu bar to perform an action on
an element. For example, to save changes to an opened element using the menu bar, select the element in the editor and then click FileSave.
You can also access menu commands on a shortcut menu by right-clicking the element. For example, to unlock an element using a shortcut menu, right-click the element either in the Navigation panel or in the editor and then click Unlock.
Toolbar buttons. You can click a toolbar button to perform an action on an element. For
example, to save changes to an opened element using a toolbar button, select the element in the editor and then click .
The toolbar buttons that are available for you to use depend on the item in the Developer window that currently has the focus. For example, when you are editing a flow service, the flow service toolbar buttons in the editor are not available unless the editor has the focus.
Keys. You can use the keyboard to access a menu by pressing the ALT key plus the
underlined letter in the menu name. You can then select a command on that menu by pressing the underlined letter in the command’s title. For example, to save changes to an element using the keyboard, select the element, press ALT and F to access the File menu, and then press S to save the element.
Some commands also have shortcuts assigned to them. These shortcuts are displayed to the right of their associated commands on the menu bar. For example, to save
Tip! To select a group of adjacent elements simultaneously, press the SHIFT key as you
click. To select a group of non-adjacent elements, press the CTRL key.
Note: Single-clicking an element in the Navigation panel selects (highlights) the
element but does not open the element for viewing or editing in the editor. To open an element in the editor, double-click it.
Working in the Developer Window
changes to an element using a keyboard shortcut, select that element and then press CTRL and S.
Drag-and-drop action. You can select an element and move it to another package or
element, either on the same server or on a different server, by dragging it. For example, to move an IS document type from one folder to another, you would drag that document type to the new folder.
Most of the procedures in this guide instruct you to perform actions using menu commands.
Resizing Areas in the Developer Window
You can resize areas in the Developer window by:Hiding or showing panels
Dragging the movable border between panels Switching perspectives
Hiding and Showing Panels
You can hide and show panels on the Developer window as follows:
Note: Some elements, such as adapter notifications, cannot be moved using the
drag-and-drop action.
To... Do this...
Hide the Navigation panel, Fabric tab, and
Recent Elements tab Click along the left edge of the Developer window. Show the Navigation
panel, Fabric tab, and Recent Elements tab
Click along the left edge of the Developer window. Hide the Properties
and Results panels
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
Dragging Movable Borders
You can resize areas in the Developer window by dragging the movable borders between panels with your mouse.
Switching Perspectives
You can quickly change the Developer window to tailor it to the task you are performing (for example, show only the editor and Results panel when you are testing a service) by displaying a particular perspective. Perspectives allocate more space on the Developer window for a particular task by hiding or minimizing the areas that are not essential to that task.
Developer offers three perspectives:
Edit perspective. The edit perspective displays all of the Developer window areas but
minimizes the Results panel. This perspective is useful when you are opening and editing elements and their properties.
Test perspective. The test perspective hides the Navigation panel, Fabric tab, and
Recent Elements tab and maximizes the editor and the Results panel. This perspective is useful when you are testing and debugging a service and you want to view the results of the service’s execution, its inputs and outputs, and its pipeline variables.
Details perspective. The details perspective hides the Navigation panel, Fabric tab, and
Recent Elements tab and minimizes the Results panel. This perspective is useful when you want to see as much of an element’s detail as possible (for example, a service’s pipeline).
You display a perspective as follows: Show the Properties
and Results panels
Click along the right edge of the Developer window. Expand or collapse
editor details
Click on the border between the top of the editor and the specialized tabs beneath it.
To display the... Use this command... Or click this toolbar button...
Edit perspective WindowEdit Perspective
Test perspective WindowTest Perspective
Details perspective WindowDetails Perspective
Opening, Closing, and Restoring Sessions
You can manually adjust areas within a perspective using the other techniques described in this section. Developer saves your settings across sessions.
If you have adjusted the perspectives manually and you want to revert them to their default settings, use the WindowReset Perspectives command.
Resizing areas in the Developer window
Opening, Closing, and Restoring Sessions
When you start Developer you are prompted to log on to the server that you want to access. You maintain a session on that server until you exit Developer or close the session. You can have open sessions on multiple servers at a time. In the Navigation panel, the server that contains the selected element is the server on which your commands will be executed. For example, if you have the localhost:5555 server selected in the Navigation panel and you select the New command, the new element will be created on that server. You can open a session on another server without closing your current session by using the SessionOpen command.
Click to hide or show the Navigation panel, Fabric tab and Recent
Elements tab. Click to hide or show the Properties and Results panels.
Click to expand or collapse editor details.
Drag movable borders to resize panels. Click to display Edit, Test, and Detail perspectives.
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
1 On the Session menu, click Open.
2 Complete the Open Session dialog box. For more information about completing this dialog box, see “To start Developer” on page 21.
3 Click OK.
1 Save any work that you want to keep.
2 On the Session menu, click Close.
Restoring a Session on a Server
Sometimes a server might shut down before you can save your work. Developer
preserves any unsaved work as well as lock information, despite the loss of the connection to the server. When the server restarts, you can restore your session and save your changes to the server.
On the Session menu, click Restore.
To open a session on a different server
Important! While you have an open session on a server through Developer, you are using a
licensed seat for that server. At times when you are not actively using Developer, you may want to close your session to free a seat on the server for others to use.
To close a session on the current server
Important! If a server shuts down and you close your session (that is, disconnect from the
server), close unsaved elements on that server in the editor, or exit Developer before the server restarts, Developer warns you that if you continue you will lose all unsaved work. If you do not want to lose your work, click Cancel and wait for the connection to that server to be restored.
To restore a session on the server
Note: Restoring a session is different from refreshing the session. Refreshing the session
updates your screen to reflect the actions of other users on elements that are displayed within the Navigation panel and the editors. A refresh action does not restore the working state of an element if a server shuts down. For more information about refreshing the Navigation panel, see “Refreshing the Contents of the Navigation Panel” on page 27.
Changing Your Password
Notification of Server Shutdown
If the server administrator shuts down the server on which you have an open session, Developer does one of the following:
If the server administrator specified a time delay before shutdown, Developer displays a message notifying you when the shutdown process began and how many minutes remain before the server shuts down. After you receive notification of server shutdown, save any work that you want to keep and then close your session. If you do not close your session, Developer notifies you when the server has shut down. If the server administrator performed an immediate shutdown, Developer displays a message stating that your connection to the server has been lost. (Developer also displays this message if the network connection to the server is lost.)
If you did not save your work before shut down occurred, you might be able to restore your session when the server restarts and then save your work. For more information about restoring sessions, see “Restoring a Session on a Server” on page 38.
Changing Your Password
You can change the password for your user account. If you forget your password, contact the server administrator.
Password Requirements
For security purposes, webMethods Integration Server places length and character restrictions on passwords. webMethods Integration Server contains a default set of password requirements; however, your server administrator can change these. For more information about these password requirements, contact your server administrator.
Important! If you are outside of the corporate firewall, do not change your password unless
you use SSL to open the session on the webMethods Integration Server. If you do not use SSL, your password can be exposed in unencrypted form.
Note: You cannot use Developer to change passwords that are stored in an LDAP or NIS
C H A P T E R 1 G e t t i n g S t a r t e d w i t h D e v e l o p e r
The default password requirements provided by webMethods are as follows:
To ensure the security of your password, follow the additional guidelines below: Do not choose obvious passwords, such as your name, address, phone number, license plate, spouse’s name, child’s name, or a birthday.
Do not use any word that can be found in the dictionary. Do not write your password down.
Do not share your password with anyone. Change your password frequently.
1 On the Session menu, click Change Password.
2 In the Change Password dialog box, in the Old Password field, type your current password.
3 In the New Password field, type your new password.
4 In the Confirm New Password field, retype your new password. Click OK.
Requirement Default
Minimum length 8
Minimum number of alphabetic characters 3
Minimum number of uppercase characters 2
Minimum number of lowercase characters 2
Minimum number of numeric characters 1
Minimum number of special characters (non-alphabetic and non-numeric characters, such as *. ?, &)
1
To change your password
Important! The server administrator can disable the feature for changing your password
from Developer. If the feature is disabled and you try to change your password, you will receive a message stating that the administrator has disabled the feature.