SAP Interactive Forms by Adobe (2nd Edition)

SAP Interactive Forms by Adobe (2nd Edition)

2011
978-1-59229-398-8
749

Product Details

• Find everything you need to know in this comprehensive guide to creating forms in SAP
• Learn how to solve real-life problems that occur when working with interactive forms
• Expand your knowledge with new information on ABAP Offline Infrastructure, XDC Editor, JobProfiles Editor, parallelization of print jobs, and much more

If you’ve ever had any questions about working with SAP’s interactive forms, this book will be a valuable addition to your library. Whether you are a beginning or advanced technical consultant, developer, or form designer, you will learn everything you need to know about working with SAP Interactive Forms by Adobe. The book offers a comprehensive discussion of the topic, explaining what interactive forms are, how they are created and used, and how to solve common problems associated with them.

This expanded second edition is updated for SAP NetWeaver 7.20, and includes new coverage of ABAP Offline Infrastructure, XDC Editor, JobProfiles Editor, parallelization of print jobs, and more.

Highlights

• Adobe Document Services
• Adobe LiveCycle Designer
• Web Dynpro
• Script programs
• Form Builder
• SAP NetWeaver Portal
• ABAP Offline Infrastructure
• XDC Editor
• JobProfiles Editor
• Parallelization of print jobs

Table of Contents

  • 1 ... Introduction ... 17
  • 2 ... Use of SAP Interactive Forms by Adobe ... 23
  • 2.1 ... PDF, PDF-Based Print Forms, and Interactive PDF Forms ... 23
  • 2.1.1 ... PDF File Format ... 23
  • 2.1.2 ... PDF-Based Print Forms ... 24
  • 2.1.3 ... Interactive PDF Forms ... 27
  • 2.1.4 ... Accessibility of PDF Forms ... 28
  • 2.1.5 ... Using Interactive PDF Forms ... 29
  • 2.2 ... Adobe Reader and Adobe Acrobat Family ... 29
  • 2.2.1 ... Comparing Adobe Reader and Acrobat Professional ... 30
  • 2.2.2 ... Selecting the Appropriate Adobe Reader Version ... 33
  • 2.2.3 ... Useful Settings of Adobe Reader ... 34
  • 2.3 ... Examples of PDF-Based Print Forms and Interactive PDF Forms ... 34
  • 2.3.1 ... Example for Print Output ... 34
  • 2.3.2 ... Creating an Interactive PDF Form ... 38
  • 2.4 ... Using Interactive Forms in Business Processes ... 40
  • 2.4.1 ... Online Scenarios ... 41
  • 2.4.2 ... Offline Scenarios ... 41
  • 2.4.3 ... Combining Online and Offline Scenarios ... 43
  • 2.4.4 ... When Do You Use Online and Offline Scenarios? ... 43
  • 2.4.5 ... Notes on the Use of Interactive Forms ... 45
  • 2.5 ... Software Components and Architecture ... 46
  • 2.5.1 ... Adobe LiveCycle Designer ... 47
  • 2.5.2 ... Adobe Document Services ... 52
  • 2.5.3 ... Interaction of Components ... 56
  • 2.6 ... Summary ... 60
  • 3 ... Installation and Configuration ... 63
  • 3.1 ... Prerequisites ... 63
  • 3.1.1 ... Credentials and Password for SAP Interactive Forms by Adobe ... 64
  • 3.1.2 ... Adobe LiveCycle Designer 8.2 ... 64
  • 3.2 ... Basic Configuration ... 64
  • 3.2.1 ... ADSUSER ... 65
  • 3.2.2 ... ADSCaller ... 68
  • 3.2.3 ... Web Service Test ... 68
  • 3.3 ... Scenario-Dependent Configuration ... 72
  • 3.3.1 ... RFC Destination ... 73
  • 3.3.2 ... Destination and ICF Service ... 75
  • 3.3.3 ... Web Service Proxy ... 82
  • 3.3.4 ... ReaderRights Credential ... 85
  • 3.3.5 ... FPCONNECT ... 88
  • 3.4 ... Configuration for Parallelization ... 89
  • 3.4.1 ... Web Service for Parallelization ... 91
  • 3.4.2 ... Web Service for Monitoring ... 93
  • 3.4.3 ... Connection Test for the Two Web Services ... 94
  • 3.4.4 ... Assigning the Logical Port to the ADS Connection ... 95
  • 3.5 ... Optional Configuration ... 96
  • 3.5.1 ... Licensing ... 96
  • 3.5.2 ... Credentials, Trusted Anchors, Certificate Revocation Lists ... 98
  • 3.5.3 ... Service Properties ... 101
  • 3.5.4 ... Number of Parallel Print Jobs ... 103
  • 3.5.5 ... Fonts ... 105
  • 3.5.6 ... XDCs ... 105
  • 3.6 ... Error Analysis ... 105
  • 3.7 ... Using ADS ... 107
  • 3.7.1 ... Monitoring and Performance Tracing ... 107
  • 3.7.2 ... Log Configurator ... 108
  • 3.8 ... Installation of Adobe LiveCycle Designer ... 110
  • 3.9 ... Automatic Configuration via CTC ... 110
  • 3.10 ... ADS Hub ... 111
  • 3.11 ... Summary ... 114
  • 4 ... Interface and Form Context ... 115
  • 4.1 ... Structure of a Form ... 115
  • 4.2 ... Interface of a Form ... 116
  • 4.2.1 ... ABAP Dictionary-Based Interface ... 119
  • 4.2.2 ... XML Schema-Based Interface ... 129
  • 4.2.3 ... Smart Forms-Compatible Interface ... 131
  • 4.2.4 ... Documentation of a Form Interface ... 132
  • 4.3 ... Context of a Form ... 134
  • 4.3.1 ... Creating a Form ... 134
  • 4.3.2 ... Structure of a Form ... 137
  • 4.3.3 ... Structures ... 141
  • 4.3.4 ... Data Nodes ... 144
  • 4.3.5 ... Text Nodes ... 146
  • 4.3.6 ... Graphic Nodes ... 153
  • 4.3.7 ... Address Nodes ... 157
  • 4.3.8 ... Alternatives ... 160
  • 4.3.9 ... Tables or Loops ... 163
  • 4.3.10 ... Single Record Nodes ... 167
  • 4.3.11 ... Conditions ... 170
  • 4.3.12 ... Folders ... 171
  • 4.4 ... Documentation of a Form ... 172
  • 4.5 ... Summary ... 173
  • 5 ... Creating Form Templates ... 175
  • 5.1 ... Adobe LiveCycle Designer ... 175
  • 5.1.1 ... Menu Bar and Toolbar ... 177
  • 5.1.2 ... Script Editor ... 177
  • 5.1.3 ... Hierarchy and Data View ... 178
  • 5.1.4 ... Library and Object Palette ... 180
  • 5.1.5 ... Form Design Area ... 182
  • 5.2 ... The Basic Principles of the Form Template Design ... 182
  • 5.2.1 ... Getting Started ... 184
  • 5.2.2 ... Using Text Fields ... 187
  • 5.2.3 ... Formatting Texts ... 193
  • 5.3 ... Data Binding for Form Fields ... 195
  • 5.3.1 ... Defining the Data Binding ... 195
  • 5.3.2 ... Using Preview Data ... 198
  • 5.4 ... Structuring Form Templates with Subforms ... 199
  • 5.4.1 ... Adding a Hierarchy ... 200
  • 5.4.2 ... Extending the Form Template ... 203
  • 5.5 ... Using Master Pages and Rich Text Fields ... 209
  • 5.5.1 ... Customizing the Master Page ... 209
  • 5.5.2 ... Rich Text Fields ... 210
  • 5.5.3 ... Alternative Method for Adding the Footer ... 213
  • 5.5.4 ... Activating Forms ... 213
  • 5.6 ... Reusing Form Objects ... 213
  • 5.6.1 ... Creating Your Own Libraries ... 214
  • 5.6.2 ... Adding Form Objects ... 215
  • 5.6.3 ... Using Form Objects ... 216
  • 5.7 ... Implicit Data Binding ... 217
  • 5.7.1 ... Creating Copies of Forms ... 217
  • 5.7.2 ... Implementing the Implicit Data Binding ... 218
  • 5.8 ... Useful Functions in Adobe LiveCycle Designer ... 222
  • 5.8.1 ... Customizing the Toolbars ... 222
  • 5.8.2 ... Object Editor ... 222
  • 5.8.3 ... Spelling ... 223
  • 5.8.4 ... Hyphenation ... 223
  • 5.8.5 ... Managing Multiple Form Fields ... 225
  • 5.8.6 ... Managing Data Bindings ... 225
  • 5.8.7 ... Adobe Reader Target Version for a Form Template ... 226
  • 5.8.8 ... Defining the Tab Order ... 227
  • 5.8.9 ... PDF Structure ... 228
  • 5.9 ... Summary ... 228
  • 6 ... Form Output ... 229
  • 6.1 ... Print Program ... 230
  • 6.1.1 ... Data Selection ... 230
  • 6.1.2 ... Determining the Generated Function Module ... 232
  • 6.1.3 ... Opening a Print Job ... 234
  • 6.1.4 ... Calling the Generated Function Module ... 237
  • 6.1.5 ... Closing the Print Job ... 239
  • 6.1.6 ... Form Output ... 240
  • 6.2 ... Spool System ... 244
  • 6.3 ... Device Types for the Output ... 246
  • 6.4 ... Special Output Scenarios ... 249
  • 6.4.1 ... Archiving ... 249
  • 6.4.2 ... Returning Documents ... 250
  • 6.5 ... Error Analysis ... 254
  • 6.5.1 ... Trace and PDF with Additional Information ... 254
  • 6.5.2 ... Activating and Retrieving the Trace in the Print Program ... 258
  • 6.5.3 ... More Detailed Error Messages ... 258
  • 6.5.4 ... ICF Recorder ... 258
  • 6.6 ... Performance Optimization Through Bundling ... 263
  • 6.6.1 ... Bundling Forms ... 263
  • 6.6.2 ... Activating Bundling ... 264
  • 6.6.3 ... Deactivating Bundling ... 265
  • 6.6.4 ... Bundling Example ... 266
  • 6.6.5 ... Bundling the PDF Return ... 269
  • 6.7 ... Parallelization of Print Jobs ... 270
  • 6.7.1 ... Activating Parallelization in the Print Program ... 272
  • 6.7.2 ... Monitoring Requests ... 273
  • 6.7.3 ... Tracing Using the SOA Manager ... 276
  • 6.8 ... Translating Forms ... 281
  • 6.8.1 ... Translating Short Texts ... 282
  • 6.8.2 ... Translating Long Texts ... 283
  • 6.8.3 ... Output of a Translated Form ... 284
  • 6.9 ... XFP Output ... 285
  • 6.10 ... Summary ... 287
  • 7 ... Advanced Form Template Design ... 289
  • 7.1 ... Advanced Techniques for Print Forms ... 289
  • 7.1.1 ... Preparations ... 289
  • 7.1.2 ... Floating Fields ... 290
  • 7.1.3 ... Using Tables ... 292
  • 7.1.4 ... Page Breaks ... 296
  • 7.1.5 ... Subform Set ... 300
  • 7.1.6 ... Using Patterns for Display Formatting ... 302
  • 7.1.7 ... Conditional Page Breaks ... 307
  • 7.1.8 ... Form Output with Duplex Printing ... 309
  • 7.1.9 ... Output of the Completed Form Template ... 311
  • 7.2 ... Interactive PDF Forms ... 312
  • 7.2.1 ... Preparations ... 313
  • 7.2.2 ... From PDF-Based Print Forms to Interactive PDF Forms ... 317
  • 7.2.3 ... Form Fields of Interactive PDF Forms ... 330
  • 7.2.4 ... Dynamic Properties ... 338
  • 7.3 ... Using Script Programs ... 341
  • 7.3.1 ... First Script Program ... 342
  • 7.3.2 ... Tips for Debugging Script Programs ... 346
  • 7.3.3 ... Calculations via Script Programs ... 348
  • 7.3.4 ... Input Validation via Script Programs ... 349
  • 7.3.5 ... Controlling the Ready-for-Input Status and Visibility of Form Fields ... 350
  • 7.3.6 ... Determining the Recipient Address for an Email Message at Runtime ... 352
  • 7.3.7 ... Querying Reader Version Information ... 353
  • 7.3.8 ... Access to Data Nodes and Form Fields ... 356
  • 7.3.9 ... Dynamic Tables ... 357
  • 7.4 ... Using Barcodes ... 361
  • 7.4.1 ... Properties of Barcodes ... 362
  • 7.4.2 ... Notes on the Output of Barcodes with Zebra Label Printers ... 363
  • 7.5 ... Tips for Increasing Performance ... 363
  • 7.5.1 ... Merging Static Texts ... 363
  • 7.5.2 ... Resolution of Used Images ... 364
  • 7.5.3 ... Ensuring Correct Data Bindings ... 364
  • 7.5.4 ... Nesting Depth of Subforms ... 364
  • 7.5.5 ... Gradient Fills for PostScript Level 2 ... 365
  • 7.5.6 ... Using Script Programs ... 365
  • 7.5.7 ... Enforcing Strict Scoping Rules in JavaScript ... 365
  • 7.5.8 ... Limiting the Volume of Transferred Data for the Form Output ... 366
  • 7.5.9 ... Using Fonts ... 366
  • 7.6 ... Introduction to Accessible PDF Forms ... 366
  • 7.6.1 ... Creating Accessible PDF Forms ... 367
  • 7.6.2 ... Tips for Creating Accessible PDF Forms ... 368
  • 7.7 ... Additional Information ... 369
  • 7.7.1 ... Additional Information on the Internet ... 369
  • 7.7.2 ... Adobe Designer Scripting Reference ... 369
  • 7.7.3 ... XFA ... 370
  • 7.7.4 ... Acrobat JavaScript Reference ... 370
  • 7.8 ... Summary ... 371
  • 8 ... Integration with Web Dynpro ABAP ... 373
  • 8.1 ... Web Dynpro ABAP ... 374
  • 8.1.1 ... Initial Overview ... 374
  • 8.1.2 ... Step by Step: Hello World ... 378
  • 8.2 ... Scenarios for the Integration of Interactive Forms ... 385
  • 8.2.1 ... Print Scenario ... 385
  • 8.2.2 ... Online Scenario ... 387
  • 8.2.3 ... Offline Scenario ... 388
  • 8.3 ... The InteractiveForm UI Element ... 389
  • 8.4 ... Interaction with Form Builder ... 391
  • 8.4.1 ... Using Form Templates ... 391
  • 8.4.2 ... The pdfOnly Case ... 404
  • 8.5 ... Implementing Scenarios Using Web Dynpro ABAP ... 404
  • 8.5.1 ... Print Scenario ... 405
  • 8.5.2 ... Online Scenario ... 410
  • 8.5.3 ... Offline Scenario ... 469
  • 8.5.4 ... Migrating ACF to ZCI ... 497
  • 8.5.5 ... Specialized Topics ... 498
  • 8.6 ... Summary ... 500
  • 9 ... Internal Service Request ... 501
  • 9.1 ... Introduction ... 502
  • 9.1.1 ... Concepts in the ISR Framework ... 502
  • 9.1.2 ... Prerequisites ... 504
  • 9.1.3 ... What Can Be Configured and Where Can It Be Programmed? ... 505
  • 9.2 ... SAP NetWeaver Portal Scenarios ... 506
  • 9.2.1 ... Grouping of the Provided Scenarios ... 507
  • 9.2.2 ... Calling the Request Form in the Portal ... 507
  • 9.2.3 ... Applicant Role ... 508
  • 9.2.4 ... Approver Role ... 514
  • 9.2.5 ... Processor Role ... 517
  • 9.2.6 ... Workflow or Worklist? ... 518
  • 9.3 ... Getting Started—Creating a Plain Scenario ... 518
  • 9.3.1 ... Preliminary Considerations for a New ISR Scenario ... 519
  • 9.3.2 ... ISR Wizard ... 520
  • 9.4 ... Customizing and Programming a Scenario ... 529
  • 9.4.1 ... General Details ... 529
  • 9.4.2 ... Application and Version ... 532
  • 9.4.3 ... Notification Type ... 533
  • 9.4.4 ... Entry Type ... 534
  • 9.4.5 ... Characteristics ... 535
  • 9.4.6 ... Activities and Automatic Updates in Notifications ... 537
  • 9.4.7 ... The Processor’s Activities from the Form ... 541
  • 9.4.8 ... Processor Determination (BAdI QISR3) and Workflow ... 543
  • 9.4.9 ... Service Costs and BAdI QISR2 ... 548
  • 9.4.10 ... Testing the Scenario ... 550
  • 9.5 ... Request Forms as Adobe Forms ... 551
  • 9.5.1 ... Specific Properties ... 551
  • 9.5.2 ... Structure of the Interface and Form Context ... 552
  • 9.5.3 ... Generating Adobe Forms from Characteristics ... 554
  • 9.5.4 ... Generating New Characteristics from the Form ... 556
  • 9.5.5 ... ISR Library—Special Screen Elements ... 556
  • 9.6 ... Form Flow Logic ... 564
  • 9.6.1 ... Data Structures within the ISR Framework ... 567
  • 9.6.2 ... Default Values for the MODE, USER_COMMAND, and FORM_VIEW Parameters ... 568
  • 9.6.3 ... Programming Examples ... 568
  • 9.6.4 ... Reading and Setting the Special Request Fields in BAdI Methods ... 572
  • 9.6.5 ... Error Handling During Checks ... 574
  • 9.6.6 ... Controlling the Field Layout ... 574
  • 9.7 ... ISR Architecture ... 575
  • 9.7.1 ... ISR as a Toolset ... 575
  • 9.7.2 ... Web Dynpro ABAP Component and How to Use It ... 577
  • 9.7.3 ... Usage Options in SAP NetWeaver Portal ... 580
  • 9.7.4 ... ISR_PROCESS_EVENT RFC ... 588
  • 9.7.5 ... Additional Interfaces and Auxiliary Functions ... 590
  • 9.8 ... ISR in the Application Basis (ABA) ... 592
  • 9.8.1 ... Basic Concept ... 592
  • 9.8.2 ... Defining a Scenario ... 594
  • 9.8.3 ... Form Flow Logic ... 596
  • 9.8.4 ... Architecture ... 600
  • 9.9 ... Summary ... 603
  • 10 ... ABAP Offline Infrastructure ... 605
  • 10.1 ... Offline Scenarios Using Email Messages ... 605
  • 10.2 ... Address Updating in the Flight-Booking Model as a Sample Scenario ... 606
  • 10.3 ... Configuring the Email Inbound ... 608
  • 10.4 ... Using ABAP Offline Infrastructure ... 609
  • 10.4.1 ... Creating the Offline Handler ... 609
  • 10.4.2 ... Interface and Context ... 610
  • 10.4.3 ... Creating the Form Template ... 612
  • 10.4.4 ... Generating and Sending the Form ... 618
  • 10.4.5 ... Processing Forms Received ... 623
  • 10.5 ... Testing the Offline Scenario ... 628
  • 10.6 ... Summary ... 633
  • 11 ... ABAP PDF Object ... 635
  • 11.1 ... Overview ... 635
  • 11.2 ... Instantiating the PDF Object ... 636
  • 11.3 ... Creating a PDF Document ... 639
  • 11.3.1 ... Retrieving a Form ... 640
  • 11.3.2 ... Transferring a Form via a Reference ... 641
  • 11.3.3 ... Creating an Interactive PDF Document ... 642
  • 11.3.4 ... Usage Rights ... 645
  • 11.4 ... Processing an Interactive PDF Document ... 647
  • 11.4.1 ... Filling Out an Interactive PDF Document ... 648
  • 11.4.2 ... Data Extraction ... 650
  • 11.4.3 ... Validation of a Digital Signature ... 651
  • 11.5 ... Certifying PDF Documents ... 653
  • 11.6 ... Job Profiles ... 657
  • 11.7 ... Additional Methods of the PDF Object ... 657
  • 11.8 ... Summary ... 658
  • 12 ... Offline Scenarios via Web Services ... 659
  • 12.1 ... Overview ... 659
  • 12.2 ... Using WSDL Data Connections ... 660
  • 12.2.1 ... Creating a Web Service Based on a BAPI ... 660
  • 12.2.2 ... Creating a Form Template ... 668
  • 12.2.3 ... Testing the Form Template ... 674
  • 12.3 ... Using the SOAP Object in JavaScript ... 678
  • 12.3.1 ... Creating a Web Service on the Basis of a Function Module ... 678
  • 12.3.2 ... Creating a Form Template ... 684
  • 12.3.3 ... Implementing the Web Service Calls ... 685
  • 12.3.4 ... Testing the Form Template ... 690
  • 12.4 ... Tips for Using Web Services ... 692
  • 12.4.1 ... Calling the Web Service in the Click Event ... 692
  • 12.4.2 ... Calling the Web Service Automatically When Opening the Form ... 692
  • 12.4.3 ... Calling Multiple Web Services Using a Button ... 692
  • 12.5 ... Summary ... 693
  • 13 ... Advanced Installation and Configuration ... 695
  • 13.1 ... Configuring a Secure Connection to ADS ... 695
  • 13.1.1 ... Setting Up Your Own Certification Authority ... 696
  • 13.1.2 ... Creating an SSL Client Identity in the ABAP System ... 698
  • 13.1.3 ... Configuring the Java System and ADS ... 709
  • 13.1.4 ... Creating a Secure Connection in the ABAP System ... 727
  • 13.2 ... Managing and Creating Job Profiles ... 730
  • 13.2.1 ... Calling the Job Profile Management ... 730
  • 13.2.2 ... Managing Job Profiles ... 731
  • 13.2.3 ... Creating a New Job Profile ... 731
  • 13.3 ... Installing and Using the XDC Editor ... 734
  • 13.4 ... Summary ... 735
  • ... The Authors ... 737
  • ... Index ... 739