®
JD Edwards EnterpriseOne: The Complete Reference
About the Authors
Allen Jacot is a leading industry expert on EnterpriseOne with over 11 years of experience with the product. He frequently makes presentations at both Oracle Open World and Quest Collaborate. He is also a widely published author, having written two other books on the EnterpriseOne product. Allen started working with the EnterpriseOne product in 1996 when he worked on the beta release of the product for JD Edwards. Currently Allen is the director of the CNC JD Edwards National Practice for Fujitsu Consulting. He lives in Denver, Colorado, with his wife, Kimberly, and his two daughters, Samantha and Alexandra. Joseph Miller is a Vice President in DHL Express US working as the head of the Marketing, Sales, and Services domain concentrating on IT systems and business solutions. Joe started work with the EnterpriseOne application suite in 1996 and has worked in a technical and project-consulting capacity with over 60 different implementations globally. Joe currently works and lives in Plantation, Florida, with his wife and two kids. Michael Jacot is a seasoned ERP consultant with 10 years of technical experience. During the course of his career Michael has had the opportunity to manage many different types of EnterpriseOne implementations, where he has been responsible for providing technical project leadership, advanced practice methodologies, and performance and tuning efforts, as well as lowlevel technical solutions. These project efforts have ranged from complex phased upgrades to the design and implementation of advanced technical architectures. Michael’s tenure has provided him the opportunity to work with accounts around the world. This experience has afforded him a view into how ERP implementations operate domestically as well as globally. The combination of these experiences allows Michael to truly enjoy the opportunity to assist clients in effectively applying technology to their business requirements. Michael Jacot is currently a Senior Principal Consultant for Oracle. John Stern is a highly accomplished senior-level IT executive currently serving as Chief Information Officer for a Fortune 1000 company with manufacturing, distribution, and retail operations. John is widely recognized as an industry leader in technology integration and has a track record of delivering impressive contributions to top- and bottom-line growth in a global market and a reputation for creating corporate value through the integration of IS&T, business processes, and people. Central to his 3-Core strategy is a focus on ERP.
About the Contributing Authors Sandra Holmes has 15 years of enterprise resource planning software experience, and 12 of these years are with JD Edwards software. She is a recognized industry expert with CNC. Sandra holds an electrical engineering degree from LSU. Jay Burtt is a certified Project Management Professional through PMI with over 15 years of JD Edwards implementation experience. His current responsibilities as Director of Project Delivery for Fujitsu Consulting include oversight of all consultants responsible for financials, HR/payroll, offshore development, and offshore CNC technology, as well as all project managers on every JD Edwards project in North America. Jay resides in Lake Kiowa, Texas, with his wife, Tracy, of 22 years and his two children. Alex Jorna is a Senior Sales Engineer at MicroStrategy and formerly worked at Fujitsu Consulting as Practice Director for the JDE BI practice, installing, maintaining, and enhancing BI solutions for customers running on JDE ERP. Alex was an integral part of the JDE BI concept, from its inception in 1999 thru 2005 while at Oracle as a development manager and technical lead for the BI solution that was developed and made available to JDE customers. Alex is originally from South Africa and has about 19 years of industry and BI experience reaching across country lines, database platforms, ETL, and analytical reporting toolsets.
About the Technical Editor Scott Watson has over 6 years of technical CNC experience for EnterpriseOne. During this time Scott has been involved with a variety of projects including installations, upgrades, and general support for a number of clients in a variety of industries. To complement his experience, Scott has a Masters in Computer Information Systems from the University of Denver and a B.S. in Financial Accounting from Colorado State University. Scott is currently a senior consultant for Fujitsu Consulting. He resides in Denver, Colorado, with his wife, Cheyenne, and their dog Bear.
This page intentionally left blank
®
JD Edwards EnterpriseOne: The Complete Reference Allen Jacot Joseph E. Miller Michael Jacot John A. Stern
New York Chicago San Francisco Lisbon London Madrid Mexico City Milan New Delhi San Juan Seoul Singapore Sydney
Toronto
Copyright © 2009 by The McGraw-Hill Companies. All rights reserved. Except as permitted under the United States Copyright Act of 1976, no part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written permission of the publisher. ISBN: 978-0-07-159874-3 MHID: 0-07-159874-X The material in this eBook also appears in the print version of this title: ISBN: 978-0-07-159873-6, MHID: 0-07-159873-1. All trademarks are trademarks of their respective owners. Rather than put a trademark symbol after every occurrence of a trademarked name, we use names in an editorial fashion only, and to the benefit of the trademark owner, with no intention of infringement of the trademark. Where such designations appear in this book, they have been printed with initial caps. McGraw-Hill eBooks are available at special quantity discounts to use as premiums and sales promotions, or for use in corporate training programs. To contact a representative please visit the Contact Us page at www.mhprofessional.com. Information has been obtained by McGraw-Hill from sources believed to be reliable. However, because of the possibility of human or mechanical error by our sources, McGraw-Hill, or others, McGraw-Hill does not guarantee the accuracy, adequacy, or completeness of any information and is not responsible for any errors or omissions or the results obtained from the use of such information. TERMS OF USE This is a copyrighted work and The McGraw-Hill Companies, Inc. (“McGraw-Hill”) and its licensors reserve all rights in and to the work. Use of this work is subject to these terms. Except as permitted under the Copyright Act of 1976 and the right to store and retrieve one copy of the work, you may not decompile, disassemble, reverse engineer, reproduce, modify, create derivative works based upon, transmit, distribute, disseminate, sell, publish or sublicense the work or any part of it without McGrawHill’s prior consent. You may use the work for your own noncommercial and personal use; any other use of the work is strictly prohibited. Your right to use the work may be terminated if you fail to comply with these terms. THE WORK IS PROVIDED “AS IS.” McGRAW-HILL AND ITS LICENSORS MAKE NO GUARANTEES OR WARRANTIES AS TO THE ACCURACY, ADEQUACY OR COMPLETENESS OF OR RESULTS TO BE OBTAINED FROM USING THE WORK, INCLUDING ANY INFORMATION THAT CAN BE ACCESSED THROUGH THE WORK VIA HYPERLINK OR OTHERWISE, AND EXPRESSLY DISCLAIM ANY WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. McGraw-Hill and its licensors do not warrant or guarantee that the functions contained in the work will meet your requirements or that its operation will be uninterrupted or error free. Neither McGraw-Hill nor its licensors shall be liable to you or anyone else for any inaccuracy, error or omission, regardless of cause, in the work or for any damages resulting therefrom. McGraw-Hill has no responsibility for the content of any information accessed through the work. Under no circumstances shall McGraw-Hill and/or its licensors be liable for any indirect, incidental, special, punitive, consequential or similar damages that result from the use of or inability to use the work, even if any of them has been advised of the possibility of such damages. This limitation of liability shall apply to any claim or cause whatsoever whether such claim or cause arises in contract, tort or otherwise.
This book is dedicated to our families, who provided the support and patience needed to complete this journey.
This page intentionally left blank
Contents at a Glance PART I
EnterpriseOne Explained—Inside and Out 1
The Future of EnterpriseOne and Fusion
...........................
3
2
EnterpriseOne Building Blocks
..................................
29
3
Solution Explorer
.............................................
93
4
EnterpriseOne Servers
5
Data Warehouse and Business Intelligence
. . . . . . . . . . . . . . . . . . . . . . . . . 181
6
Interactive and Batch Applications Defined
. . . . . . . . . . . . . . . . . . . . . . . . . 221
7
Packages and Their Delivery
8
Foundation Code
9
EnterpriseOne Kernel Architecture
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
PART II
System Administration and Troubleshooting 10
EnterpriseOne Specialty Applications
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
11
EnterpriseOne Security
12
EnterpriseOne Administrative Tasks
13
Printing in EnterpriseOne
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
14
Web Servers and Portals
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
ix
x
JD Edwards EnterpriseOne: The Complete Reference
15
Upgrade Tools and Rules
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
16
Optimizing EnterpriseOne for Your Business
17
Troubleshooting EnterpriseOne
. . . . . . . . . . . . . . . . . . . . . 725
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
A
The EnterpriseOne Implementation
B
Offshore, Near Shore, and Remote Development Index
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783 . . . . . . . . . . . . . . . . . . 857
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
Contents FOREWORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii ACKNOWLEDGMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii PART I
EnterpriseOne Explained—Inside and Out 1
The Future of EnterpriseOne and Fusion . . . . . . . . . . . . . . . . . . . . . . . . . . . Definition and Difference Between Fusion Middleware and Applications . . . Fusion Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrade Path to Fusion Applications ........................ Service-Oriented Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application Integration Architecture .............................. Fusion Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fusion Middleware Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 4 6 8 9 10 11 11 28
2
EnterpriseOne Building Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Some Information Necessary to Understand Data Sources ........ What Is a Data Source? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . What Information Is Contained in a Data Source? . . . . . . . . . . . . . . . How Many Data Sources Do I Need? . . . . . . . . . . . . . . . . . . . . . . . . Data Sources and Their Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Now Back to the Question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How Do You Set Up and Configure Data Sources? . . . . . . . . . . . . . . Architecture of the Data Source Revisions Window ............. Special Uses for Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Path Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Path Codes: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definition of a Path Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29 30 30 32 33 37 37 41 41 43 46 50 50 51
xi
xii
JD Edwards EnterpriseOne: The Complete Reference
Which Tables Are Used .................................. Adding a Path Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifying the F9861 Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deleting a Path Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definition of an Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tables Used for Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding an Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copying an Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deleting an Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . When to Create a Custom Environment . . . . . . . . . . . . . . . . . . . . . . . Object Configuration Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definition of the Object Configuration Manager . . . . . . . . . . . . . . . . Tables That Are Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . What Really Happens When a Workstation Requests Data or Logic . What Happens When a Workstation Runs a UBE . . . . . . . . . . . . . . . How to Add OCM Mappings .............................. How to Copy OCM Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deleting an OCM Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Difference Between System and Server Map . . . . . . . . . . . . . . . . Changing the Mappings for Object Librarian Tables . . . . . . . . . . . . . Changing Oracle Parameters that EnterpriseOne Uses . . . . . . . . . . . . Revise Table and Data Source Overrides Screen . . . . . . . . . . . . . . . . Advanced Object Configuration Manager Operations . . . . . . . . . . . . Oracle EnterpriseOne Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Types of Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JDENET_N, JDENET_K, and JDEQUEUE . . . . . . . . . . . . . . . . . . . . . . JDEBase Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Synchronous Versus Asynchronous Processing . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
51 52 63 66 66 67 67 68 70 70 70 71 71 72 72 74 76 80 80 80 80 82 84 86 86 86 87 88 89 90
Solution Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Basic EnterpriseOne Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Solution Explorer: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 HTML: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Main View: Left Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Main View: Right Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Task View Structure Explained – Solution Explorer . . . . . . . . . . . . . . . . . . . . 104 File Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Edit Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 View Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Tools Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Applications Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Help Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Contents
xiii
Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 How Task Views Interact with EnterpriseOne . . . . . . . . . . . . . . . . . . 119 Customizing an Existing Task View . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Adding a Custom Task View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Inserting an Existing Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Deleting a Task View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Modifying an Existing Task View . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Copying a Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Applying Roles to a Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Adding a Task Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Copying an Existing Task and Its Relationships to a New Task View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Deleting a Task Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Task Where Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Deleting Relationships When Multilevel Relationships Exist . . . . . . . 135 Delete a Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Task Translations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Filtering Task Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Understanding Task View Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Changing a Role View of Task View . . . . . . . . . . . . . . . . . . . . . . . . . 140 Change Control and Task Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 4
EnterpriseOne Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Does the Platform Matter? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 The EnterpriseOne Deployment Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Deployment Server Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Does the Deployment Server Have to Do All That? . . . . . . . . . . . . . . 146 Rolling the Deployment Server into a Configuration . . . . . . . . . . . . . 148 Data Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Data Servers Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Why You Would Implement a Data Server . . . . . . . . . . . . . . . . . . . . 152 How to Implement the Data Server Solution . . . . . . . . . . . . . . . . . . . 155 Application Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 App Servers Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Uses for App Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 App Servers Pros and Cons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Application Server Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Making the Application Server Work for You . . . . . . . . . . . . . . . . . . 163 Enterprise Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Definition of an Enterprise Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Types of Enterprise Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 How to Add an Enterprise Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 When to Add an Enterprise Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
xiv
JD Edwards EnterpriseOne: The Complete Reference
Web Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Definition of a Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Setting Up a Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Special Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Collaboration Portal Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 The Windows Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 5
Data Warehouse and Business Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . 181 The Business Case for Business Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . 183 The Connection Between Data Warehousing and Business Intelligence . . . . 184 Data Warehouse Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Why Not Obtain the Necessary Data Directly? . . . . . . . . . . . . . . . . . . . . . . 185 Making Use of the Data Warehouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Options for Creating a Data Warehouse Solution . . . . . . . . . . . . . . . . . . . . . 188 Advantages of Starting Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Using the Right Data Warehousing Architecture . . . . . . . . . . . . . . . . . . . . . 191 Phase 1: Implement Initial Architected Data Mart . . . . . . . . . . . . . . . 192 Phase 2: Implement Additional Architected Data Marts . . . . . . . . . . . 193 Phase 3: Expand to Enterprise Architecture . . . . . . . . . . . . . . . . . . . . 194 Steps in the Development of a Data Warehouse . . . . . . . . . . . . . . . . 195 Best Practices for Next-Generation Data Warehouses . . . . . . . . . . . . 196 Using the Oracle Business Intelligence Suite of Products . . . . . . . . . . . . . . . 197 Oracle BI Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Oracle BI Presentation Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Oracle BI Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Oracle BI Interactive Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Oracle BI Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Oracle BI Briefing Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Oracle BI Delivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Oracle BI Office Plug-In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Oracle BI Disconnected Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Oracle BI Administrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
6
Interactive and Batch Applications Defined . . . . . . . . . . . . . . . . . . . . . . . . . 221 Applications Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Logic Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Application Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Taking a Peek Inside Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Interactive Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Forms: An Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Contents
Batch Application Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Walkthrough of Report Design Aid (RDA) . . . . . . . . . . . . . . . . . . . . . 235 Report Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Report Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Data Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Data Sequencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Processing Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Batch Versions Versus Interactive Versions . . . . . . . . . . . . . . . . . . . . 240 Commonalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 7
Packages and Their Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 EnterpriseOne Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Centralized Versus Decentralized Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Standard Central Objects and Check-in Location . . . . . . . . . . . . . . . 246 Decentralized Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Workstation Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Full Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Update Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Overview of Package Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Defining a Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 What Happens During a Package Build . . . . . . . . . . . . . . . . . . . . . . 261 Tables Used During a Package Build Definition and Build Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Server Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Full Server Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Update Server Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Package Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Deploying Client Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Deploying Server Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Troubleshooting Package Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 Troubleshooting Client Package Builds . . . . . . . . . . . . . . . . . . . . . . . 286 Troubleshooting Server Package Builds . . . . . . . . . . . . . . . . . . . . . . . 287 Package Build History Application . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Troubleshooting Client Package Deployment . . . . . . . . . . . . . . . . . . 290 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
8
Foundation Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Definition: What Is a Tools Release? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 When to Apply a Tools Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 Why to Apply a Tools Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
xv
xvi
JD Edwards EnterpriseOne: The Complete Reference
How to Apply the Tools Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Backing Up Your Old Tools Release . . . . . . . . . . . . . . . . . . . . . . . . . 297 Apply the New Tools Release to the Deployment Server . . . . . . . . . . 298 Apply Tools Release 8.97 and Newer Using Server Manager . . . . . . 299 Upload the Tools Release into Server Manager . . . . . . . . . . . . . . . . . 299 Distribute the Tools Release to the Appropriate Server . . . . . . . . . . . 299 Have the Server Manager Install/Upgrade the Tools Release . . . . . . . 301 Tools Release 8.96 and Older . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Building and Deploying an Update Package to Your Client Workstations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 How to Test and Remove a Tools Release . . . . . . . . . . . . . . . . . . . . . 310 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 9
EnterpriseOne Kernel Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 What Is a Kernel? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Overview of Kernel Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 A Closer Look at the JDENET_n Processes . . . . . . . . . . . . . . . . . . . . . 318 JDENET_k Kernel Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 How to Configure These Kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Strategies for Configuring Your Servers . . . . . . . . . . . . . . . . . . . . . . . 331 Monitoring EnterpriseOne Kernel Processes . . . . . . . . . . . . . . . . . . . 332 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 PART II
System Administration and Troubleshooting 10
EnterpriseOne Specialty Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Object Management Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 Owners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 Allowed Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 The Object Management Workbench Form . . . . . . . . . . . . . . . . . . . 347 Basic Search in OMW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Behind the Scenes of OMW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 Data Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Data Dictionary Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 The Data Dictionary and Development . . . . . . . . . . . . . . . . . . . . . . . 357 Working with the Data Dictionary Application . . . . . . . . . . . . . . . . . 358 Data Dictionary Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 Wrapping Up the Data Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Contents
xvii
Media Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 Media Objects Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 Imaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Setting Up Media Objects in EnterpriseOne . . . . . . . . . . . . . . . . . . . 365 System Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 Server Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 Server Map Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 Tools Associated with Server Maps . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Data Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 Control Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 Control Tables Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 Next Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 User-Defined Codes (UDCs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 Data Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 Job Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 11
EnterpriseOne Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 Users and Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 Defining Users and Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 The Real Story on Users and Roles . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Sign-on Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Sign-on Security Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Other Application Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 Enterprise Server INI Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 Client Workstation INI Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Security Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Inclusive/Exclusive Row Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 Application Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 Action Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 Row and Column Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 Processing Option Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 Tab Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 Hyper Exit Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 Exclusive Application Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 External Calls Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 Solution Explorer Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 Miscellaneous Security Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 Data Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 Push Button Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 Link Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 Image Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 Media Object Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
xviii
JD Edwards EnterpriseOne: The Complete Reference
Text Block Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 Chart Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 Publish BSSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 Business Unit Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 UDC Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 Business Unit Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 Transaction Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 Menu Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 EnterpriseOne User Profiles in an LDAP-Enabled Environment . . . . . 452 Under the Hood of LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 Single Sign-on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 Third-Party Security Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 12
EnterpriseOne Administrative Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 Server Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 Server Manager Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 Installing Server Manager Console . . . . . . . . . . . . . . . . . . . . . . . . . . 458 Configuring Server Manager for Your System . . . . . . . . . . . . . . . . . . 460 Server Manager Console Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 Oracle Configuration Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 Administering Different Servers with Server Manager . . . . . . . . . . . . 497 How EnterpriseOne Server Code Really Works . . . . . . . . . . . . . . . . . . . . . . 515 JDENet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 Kernel Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 User Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 Types of User Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 How User Overrides Are Created . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 User Override Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 The EnterpriseOne Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 F91300, the Schedule Job Master Table . . . . . . . . . . . . . . . . . . . . . . 530 Setting Up the Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 Scheduling Batch Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 Adding a Job Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 Trouble Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
13
Printing in EnterpriseOne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 The EnterpriseOne Printing Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 A Quick History Lesson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 P98616 – EnterpriseOne Printers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 Settings for Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 Printing to a Comma-Delimited File . . . . . . . . . . . . . . . . . . . . . . . . . 569
Contents
xix
Importing and Exporting from EnterpriseOne Grid Forms . . . . . . . . . . . . . . . 571 Exporting from Grid—Ad Hoc Reporting . . . . . . . . . . . . . . . . . . . . . . 571 Importing to Grid—A EnterpriseOne Powerhouse . . . . . . . . . . . . . . . 574 Other Printing Options in EnterpriseOne . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 Troubleshooting Printing in EnterpriseOne . . . . . . . . . . . . . . . . . . . . . . . . . . 580 Printer Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 Printing with Third-Party Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 XML Publishing – 8.97 – The New Frontier . . . . . . . . . . . . . . . . . . . . . . . . . 583 XML Publishing – An overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 XML Publishing – A Deeper Look . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 14
Web Servers and Portals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 E1 HTML Server, Formerly Java Application Server (JAS) . . . . . . . . . . . . . . . 604 Server Manager Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 Architecture Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 Installing EnterpriseOne HTML Code Using Server Manager . . . . . . . 605 WebSphere vs. Oracle Application Server . . . . . . . . . . . . . . . . . . . . . 608 Definition of Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 Oracle Application Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 Installation of EnterpriseOne using OAS . . . . . . . . . . . . . . . . . . . . . . 610 WebSphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 Portal Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 Oracle Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637 IBM Collaborative Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
15
Upgrade Tools and Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655 Differences Between Upgrades and Updates . . . . . . . . . . . . . . . . . . . . . . . . 656 JD Edwards Methodology for Updates and Upgrades . . . . . . . . . . . . 657 Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 Upgrades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 Upgrades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 Basic Parts of an Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 EnterpriseOne Minimum Technical Requirements for Windows NT Enterprise Servers . . . . . . . . . . . . . . . . . . . . . . . . 665 Backup Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 When to Roll Back . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672 Impact on Your End Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675 Nuts and Bolts of an Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675 Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715 Table Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715 Control Table Merges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
xx
JD Edwards EnterpriseOne: The Complete Reference
Environment Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716 Specification Merge Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716 Electronic Software Updates (ESUs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 Retrofitting Modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719 Running in Parallel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719 Running Two Separate Releases of EnterpriseOne in Parallel . . . . . . 720 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 16
Optimizing EnterpriseOne for Your Business . . . . . . . . . . . . . . . . . . . . . . . 725 When to Optimize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 Understanding the Jigsaw Puzzle . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 The Five-Step Optimization Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . 728 Step 1: Optimize the OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728 Step 2: Optimize the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 Step 3: Optimize the Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 Step 4: Apply Process Redesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733 Step 5: Apply CNC Concepts Where Available . . . . . . . . . . . . . . . . . 736 Summarizing the Five-Step Optimization Process . . . . . . . . . . . . . . . 738 Creating Multiple Queues on a Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 Multiple Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739 Why Add Queues? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 The Required Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 Tuning the JDE.INI Kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744 Multithreaded Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745 Optimizing the Kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745 Tuning the Web Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746 The Apache Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747 The Web Application Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747 The EnterpriseOne JAS Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
17
Troubleshooting EnterpriseOne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753 Performance Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754 Setting Up to Use the Performance Workbench . . . . . . . . . . . . . . . . 754 Analyzing Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755 Performance Workbench Do’s and Don’ts . . . . . . . . . . . . . . . . . . . . 760 Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761 Server Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761 Server Debug Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764 UBEDEBUG.LOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766 Platform-Specific Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768 AS/400 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769 UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777 Intel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
Contents
A
xxi
The EnterpriseOne Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783 The Software Selection Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784 Preparing to Make the Move of a Lifetime . . . . . . . . . . . . . . . . . . . . . 785 Do You Understand Your System Requirements? . . . . . . . . . . . . . . . 786 Are There Any Existing Products That Already Fit the Bill? . . . . . . . . . 786 Create the Request for Proposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787 Reviewing the RFP Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787 What Are Your Current Technology Skill Sets? . . . . . . . . . . . . . . . . . 788 Can You Afford the Move at This Time or Can You Afford Not To? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788 Things to Know About the Contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 It’s a License—You Didn’t Purchase It . . . . . . . . . . . . . . . . . . . . . . . . 789 Hiring Consultants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 System Audits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 Phases of the Technology Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 791 Events Associated with a Technology Implementation . . . . . . . . . . . . 791 Phase 4: EnterpriseOne Architecture Modeling . . . . . . . . . . . . . . . . . 797 Phase 5: Pre-Go-Live Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 Phase 6: Go-Live Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800 Phase 7: Continuing Technology Support . . . . . . . . . . . . . . . . . . . . . 800 The EnterpriseOne Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 Before You Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 Sizing Your Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803 Purchasing the Hardware and Software . . . . . . . . . . . . . . . . . . . . . . . 804 Preinstallation Audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804 The Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805 The Postinstallation Audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805 Wrapping Up the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806 Modeling Your Solution (Phases of the Application Implementation) . . . . . . 806 From the Application Point of View . . . . . . . . . . . . . . . . . . . . . . . . . 807 From the Technologist’s Point of View . . . . . . . . . . . . . . . . . . . . . . . 809 Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811 Core Implementation Team Training . . . . . . . . . . . . . . . . . . . . . . . . . 811 End-User Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812 Continued Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814 Development and Version Control Methodology . . . . . . . . . . . . . . . . . . . . . 814 How to Use This Material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814 Can You Separate Development and Version Control? . . . . . . . . . . . 815 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815 Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821 Go-Live Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 Application and Technical Audits . . . . . . . . . . . . . . . . . . . . . . . . . . . 830 Final User Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
xxii
JD Edwards EnterpriseOne: The Complete Reference
Software Package Builds and Deployments . . . . . . . . . . . . . . . . . . . . 832 Final Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833 Real-Time Data Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833 Flipping the Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834 What Now? (Maintaining the Value of Your System) . . . . . . . . . . . . . . . . . . 834 Globalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834 Single or Multiple Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835 Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835 EnterpriseOne Languages at Tier Levels 1–3 . . . . . . . . . . . . . . . . . . . 836 Global Development Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 839 Localizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840 Application and Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . 843 Interoperability and EnterpriseOne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844 Electronic Data Interchange (EDI) . . . . . . . . . . . . . . . . . . . . . . . . . . . 844 Interfaces and Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852 e-Opportunities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855 In Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855 B
Offshore, Near Shore, and Remote Development . . . . . . . . . . . . . . . . . . . . 857 Are Managed Services Right for You? The Question of Outsourcing . . . . . . . 858 The Basics of Managed Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858 Ten Simple Rules of Managed Services . . . . . . . . . . . . . . . . . . . . . . . 859 Quick Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 Managed Services Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866 Managed Services – Development Activities . . . . . . . . . . . . . . . . . . . 866 Managed Services – Technology Activities . . . . . . . . . . . . . . . . . . . . 867 Managed Services – Hosting of Your System . . . . . . . . . . . . . . . . . . . 869 Managed Services – Maintenance Contracts . . . . . . . . . . . . . . . . . . . 870 Pros of Managed Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871 Cons of Managed Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871 The Resources Available via a Managed Services Offering . . . . . . . . . . . . . . 872 Offshore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872 Near-shore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873 Onshore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874 Remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875 Onsite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876 A Quick Example of Costs for Onshore Resources . . . . . . . . . . . . . . . 876 Assessing Risk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876 Understanding Risk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876 An Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878 Risk Mitigation Strategy Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878 Wrapping IT Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
Index
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
Foreword Working for an organization that has utilized JD Edwards’ software for 20 years has allowed me to better appreciate the evolutionary process that has resulted in EnterpriseOne Version 8.12. TETRA Technologies, Inc. implemented its first instance of JD Edwards’ software in 1988 and, subsequently, maintained and upgraded it with successive versions, culminating in an implementation of World 8.1 that did a good job of supporting much of the Company’s business well into 2007. This longevity was possible, because, as TETRA grew from a small product manufacturing company into a much larger diversified products and services company, its JD Edwards software could be readily configured to address new lines of business. In 2004, when TETRA acquired a Scandinavian operating unit, international business activities grew exponentially. With this acquisition, it was determined that the best option was to continue down the JD Edwards evolutionary path and implement EnterpriseOne 8.9. This implementation was accomplished in 90 days! The flexibility of JD Edwards EnterpriseOne, coupled with a working knowledge of JD Edwards World 8.1 which was applicable to an understanding of EnterpriseOne, in no small way helped to make this very rapid deployment possible. The most significant challenge associated with this implementation was not that of configuring it to address specific business needs, but rather that of making a client-server application perform adequately on an international network. In 2006, further acquisitions and organic growth led to TETRA’s decision to upgrade from dual World 8.1/EnterpriseOne 8.9 instances to a single instance of EnterpriseOne. Given the success achieved over the years following the JD Edwards evolutionary trail, the decision was made to deploy EnterpriseOne version 8.12. Throughout this project, knowledge of World 8.1 and EnterpriseOne 8.9 was valuable and applicable to configuring EnterpriseOne 8.12—further evidence of the resilience of the underlying system design and JD Edwards’ adherence to an evolutionary path. This path also encompasses the underlying technologies used in conjunction with JD Edwards’ software. Version 8.12 is now HTML web-enabled, allowing our users to securely access TETRA’s EnterpriseOne implementation from anywhere they can get Internet connectivity.
xxiii
xxiv
JD Edwards EnterpriseOne: The Complete Reference
JD Edwards is known for its loyal customer base—a loyalty that has been earned over time by virtue of delivering a solid product that can be configured to address a multitude of business requirements before incurring the need to customize. These qualities allow JD Edwards’ customers to more easily address business requirements, while maintaining a current implementation of the software, thus receiving the benefits of improved vendor support, system functionality, and technology advances without the attendant burdens of customization and/or less than optimal business solutions. A point that is often made about Enterprise Requirements Planning (ERP) Systems, in general, is that they are monolithic and, thus, very hard to implement and maintain. JD Edwards has significantly mitigated this issue by developing their software utilizing a modular, Services Oriented Architecture. This quality allows a new JD Edwards customer to implement the software and functionality they need today with the knowledge that they can add modules and functionality as they are needed. This feature is a significant value proposition for a company that anticipates the need to grow and scale over time. When one looks across today’s packaged ERP market landscape, the first thing that becomes apparent is the limited number of vendors who offer true Enterprise capability. Although there are several vendors who claim to provide ERP systems, not all do. A true Enterprise Requirements Planning system must not only support basic financial activities, but also enable a broad range of underlying business processes (e.g., Planning, Manufacturing, and Job Costing), while capturing and reporting key metrics needed to effectively manage business. Today, there are very few ERP packages that can deliver such; and when you add the requirement of being highly configurable “out of the box,” the list gets very short, but most certainly includes JD Edwards EnterpriseOne. Regarding the future of ERP systems, there is some amount of discussion around the development of the Business Process Execution Language (BPEL). With a BPELenabled ERP system, a business process defined in BPEL format would “autoconfigure” the ERP implementation to enable support of the business process. When, not if, this technology is made available, JD Edwards’ evolutionary history serves to point out that if EnterpriseOne 8.12 is not BPEL-enabled, its descendent will be. For all the above reasons, whether you are considering the acquisition of a new ERP system or desire to maximize your existing JD Edwards investment, you should gain as much information about JD Edwards EnterpriseOne’s functional and technical capabilities as you can. I know of no better way to do so than to read JD Edwards EnterpriseOne: The Complete Reference. —Michael B. Lobin V.P., Information Technology TETRA Technologies, Inc.
Acknowledgments We would like to thank the following people: ■ This book would not have been possible without the support of Nancy Littlejohn and Kevin Sullivan. Nancy, thank you for working with us on schedules, deadlines, and always being a sounding board. ■ A special thanks to Clayton Seeley for providing excellent technical insight and ensuring we were really explaining the web and portal. Clayton’s attention to detail was critical in ensuring specific items were thoroughly explained. ■ Brett Mcgarity for his insights and suggestions in explaining the underpinnings of the EnterpriseOne Kernel processess. Brett was a constant source of information and an invaluable sounding board for this process. ■ Michael Guerra for his excellent suggestions, ideas and all around ability to look at things from all sides. Michael’s views helped shape the type of information we wanted to deliver to our readers. ■ The team at McGraw-Hill (Lisa McClain, Patty Mon, Vastavikta Sharma, Margaret Berson, Paul Tyler, Jack Lewis, Mandy Canales, Jennifer Housh, and many more) who worked tirelessly to ensure this project was a success. ■ Sheila Cepero for all her help with contracts and tracking down information for our chapters. Thank you so much for your patience and dedication to this project. ■ We would also like to thank Ed Abbo, Lenley Hensarling, Steven Reeter, and Steve Schaffer for helping us involve some outstanding resources from Oracle. Without the use of the extremely talented individuals, we would not have been able to deliver some of the great information that our readers expect. Thank you for your support of this project. ■ Finally a special thank you to Scott Watson who provided great insight as the technical editor of this book, but also ensured he got all his edits in even though he had his wedding in the middle of the project. Thank you Scott for your dedication and many thanks to your wife Cheyenne for her patience and understanding.
xxv
This page intentionally left blank
Introduction
Greetings, fellow travelers along the quest we call enterprise resource planning. It is a pleasure to see that you are on this journey, are contemplating this journey, or are just plain bored and thought this book would interest you. This book was almost a year in the making, and we hope our efforts have produced a book that will interest you, entertain you, and provide you with deeper insight into Oracle’s JD Edwards EnterpriseOne ERP suite of products. It has been a pleasure for us to bring it to you. The combined experience of the authors includes over 30 years of EnterpriseOne technology and implementation experience. We have pushed ourselves to show both the good and the bad, and though we have occasionally disagreed on specific content, we are all in agreement that this book will benefit every organization that is in the process, has completed this process, or is contemplating the process of implementing EnterpriseOne. One of our specific goals has been to ensure that the novice and experienced practitioner alike can read, understand, and get something out of these pages. We have it on good authority (and yes, we did test it) that it will benefit you and your organization. One of the key goals of this book is to provide not just the “how” associated with various setups within EnterpriseOne, but the “what” as well. After all, in this age of the Internet, information is readily available. But information is not knowledge, and knowledge is what we, the authors, sought to impart.
How to Use This Book This section was difficult for the authors to agree on because there are simply a huge number of ways to use this book. In the simplest of terms, the book can act as a reference where you look for specific answers or information. By using the appendix or the glossary, you can quickly zero in on the information you need right now. Additionally, the book can be read from cover to cover, providing a general framework of information. The authors specifically laid out the book to provide building blocks of EnterpriseOne knowledge and then grow based on those blocks.
xxvii
xxviii
JD Edwards EnterpriseOne: The Complete Reference
Sections Within a Chapter We’ve added several unique sections into the layout of each chapter. All chapters start with an introduction (some are humorous and some simply attempt it). At the end of the introduction, you will see a list of the topics covered in the chapter. We won’t list every topic, just the main threads of discussion. Notes, Definitions, and Tables You will see a variety of notes, definitions, tables, and other special sections where we pull information from different sources to add to your overall understanding of the topics we are presenting. Additionally, we have added as many screen shots from the actual product and different supported platforms as we can. These screen shots have been picked not necessarily as duplicates of the examples provided (that is, the same information), but rather to assist you in understanding how the applications look and feel within the product. Parts of the Book The chapters in the book can be broken into two primary parts: an in-depth section with very technical concepts illustrating how the product works (especially under the GUI), and a section on administering, configuring, and manipulating the system to your company’s requirements. How you read the book is up to you, but we think that all of it is both informative and useful. Writing Style This book is written with an interactive style. Often, you will feel as if the authors are talking directly to you (or at least that is the feel we’ve been shooting for). We have tried to anticipate your questions. Many times, we actually write what we think you will be asking yourself while reading it. If we miss our mark, we hope our questions will address something you didn’t think to ask but wish you had.
The Authors’ Notes As mentioned, this book is the best compilation of the combined experiences of the authors’ 30 years of working with EnterpriseOne technology. We have tried to provide real examples wherever possible to help with your learning curve. We have changed or omitted the names of companies and other pertinent information, but the vast majority of the work comes from our personal experiences working with and implementing the EnterpriseOne product at real client sites. And again, we hope that you will find it both useful and educational. Going forward, we thought that it would help if you understood some of the background of the company bringing you the EnterpriseOne product and the history of that product itself. Take a couple of minutes and read through these pages to gain a better understanding of who they are and where they came from.
Introduction
A Little Company on the Prairie
xxix
If you have worked with JD Edwards for any amount of time, you will probably hear them referred to as “the little software company on the prairie.” This company really did start out as a little software company. Three people with a vision came together to create JD Edwards: Jack Thompson, Dan Gregory, and Ed McVaney. Each of these founders lent a small part of their names to create JD Edwards. When the company was first started, it designed custom business software for small and medium-sized companies. Eventually, JD Edwards focused on the IBM System/38 and began creating business application suites. It was this focus that allowed JD Edwards to create their CASE software development and design tool. This design tool gave the company consistency across the range of their integrated applications. As the company rolled through the 1980s, they really began to grow. This is when JD Edwards started to open branch offices around the country. In the late 1980s, the decision was made to start concentrating on international expansion. To kick off this international growth, the company opened a European headquarters in Belgium (the European headquarters was later moved to the United Kingdom) and soon followed with a series of offices around the world to now encompass North America, South America, Europe, and Asia. It soon became apparent from the company’s incredible growth that they would either need to remain a small software company on the prairie servicing customers on an individual basis or they would need to break out as an industry leader, providing a software package that would meet the needs of many different companies. This is how the WorldSoftware suite was born. This software helped JD Edwards become recognized as an industry-leading supplier of applications software for the IBM AS/400. JD Edwards has enjoyed great success with the WorldSoftware suite. However, this is a company that is used to being an industry leader. So as the industry started to move to client/server solutions, JD Edwards responded. In August 1996, OneWorld (the original public name of the EnterpriseOne software) was brought to the market. This software again allowed the company to achieve a technological breakthrough. JD Edwards was not interested in just meeting industry standards; they wanted to go beyond them and remain an industry leader in the enterprise software market. EnterpriseOne has allowed the company to do this. This software is highly configurable and runs on a variety of different platforms. It also has an integrated toolset that gives Oracle’s JD Edwards customers the ability to modify the software to meet their business needs. As customers’ business needs change, the EnterpriseOne software is flexible enough to change with them. After all, this is what Oracle does best: meet their clients’ business needs. Ed McVaney, one of the company’s founders and a driving force for the EnterpriseOne software, has been quoted as saying, “We believe our first job is to solve your business problems. Nothing else counts if we don’t solve your business problems.”
xxx
JD Edwards EnterpriseOne: The Complete Reference
As a company in 2003, JD Edwards knew it needed to consolidate with another organization if it was going to continue its fast pace of growth and provide an everincreasing array of business solutions to the market. Major ERP competitors had come and gone due to their leadership’s lack of foresight. When Ed McVaney returned as CEO of JD Edwards in 2000 replacing then CEO Doug Massingill, he knew he would have to be willing to lead the industry to ensure the success not only of the product, but also of his customers. In 2003, JD Edwards was acquired by PeopleSoft in a move that shook the industry. Weeks after the announcement that PeopleSoft and JD Edwards would merge, Oracle tendered a bid on PeopleSoft itself. Though this was fought in court, the industry was ripe for consolidation and Oracle began an impressive run of software company acquisitions. As you can see, the little company on the prairie has become part of the industry leader. They have moved from providing enterprise resource planning software to providing e-business solutions. They continue to search for new ways to provide highly configurable solutions to their customers that will enable them to realize their own dreams.
PART
I
EnterpriseOne Explained— Inside and Out
This page intentionally left blank
CHAPTER
1
The Future of EnterpriseOne and Fusion 3
4
JD Edwards EnterpriseOne: The Complete Reference
W
e peer deeply into the EnterpriseOne magic crystal ball. We are looking into the future. Now if we really had a true, working magic crystal ball, we would be playing the lottery. Seriously though, there is an outstanding question in many people’s minds about where the industry is going. This is a fair question. Oracle has told the world that they will be releasing the Fusion Applications set in mid-2009. The tech stack on which Fusion Applications is being built is already available; you will hear this referred to as Fusion Middleware. This new product, Fusion Applications, is going to have some of the best functionality from the different products that Oracle has acquired. However, many customers have invested a lot of time, sweat, and money into their existing EnterpriseOne systems. These customers do not want to see their investment wasted. When Oracle first bought PeopleSoft, there was a lot of fear in the industry that EnterpriseOne was going to disappear. This caused the number of upgrades and new implementations to come almost entirely to a stop, at least temporarily. Oracle quickly realized not only how much customer loyalty there is in the EnterpriseOne space, but the amount of money that could be made by marketing this solution. So to put the customers at ease, Oracle introduced their lifetime support policy (Applications Unlimited Program). With this program, Oracle has committed to supporting certain EnterpriseOne releases without a stop date. Bug fixes and tax updates will stop after a certain number of years, but you will still be able to get support for these releases, providing you pay your maintenance contract! This bold move, which the authors applaud, has put the industry at ease, and more and more customers are moving to the newer releases of EnterpriseOne. However, what will Fusion Applications offer? What is it really? Can I use some of it with my EnterpriseOne system? These are the new questions that are on the minds of EnterpriseOne customers. In this section we are going to try to answer some of these questions. Now we do not have a crystal ball and also are not sitting in on Oracle’s board meetings. We are going to simply walk through what we see happening and the wonderful opportunities that EnterpriseOne customers can take advantage of in the next several years.
Definition and Difference Between Fusion Middleware and Applications
Let’s start out by clearing up some confusion that seems to be out there on Fusion. You see, there are two different prongs to the Fusion story. These are the Fusion Applications and Fusion Middleware. Often people hear “Fusion” and immediately think of the Fusion Applications that are scheduled to be released in 2009. However, that is only part of the story. There is a powerful set of tools called Fusion Middleware.
Chapter 1:
The Future of EnterpriseOne and Fusion
What is really the difference? The Fusion Applications will be an enterprise resource planning (ERP) software package. This software package will cover a variety of functionality for customers. This new application set is designed to be Service-Oriented Architecture–compliant. This means that it is standards based: Customers will be able to fill roles to support this product more easily as industrystandard skills will be required instead of just skills on proprietary tools. This also means that it will be easier to integrate with the Fusion Applications. This will allow customers to create a best-of-breed solution for their business requirements. Fusion Middleware is already out and available. This software allows for the integration of systems. It is basically the plumbing that you can put into place to have systems talk to each other. This middleware uses industry-standard technology. Some of this is Simple Object Access Protocol (SOAP), Business Process Execution Language (BPEL), and Web Services. Oracle has supplied hooks for Fusion into EnterpriseOne. This allows EnterpriseOne customers to “Fusionize” their solutions. You do not have to go to Fusion Applications to take advantage of some of the new Service-Oriented Architecture (SOA) functionality. We will discuss this in more detail in the “Fusion Middleware” section of this chapter. Prior to moving on to discuss the Fusion Applications, we need to stop for a moment and define some terms that you will hear throughout this chapter again and again. Understanding these terms is a requirement for being able to have a conversation about Fusion Applications and Fusion Middleware. Term
Definition
Service-Oriented Architecture (SOA)
A business-centric architectural approach that supports integrating business processes. This is a standards-based approach to architecture for integrating loosely coupled interactive services.
Business Process Execution Language (BPEL)
A programming language that allows you to extend your solution by hooking systems together through business processes. This language enables you to distribute your business process across multiple systems. This is also one of the standards that Oracle uses with its Fusion Middleware Suite.
Simple Object Access Protocol (SOAP)
A protocol that is used to move information in and out of web services. It is XML based and is also another industry standard that Oracle uses in its Fusion Middleware solution.
Extensible Markup Language (XML)
A language that allows developers to share information between applications. It is especially tailored for web applications. XML has been available in the industry for quite a while.
5
6
JD Edwards EnterpriseOne: The Complete Reference
Term
Definition
Web Service
An integration that uses standards, such as XML and SOAP, to integrate systems. An example of a web service might be a bank web page performing a loan credit check. The bank can subscribe to a web service, using these standards, and receive the information back into its system. Thus to the consumer it looks as if they never left the original system.
Web Service Definition Language (WSDL)
A language that is used to communicate what each web service can do. This can be thought of as a contract by the web service saying this is what I can do and what information I require.
Application Integration Architecture (AIA)
An integration platform developed by Oracle for integrating business processes that span application silos. AIA is a methodology as well as a product. Using the AIA methodology, businesses can build cross-application business processes that leverage the AIA toolset. AIA itself is built on the Fusion Middleware technology stack.
Process Integration Pack (PIP)
Industry-specific best-practice flows that have been prepackaged by Oracle and built on the AIA framework. Example: Order to cash flow spanning Oracle EBS and Siebel.
Middleware
Middleware can be thought of as the plumbing to get information from one system to another. Some examples of common middleware packages are BizTalk, TIBCO, and WebMethods.
Fusion Applications
The authors spent a lot of time and thought before including this section in the chapter. We felt we had to address this on some level. The only issue is that at the time of publication there is not a lot of information on exactly what the Fusion Applications will look like. Even at the large user-group event Collaborate of 08, there was not a lot of new information. This is really a timing issue. Oracle cannot discuss functionality until the quarter in which they are going to release the software, or they could get into a revenue recognition issue. This leaves the customers yearning for more information. In this section we are going to share everything that we can about the Fusion Applications. However, we encourage you to regularly visit Oracle’s web site to look for more information to be posted. To start, let’s cover what we know today. The Fusion Applications are a new product line, meaning a new ERP product that Oracle has stated will be released in 2009. This new product is based on
Chapter 1:
The Future of EnterpriseOne and Fusion
Service-Oriented Architecture and uses the middleware solution. You can see the “Fusion Middleware” section of this chapter for more information. This middleware solution exists today and can be used right now. The Fusion Applications will sit on top of this already-proven middleware solution. Although they have been holding information fairly close to the vest, Oracle has stated that Fusion Applications will contain a customer relationship management (CRM) solution. This solution will be based on Siebel’s CRM, which Oracle acquired recently. This is a good move on Oracle’s part as Siebel had a very strong CRM solution that they can now leverage. Since this is based on Fusion Middleware as well, customers can plug in different systems if they have the requirement. What else does Oracle have cooking on the stove for Fusion Applications? They have stated that they are reviewing all of the functionality from their current product lines. They plan to take the best of this functionality and place it into Fusion Applications. Oracle is also trying to bring the look and feel of their product lines closer together. They know that as people move toward Fusion or simply use Fusion Middleware to hook multiple systems together, they will want the end users to have a consistent experience across the system. This is a very exciting time in the industry, and to see Oracle so committed to a standards-based approach should appeal to a lot of their customer base. This standards-based approach will help to reduce the implementation costs and total cost of ownership for Oracle customers. With this in mind, many people ask what they can do today to prepare for the new Fusion Applications. To prepare, you can start to work with the Fusion Middleware product. The Fusion Applications will be sitting on top of this middleware product, so you will have a skill set that can be directly applied to Fusion Applications when you are finally ready to move to them. To do this you should be on a current release. As of 8.12 with foundation code 8.97, there is a lot of functionality coupled with the EnterpriseOne software. Some of this is business services, which are the way that EnterpriseOne publishes web services. These also are hooked directly into the Object Management Workbench, so that makes for easy promotion, deployment, and monitoring of the code line. Getting back to the point of the discussion about preparing for Fusion Applications, you also need to start evaluating your modifications and especially your integration points. See if there is an area where you can start to use business services instead of a point-to-point integration. This will help you to start down the road to fusion. If you have Fusion Middleware in-house, this is even better, as you can start to become familiar with BPEL Process Manager, Enterprise Service Bus, Oracle Web Services Manager, and Business Activity Monitor. These are all pieces of the Oracle Fusion Middleware. You can also consider using the prebuilt SOA pieces from Oracle. This is offered through their Application Integration Architecture (AIA). These Process Integration Packs (PIP) can help you to start the process into Fusion and the overall SOA approach to resolving your business requirements. AIA can be used stand-alone or in conjunction with a PIP, depending upon your needs.
7
8
JD Edwards EnterpriseOne: The Complete Reference
Your head might be swimming with the alphabet soup that you see when discussing an SOA product, such as Fusion Applications and Fusion Middleware. This is when you need to think of the old saying that you eat an elephant one bite at a time. Oracle has a vast offering to address many different business requirements. You should not try to jump into this all at once. Since it is standards based, you can pick and choose pieces to dip your toes into the Fusion pool and develop the skill sets in-house that you will need to implement the full set of Fusion Applications. This will help to reduce your implementation costs, risk, and overall level of discomfort during your move to Fusion Applications.
Upgrade Path to Fusion Applications Some of you out there are early adopters and cannot wait to get to the new Fusion Applications, or you may be thinking long term and you want to be sure you have a choice of staying on a newer release of EnterpriseOne software or moving to Fusion Applications. Well, you are in luck—Oracle is thinking about you with the product strategy. Oracle has identified releases in not only EnterpriseOne, but also in World software that will provide you a direct upgrade path to Fusion Applications. This does not mean that you have to move to Fusion Applications. It just gives you the option. Table 1-1 shows the upgrade path for EnterpriseOne. You will notice that there is a gap between OneWorld Xe and EnterpriseOne 8.11 where there is not an upgrade path to Fusion Applications. Now some folks are probably wondering why would Oracle go back and support OneWorld Xe for an upgrade path, but not 8.0, 8.9, and 8.10 which are newer releases? Well, there is definitely a method to the madness. You see, a significant part of the EnterpriseOne customer base is on OneWorld Xe or was on the Xe release when the decision for the upgrade path was made. However, this is not the only reason; Oracle was not going to leave their World software customers behind, so they went back and
Release
Upgrade Path to Fusion Applications
OneWorld Xe
Y
EnterpriseOne 8.0
N
EnterpriseOne 8.9
N
EnterpriseOne 8.10
N
EnterpriseOne 8.11
Y
EnterpriseOne 8.12
Y
EnterpriseOne 9.0
Y
TABLE 1-1.
Upgrade Path for EnterpriseOne Software to Fusion Applications
Chapter 1:
World Software Release
The Future of EnterpriseOne and Fusion
Fusion Applications Upgrade Path
A6.3 and earlier
N
A7.3
Y
A8.1
Y
A9.1
Y
TABLE 1-2.
World Software Fusion Applications Upgrade Path
created an upgrade path for World A7.3 release. Now those of you who have been working with OneWorld/EnterpriseOne for a while probably have already figured out where we are going. The data model for OneWorld Xe is the same as the data model for World A7.3. This is how coexistence was possible. The data model was officially first broken between OneWorld and World software with the ERP 8.0 release, although in reality 8.0 had very few changes in its data model. The first large data model change was ERP 8.9. This is why it was easy for Oracle to allow for an upgrade path for OneWorld Xe to Fusion Applications. They already had to do almost all of the work anyway for the upgrade path from World A7.3. This, combined with the number of customers on OneWorld Xe, made it an easy decision for Oracle. Since we brought it up, let’s briefly cover the upgrade path for the World software. Table 1-2 shows the releases that have an upgrade path to Fusion Applications.
Service-Oriented Architecture
Up to this point we have briefly touched upon Service-Oriented Architecture. This is the architecture that Oracle and other ERP software vendors are using in the industry. In this section we will take a little bit of time to step back and look at SOA not just from an EnterpriseOne point of view, but how it is affecting the industry. This will help to round out the discussion and provide you with better insight when diving deeper into the Fusion Middleware layer. Let’s start this discussion by stating that SOA is not specific to any one company. The concept of SOA is to have a world of services that can be subscribed to and used through different applications. This is really to get businesses to an information- and process-driven enterprise. This means that all of the information required for business processes is readily available. When a business gets to this point, it will not matter what system the information is in. You will no longer have isolated silos of data. A real-world example of this would be if you purchased multiple companies, that is, you are growing through acquisitions. You might inherit lots of different systems that you need to string together. With SOA you can grab all this data as you need it. You can also configure
9
10
JD Edwards EnterpriseOne: The Complete Reference
your systems to show this data through a single portal-type interface for your users. Although this sounds like a utopia, it is close to being achieved.
Application Integration Architecture
You cannot go to any Oracle user group meeting without hearing something about Oracle application integration architecture. The market does not sit still and thus the demands on the information technology departments also do not stand still. Very few companies get to start out with a blank slate. They inherit systems or acquire them when other companies are purchased. Most of the time, companies have point-to-point integrations with these systems. These point-to-point integrations are basically “poured in concrete.” This means that they are difficult to change and fairly inflexible. This adds risk to customers’ architectures and makes changes, such as upgrading one system, very difficult. Oracle believes they have a solution to resolve this type of issue. They want their customers to be able to show value to the business through very flexible and adaptable integration of systems. Their solution to this is AIA. This solution helps to reduce the complexity for your infrastructure to support your different integrations. How does it handle this? This is handled through standards-based code. This allows you to automate your business processes. Application Integration Architecture has three key components: These are industry reference models, Process Integration Packs, and prebuilt Service-Oriented Architecture with Fusion Middleware. The reference models are industry best practices that have been documented for your use. These models will help you to quickly move forward on your integrations. You don’t need to learn the hard way about what works and what doesn’t. Some of these hard-learned lessons have already been found for you. This will help you to reduce your time and effort when working with AIA. Application Integration Architecture also has what are called Process Integration Packs. These packs have been created for you by Oracle to integrate different Oracle products. You can then take a best-of-breed approach with different Oracle products. This means that you can use a preconfigured pack to map a business process across different systems, that is, Siebel to E-business, for example. With these integration packs your modifications are greatly reduced as are your implementation times. Most of the time you will still need to do some configuration to tweak these packs to your specific business requirements. You will need to contact Oracle to see what packs are available for your different requirements. It is important to check the versions of the Oracle product that are supported by a PIP. PIPs tend to be product- and version-specific. Finally, you can also leverage prebuilt SOA integrations levering Fusion Middleware. This allows you to reduce your implementation time by using these standards-based pieces of code. This makes them not only extendable, but highly reusable. Another reason that these prebuilt SOAs are important is that they reduce the number of mappings that you need to configure when setting up your
Chapter 1:
The Future of EnterpriseOne and Fusion
integration points. The less mapping you need to do, the less cost and also less risk since you have less custom code.
Fusion Middleware
Now that we have talked about the Fusion Applications and the upgrade path to move to them, let’s talk about the Fusion Middleware. This functionality is available now to EnterpriseOne customers. In this section we are going to talk about what Fusion Middleware really is, why you would care, and how you can leverage it to expand your EnterpriseOne solution. Let’s start with what Fusion Middleware is. It is exactly what it sounds like, a middleware solution, and much more. Middleware is software that allows you to integrate systems and move data from one point to another. The Fusion Middleware is based on SOA. This means that it is a standards-based solution. You will also hear Oracle refer to this technology as Oracle Fusion Middleware – SOA Suite. This is because there are different pieces of the Fusion Middleware that you can use. We will cover these in detail in the “Fusion Middleware Architecture” section. However, briefly, these parts are ■
Monitoring optimization
■
Internet/access
■
Orchestration
■
Gateway
■
EnterpriseOne Tools–Business Services
Fusion Middleware Architecture Let’s talk about the actual architecture that makes up Fusion Middleware. To do this we are going to break things down into smaller chunks. These groupings or chunks will make things much easier to understand. We are going to talk about the Oracle Fusion Middleware – SOA Suite, presentation layer (HTML or Portal), and finally the tools in JD Edwards EnterpriseOne.
Oracle Fusion SOA Suite The Oracle Fusion Middleware – SOA Suite consists of several layers. You do not need to use all of these layers in your solution. This means that you can select the layers that your company needs. It also means that Oracle is not locking you into using their total solution. You can use other middleware and still take advantage of Fusion functionality in EnterpriseOne. We will explain this in greater detail when we talk about Business Services for EnterpriseOne.
11
12
JD Edwards EnterpriseOne: The Complete Reference
Right now let’s say you have a web service that you are publishing. If that is the case, you will need software to function as the gateway. This gateway will provide event routing, security, logging, and failover capabilities. The Oracle solution for this gateway is the Enterprise Service Bus and Web Services Manager software. This software allows you to configure message routing between different systems. You can also set up the system to have guaranteed message delivery. With guaranteed message delivery, the messages are stored on a server so that if something fails they can be retransmitted. This is also where you can configure how many systems you want to send certain messages to. Let’s talk about a real-world problem. Let’s say you are a company that has grown through acquisition. You have five different distribution centers all currently running five different warehousing programs, but you want the clerks taking your orders through the EnterpriseOne sales order application to be able to see, reserve, and relieve inventory from any of these distribution centers. You also want this to be in real time, as customers are on the phone, and the message has to get through, so you would want guaranteed delivery. To do this you can use a web service out of EnterpriseOne. This service can be called from the HTML sales order screen during an order entry activity. You would then use your Web Services Manager and Enterprise Service Bus to configure which distribution sites “subscribe” to this type of web service. There may be conditions where only three of the distribution centers would subscribe to a specific web service, for example, a specific type of configured order that only three distribution centers out of the five could handle. Continuing with our real-world example, you need something to orchestrate your business process. It is not always as simple as data in and data out. Decisions may need to be made. For example, do you allow items to be backordered? Does another system need to be used in the process as well? This can be handled through the BPEL Process Manager. This software lets you map out the entire business process, pulling in web services as required. When you look at this software the business process looks like a flowchart. This makes the programming fairly simple as well as standards based. Also in the orchestration layer you can handle data mapping if required. In our example we have multiple warehouse systems, which may have different field lengths for things like order number. Suppose in one system the order number is split across two fields and in another it is in a single field. You can set up rules to handle this through your orchestration layer. Thus you do not have to go in and change the data model for your systems. The ability to “float” above the system data model like this is very powerful and can help to keep development costs down. So in our example we now have a process that goes out and validates item availability from different distribution centers and sends the data back to EnterpriseOne in real time with guaranteed delivery. There is really nothing else out there to look at, right? Wrong. Once you have a system, you are going to want to know how it is performing and also to monitor it for issues. In Oracle’s solution this
Chapter 1:
The Future of EnterpriseOne and Fusion
is their Business Activity Monitoring (BAM) software. This allows you to monitor your business events. In this section we have covered a lot of ground. We have talked about gateway, orchestration, monitoring, and other key concepts. Figure 1-1 shows you a visual representation of the different pieces of the Oracle Fusion Middleware – SOA Suite. This will help to show how the different pieces fit together.
Enterprise Service Bus and Web Services Manager The first question many people have is, what is an enterprise service bus? This is software that can move data from multiple endpoints. These points do not need to be within the enterprise. The software can not only move data, but also provide orchestration, meaning that it can transform and route data as well. If you look at the high-level architecture of the enterprise service bus, you will see that you will have an Enterprise Server Bus (ESB) server, console, metadata server, and of course the hook into JDeveloper. Let’s start by talking about the
Monitoring & Optimization
Business Activity Monitoring
Client Presentation Layer
This layer is where you can call the business process
Portal
Orchestration
Process Flow Logic is handled here
BPEL PM
Gateway
Event Routing
Security and Logging
Failover
Enterprise Service Bus
E1 Tools
Oracle Fusion Middleware – SOA Suite
WSDL
Business Services
XML
SOAP
HTML Application
FIGURE 1-1. Oracle Fusion Middleware – SOA Suite architecture diagram
13
14
JD Edwards EnterpriseOne: The Complete Reference
Enterprise Service Bus. This server lets you interpret Web Services Definition Language (WSDL). It can also handle SOAP and HTTP. Under the hood of this server you have built-in integration services. This is very powerful as it can handle routing information as well as transformation. Although you won’t really see the underpinnings of ESB as a user, you hook directly into it using JDeveloper. The next piece of the architecture to the Enterprise Service Bus is the ESB metadata server. This server holds your metadata information. This type of information handles your transformations and routing rules. This is how the ESB server knows where to send specific messages.
BPEL Process Manager We have been spending a lot of time in this chapter talking about standards. The BPEL Process Manager is another extension of the Oracle offering so that their customers can leverage industry standards. BPEL stands for Business Process Execution Language (BPEL). The Oracle BPEL Process Manager is a Fusion Middleware product that allows customers to easily model, publish, and manage BPEL processes. This allows customers to configure their business processes using this tool. Since the authors are not full-time developers, they will be the first to tell you there are always some tricks of the trade that developers use. However, Oracle actually allowed us to get our hands dirty with the BPEL Process Manager. This tool has a very easy-to-use interface. You can map processes, which will show up like a flowchart in the tool. Even for us folks who have not coded for more years than we care to admit, it was fairly easy to open up and start working with the tool. The thing to keep in mind is that you are automating a process with this tool, which is why you can see the process flow in the tool. You can have an exception to handle. On the Oracle web page Oracle gives a great example of a load application as a BPEL process being worked on with a BPEL Process Manager. In the process flow they invoke a credit rating check; this would be another web service they are subscribing to. They then obtain quotes from multiple sources. These allow for the lowest rate to be shown. This is a simple example, but a very good one. The authors highly recommend you review this example in Oracle’s BPEL 101 Tutorial on their web site. It gives you a nice high-level feel for what you can accomplish with this tool. NOTE The BPEL Process Manager is loaded into the JDeveloper software. So you can call this right from JDeveloper.
Chapter 1:
The Future of EnterpriseOne and Fusion
So what are some of the cool features of this software that all the developers will love? Well, very quickly this software allows you several key items, such as: ■
Direct integration into JDeveloper
■
Native BPEL support
■
Debugging for BPEL
■
Incorporated integration services
■
Oracle BPEL Server
■
Capability of synchronous and asynchronous messaging
■
Side-by-side versioning
■
Capability of handling large XML documents
■
And as they say on TV, much, much more
Business Activity Monitor When you have your integration configured and set up, you still need the ability to see what is happening. It is also great if this can be real-time information in a dashboard type of view. The Oracle genie says “wish granted,” in a loud booming voice. This is where Business Activity Monitor (BAM) comes into play. This software is a part of the Fusion Middleware solution offered by Oracle. This means that you can use this software with different ERP products; you are not simply tied into EnterpriseOne. So let’s talk about some of the real-world requirements again. Let’s say you are a manufacturing firm with one ERP solution for distribution and a different one for manufacturing and advanced warehouse. The theme nowadays is that we have to be more nimble and do more with less. So how can you improve your inventory accuracy for your warehouse? How much do you need to manufacture for next month or even next week? This is where BAM really shines. This tool is very new to the EnterpriseOne customers. However, it is not new to the Oracle software arsenal. This solution has been available and used with other Oracle products throughout the world. This is very good news for EnterpriseOne customers. This means that the software has been through real paces with real customers in the industry. Oracle has simply extended this functionality, through Fusion Middleware, to EnterpriseOne customers.
15
16
JD Edwards EnterpriseOne: The Complete Reference
Business Activity Monitor Components This software solution is built of different components or layers. It is these components that work together to provide users with real-time analytical information for decision making. These components are ■
Data integration
■
Data caching
■
Analytics
■
Monitoring
■
Alerting
■
Reporting
In this section we are going to talk at a high level about each of these components. With this understanding, you will be able to better understand how you can use this software to monitor your business processes and alert you to changes so that your business can react to them. TIP You will need to refer to the Oracle web site to obtain current release and minimum requirements information. Let’s start the discussion with data integration. This is exactly what it sounds like, a data integration engine. This engine allows you to capture data and feed it into the data cache. This component or piece of BAM will also be referred to as EnterpriseLink. With this integration engine you can pull data from a multitude of locations. You can use web services, message queues, XML sources, and even relational database queries from data warehouses. As you grab the data you can move it and even transform it as required. Since not only real-time data, but historical data, can be looked at, this gives the software the ability to generate alerts, since real-time data can be compared to historical data. This is very powerful as it allows you to quickly identify and respond to trends in your business processes. Active data cache is another component of BAM. This is actually a system that is designed to support monitoring and active data. What does that mean? What this means in plain English is that the data is put into a form for the end user, after being extracted from the system being monitored. This data is then kept in sync with those systems so that the data does not get stale.
Chapter 1:
The Future of EnterpriseOne and Fusion
Let’s take a look at another real-world example. Suppose your company is a manufacturing firm that has multiple systems, such as distribution, manufacturing, and advanced warehousing systems. With the active data cache you can keep all of the data you need from these systems in sync and organize the data in a form that works for your business. So let’s say you are manufacturing and some of your materials are perishable or lose potency over time. You can actually use a solution like this to see how much of this material you have on hand and when it will drop in its potency. So this is presented to your users in a manner they understand and that works with your business process; thus you can make good decisions and avoid losing money on material going to waste. Any time you are monitoring data, analytics become very important. So you will hear the term event engine used with BAM. Basically this component allows the system to see complex data streams and make “decisions” based on rules. Then a specific action can be taken such as a work flow message or perhaps even more complex actions. It is important to do some careful analysis of your business processes when defining the rules for the software. Finally, let’s touch upon monitoring, reporting, and alerting. We have already discussed some of the monitoring and alerting in this section. Based on rules you define, you can configure alerts to be sent to your users. So let’s talk about reporting. In BAM you have what is called the active report engine. These reports can be generated in a variety of different types. Some common types of reports are on key performance indicators. These reports tell you how key pieces of your business are performing, such as your warehouse accuracy. This is also extremely current data as the engine obtains a shot of the data, then can display to the client requesting the data. This allows for up-to-date reporting through BAM. Prior to closing this section, let’s briefly talk about the different client types you can use. After all, we just went through all of the components, that is, the under-thehood pieces, so let’s take a second to talk about the clients that the users would see. You have two options with BAM, a thick client and a thin client. On the thin client you can use the active viewer to display reports. If you are a power user you can use the Active Studio on the thin client. This allows you to actually create and edit reports. The user can also publish reports out to users or set them up to run at specific times. Another tool for a thin client user is the BAM Administrator. This is used by the system administrator to administer and configure the system. This includes setting up security and users. The final tool we will talk about is the BAM Architect. This is another feature that can be used by a thin client. It is used to define data objects for the active data cache so the reports can be used against this data. This is the tool that allows you to define how your data flows into the system and to configure the rules for how to work with that data, such as performing a data transformation.
17
18
JD Edwards EnterpriseOne: The Complete Reference
Monitoring a Business Process Now that we have talked about the details of the different components of BAM, let’s move back up to a higher-level discussion. This is about monitoring business processes, a key function of BAM. The first question is, what are you going to monitor? This will need to be determined as you configure and architect your system, although most businesses will admit that they would like to monitor and orchestrate processes checking for performance indicators. However, very few are actually performing this type of process monitoring today. The reasons for this disparity in monitoring will not really be surprising to you. Most companies have different business processes across divisions and have inherited a lot of different systems along the way. This makes it difficult to monitor business processes across the enterprise. This is the problem that BAM attempts to address. This software allows users to monitor both structured and unstructured processes. This allows businesses to monitor key performance indicators (KPIs) for their business. This makes the data usable for the business and also in a format that makes sense to the business. If the data is hard to sift through and understand, you will not get a lot of users using the data to make decisions. That is why it is so important that the data be up to date and in a format that the users understand. It is not good enough to just identify an issue; there must be a correlation to what is causing the issue. Users need the ability to see what is causing problems, not just that orders are delayed. For example, suppose you are not receiving shipments on time from one of your transportation vendors. The decision makers in your organization need to see that this is the reason items are on back order, not just the fact that items are on back order. This allows for real business decisions to take place.
EnterpriseOne Tools Once you get outside the walls of the EnterpriseOne application, there are a lot of things that you can do. You are probably asking yourself: Is it hard to punch a process out of EnterpriseOne and take advantage of all this cool web services and SOA technology? If you have worked with the software for a while you are probably cringing, thinking you will need to use APIs. Well, take heart—Oracle has put Fusion Middleware technology right into the foundation code for EnterpriseOne. Things really started happening with the foundation code release of 8.95, which can be run on all 8.9 and higher releases of EnterpriseOne. In this foundation code EnterpriseOne was certified with Oracle BPEL Process Manager. They also introduced the web services gateway. Things kept moving with the foundation code release of 8.96. Oracle put out over 70 prebuilt integration points. These are features that you can use right away out of the box. They did not stop there. With the release of foundation code 8.97, you got the concept of business services. These are native web services in EnterpriseOne. They also certified the software with Oracle ESB. During the time this publication was being written, the latest foundation code release was 8.97. So we will be concentrating our discussion on this foundation code release.
Chapter 1:
The Future of EnterpriseOne and Fusion
Business Services Business Services are the native web services inside EnterpriseOne. In this section we are going to break down how business services can be leveraged by EnterpriseOne customers. The first thing to understand is that business services are directly embedded into the EnterpriseOne toolset. There is no additional licensing required to leverage business services. However, you will need to download a copy of JDeveloper, which is required for business services development. This is a free piece of software and can be obtained from the Oracle web site. Business Services Architecture The first thing to understand about business services is that you have both internal and external business services, as shown in Figure 1-2. This is a very important concept to understand. When Oracle came up with the concept of business services, they set this up so that certain functions were
Call to Business Services through WSDL
External Business Services
External Business Services calls will be validated through security.
Internal Business Services
The internal business services are what actually do the work. So when a call for inventory to be relieved is executed, it will be an internal business service that does the actual work and then passes the information back to the external service. These services cannot be called externally.
FIGURE 1-2. Internal and external business services diagram
19
20
JD Edwards EnterpriseOne: The Complete Reference
internal facing. This makes the system more secure as well as giving the developers an easier time of designing their business service. When a developer is creating an external business service, their goal is to ultimately create a WSDL for another system to subscribe to. This is referred to as EnterpriseOne being a publisher of a service. This WSDL is a contract with the other system on what is required to subscribe to the service. When we set up a third-party system to subscribe to a business service, it will use the WSDL to figure out how to call into EnterpriseOne. To make the call into the EnterpriseOne software, middleware software will be used. This could be Fusion Middleware, but does not have to be. All of the major middleware products can handle using Web Services Definition Language. This middleware software will be used to move the data over to the EnterpriseOne System. Some orchestration could also possibly be done here. What this could entail is the mapping of fields from one format to another. The middleware, say Fusion Middleware for simplicity’s sake, gets the message to EnterpriseOne that it will use the business services server. This is where the actual business service has been built and deployed. We will discuss exactly how to do this later in this chapter. When the business service is called, it will check with the security server to ensure that the provided user or role can indeed execute this service. If they are in fact allowed to run the service, then this external business service will call internal business services to accomplish some work. NOTE Oracle has built-in security on the business services– type objects. You can configure the business services to be allowed or restricted to run on the user or role level from the security workbench, P00950. Let’s say the task is to enter an address book record. The external business service would call the specific functions to add the parent record. These are what is referred to as internal business services. A lot of these functions are also master business functions, so for those who started out in the early days, you may recognize some of the functions, but you will be very pleased with how easy it is to call them through business services. This internal business service will perform the work and then, if necessary, you can pass information back to the other system. An example would be if you are using guaranteed events or upon entry you want to send the EnterpriseOne address book number back to the calling system so that it can be referenced in that system. Figure 1-3 shows an example of what it looks like when EnterpriseOne business services are acting as a publisher. Now that we have talked about EnterpriseOne being a publisher of a business service, let’s talk about going the reverse direction. What if we want the system to
Chapter 1:
The Future of EnterpriseOne and Fusion
Web Service
External Business Services
Internal Business Services
EnterpriseOne Kernels Security Server Kernel
EnterpriseOne Database
EnterpriseOne Enterprise Server UBE
HTML Client Call to Business Service
FIGURE 1-3. EnterpriseOne Business Services as a publisher subscribe to a web service? How would that look at an architectural layer? We are glad you asked! In this case EnterpriseOne is consuming some form of web service. So let’s talk about a real-life situation. Many customers have EnterpriseOne running their order entry and financial applications, but have their warehousing systems with another software product. So a user goes into the sales order entry screen and starts to enter an order. They type in an item number. This is where you will have had to put a call in your code to call the web service you are subscribing to. So you will make a call out to check inventory from the third-party system. To do this, the business logic or business function call will be made from the EnterpriseOne HTML server to your EnterpriseOne application server. This server type runs the EnterpriseOne reports and business logic. This will be recognized as a call for a web service, so it will reference the business services server.
21
22
JD Edwards EnterpriseOne: The Complete Reference
At this point the business services server will retrieve information on this particular service from the database. This information is most often stored in the system tables. Some examples would be what user and environment to use. Once this information is obtained, then the middleware solution will be invoked. This can be Fusion Middleware or any other major middleware product such as BizTalk or TIBCO. This is why being standards based is so important. It does not paint the EnterpriseOne customers into a corner where they must use only the Fusion Middleware. The middleware product will then take the information, such as the item number, amount, date of order, and other things in the payload to transfer to the other system. During this process the middleware solution can be configured to perform some orchestration, such as changing the item number to be longer or shorter based on rules. If you are using Fusion Middleware, you can also use BEPL Process Manager to set up a process flow with rules and actions. Let’s say we get into the other system and find that what we want to order is out of stock. Do you allow the system to place a back order? Do you perform product substitution? Perhaps you automatically search several other distribution centers and do an inventory transfer or relieve that inventory for this order. This can all be done through the process manager as you lay out your business process. The third-party inventory system would then show the inventory relieved for this order. So we now have this reserved and send this back to EnterpriseOne so that we can see we can order the item. In this case you would want to use guaranteed delivery and you would also need to architect the system to ensure this integration was very quick. After all, you have one of your customers on the phone. As long as you architect your system correctly, you can get very good throughput and performance out of these integration points. Also if you configure guaranteed delivery, even if you lose communication with the other system, your order will go through as soon as the system comes back on line, meaning you lose nothing in the old bit bucket. This would be an example of EnterpriseOne as a consumer of a web service, which is shown in Figure 1-4. Developing a Business Service So how does all of this work? You now have a new object type on the Object Management Workbench (OMW) for business services. You also have a new server type for business services. What this means is that the development and use of web services will go through the same standard process of develop, build, and deploy as any other object type in EnterpriseOne. This means that it is automatically hooked into your software development life cycle (SDLC). Those of you who did some of the early coding with Extended Business Processes (XPI) are cheering right now. Back then you had to manually promote the code through web methods as well as through EnterpriseOne. There was no direct tie. What this meant was that sometimes you would get one thing promoted, but not
Chapter 1:
The Future of EnterpriseOne and Fusion
Web Service
Business Services
EnterpriseOne Kernels
EnterpriseOne Database
EnterpriseOne Enterprise Server UBE
HTML Client Call to Business Service
FIGURE 1-4. EnterpriseOne as a consumer of a web service something else and then all heck would break loose. This made the job of administering the system difficult at times. With business services we can now create and promote the business service, which is an EnterpriseOne web service directly in the Object Management Workbench. This helps to solve so many of those annoying snags that always seem to come at the worst possible time, such as one little piece of code not being promoted to the next environment. If a developer is going to create a business service, they would log into EnterpriseOne and go to the Object Management Workbench. Once there, they can search on different existing business services or they can add their own if they like. Oracle has over 70 different integrations with business services that are shipped with the EnterpriseOne 8.12 software. Developers should not reinvent the wheel, but should look to copy some of Oracle’s code so they don’t have to create everything from scratch. Figure 1-5 shows what the new business services look like in the Object Management Workbench. If you look closely at Figure 1-5, you will notice that there are two different types of components that affect business services listed. These are the actual business services, which are a Business Service Security Revisions (BSSV) business
23
24
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 1-5. Business Services in Object Management Workbench function type. We will come back to this object. However, you also have the object type of business service property. This object type can almost be thought of as the processing options of the business services. It contains information on the business service itself. Now when you go into the design on the actual business services and select Design Tools, you will see a window with several options, as shown in Figure 1-6. These are Invoke JDeveloper, View Checked In Artifacts, and JDeveloper Install Path. JDeveloper is really your development tool for business services. You can and must download this software from Oracle’s web page in order to modify business services. If this is the first time you have used the business services design tools, you will need to tell the system about your path to JDeveloper. To do this you simply click the JDeveloper Install Path button and browse to the folder where you installed JDeveloper. After doing this, you will be able to click the Invoke JDeveloper button to actually see the code for the business service, as shown in Figure 1-7.
Chapter 1:
The Future of EnterpriseOne and Fusion
FIGURE 1-6. Business Services design tools Now we are actually in the code for the business service. As many developers will note, this code is Java-based. If you have developers who know the JD Edwards business function code, they will pick JDeveloper up fairly quickly. Oracle has a lot of examples to work from and you can easily recognize some of the functions that you can call in JDeveloper. As you use JDeveloper, you will see where you can call internal functions for your business service. This allows you to execute specific functions, such as adding a parent address book record. So if you are creating a new business service, you can copy an existing one and use that code as an example. You would then need to build the business services through JDeveloper. You can then check the business service in. Some other key features in JDeveloper can be accessed through the Event Rule development window, in the Object Management Workbench. There are also many built-in features in JDeveloper itself, which extend the developer’s ability by using icons and more visual buttons to integrate repetitive processes, such as invoking a function. Within JDeveloper there is an easy way to view and modify the actual
25
26
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 1-7. Business service code in JDeveloper source code of the business service. This type of development allows more flexibility when compared to the ease of named event rule (NER) development versus the level of control in C Business Function development. JDeveloper allows a developer to bounce easily between visual-based, workflow development and actual Java code when the need arises. Now you have your code checked in and all is good, right? Actually there are some special programs that can help you with your environment. Specifically these are soft coding and the cross-reference programs. Before moving on, we would not be doing this chapter justice without taking some time to discuss these important programs and how you can use them. Let’s start with the soft coding application, shown in Figure 1-8. This application allows you to plug values dynamically into the code without having to modify the actual code itself. This is very handy when you need to change a user or environment variable in the code line. This application also allows you to mask sensitive data, such as passwords. This means that not just anyone can see this type of data.
Chapter 1:
The Future of EnterpriseOne and Fusion
FIGURE 1-8. Soft coding for business services Now why would you really care about soft coding a value or values? You can create templates for common interfaces, so these records are very reusable. Still not enough? OK, let’s talk about a real-world example. In the past, with the use of web methods and solutions, you had to maintain these values in the actual code line. This meant that you had to open the code again and change the value after you promoted it from environment to environment to ensure that the correct user and environment variables were passed. Also these values were not always masked, which caused a security risk and thus could show up on audit reports. Although this was not a lot of effort, it could cause some rather painful issues. Here’s an example: You promote code and run transactions through prior to realizing that the production integration is writing to the prototyping environment. This would be a key example of why you should not only use soft coding, but why it can be so important. Building and Deploying a Business Service You have created your business services and are ready to move on. Now how do you get the code to where you can have it
27
28
JD Edwards EnterpriseOne: The Complete Reference
used and recognized by other systems? Just as with any other object in EnterpriseOne, you must check the object in, build the object, and then deploy the object. The first step is very simple: You use the Object Check-in option in the Object Management Workbench application. This will move the code from the local workstation into the check-in location and central objects. At this point the work generally moves from the developer to the system administrator. We have discussed earlier in this chapter how business services are now another object type in OMW. So now the objects and/or project are given to the system administrator. They can then build these into a full or update package. Once the package is built it will need to be verified and deployed out. When this package is deployed, it will also be deployed to the business services server. This is how the code can then be recognized and called. Your EnterpriseOne system will then be able to publish your business service.
Summary
As you come to the end of this chapter you may be thinking that you have heard more acronyms than you thought ever existed! Yes, there are a lot of new acronyms to learn as it is an exciting new information technology world. In this chapter we have covered a lot of ground. We have talked about what Service-Oriented Architecture (SOA) is and how it is becoming the industry standard. We spoke about how Oracle is going to a standards-based approach to their ERP applications. We spoke about differences between Fusion Middleware and Fusion Applications. In this chapter we covered the different components of Fusion Middleware. You learned about Business Activity Monitor (BAM) and how you can see what is happening in your system. We showed you Enterprise Service Bus (ESB) and how this can route and orchestrate for your integrations. We also spoke about BPEL Process Manager and how this tool can help to lay out business processes into your integrations. We covered Application Integration Architecture (AIA) from Oracle. We spoke about how you can use preconfigured SOA solutions and packaged integration pieces to speed up your implementation. This approach from Oracle allows you to take advantage of SOA technology faster with less total cost of ownership. We then moved on and spoke specifically about the EnterpriseOne toolset. We covered how EnterpriseOne can be the consumer or publisher of a web services. We also spoke about business services, which are a part of the Fusion Middleware incorporated into the EnterpriseOne foundation code. We showed you how you could use Object Management Workbench to create or modify your business services and then how to deploy them using standard tools. This chapter truly has covered a lot of ground with the new Fusion Middleware, SOA, AIA, and Fusion Applications. However, there is so much more happening every day in this area. The authors highly encourage you to visit the Oracle web site on this technology. Attend a podcast, or better yet, an instructor-led training session. Putting some time and effort into learning about Fusion Middleware will pay off and prepare you for Fusion Applications.
CHAPTER
2
EnterpriseOne Building Blocks 29
30
JD Edwards EnterpriseOne: The Complete Reference
H
ow does EnterpriseOne work? This is one of the questions most frequently asked by both the new EnterpriseOne initiate and the seasoned EnterpriseOne professional. Unless you understand the building blocks that make EnterpriseOne function, there seems to be a mystery to the entire product. In this chapter, we will go into enough detail to give you what you need to understand the EnterpriseOne product from the ground up. We will start laying the foundation by reviewing the data source and providing an understanding of how the system finds data and machines that process logic. We will then move on to path codes and how applications are maintained within the EnterpriseOne system. After that, we will talk about how we can define instances of EnterpriseOne by using the building blocks we covered in the previous two sections. We will also discuss the power behind the versatility of the EnterpriseOne system: the Object Configuration Manager. We will then go into detail concerning the EnterpriseOne middleware and review how this software helps you with all EnterpriseOne activity. Finally, we will end with a quick discussion about asynchronous and synchronous processing.
Data Sources
In this section, we will go into detail concerning what data sources are, how many are required for a system, and how to modify and maintain them, as well as why you might add and modify these elusive little devils. The following list details some of the topics in this chapter that will help remove some of the mystery of EnterpriseOne: ■
Database differences
■
Data source definitions
■
Components that make up a data source
■
The number and types of data sources
■
Data source application P986115
■
Special uses for data sources
■
Data source Law of the West actions
Some Information Necessary to Understand Data Sources Before we jump directly into data sources, which we think is one of the most important topics in this book, we need to talk about the relational database management systems (RDBMSs) supported by the EnterpriseOne Enterprise
Chapter 2:
EnterpriseOne Building Blocks
Resource Planning (ERP) product. There are six primary RDBMSs used by EnterpriseOne. Depending on your implementation, you probably use two or three of these systems; however, you could use them all if it made business sense. EnterpriseOne supports Oracle, Microsoft SQL Server, DB2 on the AS/400, DB2 Universal Database (UDB), Microsoft SQL Server Desktop Engine (MSDE), and as of 8.97, SQL Server Express (SSE). Although many people don’t count MSDE or SSE as a part of their business solution, in reality, these are the databases that can be common among all of the EnterpriseOne solutions. We want to spend a couple of minutes going over the RDBMSs supported by the EnterpriseOne solution because these systems will hold the tables you define using the EnterpriseOne data sources. These relational database systems are different, and these differences show up in how you configure your data sources and why. This may seem somewhat ambiguous, so let us get a little more detailed.
Oracle Oracle maintains tables within table spaces. These table spaces can have a specific owner and are maintained on separate data files. Consequently, if you were looking for F0101 (Address Book Master) for production, it would be in a different table space within the same database as F0101 for the Prototype (PY812) environment. Currently, Oracle ships EnterpriseOne on Oracle with a single database defined. Breaking up this master database can yield superior performance, additional configurability, and flexibility to your EnterpriseOne enterprise solution. Oracle uses a custom communication software package called SQL*Net to communicate between the database itself and other machines trying to reach the data within the tables. Your Oracle database administrator (DBA) will define a connect string (in essence, a series of parameters that tell the client machines how to connect with the Oracle database) for the EnterpriseOne database. If you decide to create several different databases, or if you implement a distributed data architecture, you will have several different connect strings. All the connect string data will be contained in a file called TNSNAMES.ORA under the Oracle path on each client machine.
SQL Server In the past, SQL Server could have all the tables within a single data file. The only difference between the tables was the owner of the tables. This is not to say that the data within the tables is identical, but that the tables themselves can be maintained in the same physical file. In the early releases of EnterpriseOne, all the tables necessary to support all instances of EnterpriseOne were maintained in the same database. Many people who worked in the field noticed that this architecture, while easy to maintain, was certainly not the most efficient for speed or performance. Some began experimenting with breaking up the database into multiple databases maintaining fewer tables in smaller, more efficient devices. There was a marked increase in performance, and the B733 version of OneWorld shipped with multiple
31
32
JD Edwards EnterpriseOne: The Complete Reference
databases instead of a single master database. Today, EnterpriseOne also uses multiple SQL Server databases to enhance performance and to make backups easier in the EnterpriseOne system. This combination of multiple databases can be spread over separate disk drives for optimal performance and configuration capabilities.
AS/400 The AS/400 uses its integrated version of DB2 to accommodate EnterpriseOne’s table requirements (tables are referred to as files on the AS/400). These tables are maintained in libraries (the equivalent of directories or databases in UNIX and on NT). The AS/400 does not support table/file owners. Because of this, you can’t have two identically named tables in the same library. What this means to the person installing or maintaining EnterpriseOne is that you will have multiple libraries for your EnterpriseOne solution. This setup is similar to Oracle’s table spaces discussed earlier.
What Is a Data Source? Before we can adequately answer this question, we have to ask what the underlying piece of any ERP software application is: the data. After all, in the end, it all comes back to the data that is stored, manipulated, and ultimately provides organizations with the return on their system’s investment. Rather than have to hard-code a data link to provide users with multisystem functionality, the EnterpriseOne software engineers came up with the idea of a data source. In the simplest terms, a data source is nothing more than a pointer to where data resides or to a machine that will process logic. These pointers are then used by the EnterpriseOne software itself to determine where the data resides and in what format. When we talk about data pointers, we are really talking about a table or sets of tables that can be identified by either a common table owner or a common data location. Data sources always point out whole tables, not rows or sets of rows within a table. The data source is not used as a method of segmenting data within a table; transactional SQL statements will extract actual subsets of data as required by the specific EnterpriseOne application. Because EnterpriseOne uses data sources, a client can use any one of five different databases (Oracle, SQL Server, DB2 [AS400/UDB], MSDE, or SSE) with equal ease and in multiple combinations designed to allow the user a freedom of choice. Even in a base installation, there are usually two different database formats being used, often without the user’s knowledge. Why did Oracle do this, when architecturally it is more difficult to design? Well, the firm foundation of this system is to create a product that answers a business need. EnterpriseOne is designed to be the ultimately configurable system, where the client decides what makes business sense for them. If you have an Oracle DBA at one site and a SQL Server DBA at another, why not use both of them to maximize the use of your personnel? Why spend money retraining any of these people? The EnterpriseOne answer is to use both database
Chapter 2:
EnterpriseOne Building Blocks
types without retraining anyone. The EnterpriseOne system will allow both of these databases to work together in a way that appears seamless to the end user. Again, the data source is the answer.
What Information Is Contained in a Data Source? The data source is a powerful component of the EnterpriseOne system. This key “building block” accomplishes its job by combining a series of information. Figure 2-1 provides a view of the information contained in a datasource: ■
Data Source Name This name can be up to 30 characters in length and will be used whenever you need to reference the tables defined by this data source.
■
Data Source Use This indicates whether you are using the data source to define tables within an RDBMS or a server that is performing EnterpriseOne logic. Accepted values are DB and SVR.
FIGURE 2-1. Data Source Revisions window
33
34
JD Edwards EnterpriseOne: The Complete Reference
■
Data Source Type This will specifiy if the datasource will be SQL, Oracle, DB2 UDB on OS/400, DB2 UBD on UNIX or Windows, Access, MSDE, or SSE. The setting in this field will control the other fields that are displayed to the user (for instance an AS/400 data source will have different fields then a SQL datasource).
■
Data Class This defines the type of data that will be held in the data source being defined. This new field helps provide better data selection for Universal Batch Engines (UBEs) and servers to further identify what kind of data a data source is referencing. The classes of data available are: Business Data, Central Objects, Data Dictionary, Logic, Host Server Map, Local, Object Librarian, Installation Planner, System, Control Tables, and Versions.
■
Platform This field tells the software what type of platform you are running; accepted values are AS400, NTSVR, HP9000, LINUX, LOCAL, RS6000, and SUN.
■
Database Server Name This is the name of the server that holds the database or performs the EnterpriseOne logic. This can be case sensitive, depending on platform; UNIX servers differentiate between “machine” and “MACHINE.”
■
Object Owner ID The object owner ID is only used with Microsoft SQL Server and Oracle. It indicates the database table owner.
NOTE Only two of the four supported RDBMSs support table owners (SQL Server and Oracle). In essence, these databases allow you to have tables with identical names within the same database differentiated by the user who created them. Use of this system allows you to keep multiple copies of some tables (such as F986101 OCM) in the exact same location. This may simplify system maintenance when you have multiple application servers. ■
Database Name (TNS/Alias) This field is used for SQL Server, Oracle, MSDE, and UDB data source. The field captures the name of the SQL database (for example JDE_PRODUCTION), the name of the Oracle instance (for instance JDEPROD), or the alias of the UDB database.
■
Database Instance This field is used for SQL Server ODBC, MSDE, and SQL Server OLEDB data source. It is the name of the server instance.
Chapter 2:
EnterpriseOne Building Blocks
■
Library Name This is for AS/400 data source only; it will contain the actual AS/400 library name where the tables reside.
■
ODBC Data Source Name or Oracle Connect String This is called the database name on the EnterpriseOne form, but it truly needs to be either the ODBC data source name or the Oracle connect string. This field is both case and space sensitive.
NOTE In 8.12 this field should match the name of your database server. This allows all EnterpriseOne (E1) data sources contained on a SQL database to use only one ODBC data source on the workstations/ servers. This minimizes maintenance and complexity ■
JDBNET Data Source check box This field indicates whether the data source uses JDBNet. This allows EnterpriseOne on an AS/400 to communicate with other platforms/databases such as NT/SQL.
In addition to the fields we have already discussed, Data sources also contain a series of flags and supplemental data that help control how the data sources interact with the system. Figure 2-2 displays the options that can be set in the Advanced Set-Up window. ■
Clustered This flag indicates that EnterpriseOne is configured for database clustering.
■
Unicode Indicates whether a database supports Unicode. EnterpriseOne now ships with all data sources in Unicode except for Business Data and Control tables. These data sources can be converted to Unicode on an upgrade.
■
Use Decimal Shift This selection is used for EnterpriseOne tables within data sources. It indicates that the EnterpriseOne data dictionary will determine the number of decimal places displayed. All database formats except Microsoft Access should have this flag checked.
■
Use Julian Dates All RDBMSs supported by EnterpriseOne with the exception of Microsoft Access should have this flag checked.
■
Support for Locking Updates This flag indicates whether the database supports row-level locking. All database formats except Microsoft Access should have this flag checked.
35
36
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 2-2. Advanced Set-Up window
■
OCM Data Source This flag tells the software that these data sources will have, at a minimum, the F98611 and F986101 tables contained in the data source. Examples include the system data source and any server map data sources. When this flag is checked, the data source will appear as an option when the user goes into the Object Configuration Manager (OCM) or data source application.
■
Use Table Owner This flag tells the system to use the object owner ID listed in the data source and should only be used with an RDBMS that supports table owners (Microsoft SQL Server and Oracle).
■
LOB Data Type Support This option indicates whether a data source supports large object (LOB) data types. This option is required for all AS/400 and Oracle data sources.
Chapter 2:
EnterpriseOne Building Blocks
■
AS/400 BLOB Support This option indicates that the data source may contain BLOB (Binary Large Object) tables.
■
XML Formatted Workflow This option is utilized to indicate XML formatted workflow will be used.
There is also software-linked data source information contained in the F986115 table that regulates whether the data source can have automatic table creation and whether data can be copied from the table. (Complete definitions and examples are provided in the section “Object Configuration Manager”.)
How Many Data Sources Do I Need? We wish that we could say the answer to this question was simple. It is really dependent on what type of implementation your company has chosen to perform and whether you have made custom changes that require additional data sources. Let’s first go over the types of data sources, and then we can move on to which ones you may need and why. Finally, we will discuss adding additional data sources to the system to meet your special requirements. There are 12 primary types of data sources that can be configured with EnterpriseOne. Remember, a data source is nothing more than a pointer to tables or logic within the system. These tables are usually identified either by owner or by a specific location and server.
Data Sources and Their Types There are two categories of data sources that can be defined on the EnterpriseOne system. One category points to data within the enterprise. This data source is the one that most people can quickly understand and deal with, and the majority of this section is dedicated to explaining it. This type of data source is identified by DB, in the P986115 data source application and in the OMOCM1 column of the F98611 data source table. The second data source type defines a machine running EnterpriseOne services that can be accessed by other machines in the enterprise. By programmatic default, EnterpriseOne automatically runs all applications and batch programs locally for non-HTML/JAS environments. To offload some of this processing time to a server (either the enterprise server or an application server) instead of taking up valuable workstation processing time, you have to define the server that you want to perform the job. This data source is designated by SVR in the OMOCM1 column of F98611, the data source master table.
Business Data This DB (database) data source points to the EnterpriseOne tables that are specific to business applications. Where it can be, and often is, shared between multiple environments in the EnterpriseOne enterprise, it is a defining characteristic of an
37
38
JD Edwards EnterpriseOne: The Complete Reference
environment. There are more than 4,400 tables within a normal installation of EnterpriseOne (8.12 series) that qualify as business data. Does this mean you need 4,400 data sources? No. Rather, a single data source can point to all these tables provided they have a single owner or are in a single library. There are times when it might make good business sense to separate selected tables to different data sources (for example, if you were implementing HR/payroll and wanted to place database security on these tables in addition to regular security), but this will be discussed in more detail later in the book. Business data tables are most commonly used after you have logged in on a client workstation. The standard naming convention is Business Data – XXX. The XXX is specific to the business data being defined, such as TEST, CRP, PROD, and so on.
Control Tables This DB data source identifies control tables, including user-defined codes (UDCs), task views, and next numbers. These tables go hand in hand with the business data source described above and function strictly as controlling information for the EnterpriseOne product. For more information on what tables are identified by this data source, see the appendix tables within EnterpriseOne. Control tables can be used at any time during an EnterpriseOne application session. The standard naming convention is Control Tables – XXX. The XXX is specific to the control tables being defined, such as TEST, CRP, PROD, and so on. DEFINITION User-defined code (UDC): These are sets of values that display in the EnterpriseOne applications. These values can be modified by the end user so that they display in a way that is meaningful. An example of a UDC would be a search type in your address book, such as searching by vendors, employees, or other values the system administrator adds.
Central Objects This DB data source points to data necessary for running the actual EnterpriseOne applications. These tables contain processing options for applications and UBEs, template data, business view data, and a host of other information required to run the applications (both interactive and batch). Central objects often contain binary large objects (BLOBs) within the tables themselves. Under various RDBMSs, you might see these described as long raw data. The information is in binary format and can range from 1 byte to multiple megabytes. The central object tables, consequently, are very large. Central objects can be hit at any time EnterpriseOne is in use; however, they are most commonly updated during development or when processing options are changed for specific interactive and batch applications. The standard naming
Chapter 2:
EnterpriseOne Building Blocks
convention is Central Objects – XX812. The XX is path code–specific. The name is major release level–specific, such as 812, B733, and so on.
Versions The Versions data source separates the F983051 table from other central object tables. This table maintains information on all the versions, interactive and batch applications for each path code. This data source is database oriented. The standard naming convention is Versions – XX812. The XX is path code–specific. This name is major release–specific, such as 812, B733, and so on.
JDELocal/JDESSELocal This database-oriented data source points to the JDELocal MSDE (or as of 8.97 SSE) database loaded on the local client. It is often referred to as locally replicated data. This is a database format. This database is used when a developer executes any HTML or web application locally. The information is populated to a local copy of the HTML serialized object tables (F989999 and F989998). This enables the developers to examine code prior to checking that code in. This database also serves to contain a copy of the Central Object information on a fat client (as of 8.12 Central Objects moved to an XML format instead of the old TAM format). In this way the fat client uses the copy of Central Objects contained locally to execute the EnterpriseOne code. NOTE Very few applications still execute on the fat client; most everything is now web based. The standard naming convention is OneWorld Local – XX812. The XX represents the path code name. The name represents major release versions such as 812, B733, and so on. This data source does not exist for application/logic servers (only on the development workstations).
System The system data source identifies tables that are common to the entire EnterpriseOne implementation and are not environment- or path code–specific. These shared tables include information such as the data source tables themselves, the Object Configuration Manager, and printers, in addition to a range of other global settings. Many of the tables used in the system data source are cached at run time and changes to them are only realized when the client cache is cleared (this applies to client workstations, application servers, and JAS/HTML servers). A good example of this is the security table (F00950). You can look in the appendix tables in EnterpriseOne for all the tables that are associated with this data source. These tables can be accessed any time during a session of EnterpriseOne; however, they
39
40
JD Edwards EnterpriseOne: The Complete Reference
are most heavily used during the initial logon to EnterpriseOne. The standard naming convention is System – 812. This data source is named according to major release level, such as 812, B733, and so on. It is a DB data source.
Server Map This DB data source provides access to a special subset of the system tables maintained exclusively for use by enterprise and application servers. Because of special requirements of application servers, there may be times when data used by workstations is different. The only way of maintaining these differences is to have an identical set of tables maintained for this purpose. A good example of data that could be different between the server and the workstation is data sources themselves. Some servers use a different set of EnterpriseOne middleware to acquire data. The standard naming convention, for a server map, is machinename – 812 Server Map. The machinename is the name as defined in the logic data source; it is usually the same as the actual machine name on the LAN/WAN. This data source is named according to the major release level, such as 812.
Object Librarian The Object Librarian data source contains five tables (the F986x series) that define every object in the EnterpriseOne system. When we refer to an object in the EnterpriseOne system, this includes applications, business views, UBEs, processing option templates, and so forth. The tables in this data source define every non-data object. These tables are integral in all object modifications. The standard naming convention is Object Librarian – 812. This name is major release level–specific, such as 812, 811, 810, and so on. This data source is a DB data source pointing to data with a relational database. This data source, like the system and server map, is a shared data source, making it environment and path code independent.
Data Dictionary This DB data source describes a set of tables (the F92xx series). These tables provide a series of functions in the EnterpriseOne implementation that includes defining all columns in the system, all error messaging, and how many decimal places are displayed. The master data dictionary tables are maintained in an RDBMS on the enterprise/database server. Workstations and servers use replicated copies of these tables copied to table access management (TAM) files. The standard naming convention is Data Dictionary – 812. This name is major release level–specific, such as 812, 810, and so on. This is one of the few places that TAM format is still utilized in the 8.12 EnterpriseOne product.
Server The server data source usually is annotated as the enterprise server’s name, but is also a required data source for every enterprise, application, or logic server on the system. Depending on the hardware platform, this data source can be case sensitive.
Chapter 2:
EnterpriseOne Building Blocks
This is particularly true with the UNIX platforms. Its primary use is to indicate to EnterpriseOne where it needs to process logic within the enterprise. By installation default, UBEs will process on the enterprise server (this is defined during the installation or upgrade). However, you can use the server data source to override where batch applications or business functions run. You can do this on the fly when launching a UBE or by OCM mappings. The standard naming convention is machinename. This is usually the name the computer is known by on the LAN/WAN. This name is not release-specific.
Server – Logic This data source is a logic data source and will be primarily used to map business functions to run on specific servers. In newer releases Oracle provides logic data sources based on the type of logic being mapped (Business Functions [BSFNs], Real-Time Events [RTE]). The standard naming convention is machinename – Logic. This concept allows customers the ability to split out their batch and BSFNs processes to execute on different servers or tier their implementations. This name is not release-specific.
Local The Local data source defines the machine running EnterpriseOne itself. It is generally used to define a workstation to allow business functions to be run locally or to run batch applications on the local workstation rather than on the enterprise server or an application server. The standard naming convention is LOCAL. This name is not release-specific.
Now Back to the Question How many EnterpriseOne data sources do you need? Well, you could get by with as few as seven (if you are running the EnterpriseOne stand-alone version), or as many as you can define (this depends on how many application servers, batch servers, logic server data sources, and so on you may have). An average EnterpriseOne installation (assuming PD812, DV812, PY812, and PS812 environments) will have around 20 or more data sources.
How Do You Set Up and Configure Data Sources? The following section is essential to understanding and being able to configure data sources. Various guides produced by Oracle contain information related to this topic. We have added more information with the hope of providing a deeper understanding of the application. There are two basic methods used to set up data sources. During an installation, update, or upgrade, there are automated wizards that will set up the standard accepted data sources. For more detailed instructions on how to set these up during the installation process, we recommend that you review the installation manuals for whichever platform you are installing.
41
42
JD Edwards EnterpriseOne: The Complete Reference
During this part of this chapter, however, we do want to take you through a basic setup of a data source from scratch. If you understand how to set up a data source, you will have what you need to troubleshoot data source–related issues. You will also be able to configure EnterpriseOne to best suit your business needs and provide the fastest return on your ERP investment. To understand how to manually set up a data source, you have to understand the architecture of the data source window. The program used is the P986115, and the place most EnterpriseOne administrators will find it is the GH9011 task view. The method for setting up both logic and database data sources is similar. We will start with the database data sources and then look at the differences in setup for the logic data source. When you first select the P986115 (Database Data Sources) application, you will see a form similar to Figure 2-3 (Machine Search & Select). This window is designed to allow you to choose which OCM data sources you want to configure. To change data sources used by workstations (both fat and thin clients), you need to choose the system data source in this window. If you want to work with the data sources for a specific enterprise or application server, choose the machine name–812 server map associated with the server you want to modify. NOTE Earlier in this chapter, we discussed the flag that designates whether a data source is an OCM data source; that is, if it contains the F98611 and F986101 tables. The Machine Search & Select form automatically searches all the data sources in the system F98611 table for this flag and lists them on the form.
FIGURE 2-3. Machine Search & Select
Chapter 2:
EnterpriseOne Building Blocks
Once you select a specific data source to work with on the Machine Search & Select form, the Work With Data Sources window form will automatically launch on your machine. This form will allow you to do the following: ■
Find any or all of the data sources defined for that specific machine
■
Work with the data source database parameters
■
Set up ODBC data sources (associated with EnterpriseOne data sources, this will also add the information into the ODBCDataSource.inf used, which is read to automatically set up ODBC workstations during a client installation)
Architecture of the Data Source Revisions Window The Work With Data Sources window, shown in Figure 2-4, is key to a system administrator, as it allows them to easily change the existing data sources or add new data sources to the system. Remember that a data source is just a pointer to your data. 1. The Data Source Use field indicates whether you are defining tables within a database or a machine that processes EnterpriseOne logic. Accepted values for this field are DB and SVR. When working with a database data source, this field will automatically fill in a DB to indicate the type of data source you are creating. This information, once saved, cannot be revised for a
FIGURE 2-4. Work With Data Sources window
43
44
JD Edwards EnterpriseOne: The Complete Reference
specific data source. If you set up a DB data source and meant to set up a logic (SVR) data source, you will have to delete the DB data source and set up a new data source for the SVR. 2. The Data Source Name field can be any name up to 30 characters in length. It is usually recommended, especially in custom data sources, that you choose a name that will make sense to you and other users on the system. There is a standard naming convention for data sources. Examples of the naming conventions are provided in the descriptions of the data source types in previous sections. 3. The Data Source Type field indicates the type of RDBMS being defined by the data source. This is a required field for this form. If you are defining a logic data source, by convention, you would indicate the same RDBMS as in the logic’s associated server map data source. For example, when defining an NT application server that has its server map in a Microsoft SQL Server database, you would put an S in the Data Source Type field for the server map and the machinename data source. 4. The Data Class field defines the type of data stored in the data source. For example, a business data source would have a data class value of B. This provides greater tracking and definition for data selection on reports. 5. The Platform Type field allows you to specify the server type. Accepted values include LINUX, AS400, HP9000, LOCAL, NTSVR, RS6000, and SUN. 6. The Database Server Name field defines the name of the server that the database resides on. 7. The Object Owner ID field indicates the table owner for that specific data source. You can have multiple data sources with identical table owners, depending on your specific setup. This field is used when EnterpriseOne structures the SQL statements that return data to the EnterpriseOne applications. For example, if you were to perform a find in the Address Book Master for a specific customer with customer number 1234, EnterpriseOne might automatically create the following SQL statement: select * from crpdta.f0101 where aban8='1234'. In this example, crpdta is a table owner and is used to differentiate the F0101 table associated with the CRP data from the production, test, or pristine data. 8. The Library Name field is used for data source tables on the AS/400 only. This field tells EnterpriseOne exactly which library contains the tables defined by the database data source. 9. The Server Name field holds the network name of the server containing the database or the actual name of the logic server. Although its case sensitivity is dependent on the platform being hit, it is safest to assume
Chapter 2:
EnterpriseOne Building Blocks
that all information in the Data Source Revisions form is case and space sensitive. This is much easier than trying to figure out when case sensitivity is important. 10. The Use Table Owner flag is used in conjunction with the Object Owner ID field. It must be checked in order for the information in the Object Owner ID field to be used in the SQL statements generated by EnterpriseOne applications. Filling in that field by itself is not enough. 11. The Use Julian Dates flag indicates whether the database supports Julian dates. This flag should be set for all supported RDBMS types with the exception of Microsoft Access. 12. The Use Decimal Shift flag indicates that the tables within the data sources will use the data dictionary to determine the number of decimals displayed per item type. If this box is checked, EnterpriseOne will automatically shift the information input into the database to account for decimal places and will automatically display the appropriate number of decimals when retrieved. (For example, you can define inventory to have four decimal places, while currency may only have two.) This flag should be used for all supported RDBMS types with the exception of Microsoft Access. 13. The Support For Locking Updates flag determines whether JDEBase should use row-level locking with this data source. It is used on all RDBMS data sources with the exception of Microsoft Access. 14. We’ve already talked about the OCM Data Source flag. It indicates that the data source contains, at the minimum, the F98611 and F986101 tables. The system and all server map data sources use this flag. This flag determines whether the data source is shown in the Machine Search_Select form of the P986115 application. 15. The LOB Data Type Support flag tells the EnterpriseOne application that at least some tables within the data source contain binary large objects (BLOBs) on the AS/400. A good example of a data source that has this flag checked is Versions – 812. The table defined by this data source is the F983051 (Versions List) table, which contains information in a BLOB format. You can also house the central objects’ data sources on the AS/400. If you choose to do this, these data sources would also have the LOB Data Type Support flag checked. NOTE This flag is also required for Oracle database data sources.
45
46
JD Edwards EnterpriseOne: The Complete Reference
16. The Database Prams form hyperlink launches the P9861151 application. This program populates the F986115 table and is discussed in detail in the section “Object Configuration Manager.” 17. The Default Database form hyperlink also launches the P9861151 application and is also discussed in detail in the section “Object Configuration Manager.” Now let’s move on to something a little more fun.
Special Uses for Data Sources You now know what data sources are and how you would configure them, but you might be wondering why you need to know so much about them, especially considering that wizards are going to set up all the basic data sources during the installation of the EnterpriseOne product. There are several times during the life cycle of the EnterpriseOne product where you might set up special data sources to perform legacy data conversions, to download and upload EnterpriseOne tables, or to add additional environments, for example. To accomplish some of the special uses for data sources, you have to understand which data sources are required for what you are trying to achieve. We will go over some of the more common system customizations so you will be able to continue on your own.
Adding an Application Server (from the Data Sources’ Point of View) There are three data sources that should be set up for a new EnterpriseOne application server (that is, a server that performs EnterpriseOne logic: Batch/BSFNs). Of these three, one is required and the other two are optional, based on what you are trying to accomplish with the application server and how you want to configure it. To determine which data sources are required, think back to the 12 types of data sources. Of those data sources, the one you must have is the server data source. This logic data source defines a machine that performs EnterpriseOne logic (in other words, that has the EnterpriseOne application loaded on it). Many people would immediately argue that you have to have a server map. Though we would agree most of the time, this is not a required data source for an application server. If you have another server set up that is of the same machine type, same database type, and performs the same function, you can actually have the servers share server maps. Why would you want to do this, you ask? Well, let’s take the example of the application server used to offload business functions. If you have multiple application servers, you can have a single server map, which makes modifying the data sources and OCM tables much easier. Rather than have to modify each server separately, this would make a single modification universal (this is a two-edged sword; if you make a mistake, you made the mistake to all your servers at the same time).
Chapter 2:
EnterpriseOne Building Blocks
The third data source associated with an application server is the server/logic data source.
What About Custom Environments? Another reason you would add additional data sources centers on adding environments. As you will see in the “Environments” section of this chapter, EnterpriseOne by default comes preconfigured with five environments. Though they meet the needs of most clients, these environments may not meet your specific business needs. When you add new environments, you will often have to define new data sources. Is there a hard rule as to how many? No, it all depends on what you are doing and exactly how you want these environments to interact with each other. To gain a perspective on the possible data sources used by a single environment, let’s assume you want this environment to be completely independent of the preconfigured environments. What this means is that you will configure the data sources necessary for a completely new environment, including business data, a path code, and control tables. For the sake of this set of questions, let’s say you want to create a training environment. We will use the term TRAIN for most of the data sources we add, and we will follow the Oracle standard naming convention for these data sources. How Many and Which Data Sources Do You Need? Would you say 3 new data sources? Or do you think that 4, 5, 6, or even 12 data sources are needed? If you answered 5, you would be correct. So, which data sources should you add? You need all the following data sources before you can add this new environment. Adding any new data source is the first step to adding a new environment or path code. ■
Business Data – TRAIN
■
Control Tables – TRAIN
■
Central Objects – TRAIN812
■
Versions – TRAIN812
■
OneWorld Local – TRAIN812
Would you need to add new data dictionary, object librarian, system, server, server map, local, or logic data sources? No. These data sources are all shared data sources throughout the EnterpriseOne implementation. Because of this, under a normal EnterpriseOne configuration, these data sources contain data that is shared among all the environments.
47
48
JD Edwards EnterpriseOne: The Complete Reference
Are there other reasons for adding data sources? Sure! What about data conversions? There are several different methods of getting legacy data into E1 (EnterpriseOne), and if you are performing conversions from non-E1 tables, you often have to add a data source. Although data sources can be named anything, PROD Conversions – 812 or CRP Conversions – 812 would be a good start. The specific data source setup information for these data sources is dependent on what type of database holds the data you are trying to convert. Do You Want to Be a Cowboy? This is always one of our favorite sections. Oracle EnterpriseOne staff (especially during training) often refer to someone as being a “cowboy.” What is a cowboy? A cowboy is someone who is manipulating EnterpriseOne either directly through a back door (that is, direct database access using the SQL language or a database tool) or who is using the EnterpriseOne applications and tools in a manner not traditionally supported by Oracle’s development and support staff. We will refer to this type of activity throughout this book as the “Law of the West,” since cowboys do need to follow at least frontiertype rules! Is being a cowboy wrong? That really is a matter of opinion. There is a saying within the EnterpriseOne community that it isn’t “cowboy” if you know what you are doing. It is only cowboy when you don’t. To give you a better example of what this means, let’s think about it this way. If you want to directly manipulate information used by EnterpriseOne, you can often type SQL commands directly, affecting the data within the database faster than using the E1 toolset. For example, you could turn hundreds of OCM entries on and off with a single statement. This is faster than starting E1, entering the OCM application, choosing the data source, finding the records to manipulate, and then clicking the Change Status button (after that, of course, you would have to log out of E1 and back in so that you could see the changes you’d just made). Is this cowboy? Yes and no. If you didn’t know what table was being affected, didn’t know all associated tables, didn’t understand exactly which fields to query against and finally modify, yes, this would be cowboy. In this hypothetical example, however, you knew exactly what tables to modify and exactly what fields to query and update to quickly effect the changes you wanted to effect. It comes down to knowing what you are doing and how that affects the EnterpriseOne environment. The best advice concerning the Law of the West is that if you aren’t completely comfortable with what you are doing, don’t do it. Even when the experienced perform maneuvers, they can be surprised, so you should always have a method of getting yourself out of trouble. This might be a recently performed backup or performing the maneuver in a testing environment first. Finally, if you are thinking of manipulating E1 directly through non-EnterpriseOne methods, remember that Oracle may not support your efforts. If there is such potential risk to Law of the West activities, why do it? First, it is much faster for those who are experienced. Second, there are occasions when it is
Chapter 2:
EnterpriseOne Building Blocks
simply the only way to get the work done. These creative workarounds can be invaluable. Because of the potential gains, performing Law of the West activities is worth consideration. Data sources lend themselves to Law of the West operations because they only use a few tables. Here is some information that you will need to perform data source manipulations: ■
The F98611 and F986115 tables contain all the information defining an EnterpriseOne data source.
■
The F986101 OCM table uses data sources for all its work. If you change a data source, be sure it is not going to affect this table.
■
There are multiple sets of F98611 and F986101 tables. There is only one copy of the F986115 table. When you make changes to the F98611 table, be sure you are changing the correct one for the desired effect. Many times, changes to one table need to be replicated to the other tables. For example, if you change the name of a data source in F98611, you must change the data source name in all the corresponding records in the F986101.
■
Data sources are one of the most important definitions in EnterpriseOne. If you are going to manipulate them directly, be sure you know what you are doing.
Using the guidelines in the preceding list, you can quickly make changes to your system. An example of this is when an Oracle DBA changes the connect string’s name for access to the JDE database. You could open every one of the data sources and manually change this information, or you could effect the same change by entering a SQL statement like this one: update sys812.f98611 set omdatb='JDE1' where omdatb='JDE';
This would quickly change every connect string currently defined as JDE to JDE1. The only thing to consider on this particular change is that it did not change the server map F98611 or the actual TNSNAMES.ORA. Your DBA would have to ensure that the TNSNAMES.ORA file was changed on all workstations and servers before they could correctly access EnterpriseOne again. Another quick cowboy maneuver that can help is creating a new F98611 table for an application server. You can copy F98611 from an existing source to the new machine’s server map database and use SQL to modify the differences—for example, copy the F98611 from a UNIX server map to an NT machine (don’t forget to change the platform). If you know what you are doing, this can be done faster than copying the table using a UBE. As with most cowboy operations, it comes down to quickly and efficiently making changes based on specific user requirements.
49
50
JD Edwards EnterpriseOne: The Complete Reference
Path Codes
In this section, we will discuss what EnterpriseOne path codes are, how they fit into the system, and how path codes meet business needs. A path code can be thought of simply as the path to the code. A mathematical representation of a path code might be shown as PATH CODE = RDBMS + C components. In previous releases, specifications for EnterpriseOne objects in a path code (or metadata) were stored in TAM (Table Access Management) format. In the 8.12 release, this metadata is now stored in XML format in an XML schema in the relational database. This change allows all servers to view and match their code up to one central source. This provides a more robust solution than the previous TAM specifications. Some of the topics covered in this section include: ■
Path codes: overview
■
Definition of a path code
■
Which tables are used
■
Adding a path code
■
When to add a custom path code
■
Copying a path code
■
Modifying the F9861 table
■
Deleting a path code
Path Codes: Overview A path code is really EnterpriseOne’s window to the world. This is because a path code contains all the information the system needs to run its objects. Oracle ships several “canned” path codes. These include pristine, prototype, development, and production path codes. The reason Oracle chose to ship these path codes is to allow their clients the ability to have a pristine set of specifications, which they can always use in troubleshooting as a benchmark comparison. The Prototype path code is meant to be a testing ground. This path code allows users of EnterpriseOne to test their changes to shipped Oracle objects or their custom objects before moving them into their production environment. Nothing should go into the production path code before being completely tested. This will help ensure the stability of the objects your production users are using. The development path code is meant for just that, development. This is the area where your developers can modify objects or add custom objects to meet your business needs. The entire purpose of this path code is to have an area where developers can code and ready their objects. It is important to use the path codes in a correct manner. Development should be performed in the development path code, then transferred to the Prototype
Chapter 2:
EnterpriseOne Building Blocks
path code. The objects should then be validated in the Prototype path code, which should point to a copy of the production data. This way you know that your objects are safe to move into the production path code, which is the final step of the process. This process will be discussed more later in the book when we review packages and their delivery.
Definition of a Path Code A path code is how EnterpriseOne finds the specifications necessary to run its applications, business functions, and reports. This is because a path code is also the storage area for these applications, business functions, and reports. When dealing with a path code, you need to ask yourself what part of the path code you are interested in at that time. The directory structure contains C components on clients and enterprise servers. As of 8.12, runtime information for the objects is accessed from XML formatted tables in the RDBMS. EnterpriseOne software runs on an enterprise server by using the XML metadata. Each enterprise server will check the code it is running against the central XML metadata and ensure that the code matches. This allows the system to provide a way to ensure each server is executing the same object code for a particular path code. The fat client machines/web development machines are a little different as they execute their runtime by accessing a local MSDE or SSE database that has XML formatted metadata for the path code. This also allows the web development client to have their own copy of the F989999/F989998 (HTML/JAVA) tables so that they can preview code in HTML format without having to wait for a package. The HTML/JAS servers will reference a central setup for XML specifications, making this server more of a first-class citizen (as objects will automatically generate in 8.12). There are also the central object components of a path code. The central objects of a path code are a series of relational database files that store the specifications for E1 objects. These tables are utilized when package builds are executed and are the source for the creation of the XML formatted tables utilized at run time. Package builds will be discussed later in this book in Chapter 7; for now, just think of a package build as a snapshot in time of the information contained in the central object tables. Finally, a path code tells EnterpriseOne where to find its check-in location. Not all objects can be converted into a relational database format; these are the source and header files of EnterpriseOne. When you check these objects in, E1 looks at the path code to determine where to store them.
Which Tables Are Used In EnterpriseOne, the F00942 table, which is contained in the system data source, is used to store path code information. This table contains several key pieces of information: ■
The name of the path code.
■
The description of the path code.
51
52
JD Edwards EnterpriseOne: The Complete Reference
■
The name of the machine that contains your path code’s source and header files. This is normally your deployment server.
■
Your server share path. This will be explained in more detail later.
■
The status code of the path code.
■
The merge option.
■
The release level of the path code. This is important because you can apply an update to one path code—for example, the development path code—but not others. This means this path code would be at a different level than the other path codes.
■
Deployment data source. This tells EnterpriseOne where to find the central object tables.
■
The Universal Naming Convention (UNC) flag setting of your path code.
■
This table is read every time a client workstation logs on to the system. For a fat client, the system then looks to see if the client machine has the proper directory structure for each path code assigned to an environment. If this structure does not exist, the environment will not be displayed to the end user, even if their user profile has been assigned this environment. This is because there would be no specifications for EnterpriseOne to run its applications on that client workstation as a local MSDE or SSE database holding XML specifications would not exist for that path code. The Double Byte field contains an XML formatted flag that denotes how textual information is stored (this flag indicates that the data source can handle double byte information).
Adding a Path Code If you need to add a path code, an experienced E1 system administrator or someone who has read this book can accomplish this in a relatively short amount of time. NOTE The only time you really need to add a new path code is if you have an environment that needs its own specific set of E1 objects. In the authors’ experience, you should only add a custom path code when it meets a business need; otherwise, all the path code does is add overhead to the system and complicate the administration of the system.
Chapter 2:
EnterpriseOne Building Blocks
There are several steps to adding a path code correctly: ■
The path code information must be added into the F00942 table.
■
The central object tables will need to be created or copied.
■
The check-in location will need to be created and the path code created on the enterprise or application server.
Adding Information to the F00942 Path Code Master Table To add path code information into the F00942 table, log on to a client workstation and go to menu GH9053 Environments. Double-click on the path code master program P980042. You will be presented with the Work With Path Codes window, shown in Figure 2-5. Click the Add button on the toolbar. This will take you to the Path Code Revisions window, shown in Figure 2-6. This window is very important. If the fields in this window are not populated correctly, you will have problems with check-in and check-out of objects, package builds, and package deployments. We list the fields on this window, explaining the use of each one and how they affect the E1 system. ■
Path Code This field denotes the name of the path code you are creating (for instance TR812).
■
Description This field provides a description of the path code (that is, Development, Training, and so on).
FIGURE 2-5. Work With Path Codes window
53
54
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 2-6. Path Code Revisions window ■
Location This field indicates the name of the machine on the network.
■
Server Share Path This field provides the name of the share on the deployment server. This allows the path code to find its check-in location/ file structure on the deployment server.
■
Status Code cycle.
■
Merge Option The option set in this field determines whether the customer’s changes will be merged with the Oracle EnterpriseOne object.
■
Release
■
Deployment Data Source This field provides the location of the Central Objects for the path code (for example, Central Objects – PY812).
■
UNC Flag This field determines whether the software uses the Universal Naming Convention when making the server path.
■
Cumulative Description
■
XML Specifications This field indicates whether the Central Objects defined in the Deployment Data Source are using XML-formatted specs.
This field denotes the status of the code in the development
This field provides the release level of the product (such as E812).
This field is used by Oracle Development.
Chapter 2:
EnterpriseOne Building Blocks
Once you have filled in these fields, click OK. This will write the information to the F00942 table.
Central Objects The next step in adding a path code is to either create or copy the central object tables. We will go over the procedure of creating these tables first. You will need to execute the platform pack to install the central objects or modify the scripts that the platform pack uses. Unlike in previous releases, the scripts to create the databases are no longer stored on the deployment server but instead are delivered with the platform pack. However, the setup process also cleans these scripts up after the install completes. For this reason, to capture the scripts you need to stop the process at the third CD. This will leave the scripts on the hard drive for you to modify. These scripts can then be modified to reflect the new path code name. This will allow the platform pack to load the central objects for you. (When you install the platform pack, select only the EnterpriseOne DB components you are concerned with. See Figure 2-7.)
Courtesy of Clayton Seeley
FIGURE 2-7. Platform Pack – Feature Selection
55
56
JD Edwards EnterpriseOne: The Complete Reference
NOTE The user you specify will need to already exist in your database with sufficient privileges to create tables, or this procedure will fail. If you are using Oracle, you will also have to ensure that the table spaces exist. In previous releases, this can be done by modifying and running the CRTABSP script. In 8.12 this script will be created on the database server automatically by the platform pack. The platform pack will populate almost all of your central object tables. It will create and populate the following tables: ■
F98306
■
F98745
■
F98710
■
F98750
■
F98711
■
F98751
■
F98712
■
F98752
■
F98713
■
F98753
■
F98720
■
F98760
■
F98740
■
F98761
■
F98741
■
F98762
■
F98743
Once this process is finished, you still need to create one more central object table. That table is F983051; this table is normally loaded during the environment workbench. However, since you are only adding a path code, you are not going to execute the environment workbench. To create this table, use the following procedure: 1. Log on to the deployment server in the planner environment. 2. Open the Object Management Workbench application. You can run this application by typing OMW in the Fast Path. 3. Find the F983051 table in the Query By Example line on the Search tab and click Find.
Chapter 2:
EnterpriseOne Building Blocks
4. Select the F983051 table and arrow it over to the default project. 5. Locate the F983051 table in the default project and click on it. 6. Click the Design button. 7. Select the Table Operations tab. 8. Select Copy Table. NOTE This procedure will overlay an existing table. You will need to ensure that your source and target data sources are correct; otherwise, you risk overlaying an existing table and causing yourself some interesting problems. 9. Make sure that OneWorld Local is the source data source. 10. Enter the name of your central object or versions data source for the target data source. Since you are adding a custom path code, you would have to add this data source as described in the section “How Do You Set Up and Configure Data Sources?” 11. Click OK. This will copy the shipped Oracle F983051 table from the Planner local spec database, on your deployment server, to your central objects database. 12. You will now have the shipped F983051 created and populated in your new central objects data source. You must now update this file with a SQL statement to reflect your path code and deployment server’s name. Use the following select and update statements. In the authors’ experience, you should always do a select statement before your update statement to ensure you are actually updating the records you think you are updating. select * from XXXX.F983051 where VRENHV = 'PATH CODE' and VRMKEY = 'SERVER';
The XXXX is the user that you set up to own your central object tables. Now that you know what records you are going to update, you can perform the following update statement: update XXXX.F983051 set VRENVH = 'YOURPATH CODENAME' and VRMKEY = 'DEPLOYMENT SERVER NAME' where VRENVH = 'PATH CODE' and VRMKEY = 'SERVER';
57
58
JD Edwards EnterpriseOne: The Complete Reference
You have now created your custom central object tables. These tables will contain all of the shipped Oracle objects. Now let’s go over how you would copy an existing set of central object tables. You would do this when you want your new path code to match the source path code. EnterpriseOne contains a utility to copy an existing set of central object tables. This utility is UBE R98403, version XJDE0019. You can get to this report by typing BV in the Fast Path or going to menu GH9011 and double-clicking on P98305 Batch Versions. Highlight the XJDE0019 and go to Form Processing Options (see Figure 2-8). These processing options are very important, as R98403 is a utility that will copy tables between different data sources in EnterpriseOne. Yes, that means you can copy a table between different types of databases as well as copying the tables between different owners in the same database. This utility is Oracle’s recommended way of moving large amounts of data.
FIGURE 2-8. R98403 Processing Options dialog box
Chapter 2:
EnterpriseOne Building Blocks
Enter the following processing options, which you will see on the R98403, to copy your source path code into your new custom path code. On the Environment tab, enter the following information: Processing Option
Description of Processing Option Values
1. Enter the environment the database is created for. (If this report is called from another process, the environment will be passed in.)
You can enter the name of the environment to which you are copying the information. When this field is filled in, the report uses OCM mappings to find the target data source. The other process that would call this report is the environment workbench, as Oracle uses this utility to create EnterpriseOne tables during an installation or upgrade.
2. Or enter the data source the database is created for.
Unless you are copying tables that exist in more than one data source, you should use this option in R98403. Place the name of your custom central objects data source in this field. Either processing option 1 or processing option 2 needs to be filled in, not both.
3. Enter a 1 to load production data or a 2 to load demonstration data. The default is to load production data. (If the report is called from another process, this flag will be passed in.)
This setting often confuses users. If you choose 1 to load production data, the report will create all the tables blank, except the ones necessary to run EnterpriseOne. In this instance, you will need to choose 2 so that the contents of your source path code tables will be copied into your target path code.
4. Enter the data source for loading data. (If the report is called from another process, this value will be passed in.)
Fill this field with the name of your central objects data source (for example, Central Objects – PD812).
5. Enter the environment the database is created for. (If this report is called from another process, the environment will be passed in.)
You can enter the name of the environment you are copying the information from. When this field is filled in, the report uses OCM mappings to find the target data source. The other process that would call this report is the environment workbench, as Oracle uses this utility to create E1 tables during an installation or upgrade. Again, 4 and 5 are either/or, not both.
59
60
JD Edwards EnterpriseOne: The Complete Reference
On the Update tab, enter the following values: Processing Option
Description of Processing Option Values
6. Enter 1 for proof or 2 to create the environment database.
If the job is run in proof mode, it will not copy tables; it will just show what it would have done. It is generally a good idea to run the job in proof mode first to verify it is affecting the tables that you want it to hit.
7. Enter an A to re-create existing tables in data sources that allow automatic table creation. The default is not to re-create tables.
For the purposes of copying an existing set of central object tables, this value should be set to A.
Any existing tables will be overwritten, so be sure that your processing options are correct before running this report in update mode. 8. Enter a 1 to copy only tables that exist in the target data source.
When this value is set to 1, the UBE will copy only the tables that exist in the target data source. This value should be blank to copy your path code tables.
9. Enter a Y to add records without clearing the target table. This is used for language tables.
When this option is set to Y, the UBE will append to the table. Leave this field blank for the purposes of creating new central object tables.
Accept the defaults on the Print and Licensing tabs. The default values for these tabs are blank. Click OK to save your processing options. You will now be back at the Work With Batch Versions window. Highlight XJDE0019 and click Select. You will then be presented with the Version Prompting window. Go to Form Advanced; this will take you into the Advanced Version Prompting window (see Figure 2-9). Check the Override Location box and click OK. You will now be back at the Version Prompting window. Click Submit, select the local data source, select the output to be displayed onscreen, and the job will start running. This job will then copy the central object tables from your source path code to your new path code’s central object data source. If you have problems with this report, look at the JDE.LOG file, which will normally be located on the root of your C drive. You can also look for a JDECPY.LOG on the C root of your machine. This log will tell you what tables are copied and how many records succeeded and how many failed. A benefit of running R98403 to copy an existing central object path code is that this tool will copy the F983051 table and update the table with the name of your deployment server and path code name. However, just to be safe, you should confirm that these values are correct after your job completes.
Chapter 2:
EnterpriseOne Building Blocks
FIGURE 2-9. Advanced Version Prompting window NOTE You do not want to use SQL Server or Oracle’s builtin bulk copy functionality to copy these tables, as padding issues have been encountered when this type of copy is used. However, what you can do is export your tables to a dump file and then restore them to a new owner. This is a quick way of copying tables, but when you use this method, you will have to update the F983051 table to reflect your deployment server and path code name. This method should only be used when you have a database administrator or if you possess the database skills necessary to perform this operation.
Creating the Check-in Location The final part of adding a path code is to create the check-in location and create the path code on the enterprise server.
61
62
JD Edwards EnterpriseOne: The Complete Reference
Before we cover the actual process of creating the check-in location, we should go over exactly what a check-in location is, in reference to EnterpriseOne. When you entered the path code information into the path code master application, you entered the name of a server in the Location field. This is how E1 knows where to copy the source and header files when objects are checked in. Some examples of objects that have source and header files are business functions and tables. These files are not stored in a relational database format, so they need to be stored in a directory structure. TIP A common problem for developers checking in objects is receiving the error “Cannot copy file.” This error normally means the user does not have the permissions to copy a source or header file into the check-in location or EnterpriseOne cannot find the check-in location due to an incorrect setup. You can create the check-in location in two ways: by manually copying the directory structure through Windows Explorer or by running a report. To create it manually, open Windows Explorer on your deployment server and create a folder with the same name as your custom path code under EnterpriseOne\E812. Copy the contents of the PS812 directory into this new folder, if you are creating your custom path code from scratch. If you are copying an existing path code, you will need to copy that path code’s directory structure. If your new path code was named TEST812, for example, you would copy the contents of PS812 or another path code into TEST812. This is because you need to move the source and header records that match your central object tables. If you do not want to do this process manually, you can run a report to copy these directory structures. This report is R9800942. To run this report, type BV in the Fast Path. You will now be in the Batch Versions window. Type R9800942 in the Batch Application field. Highlight the XJDE0001 version and click Select to submit the job. Be sure to run the job locally by going to the Form Advanced option on the Version Prompting window and checking Override Location. When you submit the report, you will be prompted to enter some processing options. Processing Options
Description of Processing Option Values
Source Path Code
This is the path code that you are copying—in our example, PS812.
Destination Path Code
This is your target path code. In our example, this would be TEST812.
Chapter 2:
EnterpriseOne Building Blocks
Processing Options
Description of Processing Option Values
Copy Package
Enter a Y if you want to copy the packages that currently exist in your source path code. Normally, you would enter a Y so that you could deploy a package immediately, thus allowing your end users to work, and build a package later to test the new path code. NOTE: In 812 we are not able to copy packages when copying path codes. The reason for this is that specifications are now stored in the XML format in the database. These tables are named to match the name of the package.
Update F9861 Copy Local or Deployment
This setting will determine whether you copy the path code information locally on a workstation or on the deployment server.
Creating the Path Code on the Enterprise Server Unfortunately, the only way to get a path code onto the enterprise server is by manually making a manual copy. When you perform this manual copy operation, be sure the host services are stopped. Then all you have to do is copy the directory structure. So let’s say you are copying the PD812 path code; you would copy the path code information from one directory to the other (for example, PD812 to TEST812) and then update the spec.ini file. This file tells the server where to look for the XML specifications in the RDBMS. You would update the file to include a data source pointing at the central objects of the new path code (Central Objects – TEST812). CAUTION When you do this, be sure your host services are stopped.
Modifying the F9861 Table You now have a path code master definition in the F00942 table, you have your central object tables, and you have your check-in location created. The only thing you have left to do is modify your F9861 object librarian detail table. (This only needs to be done if you did not set the Y parameter when you ran R9800942 before.) This table will need to reflect your deployment server name and your new path code name; this is so that your developers can check out objects and work on them. To update this table, you can use SQL statements or you can run R989861 (Update/ Write F9861). Figure 2-10 provides an example of the R989861 processing options.
63
64
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 2-10. R989861 Processing Options If you are not familiar with SQL statements, you will want to run the R989861 report. To accomplish this, log on to a client workstation. The environment does not matter as all environments use the same object librarian. Type BV in the Fast Path and press ENTER. You will now be on the Work With Batch Versions window. Highlight the XJDE0001 version and click Row Processing Options. Enter the source path code you want to copy records from. If you created your path code from scratch, you will want to copy a pristine path code that does not have custom objects in it. This is because the UBE will place a record in the F9861 object librarian detail table for every entry of the source path code. If you have custom objects in this source path code, but have created your central object tables from scratch, it would appear that this custom object existed in the new path code even though it did not. So when your developers go to check this object out, they would receive an error. EnterpriseOne would not be able to find the object in the central object tables, although the object would appear as if it existed in that path code in the object librarian.
Chapter 2:
EnterpriseOne Building Blocks
If you copied an existing path code’s central object files and check-in location, use that path code as your source path code. The target path code will be the name of your new path code. Click OK to save your processing option changes. You are now back in the Work With Batch Versions window; highlight XJDE0001 and click Select. Go to Form Advanced and check the Override Location box, then click OK. You are now back at the Version Prompting window. Click the Submit button. You will be prompted for your processing options again; just confirm they are correct and click OK. EnterpriseOne will then ask you where you want to run the job. Choose LOCAL; this will cause the job to run on your local workstation. This job cannot be run on the enterprise server. The job will then enter your new path code into the F9861 table. To check the job after its completion, go into the Object Librarian application, click Find, select a shipped Oracle object, and click Select. You should now see your path code in the check-out line in the Design Aid window. The second way to update the F9861 table is by using a SQL statement to create a temporary table. Update this table and copy the records from it into your original F9861 table. Use the following SQL statements. First create the temporary environment: create table temp.f9861 as select * from ol.812.f98761 where SIMKEY = 'DEPLOYMENTSERVERNAME' and SIPATHCD = 'PRODB733';
NOTE If you are using Oracle, remember to perform a commit statement: select count(*) from temp.f9861; select count(*) from f9861 where SIMKEY = 'DEPLOYMENTSERVERNAME' and SIPATHCD = 'PRODB733';
You now will need to update your F9861 temporary table so that it contains the correct information and then copy the contents back into your original F9861 table: update temp.f9861 set SIPATHCD = 'TEST812';
NOTE If you are using Oracle, be sure to run a commit statement: commit; insert into ol812.f9861 select * from tempF9861;
Once you confirm that your new path code is in the F9861 table, you can drop this table by using the following statement: drop table temp.f9861;
65
66
JD Edwards EnterpriseOne: The Complete Reference
Deleting a Path Code To delete a path code, you must perform several steps: 1. Remove the path code record from the F00942 table. 2. Delete the central object tables. 3. Manually delete the check-in location and path code directory on the deployment and enterprise servers. To delete the path code record from the F00942 table, from the client workstation, or on the deployment server in the deployment environment, go to menu GH9053 and double-click on the Path Code Master P980042. You will now be in the Work With Path Codes application. Click Find, highlight the desired path code, and press DELETE. This will remove the path code record from F00942. This does not delete the central object tables or remove the path code’s directory structure from the deployment or enterprise server. Have your database administrator drop the appropriate central object tables; he or she can do this by searching for the owner of these tables and then dropping all tables that are owned by that owner. Next you will need to delete the data sources associated with this path code. This can be done through the database data source application on menu GH9611. Finally, from Windows Explorer on the deployment server, highlight the path code directory under EnterpriseOne\E812 and press DELETE. You will also have to delete the directory structure for your path code from your enterprise server. This procedure will vary a bit depending on your platform. However, no matter what platform you are on, you will need to ensure that your host services are down when you remove the path code’s directory structure from the enterprise server. Now that you have seen how to find the data and define the applications that are used in EnterpriseOne, let’s look at how you combine the applications with the data to create an instance of the EnterpriseOne product. The tool used to do this is Environment Master.
Environments
This section goes into detail about how EnterpriseOne environments work. It describes what an environment is and how this feature of E1 ties into the entire system. An environment can be described as the framework on which the system rests. This framework is made up of object configuration mappings and a path code. These are what tell EnterpriseOne where to find the data and specification files needed for its applications to run. We have just gone over what a path code is in detail in the last section. In this section, we will cover the following:
Chapter 2:
■
Definition of an environment
■
Tables used for environments
■
Adding an environment
■
Copying an environment
■
Deleting an environment
■
When to create a custom environment
EnterpriseOne Building Blocks
Definition of an Environment An environment is the framework on which your business runs. This framework is how EnterpriseOne finds the company’s business data. It also allows E1 to find other objects, such as a business function; this helps run the system more efficiently. To keep what an EnterpriseOne environment is straight in your mind, just remember that an environment consists of object configuration mappings and a path code. A mathematical representation of this would be Env = OCM + Path Code
Tables Used for Environments EnterpriseOne touches or uses several tables to keep track of environment information. These tables are system files, meaning they are contained in the E1 system data source. ■
F0093 – Library List Control
■
F0094 – Library List Master
■
F00941 – Environment Detail
■
F986101 – Object Configuration Manager
■
F98611 – Data Source Master
■
F00942 – Path Code Master
The F0093 library list control table contains a list of the environments users are authorized to gain access to. This table is read when a user logs on to E1; the software then displays the environments they can log on to. The F0094 library list master file basically contains the header record information for an environment. You can find the environment name and its description in this table. More detailed information is contained in the F00941 environment detail table.
67
68
JD Edwards EnterpriseOne: The Complete Reference
The F00941 environment detail file contains information on the name of an environment, the path code it is associated with, if just-in-time installation is turned on or off for the environment, and the release level of the environment. The F986101 is the Object Configuration Manager table and acts like the traffic cop of EnterpriseOne. This table contains mappings, which tell the system what data source the data is stored in. The F98611 is the data source master table. Once the system finds a mapping, in the F986101, it then has a data source name. It needs to read that data source in order to determine what type of database the business data is contained in, what machine these tables reside on, and how to connect to that database. All of this information is contained in the data source master table. The F00942 path code master file contains information on the path code an environment is associated with. A path code tells EnterpriseOne where to find the specifications it needs to run its applications and where the check-in location is located on the system.
Adding an Environment Adding an environment is actually a simple process. If you are in E1, you can add an environment from the Environment Master program (P0094), located on the Environments menu (GH9053). When you double-click on this program, you will be taken to the Work With Environments window (see Figure 2-11).
FIGURE 2-11. Work With Environments window
Chapter 2:
EnterpriseOne Building Blocks
On this window you will see the Display Only JD Edwards Environments check box (this will limit the environments displayed). You can add an environment by clicking the Add button to bring up the Environments Revisions window. The Work With Environments window has several important fields: ■
Environment Name example, JTR812.
■
Description Enter a description of the environment, such as “Atlanta’s production environment.”
■
Path Code This is the path code associated with the environment. The path code is the way E1 finds the specifications it needs to run its applications. These are contained in the central object tables or XML files, depending on what area of E1 you are trying to use.
■
Release
■
Just In Time Installation This field can be used to enable or disable just-intime installation of applications to workstations in the environment. If you set this to N, your clients with partial packages will not be able to pull down applications. This is why you should use caution when setting this feature of EnterpriseOne.
■
Developer
■
WAN Configured Environment This check box is used to tell EnterpriseOne if the environment is going to be used for a WAN. If this box is checked, it will affect the object configuration mappings.
Place the name of your environment in this field—for
This is the release level of software you are on.
This is a future use field.
NOTE You must ensure that your environment is associated with a path code. If it is not, the software will not be able to find your check-in location or your central object tables. This means that you will have problems with package builds and the check-in/ check-out process. TIP It is important to realize that when you add an environment, you will have to manually add all your object configuration mappings. This is why, in the authors’ experience, you will almost never want to add an environment from scratch. It is much simpler to copy a shipped Oracle environment and modify it to suit your needs.
69
70
JD Edwards EnterpriseOne: The Complete Reference
Copying an Environment The feature that allows you to copy an environment is one you will use more than anything else in the Environment Master program. When you copy an environment, you can copy the mappings of the environment as well. This is useful, as many of the mappings in the Object Configuration Manager are the same for all environments. These shared mappings are to data dictionary, object librarian, and system tables. If you add an environment, you must manually add all the mappings to certain tables, such as system tables, that are necessary for the EnterpriseOne software to run. To copy an environment, click the Row Copy Environments button from the Work With Environments window. You will be presented with the Copy Environment window. Enter the desired name of your new environment in the New Environment field. Be sure to note the check box labeled Copy *Public Records Only. When this box is checked, you will only copy the Object Configuration Manager mappings for *PUBLIC. This means that mappings for individual users would not be copied. In most circumstances, you will want this box checked. When you click OK, EnterpriseOne will write to the F0094, F00941, and F986101 tables. What about the path code? When you copy an environment, the new environment is associated with the copied environment’s path code. One path code can have many environments assigned to it, but each environment can only be assigned to one path code. What this really means is that EnterpriseOne environments can share the specifications for applications. So you can have two environments that have the same application functionality but point to different business data. This is useful when you have a company with different departments that need the same functionality, but also need their own business data.
Deleting an Environment When you are in the Environment Master program, P0094, highlight an environment and click the Delete button on the toolbar. This will remove the records for the environment from F0093, F0094, F00941, and F986101. NOTE When you delete an environment, you are not automatically deleting the data sources and business data associated with that environment. This will need to be done as a separate step.
When to Create a Custom Environment When do you need a custom environment and when is it just extra overhead? This is a question that faces a lot of EnterpriseOne system administrators. Each custom environment should have a business purpose. One good example would be two
Chapter 2:
EnterpriseOne Building Blocks
departments that both need to use the same custom applications, but also need to have their own business data, menus, or user-defined codes. We cannot stress enough that the system is only there to meet the business’s needs, so any environment that does not address a business need is extra overhead and should not be in the system.
Object Configuration Manager
In this section, we will discuss one of the nerve centers of an EnterpriseOne system, the Object Configuration Manager (OCM). The OCM program is truly the nerve center of EnterpriseOne, the application that tells the system in what data source data resides. If there are incorrect entries in this program, E1 will not function correctly. To avoid this, we will go over several areas of the Object Configuration Manager, including: ■
The definition of the Object Configuration Manager
■
Tables that are used
■
What really happens when a workstation requests data or logic
■
What happens when a workstation runs a UBE
■
How to add OCM mappings
■
How to copy OCM mappings
■
How to delete OCM mappings
■
The difference between system and server map
■
Changing the mappings for object librarian tables
■
Changing Oracle parameters that E1 uses
■
Advanced Object Configuration Manager operations
Definition of the Object Configuration Manager The Object Configuration Manager is key to an EnterpriseOne system. It allows separate environments to access data on a variety of machines and databases. Think of this program as the nerve center of EnterpriseOne where you can configure and guide the system. The program allows you to configure E1 in almost unlimited ways. Using this program, you can tell the system on what machines and databases business data resides, where to run reports, and where to run business functions.
71
72
JD Edwards EnterpriseOne: The Complete Reference
You will always have two types of OCM mappings. These are system mappings and server map mappings. The system mappings are used to direct client workstations to business data tables and business functions, and to tell them where to run UBEs. Once a mapping is found, EnterpriseOne determines what data source is to be used from the mapping and passes the information in that data source to JDEBase. JDEBase is the kernel software of EnterpriseOne that will make the call to the database; it can determine how to construct the SQL statements based on the platform and the type of database being used. The server map mappings, or OCM, are used once a UBE is run on an enterprise server. The report then looks at the server map OCM tables to find the necessary tables to run. Since this application is so powerful, we recommend that only system administrators have access to this program. You can restrict the use of this program through EnterpriseOne security.
Tables That Are Used The Object Configuration Manager mainly uses the F986101 object configuration master table. This table contains the environment names, user, objects, object type, object status, and primary data source value (see Figure 2-12). This information makes up an OCM mapping. The environment value is just an environment name. The user can be a specific user such as JDE, a user role, or *PUBLIC. The object type provides the ability to define DEFAULT mappings based on the type of object (TBLE or Tables). The primary data source value contains a data source; this data source is what gives the system the final information on where the relational database tables, which the software is looking for, reside. There can be many copies of this table on an EnterpriseOne system. The workstations will use one copy, in the system data source, to find their data. The enterprise and logic servers have their own copy of this table, which is used when a report is run on an enterprise or logic server. The F986101 table really only consists of what is called OCM mappings. These mappings tell the system what data source the table resides in, where to run its business functions, and how to process its reports.
What Really Happens When a Workstation Requests Data or Logic When a workstation requests data or logic, it must use the F986101 object configuration master table as a guide. The workstation will poll this table looking for certain information. It will look for the environment that is needed, the user who is logged on, and the object that has been requested. How this works will become clear after we go through an example of a workstation’s request for data. When a workstation requests data, it will read F986101 in a particular manner. The system
Chapter 2:
EnterpriseOne Building Blocks
FIGURE 2-12. OCM Mapping will pass select statements using F986101’s primary keys. It will look for the environment, an object name, a user, and a primary data source. The system will also only look for mappings that have a status of AV, for active. Figure 2-12 is an example of an OCM mapping. This mapping is what is going to tell EnterpriseOne in what data source the table that the system is looking for resides. We will discuss each individual part of this mapping later in this section; for now, let’s take a look at how E1 reads mappings. The system reads the F986101 using the following logic: 1. The system knows you are logged in to the PD812 environment and you are looking for an object of type TBLE, since that is what the application you are running tells the system.
73
74
JD Edwards EnterpriseOne: The Complete Reference
2. The system will then poll F986101 for an environment—in this case PD812—a status of AV, a type of TBLE, the object name, and the user who is logged on to the system. 3. If these are not found, EnterpriseOne will look to see if there is a record for the environment, a status of AV, a type of TBLE, the object name, and a role that the user logged on to the system belongs to. NOTE In 8.12 a single user can belong to multiple roles. For this reason, the OCM application will search through all of the roles associated with the user ID. 4. Next, it will look for a record for the environment, a status of AV, a type of TBLE, the object name, and the user *PUBLIC. 5. If EnterpriseOne still does not find the mapping, it will poll F986101 for a record with the environment, a status of AV, a type of TBLE, an object name of DEFAULT, and the user who is signed in to EnterpriseOne. This object name of DEFAULT is used so that the F986101 does not need a record for every object. This helps improve performance. 6. If this does not return a mapping, the system will then look for a record with the environment, a status of AV, a type of TBLE, an object name of DEFAULT, and a role. 7. Finally, EnterpriseOne will poll F986101 for a record with the environment, a status of AV, a type of TBLE, an object name of DEFAULT, and the user *PUBLIC. Once E1 has found the mapping, it uses the data source contained in that mapping to determine what type of database to connect to, what machine, and what owner or library. It passes this information to JDEBase, which knows how to construct calls to these databases and platforms. This same process occurs for both workstations and HTML clients (although HTML utilizes Java Database Connectivity [JDBC] for its connections).
What Happens When a Workstation Runs a UBE When a workstation attempts to run a UBE, the logic that EnterpriseOne follows to determine where this report should be run is similar to how the system polls F986101 for data. The process is also the same for business functions. Let’s step through the logic one more time, this time for a report being run from a client workstation.
Chapter 2:
EnterpriseOne Building Blocks
1. The system knows you are logged on to the PD812 environment and you are looking for an object of type UBE, since that is what the report you are running tells the system. 2. The system will then poll F986101 for an environment—in this case PD812—a status of AV, a type of UBE, the object name, and the user who is logged on to the system. 3. If this is not found, EnterpriseOne will look to see if there is a record for the environment, a status of AV, a type of UBE, the object name, and a role that the user logged on to the system belongs to. 4. Next, it will look for a record for the environment, a status of AV, a type of UBE, the object name, and the user *PUBLIC. 5. If EnterpriseOne still does not find the mapping, it will poll F986101 for a record with the environment, a status of AV, a type of UBE, an object name of DEFAULT, and the user who is logged in to E1. This object name of DEFAULT is used so that F986101 does not need a record for every object. This helps improve the performance of the system. 6. If this does not return a mapping, the system will then look for a record with the environment, a status of AV, a type of UBE, the object name of DEFAULT, and role. 7. Next, EnterpriseOne will poll F986101 for a record with the environment, a status of AV, a type of UBE, an object name of DEFAULT, and the user *PUBLIC. If a record is found, E1 sends JDENET the proper information. JDENET is the area of EnterpriseOne that handles sending messages between servers and clients. These messages are not database calls. This is how the enterprise server knows what report, version, and data selection to run, because the information is passed to it from JDENET. Once the enterprise or logic server receives the request, it responds by processing the UBE. NOTE The only call to F986101 in this example was to find out where to process the logic. Once the server starts to process the report, it will read F986101 in the server map data source to find the data required by the UBE. The logic behind this process is the same as the one described in the section “What Happens When a Workstation Runs a UBE.”
75
76
JD Edwards EnterpriseOne: The Complete Reference
Some people ask, why have multiple OCMs at all? Why not just read one and be done with it? Well, there are several reasons for having a server map F986101. A primary reason is performance and configurability. By having multiple copies of the OCM table you can provide yourself with a greater level of control on what runs where in your implementation. Your enterprise server also might be located across a WAN and you do not want to have it make calls across the WAN to find its data, as this could slow your system down.
How to Add OCM Mappings You will only need to add a new OCM mapping when you need a specific user, role, or environment to look for its data, business functions, or where to process its UBEs in a different spot. Say you have 20 people in accounting, but only one runs your payroll checks. You want all this person’s reports to run on one specific machine, and you want this person to look for their tables in a certain database. You can handle all this by adding OCM mappings for type UBE for this user’s reports and of type TBLE for the tables that he needs to find in a different location than other users. These OCM mappings allow you to configure the system to run in a way that supports your business operations. To add an OCM mapping, log on to a client machine. The reason you are logging on to a client machine is that it will update the system F986101. When you log on to the deployment server in the planner environment, it will change the F986101 contained in the planner MSDE or SSE database. Since this is not the database accessed by your end users for mappings, you normally do not want to change your mappings in this database. Once you have logged on to the client machine, type OCM in the Fast Path or go to menu GH9611 (Advanced Operations) and double-click on P986110, Object Configuration Manager. You will then be prompted with the Object Configuration Manager Machine Search & Select window. This window allows you to modify either a server map F986101 table or the system F986101 table. Normally you will choose a system to change a mapping for your client workstations. However, when you change these mappings, you should always ask yourself, does this mapping need to be changed in the server map F986101 as well? If you change the mappings for your users in the system data source, but not the server map data source, you may see different results when running reports locally compared to reports run on the server. You will now be on the Object Configuration Manage Work With Object Mappings window. Click the Add button located on the toolbar. This will take you into the Object Mapping Revisions window, shown in Figure 2-13. The Object Mapping Revisions window contains the following fields: ■
Environment Name Enter the name of the environment that you want OCM mapping to affect.
Chapter 2:
EnterpriseOne Building Blocks
FIGURE 2-13. Object Mapping Revisions window ■
Object Name Enter the name of the object the mapping is for. If you want the mapping to affect all non-mapped object names of a certain object type, enter DEFAULT.
■
Primary Data Source This is the data source in which E1 will look for your object. If you are mapping a business function or a UBE, the data source must be a logical data source. If you are mapping a table, the data source must be a database data source.
■
System Role Enter the user or role you want this mapping to affect. You can enter a specific user, such as JDE, a specific role, or *PUBLIC.
■
Object Type This is the type of object you are mapping. This field is grayed out and will default based on the Object Name field. However, if the object name is DEFAULT, you will be allowed to choose your object type. E1 allows you to map UBEs, tables, generic text (object type of GT), and business functions (object type of BSFN).
77
78
JD Edwards EnterpriseOne: The Complete Reference
■
Data Source Mode This indicates whether EnterpriseOne should use the data source specified in the primary data source field or the secondary data source field. The valid values for this field are P for primary and S for secondary. You will almost never use S.
■
Secondary Data Source EnterpriseOne uses this data source if the object cannot be found in the primary data source.
■
Allow QBE This flag is used to turn on and off row-level record locking. The acceptable values for this field are: ■
All QBE allowed
■
No QBE allowed
■
Indexed fields QBE allowed (this is recommended)
EnterpriseOne will look at this field to determine if JDEBase uses row-level record locking. Oracle recommends that this functionality be turned on to prevent data integrity issues. Once you have filled in these fields, click OK to commit the record. EnterpriseOne will write the record to the F986101 table. It will then blank out the Environment Name field, Object Name, and Primary Data Source, and return the System Role to *PUBLIC. If you do not want to add any more mappings, click Cancel, which will take you back to the Work With Object Mappings window (see Figure 2-14). NOTE You may receive a warning on this window if the table does not exist in the data source your mapping points to. This warns you that you are creating a mapping that points to a location where the table does not reside. You can set a processing option for the Object Configuration Manager to have this appear as an error or a warning. Go to menu GH9011, System Administration Tools, and rightclick on the Object Configuration Manager program. Choose Prompt For Values. You will be allowed to enter a 1 to have the Object Configuration Manager produce a hard error when a mapping points to a location where the table does not exist. The other option is to leave this value blank and only a warning will be issued. EnterpriseOne is shipped with this value set so that you will only be presented with a warning and not a hard error.
Chapter 2:
EnterpriseOne Building Blocks
FIGURE 2-14. Work With Object Mappings window Now that we have added a new mapping, we must activate it. When a mapping is added to EnterpriseOne, the status is set to NA (not active). E1 will ignore the mapping until the status is set to AV (active). To set your mapping to AV, enter the object name in the QBE line and click Find. Highlight your mapping and go to Row Change Status. This will change the status of the mapping from NA to AV. TIP You may want to click Find to refresh your screen and ensure that the status of your mapping has changed. NOTE The F986101 table is cached upon logon, so your client machines will have to log out and back into EnterpriseOne to use the mapping change. The HTML instance would need to be stopped and restarted or the cache cleared through SAW/Server Manager in 8.97 to ensure that change has been read into memory.
79
80
JD Edwards EnterpriseOne: The Complete Reference
How to Copy OCM Mappings You will often need to set up a mapping for the same object in several environments. Copying an OCM mapping can save you some time and typing. To copy an Object Configuration Manager mapping, from the Work With Object Mappings window, highlight the mapping you want to copy and click the Copy button on the toolbar. You will now be on the Object Mapping Revisions window, like when you added a mapping. However, this time all the fields will be filled in for you, with the information from the mapping that you are copying. You can now modify the mapping as necessary. This feature saves time when you are mapping several objects to the same data source. Remember that once you click OK to commit the record to F986101, you will also have to activate the mapping.
Deleting an OCM Mapping Deleting an OCM mapping is a simple process. When you are on the Work With Object Mappings window, highlight the desired OCM record and click the Delete button on the toolbar. This will remove this record from the F986101 table. Remember that if you remove a mapping from the system data source, your client machines will need to log out and back into E1 before they will be able to see the change. If you change a server map F986101 entry, you will need to stop and start your host services to ensure that the mapping takes effect. You will also need to clear the cache for the HTML clients via SAW/Server Manager (8.97) or by stopping and restarting the Web Services (WebSphere orOAS). NOTE All *PUBLIC mappings will have to be deactivated prior to being deleted.
The Difference Between System and Server Map We have skirted the differences between the system and server map OCM mappings throughout this section. However, we will now address them head-on. The Object Configuration Manager is truly the nerve center of EnterpriseOne. The system F986101 table tells client workstations where they need to look for their data, process their UBEs, and run their business functions. So any changes to this table will directly affect the client workstations. The server map F986101 table is used once a UBE starts to run on the enterprise or logic server. The UBE will read this table to determine where it needs to find its data and business functions.
Changing the Mappings for Object Librarian Tables This procedure will go through changing the OCM mappings for object librarian tables. Before you even think about attempting this procedure, you need to understand what changing the mappings for the object librarian tables truly means. It means your EnterpriseOne system will have multiple object librarian data sources.
Chapter 2:
EnterpriseOne Building Blocks
The object librarian is how E1 keeps track of the objects in the system. This is what ensures that you do not have more than one object with the same name. However, if you add another mapping for the object librarian tables, you will have two object librarians. That means you could have two objects named the same in the E1 system. So if you performed an object transfer between the two path codes with which the environments are associated, you would overlay one of the objects. The other thing to keep in mind is that in all the authors’ experience, we have not set up a system in this manner. This process should only be attempted by someone with advanced Configurable Network Computing (CNC) knowledge, as the possibility of introducing problems into the system exists. DEFINITION Configurable Network Computing (CNC): This is a term used by Oracle to describe their software’s ability to be easily configured to meet business needs. This describes the ability of the software to run on multiple platforms against different types of databases. To remap the object librarian tables to a new object librarian data source, you need to do the following: 1. Log on to a client workstation and go to the Object Configuration Manager program. You can find this program on the GH9611 menu or by typing OCM in the Fast Path. 2. You will be prompted to select either the system or server map on the Machine Search & Select window. Select your system data source. 3. You will now be on the Work With Object Mappings window. 4. Go to Form Revise OL Data Source. 5. You will then be prompted for the path code and OL data source. The reason you are being prompted for a path code and not an environment is that the object librarian is used to keep track of objects in path codes, and each environment is associated with a path code. So when you enter a path code on this window, EnterpriseOne will remap the object librarian tables for all the environments associated with this path code. 6. After you have entered the path code and your new object librarian data source, which must contain all the object librarian tables, click OK. 7. You will now be back on the Work With Object Mappings window. Your client workstations will need to log out and back in to see this change.
81
82
JD Edwards EnterpriseOne: The Complete Reference
CAUTION Although this procedure is documented and any package builds should find the new object librarian mappings, the support line will probably caution you against using this functionality, due to the added complexity of system maintenance with two object librarians and the opportunity for introducing errors into the system.
Changing Oracle Parameters That EnterpriseOne Uses If you are using Oracle with EnterpriseOne, you will need to pay attention to the Oracle parameter values that can be set within the system. If you use the standard Oracle shipped environments and data sources, you will not need to worry about these settings. However, if you add a custom data source or do not follow the standard Oracle naming conventions, you will want to look at these settings. You can use these settings to control certain things within E1, such as what Oracle table space and index space your data sources use. You can also control certain Oracle settings on specific tables within EnterpriseOne for Oracle parameters. The system stores all the values we are about to discuss in the F986115 table (Table and Data Source Sizing). This table is a system table, meaning it is located in the E1 system data source. To set the Oracle parameters, go to menu GH9011 and double-click on Object Configuration Manager or type OCM in the Fast Path. Select the system data source when prompted on the Machine Search & Select form. You will now be on the Work With Object Mappings window. From this window, go to Row Oracle Prams. You will now be on the Oracle Database Object Sizing window (shown in Figure 2-15). Depending on the database you are using, this window will allow you to configure the system for table and data source sizing. Enter an asterisk (*) in the Data Source field, enter DEFAULT in the Object Name field, and click Find. This will show you the DEFAULT records for all your data sources. (Another way to access this window is from the DB Data Source window.)
Chapter 2:
EnterpriseOne Building Blocks
FIGURE 2-15. Oracle Database Object Sizing window Select one of these records; you will now be on the Revise Table and Data Source Sizing window. This window has a couple of important fields. You can define the Oracle table space and index space you want EnterpriseOne to use when the system tries to find an object in this data source. In Figure 2-16, the system would attempt to use the crpdtat table space and crpdtai index space when it tries to locate a table using this data source. If you add a custom data source, you will need to use this window to tell EnterpriseOne what table space and index space to use in Oracle. EnterpriseOne also gives you the ability to affect Oracle parameters on individual tables within a table space. EnterpriseOne is shipped with only the Oracle table space and index space defined for EnterpriseOne standard data sources. EnterpriseOne does not ship Oracle settings for specific tables. If you want to use this feature, click the Add button in the Work with Table and Data Sizing window. You will then be prompted with a new form to revise the table and data source sizing, labeled Oracle Database Object Sizing.
83
84
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 2-16. Oracle Database Object Sizing window This window allows you to set some specific table and index information for Oracle on individual tables. You can also leave the Data Source field blank, which asks EnterpriseOne to use the specified settings for this table in all data sources, or you can specify a specific table and data source. You can also only specify a data source and ask Oracle to use the parameters on all tables within that data source. That being said, let’s take a look at what Oracle settings you can specify from within EnterpriseOne. On the lower half of this window, you can specify table and index information. The system will allow you to specify the following Oracle parameters: ■
Table/Index Initial Storage
■
Table/Index Next Storage
■
Table/Index Percent Increase Storage
■
Table/Index Minimum Extent
■
Table/Index Maximum Extent
Your Oracle database administrator should be the person who sets this screen up. You may also want to run with these settings only defined in Oracle and not E1. That is an option, as setting the table information and index information in
Chapter 2:
EnterpriseOne Building Blocks
EnterpriseOne is not a mandatory procedure. Setting up the table space and index space that a custom E1 data source will use (as described earlier), however, is a mandatory procedure.
Revise Table and Data Source Overrides Screen There is one final setting that can be changed from the Work with Table and Data Source Sizing window. This setting applies to all types of databases, not just Oracle. If you highlight a data source in the grid and go to Row Overrides, you will be taken to the Revise Table and Data Source Overrides window (see Figure 2-17). This window will default in the Release, Data Source, and Object Name fields (if applicable). The only two fields you are allowed to modify on this window are Copy Data and Create Tables. It is very important that these fields be set correctly for your data sources, as these values are used by R98403 to determine whether tables should be created and whether data should be copied. ■
Copy Data Currently this field is not used. However, if you add a custom data source, set this value to Y.
FIGURE 2-17. Revise Table and Data Source Overrides window
85
86
JD Edwards EnterpriseOne: The Complete Reference
■
Create Tables This setting will accept either a 0 or a 1 as a valid value. If the field is blank, EnterpriseOne considers it to be a 0 value. When this field is set to 1, E1 will automatically create the tables in this data source during the environment workbench, so any tables mapped to this data source will be created. If this field is set to 0 or is blank, the environment workbench and R98403 will not create tables in this data source. This means you would have to create them by hand. If you add a custom data source, set this value to a 1.
Advanced Object Configuration Manager Operations There are several reports that are useful when administering mappings on an EnterpriseOne system. These reports can be found on the GH9012 menu, Advanced Operations. You can also get there by choosing the Advanced Operations folder on the GH9011 menu, System Administration Tools. These reports give you the ability to administer and add to your OCM mappings. Since the processing options of these reports may change from release to release, we only want to call your attention to the reports. If you want detailed instructions on how to use these reports, please refer to a current Oracle EnterpriseOne CNC Implementation manual.
Oracle EnterpriseOne Middleware
Any chapter on EnterpriseOne building blocks would not be complete without a section on the Oracle EnterpriseOne middleware. In this section, we will discuss the following: ■
The definition of middleware
■
Functions of JDEBase and JDENet middleware
■
EnterpriseOne middleware processes
■
Synchronous versus asynchronous processing
So, what is middleware? Is it hardware or software? Or maybe, as one of our clients thought, it is a mysterious black box that is required as part of the EnterpriseOne solution? This client just wanted to know how much this black box was going to cost and what location would be the best place for it. First, let’s dispel this myth. Middleware is not a black box. Nor is it that mysterious. It doesn’t cost extra, and you don’t need special hardware to run it. As for its location, it is on every machine that runs the EnterpriseOne product. Is it a requirement? Yes! Middleware is software designed to perform two primary functions. As such, it comes in two distinctly different types: database middleware and communication
Chapter 2:
EnterpriseOne Building Blocks
middleware. They are also often referred to as JDEBase and JDENet, and they are the glue that keeps the EnterpriseOne product working. They facilitate all computerto-computer communications as well as structure each and every SQL statement generated by the system.
Types of Middleware EnterpriseOne has two different types of middleware that help perform all the work between machines (servers and workstations) and databases. JDENet is a network communication middleware that performs network communications workstation-toserver and server-to-server. It also ensures messaging for distributed requests (for example, when a two-phase commit is required between two different databases on two different servers). You might hear JDENet referred to as a “peer-to-peer, message-based, socket-based, multiprocess communication middleware solution.” What does that mean, you may ask? Well, you might think that a marketing person had one too many drinks with a technical person and wrote this in a slightly blurry evening of deep discussions. But in reality, the phrase speaks volumes about the EnterpriseOne product. This is because JDENet handles an immense amount of communication between the EnterpriseOne servers and workstations. A server is a machine that responds to a request for information or services. A workstation is a machine on the network that initiates a call for information or services. E1 is a message-based system. All communication goes through messages. To improve performance, EnterpriseOne limits the size of the messages coming to your machine. A good example of this is when you click Find on an application within E1. The program comes back with a certain amount of information. As you begin to scroll down the list of returned information, you will occasionally have a brief pause in scrolling (there is a little icon of a policeman blowing a whistle in the lower-right portion of the window telling you to wait). This happens when the EnterpriseOne product is retrieving the next set of rows from the data set as derived from your initial query. EnterpriseOne is socket-based. E1 uses Win-Sockets to ensure data communication between servers and workstations. These sockets provide a duplex communication channel and are specifically set up in the JDE.INI on both the workstation and the servers. Servers and workstations must be set up on the same socket to communicate. The sockets used most frequently on different installations of EnterpriseOne include 6003, 6006, and 6007. However, any socket specified can be used for this purpose (we’ve seen some clients use 10004 and 10005). EnterpriseOne has a process-based design and supports multiple processes. Although a client installation of E1 can only run a single instance at any one time, a server installation can support multiple requests from multiple machines. These service and data requests range from security to UBE to logic. We’ve seen up to 100 EnterpriseOne kernels running on a single server supporting 20,000 business function requests.
87
88
JD Edwards EnterpriseOne: The Complete Reference
JDENET_N, JDENET_K, and JDEQUEUE On a server running the E1 runtime services, you can see a series of EnterpriseOne processes. Let’s take a minute or two to explore these processes to get a better understanding of exactly what role each of them plays in the EnterpriseOne product. First, though, let’s talk about how requests are split up among the available processes. If you have ten JDENET_n processes defined in the JDE.INI, the first one would be the master process and would launch the other nine as needed. As network communication requests come in, each one is given to a separate JDENET_n until all nine are in use. At that time, the eleventh request for network connectivity would be processed by the first JDENET_n. This process continues evenly, splitting the load among the available processes. This is an example of EnterpriseOne load balancing. JDENET_n is a network communication process. Its job is to determine what type of request is being made by the workstation. Once that determination is made, JDENET_n automatically routes the request to the appropriate server process to handle the request. Each type of request has a specified range of values used to determine the type of job being processed. The JDENET_n process offloads logic processing requests to JDENET_k processes. The JDENET_k process ensures that requests for logic processing reach the appropriate server job and that the results are passed back to the JDENET_n job for the return route to the workstation. There are 22 defined kernel processes in EnterpriseOne. They are identified by function and range in the JDE.INI file. JDEQUEUE is a UBE process that is set up to run batch logic requests. The EnterpriseOne administrator can determine the number of JDEQUEUEs on any particular server. Generally, a server is only limited in the number of JDEQUEUEs based on system resources. We have seen in excess of 18 batch queues defined on a specific machine. Up to 18 UBEs could be run on that machine concurrently.
JDEBase Middleware The JDENet middleware deals with communications (in particular, requests for logic services). The JDEBase middleware deals with database connectivity and communication. Its functions include interpreting APIs, converting SQL into the appropriate format for each machine and database, managing optimized fetch algorithms, and database transaction monitoring. Needless to say, you can’t work with EnterpriseOne without using JDEBase. As described earlier, there are four different databases supported in the EnterpriseOne solution and most implementations use at least two of them. Although this provides great flexibility for companies using E1, it creates a certain amount of complexity for the developers of this ERP product. Why? Because each of these database types is different and supports different SQL conventions. Let’s look at one of the simplest SQL statements and see how it differs from one database to the next: ■
SQL Server: SELECT * FROM PRODDTA.F4201 WHERE SHAN8='123456'
Chapter 2:
■
EnterpriseOne Building Blocks
Oracle: SELECT * FROM PRODDTA.F4201 WHERE SHAN8='123456';
■
DB2 on the AS/400: SELECT * FROM PRODDTA/F4201 WHERE SHAN8='123456'
■
MSDE/SSE SELECT * FROM F4201 WHERE SHAN8='123456'
The differences in the preceding code lines are very quick examples of RDBMS requirements in SQL conventions. Note that the Oracle statement has to have a semicolon at the end of it; DB2/400 has to have a slash indicating a different library because it does not support table ownership; and MSDE doesn’t use a table owner at all—it just skips that part, relying on an Open Database Connectivity (ODBC) connection to point it to the correct database. Though these differences seem minor, there are other, more important, differences as well. Does the RDBMS support table owners? SQL Server and Oracle do; DB2/400 and MSDE do not. Does the RDBMS support an explicit or implicit commit? Oracle supports explicit; SQL Server, DB2/400, and Microsoft Access support implicit. How does the RDBMS handle rollbacks—automatically or only when requested? What about indices? There are a slew of differences between each of the RDBMS vendors, each with their own pros and cons. While these differences aren’t great on the larger software scale, they do make a difference and must be reflected in the software. So, the next question you might ask yourself is, how could the architects of E1 handle these differences? Would it be best to code all four statements into the software? If so, how would an application know to use one type of SQL statement over the other? How would you upgrade this type of application to support changes in the database conventions that accompany RDBMS upgrades? These questions and many more like them went through the minds of the original EnterpriseOne architects, and their solution was JDEBase middleware. When you set up a data source, you define to the E1 system the type of RDBMS used by that data source. This information, when combined with the DLL name (also defined in the data source), allows EnterpriseOne to properly handle the differences between RDBMS conventions. The JDEBase middleware is a part of the foundation code of EnterpriseOne and cannot be modified by clients.
Synchronous Versus Asynchronous Processing Though some of the sections of this chapter seem tedious and long, other sections are blissfully short—such as this section. Really, it is little more than a note or an aside, but it contains an important issue to discuss and understand: What is synchronous as opposed to asynchronous processing?
89
90
JD Edwards EnterpriseOne: The Complete Reference
Synchronous processing can be defined as logic processing that requires the application, client, or user to wait until results are tendered (the logic event completed) before continuing to other processing. An example of synchronous processing will help you understand this better. When you click the OK button on a sales order, certain business functions are launched that check inventory, customer credit limits, and so on. Before you can print a pick slip or add a new order, these business functions must run and return without user-defined errors. If the business functions bring back an error (such as the customer being over their credit limit), the application will either automatically initiate a new workflow procedure or it will prompt the user for an action. All this occurs before the user can enter the next sales order. The user waits until the processing completes with results before continuing. This is called synchronous processing. In effect, the user must wait until the logic is processed before continuing to the next step. Some EnterpriseOne applications are designed so that you can turn their processing to synchronous or asynchronous modes. With this in mind, what is asynchronous processing? Asynchronous processing is logic that can be performed while other logic processing occurs. One of the simplest examples of asynchronous processing is a Universal Batch Engine (UBE). This can be a basic report or a complicated posting job. The key is that it can be launched on either a client workstation or an application server, and the user doesn’t have to wait for it to complete its work before continuing with other work. Considering that some of these UBEs can take days to complete, this is probably a good thing. We mentioned that some applications can be set to run in either a synchronous or asynchronous mode. When you decide to use asynchronous mode, you are telling the application to run ahead of itself. This will often speed up data entry, but there could be some issues with this style of processing (memory overwrites and data corruption quickly come to mind as possible pitfalls). The best advice is to research these options before you decide to implement them. Your local EnterpriseOne application consultant can often help you decide which mode of processing will best fit your business needs.
Summary
In this chapter, we have gone over the true building blocks of EnterpriseOne: data sources, path codes, environments, Object Configuration Manager, middleware, and synchronous and asynchronous processing. A user or system administrator needs to understand these concepts to truly understand the E1 system. The data source is a pointer to a set of tables within a database or to a specific machine that is running EnterpriseOne logic. It is housed in two tables (F98611 and F986115) and is the first building block of EnterpriseOne. We have talked about configuring data sources and when you might modify or add additional data sources.
Chapter 2:
EnterpriseOne Building Blocks
We have also discussed at length the data source’s importance to the E1 enterprise system. Another important piece to the EnterpriseOne puzzle is path codes. We have stated that a path code consists of central object tables, a directory structure, and an entry in the F00942 table. We have also discussed how to add a custom path code and delete a path code. It is vital that you understand how a path code affects the E1 system, as these path codes contain all the specifications that EnterpriseOne needs in order to run. Basically these path codes are storage areas for your specifications. To configure an E1 system correctly, you need to have a true understanding of what a path code is. We also went over adding, copying, and deleting environments. The discussion of these important topics not only covered the mechanics of how to maintain EnterpriseOne environments, but also why you would want to add additional environments and the impact this operation could have on your system. The technology is great, but don’t lose sight of your business needs for the sake of the technology. After we discussed EnterpriseOne environments, we moved on to talk about the three most powerful letters in EnterpriseOne, OCM (Object Configuration Manager). E1 uses the Object Configuration Manager to find its data, run logic, and run business functions. We have gone over the difference between the server map F986101 and the system F986101. The reasons why you would add a mapping and how to add OCM mappings were discussed. It is very important that you understand this chapter before moving on, as the Object Configuration Manager truly is one of EnterpriseOne’s building blocks. Finally, in this chapter we covered the EnterpriseOne middleware. The E1 middleware is an important piece of the product and one that greatly enhances the functionality of this ERP package. It is easily the butter on the bread of this software, allowing all database connectivity, machine-to-machine communication, multiple database and hardware independence, ease of use, guaranteed communications, transactional processing, and more. With this knowledge at your fingertips, you are ready to move into the more advanced topics covered later in this book. Always remember that these topics are truly the building blocks to EnterpriseOne and you will need to understand them before you can grasp more advanced topics.
91
This page intentionally left blank
CHAPTER
3
Solution Explorer
93
94
JD Edwards EnterpriseOne: The Complete Reference
T
he EnterpriseOne product provides an easy-to-use interface for enduser navigation. This interface is based on a tree-type hierarchy of task views and associated tasks that is comparable to a Windows Explorer tree-structure interface and allows users to easily find and execute programs. In this chapter, we will examine how users can interact with the EnterpriseOne interface, including: ■
Basic EnterpriseOne navigation
■
The Solution Explorer: Overview
■
What are EnterpriseOne task views and tasks?
■
Task view structure explained ■
Solution Explorer interface
■
Customizing an existing task view
■
Adding a custom task view
■
Inserting an existing task
■
Deleting a task view
■
Modifying an existing task view
■
Copying a task
■
Applying roles to a task
■
Adding a task relationship
■
Copying an existing task and its relationship
■
Deleting a task relationship
■
Tasks where used
■
Deleting tasks
■
Task translations
■
Task view filtering
■
Task view roles
■
Task views and change management
Chapter 3:
Basic EnterpriseOne Navigation
Solution Explorer
We’ll start this chapter by discussing the basics of how to navigate in EnterpriseOne. The EnterpriseOne software currently utilizes the concept of task views and tasks to provide the user with an easy-to-use interface. These task views are organized in a hierarchical tree structure that closely resembles a Windows Explorer directory layout. The task views are represented as logical groupings of tasks (similar to the concept of a directory) where tasks are utilized to call EnterpriseOne applications, external programs/links, or other task view(s) (similar to the concept of files/subdirectories). In this fashion, tasks are the most discrete units in Solution Explorer and form the building blocks on which full task views are built. Figure 3-1 shows the Solution Explorer. Generally, tasks are grouped in specific task views, as they relate to a common business process (such as Finance). By grouping tasks in this way, Oracle provides an interface that helps users easily locate their required functions. When a user accesses an EnterpriseOne session, the first thing the user will see is the EnterpriseOne task view structure. This task view structure provides the user
FIGURE 3-1. Solution Explorer
95
96
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 3-2. HTML task views with a dual-pane display. The left pane displays task views and the right pane displays the programs that are being executed. The EnterpriseOne interface was designed this way so that users would quickly feel comfortable using it. As with most things in the EnterpriseOne product, task views are configurable. For this reason, the layout of the task views will vary from site to site. Figure 3-2 provides an example of the standard HTML task view layout.
Solution Explorer: Overview
Solution Explorer provides a convenient method for creating, maintaining, and managing EnterpriseOne task views for web or Windows-based (fat clients) interfaces. As with a number of things in EnterpriseOne (such as Object Management Workbench), the administration of task views generally occurs on a fat client utilizing the Solution Explorer application. This interface will be a little different than the standard HTML interface that most users will be exposed to.
Chapter 3:
Solution Explorer
Figure 3-3 provides an example of the Solution Explorer. Our primary focus, for this chapter, will be the creation and administration of task views in the EnterpriseOne product utilizing the fat-client Solution Explorer interface. When working with task views in Solution Explorer, the following modes are available: ■
Menu Design mode The Menu Design mode is used to set up tasks, task views, and task view roles.
■
Menu Filtering mode The Menu Filtering mode is utilized to enable or disable access to task views for users in a specific role(s). Figure 3-4 displays the Solution Explorer in Menu Filtering mode. This mode provides the ability to hide or filter task views for users and roles. This provides the ability to have more tasks in a task view than specific users can see. In this manner EnterpriseOne implementations can leverage the structure of the task view while filtering the user’s view of these tasks based on function or role.
FIGURE 3-3. Fat client – Solution Explorer
97
98
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 3-4. Solution Explorer – Menu Filtering mode
■
Task Launching mode Use Task Launching mode to navigate to development and administrative applications in EnterpriseOne using the Fast Path or drilling down in specific task views (for example, executing the Object Management Workbench task). Figure 3-5 shows the Solution Explorer in Task Launching mode.
The Solution Explorer application is the launchpad for the effective configuration and implementation of task views. As with many things in EnterpriseOne, a little planning will go a long way. By laying out a solid implementation strategy (naming conventions, Object Management Workbench promotion paths, identified support resources, logical groupings of business processes, and so on), you can maximize the efficiency of the task views in your implementation and provide a effective
Chapter 3:
Solution Explorer
FIGURE 3-5. Solution Explorer – Task Launching mode interface for your user community. To meet this need, the Solution Explorer interface can be leveraged to 1. Set up task views 2. Set up tasks 3. Set up task view roles Before we dive into using the Solution Explorer to complete these tasks, we want to review a little bit of the overall interface.
HTML: Overview In the EnterpriseOne application, outside of administration programs, the primary user interface will be the HTML client. The creation and administration of task views is performed on a fat client via the Solution Explorer. For this reason, the primary focus of this chapter will be how to effectively utilize these administration applications to develop and deploy task views in your implementation. However, to keep things in perspective, we thought it prudent to provide an overview of the task
99
100
JD Edwards EnterpriseOne: The Complete Reference
view interface as seen by an HTML/web user (as this will be the end result of your task view creation efforts). Much like the fat client interface, task views on the web/ HTML are composed of two panes. The left-hand pane presents the user with the task views they have access to (we will discuss how to filter task views later in the chapter). Users can drill into these task views to access individual tasks that can call EnterpriseOne programs, HTML/web URLs, or other task views. When a program is accessed, it will appear in the right-hand pane. Depending on the HTML/web setting, users will be able to open multiple applications at the same time. Figure 3-6 provides an example of what task views will look like to a standard web-based EnterpriseOne user. NOTE By examining the Open Applications heading on the left-hand side, you can see that this user has several applications open at the same time.
FIGURE 3-6. HTML/web – task view
Chapter 3:
Solution Explorer
101
Main View: Left Pane The task view tree structure has a familiar look and feel for users who have experience with Microsoft’s Windows Explorer. When you sign on, you are taken to the default task views for your role (different roles can have separate task views). The default view out of the box is shown in Figure 3-7. As you can see, each task view has a plus sign (+) or the arrow next to it (depending on whether you are viewing the task in Solution Explorer or HTML). You can expand a task view by double-clicking on the name or by clicking once on the + or arrow symbol. When you expand the task view, the underlying tasks grouped within that task view appear on the left-hand side of the window. It is important to remember that the left-hand side of your window represents task views (which are logical grouping of tasks) and their associated tasks, not the actual programs to execute. This split-window interface allows you to easily navigate through the EnterpriseOne application.
FIGURE 3-7. Solution Explorer – Menu Design mode
102
JD Edwards EnterpriseOne: The Complete Reference
NOTE By utilizing filtering you can control what task views specific users are able to view and access. We would also strongly recommend disabling the Fast Path functionality so users cannot call task views directly. Disabling the Fast Path will be discussed later in the book. As you navigate through the shipped EnterpriseOne Menu task view, you will notice that each of the main task views represents an Oracle functional application suite. For example, if you expand the Financials directory, you will find task views containing the programs for the financial suite. This allows you to easily navigate to the programs that you might use on a daily basis. This easy-to-use interface should help to reduce training costs for any users familiar with Windows applications. It is also important to note that this task view layout is configurable, so the look of the task views may differ a little from site to site. This means that the users can customize the appearance of the task views. How to do this is covered in the section “Task View Structure Explained – Solution Explorer.”
Main View: Right Pane Now let’s take a closer look at the right-hand side of the user interface. In the HTML interface this “pane” will initially display welcome information (see Figure 3-8). Once a specific task is executed, this pane will be used to display the actual program(s) called by individual task(s). The right-hand pane allows users to access EnterpriseOne interactive programs, and call batch applications or links to thirdparty applications that can be “hooked” into EnterpriseOne. NOTE When the system is initially set up, there is no security restricting users from accessing applications, so users can go anywhere and run any application they please. How to secure the system is covered later in this publication. Once security is added, there are entire applications that will not appear on users’ task views if they are secured out of the application. It is also important to note that the initial task view that a user sees may be different from system to system. This is because the system administrator can filter the task views that a specific role will see or even specify a custom task view.
Chapter 3:
Solution Explorer
103
FIGURE 3-8. HTML interface – right pane Although it’s similar, the pane layout for the fat client is just a little bit different. The fat/Solution Explorer client does not have the welcome information on the first screen. When logging in to the Solution Explorer, you will initially only see one pane and are generally presented with the EnterpriseOne Life Cycle Tools task view (this can be adjusted and modified). If you drill down into the parent-child relationships. you can execute administration programs on the fat client that will appear in their own windows (outside of administration programs, most EnterpriseOne processes are now entirely web-based). The only time you will see the right-hand pane on the Solution Explorer client is if you Fast Path to a task view. This will then show the task view where you were in the left-hand pane and the task view you Fast Pathed to in the right-hand pane. Again, while most EnterpriseOne users will not see the Solution Explorer client view, we will be focusing on it quite a bit in this chapter to draw out how best to utilize the task view administration applications.
104
JD Edwards EnterpriseOne: The Complete Reference
Task View Structure Explained – Solution Explorer
When you log in to the Solution Explorer and access the initial task views, you will notice that there is a menu bar across the top of the interface, as shown in Figure 3-9. We wanted to take a moment to review some aspects of this part of the Solution Explorer client interface before diving into how to utilize the administration tools for task views in the EnterpriseOne product. This menu bar gives the user several options: ■
File
■
Tools
■
Edit
■
Applications
■
View
■
Help
We will go though the selections on this menu bar one by one, from left to right.
FIGURE 3-9. Solution Explorer – menu bar
Chapter 3:
Solution Explorer
File Menu The options on the File menu (see Figure 3-10) are ■
Run
■
Print This option prints out the task view currently displayed in the lefthand pane.
■
Print Setup This option simply allows you to select your prints and print characteristics (for example, Portrait or Landscape).
■
Save Settings on Exit This setting automatically saves any local settings made during the session when the user exits.
■
Exit
This option executes the task that is currently selected.
This option quits the Solution Explorer application.
FIGURE 3-10. Solution Explorer – File menu
105
106
JD Edwards EnterpriseOne: The Complete Reference
Edit Menu The options on the Edit menu, as shown in Figure 3-11, are ■
Prompt For: ■
Values
■
Version
■
Data Selection
■
Data Selection And Values
FIGURE 3-11. Solution Explorer - Edit menu
Chapter 3:
Solution Explorer
107
The Prompt For Values option allows you to review and edit the processing option values for reports and interactive applications. All you need to do is highlight the report or application you are interested in and go to Edit | Prompt For Values. The processing options for that report or application are then displayed (Figure 3-12 provides an example of the processing options for the Work with Servers application). Processing options enable you to take advantage of different functionalities offered by a report or application so that, for example, you can specify whether or not to give a user a hard error or a warning when a certain action is taken. Processing options can also tell a report to run in proof mode instead of update mode, which allows users to check their work before committing records to the system. This option will be grayed out if the report or application does not have any processing options.
FIGURE 3-12. Processing Options dialog box
108
JD Edwards EnterpriseOne: The Complete Reference
CAUTION Processing options are an important part of configuring your EnterpriseOne system. Once these are set up, you will want to lock your users out of these processing options for certain applications and reports. Failure to do so could cause problems with the system later. For example, if a user changes the processing options on your financial reports and/or applications, you may get unexpected results. The next selection is Prompt For Versions. This option allows you to choose the version of a report or interactive application that you want to run (see Figure 3-13). Users can set up different versions for reports and applications that allow them to specify, for example, different processing options or data selection. Instead of having to set the data selection up again and again, they can simply select a version with the desired data selection or processing options. This means that your users
FIGURE 3-13. Work With Versions window
Chapter 3:
Solution Explorer
can easily run a version that suits their needs and then just as easily change to another version. However, it is important to note that not all applications or reports will have a version associated with them. The next selection is Prompt For Data Selection, which brings up the Version Prompting window, as shown in Figure 3-14. This option will enable the user to view the default data selection for a report. NOTE If a task calling a report is not highlighted, this option will be grayed out. Data selection is stored at the spec level in EnterpriseOne. This means that while users can override the data selection configured on the report, it will return to the default on the next run. To change the default data selection, users need to update it at the spec level using the development tools.
FIGURE 3-14. Version Prompting window – Prompt For Data Selection
109
110
JD Edwards EnterpriseOne: The Complete Reference
The last option on the Edit menu is Prompt For Data Selection And Values. This option will prompt the user with the data selection for a UBE as well as the Processing Options. This is simply a slight variation on the options already discussed. Because the prompts for some of these options are not something you would want all of your users accessing, EnterpriseOne allows you to secure prompting for versions, values, and data selection.
View Menu The next item on the menu bar is View. The options on the View menu, as shown in Figure 3-15, are ■
Task Views
■
Show ■
Task Properties
FIGURE 3-15. Solution Explorer – View menu
Chapter 3:
■
■
Task Documentation
■
Fast Path
■
Toolbar
■
Toolbar Text
■
Status Bar
Solution Explorer
111
User Options
The Task Views option will display the major parent task view, like the EnterpriseOne Life Cycle Tools task view. This option will be grayed out until you go into Menu Design mode and start editing task views. This allows you to go from task view to task view via the View option. The Show option on the View menu can be used to determine whether a Solution Explorer user will see the Task Properties. This window, shown in Figure 3-16, will provide the user with information on the task that they have highlighted. When enabled, it generally appears to the far right-hand side of the Solution Explorer client. There will be three tabs on the Task View Properties pane: Basic, Intermediate and Advanced: The Basic tab provides the following options: ■
Task Name
■
Product Code
■
Product Code/Reporting
The Intermediate tab provides the following options: ■
Version
■
Task Type ■
Folder, Interactive, Program or UBE
■
Object Name
■
Form Name
■
URL Referenced
■
Option Code ■
Blind Execution, Prompt for Values
112
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 3-16. Solution Explorer – Task Properties window ■
Form Mode
■
UDC Product Code
■
UDC Code Type
■
Icon Identifier
■
Country Code
■
Application Type
■
PO Option ID
■
Task View ID
Chapter 3:
■
Presentation Sequence
■
Parent Child Relationship
■
From Mode Override
Solution Explorer
The Advanced tab provides the following options: Task Properties ■
Task ID
■
Parent Task ID
■
Internal Task ID
■
Child Task ID
■
User ID
Relationship Properties
■
Program ID
■
User ID
■
Work Station ID
■
Program ID
■
Date – Updated
■
Work Station ID
■
Time – Last Updated
■
Data – Updated
■
Client Platforms
■
Time – Last Updated
The next suboption under the Show option on the View menu, Task Documentation, provides the ability to display task documentation. The EnterpriseOne application provides the ability to document information about the individual tasks. Another suboption under the Show option on the View menu, Fast Path, provides the ability to display or to hide the Fast Path. Fast Path is a powerful tool that allows a user to call applications or task views directly. We would strongly recommend limiting who has access to Fast Path in your implementation. NOTE A common practice is to provide developers and application resources with access to the Fast Path in the non-production/development environment but not in the production environment(s). One way to accomplish this is to provide the developer or application resource with two separate EnterpriseOne user IDs. The Toolbar option under Show on the View menu is used to show or hide the Menu toolbar. This toolbar provides access to the Menu Design and Menu Filtering modes.
113
114
JD Edwards EnterpriseOne: The Complete Reference
The Toolbar Text option under Show will hide the text for the toolbar buttons. This can be used to make the icons for the Menu Design and Menu Filtering modes smaller. The last suboption available under Show is the Status Bar setting. This setting provides the ability to hide or show the status bar on the lower right-hand side of the Solution Explorer interface. This status bar displays ■
The user currently logged in (for example, Demo)
■
The environment the user is logged into (such as DV812, PY812 and so on)
■
The role the user is logged in under (for example, All My Roles)
NOTE Information displayed will depend on the type of task highlighted. The User Options selection provides the user access to different programs for general user tasks, such as changing their password. When the user selects this option, the User Default Revisions dialog box (see Figure 3-17) will provide the following links: ■
User Profile Revisions This application allows you to add, copy, and revise users and groups. If a user selects this option, information on their user profile will be displayed.
■
Change Password If you set up EnterpriseOne sign-on security, each EnterpriseOne user will be required to have an individual password. This option allows users to change their own passwords. However, this option will not allow the users to change the passwords of other users or give themselves more authority on the system.
■
Submitted Reports This option allows you to view reports that have been run on your enterprise/application servers.
■
Default Printer EnterpriseOne allows you to set up printers so that users can print reports on a printer that is physically near them. However, users may move around the building, so EnterpriseOne gives you the ability to easily change the default printer for your users. The user can also manually change printers when running or printing a report.
■
View Local Output When a report or UBE is run on a fat client, it can be run on the server or locally on the workstation. When the report is run on the workstation, the output of the report is saved in the E812/printqueue directory on the local workstation. This option will allow you to browse/ view these jobs via the EnterpriseOne application.
Chapter 3:
Solution Explorer
FIGURE 3-17. Solution Explorer – User Default Revisions dialog box
Tools Menu The next option on the menu bar is the Tools option. The selections on the Tools menu, as shown in Figure 3-18, are as follows: ■
Message Management ■
Work Center
■
Internal Mail Messages
■
Add New Task View
■
Work with Tasks
■
Work with Task Relationships
115
116
JD Edwards EnterpriseOne: The Complete Reference
■
Task Where Used
■
EnterpriseOne Menu
■
Object Management Workbench
■
Report Design
■
Report Versions
■
Event Capture
The Message Management suboption on the Tools menu provides access to the Work Center program and Internal Mail Messages. The Work Center program is utilized to verify messages from reports or applications that are executed. This can be used to identify why a program such as the post did not post specific data. The
FIGURE 3-18. Solution Explorer – Tools menu
Chapter 3:
Solution Explorer
117
second program, Internal Mail Messages, can be used to send mail messages within the EnterpriseOne application. The Add New Task View option will be grayed out unless you are in the Menu Design mode. This option calls the P9000 program to allow new tasks to be added. We will review this action in more detail later in this chapter. The Work with Tasks option will be grayed out unless you are in the Menu Design mode. This option will call the P9000 program and will provide a user with the ability to add, delete, and browse tasks. You will find that we will discuss this program in greater detail as this chapter unfolds. The Work with Task Relationships option will be grayed out unless you are in the Menu Design mode. This option allows the user to add new parent-child task relationships or modify existing ones. We will review this process in much greater detail later in the chapter. The Task Where Used option will be grayed out unless you are in the Menu Design mode. This option allows the user to determine where an individual task is utilized in the system. The EnterpriseOne Menu option will load the EnterpriseOne Menu task view via the local Web Development client. If you are working on the web locally on a Web Development machine, this is a quick way to open the HTML/browser access to EnterpriseOne (E1). The Report Design menu option is for developers. The authors recommend that you use EnterpriseOne security to lock everyone but necessary users out of this option. The Report Design Aid program allows you to either customize EnterpriseOne reports or create custom reports that suit the needs of your business. Only trained developers should use this tool, which can also be accessed through the Object Management Workbench application, as the misuse of the application could seriously damage your implementation. The next option on the Tools menu is Report Versions. This option allows you to easily find and run batch applications or reports by taking your user into the Batch Versions program that allows you to find and run Universal Batch Engines (UBEs), which are really reports. DEFINITION Universal Batch Engine (UBE): These are the reports that you can run in EnterpriseOne. An example of this is a report that lists all of your customers. Event Capture is the last option on the Tools menu. This option is only utilized if you are working with the Autopilot tool.
118
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 3-19. Solution Explorer – Applications menu
Applications Menu The next choice on the menu bar is Applications (see Figure 3-19). This option simply shows you the applications that you currently have open in EnterpriseOne and allows you to maximize them when you click on them.
Help Menu The Help option can give you just that, help. This option can lead you to help on specific topics or even information on the system itself, including: ■
Solution Explorer Help
■
Tip of the Day
■
Oracle on the Web
■
■
Oracle Home Page
■
Contact Us
About JD Edwards EnterpriseOne
Chapter 3:
Solution Explorer
119
The Solution Explorer Help option brings up a browser that shows you your online help files. These will only come up if you deployed them to the workstation or set your installation up so that your workstations know where to find these files. The Tip of the Day option shows you the tip of the day and allows you to turn the display of tips on and off. Tips of the day are customizable and held in a relational database table. The Oracle on the Web option can take you to the Oracle home page or to a contact page. The About JD Edwards EnterpriseOne option gives you information on the EnterpriseOne installation installed on the client machine. This option will tell you the release of EnterpriseOne, service pack level, package installed on the client, and environment name.
Toolbar Now that we have discussed the menu bar, let’s talk about the toolbar, the series of buttons across the top of the EnterpriseOne interface. We will start from the left and move to the right.
Menu Design The Menu Design button will place the Solution Explorer in the Menu Design mode to allow the configuration of tasks, task views, and task view roles.
Menu Filtering The Menu Filtering button places the Solution Explorer in Menu Filtering mode, which allows a user to enable and disable tasks that users assigned to a certain role can view or perform.
How Task Views Interact with EnterpriseOne Now that we have reviewed the Solution Explorer interface, let’s take a closer look at task views. Task views are an integral part of the EnterpriseOne product. In previous releases, the product was shipped with the menus mapped to the LocalPath Code. In the latest EnterpriseOne releases, the task views are mapped and read directly out of the Control Tables data source. Task views are contained in the following tables (which are accessed via the control table data source): ■
F9000 Task Master
■
F9001 Task Relationship
■
F9002 Task Alternate Description
120
JD Edwards EnterpriseOne: The Complete Reference
■
F90021 Task Master Language Status
■
F9005 Variant Description
■
F90051 Variant Description Language Status
■
F9006 Variant Detail
■
F90061 Variant Detail Language Status
■
F9005 Variant Description Alternate Description
■
F9006D Variant Detail Alternate Description
As you navigate through EnterpriseOne, you are actually making calls to these task view tables directly out of the database. These tables control what you see as you move through EnterpriseOne. They also control what applications or jobs are associated with each task; in other words, when a user logs on to a session, they see the task views as they do because of the way the data is returned from these task view tables. The content of these task view files can be controlled through the interactive application P9000. This application is the main control point for adding, modifying, and performing general maintenance on task views. Now like most things in EnterpriseOne, task views are objects. For this reason, they should be included in your change management planning. In the current release of EnterpriseOne, task views can be promoted via the Object Management Workbench (OMW) application. Development life cycles will vary from site to site, but the authors recommend that you select a lower-level environment where task views are configured and then promoted via OMW projects. This will provide you with tracking capability for changes to these objects and provide the ability to merge these changes into your normal development life cycle. Along that same vein of thought, it is always a good idea to put a little forethought into how you would like your task views to be configured. Some general concepts to consider: ■
Develop a standard naming convention. You will notice that the standard EnterpriseOne tasks are generally prefixed by JDE followed by a sixdigit number. For example, JDE002478 is the Task ID for the Object Management task view. ■
To ensure that your task views do not conflict with standard task views, we recommend developing a custom prefix for any custom task views (for example, ABC000000). While the numeric part of the Task ID can be
Chapter 3:
Solution Explorer
121
manually overridden, it is a good practice to utilize a next number for this, to ensure a next number will be used to verify the Processing Options of the P9000 application. You will not only be able to set the application to use next numbers, but you can define your own prefix to be used as well.
NOTE Ensure that this Processing Option (PO) change is promoted to all path codes. ■
Verify in the next numbers application (P0002) that a next number is defined for Task ID under system code H90.
■
Configure your custom task views to meet your business requirements with the least amount of maintenance. For example, if you have a number of divisions that use different programs, you can add the programs to a shared task view and use E1 security to prevent each division from accessing the other’s applications. This provides you with a common parent-child relationship while leveraging EnterpriseOne security capabilities.
So how do you really manage task views in EnterpriseOne? As with anything else, it is a good idea to start small and build from there. So we will start by explaining how to customize an existing task view for your own purposes. We will then move on to a review of how to add a custom task view and continue to walk through the major components of task view customization and administration. This discussion should provide you with the base knowledge to start defining your task view strategy.
Customizing an Existing Task View Let’s start with customizing an existing task view. From the Solution Explorer, select the Menu Design button on the toolbar. Open the P9000 application by selecting Work with Tasks from the Tools menu. Once you are on the Work with Tasks window (see Figure 3-20), you can search for the task you want based on the Task ID, Task Name, Product Code, Jargon, Country Code, Application, Form Mode, or application type. For example, if you wanted to find a task view with the Address Book application on it, you could search on the P01012 in the application field. This will show you all of the tasks that call the P01012 application. You can then modify the individual task by selecting the task and editing the information on the Common or Executable tabs on the Task Revisions window. For example, you might adjust the selected task to call a different version of the application or modify the Option Code to prompt for values.
122
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 3-20. Work with Tasks window From the Task Revisions window (see Figure 3-21), you can add an EnterpriseOne Application, Report, URL, Folder/Task view, User Defined Code or EnterpriseOne Workflow to the task you have selected. To change the description and program that is called from a task view selection, first change the Task name in the Task Name field on the Task Revisions window. Then, on the Executable tab, in the Task Type area, click the Interactive or Batch radio button. You can then enter the program that you want to run in the Application field. If you do not know the name of your application, you can use the Visual Assist to help you find it. This will take you into the Search & Select window, where you can search for your application. You can also set the version of the application to be called by filling in the Version field in the Interactive Information section on the Executable tab. In the example, you are going to change the Task Name to Address Book and the application being called to P01012. Clicking OK will update the task and close the P9000 application.
Chapter 3:
Solution Explorer
123
FIGURE 3-21. Task Revisions window
Adding a Custom Task View Now that we have examined modifying an existing task view, we will go over adding a custom task view. Ensure that you are in the Menu Design mode and then select Add New Task View from the Tools menu. This will take you to the Task View Revisions dialog box (see Figure 3-22). In this dialog you can add a new task view. This is where you would define a parent task view to hang your custom tasks and task views on. Most often this will generally be a master name such as the name of the company or the project. Under this top task structure you normally hang task views for each of the functional areas for your implementation. These task views can then be filtered based on the roles for each of the users. When entering a new task view, you define the task view number, the name, and description. You can then select OK. You will notice that you can now see the new task view under the views section.
124
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 3-22. Task View Revisions dialog box Once you have established your primary task view, you can move on to inserting a new task view on an existing task view. To insert a new task view to an existing parent task, ensure you are in Menu Design mode, right-click on the task, and select Insert New Task. This will take you to the Task Revisions dialog box (see Figure 3-23). In this dialog you will see the Task ID field. We would recommend that you allow the application to provide a next number for the new task view (this is set in the Processing Options for the P9000 application). First enter a Task Name and then you can select the values for the Common tab. On this tab, you will notice that you have Parent Task ID (which will be filled in based on the initial task view you right-click on), the Product Code, Jargon, and Country Code. The Product Code should match the type of tasks you are creating (for example, 55 for custom). The Country Code is utilized if you need to set up a task for a specific language (this will be discussed in greater detail later in the chapter). Once you have filled out the fields on the Common tab, you can move to the Executable tab and in the Task Type area, select the radio button for the task type you would like to define (such as Interactive, Batch, URL, Folder, User Defined Code, EnterpriseOne Workflow, or Crystal Enterprise). Enter the application and version and select your option (such as
Chapter 3:
Solution Explorer
125
FIGURE 3-23. Task Revisions dialog box Blind Execution, Prompt for Versions, and so on). Once you click OK on this dialog, you will have added a new task view to an existing parent task view.
Inserting an Existing Task To insert an existing task onto a task view under a parent task view, ensure that you are in Menu Design mode, right-click on the task view, and select Insert Existing Task. This will bring up the Task Relationship Revisions dialog box (see Figure 3-24). This dialog box will show you the Task View (this is the primary task view that you hang other task views on), Parent Task ID, the Child Task IDs, Child Task Names and Presentation Sequence. This application enables you to establish parent-child relationships and create hierarchical relationships. When entering a child task ID, ensure that you separate the presentation sequence numbers by a factor of X (10, 20, and so on). When you do this, you allow yourself the room to add extra
126
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 3-24. Task Relationship Revisions dialog box task views or adjust the order without having to touch all of the sequence numbers. Tasks inserted under a parent task view should be grouped logically by function or business process.
Deleting a Task View To delete a task view from the system, log on to the Solution Explorer and access the Menu Design mode. Select the Work with Tasks option from the Tools menu. Once the Work with Tasks window appears, go to the Form Exit and select Task Views. This will open the Work with Task Views window. Search on the task view you would like to remove by entering it on the QBE (Query By Example) line and selecting Find. Highlight the task view and select Delete. This will remove the task view from the EnterpriseOne system.
Chapter 3:
Solution Explorer
127
NOTE If you delete a task from a task view, ensure that you repromote the entire task through the development life cycle. This will ensure that the other path codes match up with your change.
Modifying an Existing Task View If you want to adjust an existing task view to suit your purposes, ensure that you are in Menu Design mode and then right-click on the task view you are working with and select Task Revisions. This will open the Task Revisions application. This application will show you the following fields: ■
Task ID
■
Task Name This field provides a name or description of the task (For example, Object Management).
This is the unique ID that identifies the task.
On the Common tab, you will see the following fields: ■
Parent Task ID This field denotes the task view that this task is associated with (this presents the task views as nested).
■
Product Code This is the system code for the task view (for example, 55 would indicate a custom change).
■
Jargon The Jargon field provides you with the ability to define a system code.
■
Country Code Leave this field blank if you want this task to be available for all users. If you want this task to be specific to a region or country, enter your country code here. If you have a global implementation, this will become an important field as you roll out other countries.
On the Executable tab, in the Task Type area, you will see the following fields: ■
Interactive Select this option for a task that launches an interactive EnterpriseOne program.
When the Interactive task type is selected, the following fields will be displayed: ■
Application
■
Version Use this field only if you want to launch a specific version of the program.
Name of program.
128
JD Edwards EnterpriseOne: The Complete Reference
■
Form This optional field allows you to set a specific form to be called when the task is executed.
■
Option Code This field determines whether the user will be prompted for additional information prior to the application executing. It can be set to the following values: ■
No Processing Options processing options.
■
Blind Execution the user.
■
Prompt for Version This option will provide the user with a list of versions of the program to select from.
Used if the application does not have any
This setting will execute the program without prompting
NOTE The authors recommend using this option only when business needs require it. This option will allow a user to run any of the versions of an application, which could affect the user’s results. ■
Form Mode
■
Application Type
The Batch option in the Task Type area is used for tasks that launch EnterpriseOne batch applications. When this option is chosen, the Interactive Information area provides the following fields: ■
Application Enter the name of the report that you would like the task to call.
■
Version This optional field allows you to specify a specific version for the task to execute.
■
No Processing Options This option is used to execute a UBE that does not have processing options.
■
Blind Execution This selection executes the batch program without displaying its processing options.
■
Prompt for Version run at execution.
Allows the user to select which version of the report to
Chapter 3:
Solution Explorer
■
Prompt for Values This selection prompts the users to enter processing options values for the selected report.
■
Data Selection Prompts the user to enter data selection for the report at execution time.
■
Data Selection and Values This option prompts the user with both processing options values and data selection when the task is executed.
129
There are several additional options in the Task Type area: ■
URL This option can be leveraged to call a URL for a web-based application. This can be useful for linking calls to third-party applications from E1 task views.
■
Folder Turn on this option to use a task as an activity or nonsoftware placeholder. This will allow you to create subtasks under existing tasks. This will allow you to start your task view broad (for example, Finance) and narrow it down as you drill (for example, Month End G/L reports).
■
User Defined Code This option can be utilized for a task that launches a program that enables a user to modify UDC tables.
■
Crystal Enterprise task views.
■
EnterpriseOne Workflow
This option can be utlized to define Crystal reports on This task option displays workflow processes.
Once you have completed your modifications of the existing task view, you can select OK. This will update the task view in the table. It is important to note that task views are cached. For this reason, in order to guarantee that you will see the changes properly, you should log out and back in on a fat client and clear the cache for an HTML/Java application server (JAS) via the SAW (Server Administration Workbench) or Server Manager (8.97) applications. NOTE When you change a task in such a manner, you affect all instances of the task in any task view where it resides. This can often cause confusion for users who thought they were simply changing that one instance of the task. If you want to find out where else your change might be seen, you can search on where a task is used.
130
JD Edwards EnterpriseOne: The Complete Reference
Copying a Task At this time there is not a way to make a unique copy of a task. The best alternative is to write down the information and add it as a new task.
Applying Roles to a Task Now that you understand how to create a new task view, modify existing tasks, and insert a new task, we should review how to use the concept of EnterpriseOne roles to configure the system into role-based task views. The EnterpriseOne product provides the ability to add one or more roles to each task. When a user launches a role-based task view, the EnterpriseOne system applies the login role to the view. If the user has multiple roles defined for that user, they will be able to view the task view by any of these roles. For example, a user might have two roles, DEMOROLE (the user’s sign-on role) and TEST ACCNT. When the user launches a role-based task view, the system displays only those tasks to which the DEMOROLE has been applied. The user can apply the TEST ACCNT role to the task view. The system will then display only those tasks to which the TEST ACCNT has been applied. To apply roles to a task: 1. Select the task that you want to work with. 2. Right-click the task and select Task Revisions. 3. In the Task Revisions window, select Roles from the Form menu. This will display the Task Where Used window. 4. Click Find and highlight the parent of the task to which you want to apply roles and then click select. 5. The Role Definition window will appear (see Figure 3-25). 6. Select the role that you want to apply to the task. 7. Select Change Status from the Row menu. This will change if the task is enabled for the task view. 8. If you want to apply all roles to the task: a.
Select Enable All from the Form menu.
b. Click Close. c.
Then in the Task Revisions window you can click OK to save the changes.
Chapter 3:
Solution Explorer
131
FIGURE 3-25. Role Definition window
Adding a Task Relationship Now that we have discussed how to create a master task view and different types of tasks, we will review how to group those tasks that relate to common business systems, processes, or functions. Grouping tasks in this manner makes it easier for users to locate the functions that they require. Defining a relationship for a task view will provide this grouping of tasks together and allow the same task to be accessed from multiple task views. In this manner you can use the building blocks of the individual tasks and hang them from a number of different task views to meet your requirements. For example, we might want to add the Address Book application to the Report Management task view. To do this, you would log in to Solution Explorer,
132
JD Edwards EnterpriseOne: The Complete Reference
click Menu Design, right-click on Report Management task (GH9111), and select the Task Relationships application (see Figure 3-26). To add the address book task to the task view, you can type in the individual Child Task ID or use the Visual Assist. Enter or select the Child Task ID (the Child Task Name should then appear) as well as the presentation sequence. If you have a number of tasks grouped in a task view, this will determine what order they are displayed in. It is a good practice to leave space between your presentation sequence numbers by a factor of x (10, 100). This enables you to easily add new tasks without having to adjust all of the presentation sequence numbers. Once the task has been defined, click OK. You have now created a logical grouping of this task with the task view. By performing this type of action, you can build logical groupings of task views for specific business requirements (such as HR, A/R, and so on). Putting a little forethought into the grouping of your task views can also help when you are attempting to isolate which users can access these task views.
FIGURE 3-26. Task Relationship Revisions window
Chapter 3:
Solution Explorer
133
Copying an Existing Task and Its Relationships to a New Task View At times you will find that you have an existing parent task with relationships already existing within another task view. If you want to have this entire tree structure in a new custom task view, it is possible to copy the relationship in its entirety to the new task view. To copy a task and its relationships to a new task view: 1. Navigate to the existing task you want to copy. 2. Right-click on the task view and select the Send To option. 3. From the pull-down list (see Figure 3-27), select the task view you would like to copy to. 4. Select the options for Copy This Task and All of Its Children. The option for Copy This Task Only will have the same result as manually adding a single task to the task view. This will move the task and its children to your task view and automatically create the relationship.
FIGURE 3-27. Send To dialog box
134
JD Edwards EnterpriseOne: The Complete Reference
NOTE This is not a unique copy. The two tasks will retain the same task ID and if one task is changed, then both will be changed. The only way to get a unique ID is add a new task. (This is a common place where users get tripped up.)
Deleting a Task Relationship As we have been discussing, task views are simply logical groupings of tasks in a hierarchical tree structure. Task views are the “Christmas Tree” that allows for the grouping/hanging of tasks that relate to a common business process. By generating your tasks in this manner, you can make the process of accessing applications in EnterpriseOne easier for the end user. By defining a relationship for a task view, you not only enable all users to group similar tasks together but also allow the same task to be accessed from multiple task views. So now let’s assume we have an instance where we need to get rid of a relationship associated to a task view: 1. Highlight the parent task you are interested in. 2. Right-click and select Task Relationships. 3. Locate the child task that you would like to remove from the parent task. 4. Highlight the child task. 5. Click Delete. 6. Click OK.
Task Where Used As we are adding or modifying new tasks, it becomes necessary to have a clear view of where a task is used in the system. The reason for this is that any changes to a task are replicated throughout any task views utilizing that task. So how do I find out where a task might be used in the system so I can understand the scope that a change to this task would represent? To locate this type of information, ensure that you are in Menu Design mode and select Task Where Used from the Tools menu (see Figure 3-28). This application can be leveraged to determine on which task view(s) a task is used as well as additional information such as to which roles the task is assigned. When searching on a task, enter the Task ID in the field and select Find. The application will list the task views that this task is being utilized for. This provides you with a view of how prevalent a change to this task view might be and where in your task view structure this task is called.
Chapter 3:
Solution Explorer
135
FIGURE 3-28. Task Where Used window
Deleting Relationships When Multilevel Relationships Exist Within a task view, multilevel relationships between tasks can be established. To delete all of the levels of relationships defined in a multilevel relationship: Highlight the parent task, right-click, and select the option Delete Relationship.
Delete a Task When you determine that you have a task that you no longer need, how do you get rid of it? To delete a task from the EnterpriseOne system, ensure that you are in Menu Design mode on the Solution Explorer client and then: 1. Remove all task relationships involved in the task. 2. To determine where the task is used in the system, go to the Task Where Used option on the Tools menu. 3. Enter the Task ID and select Find. All parents of that task will be listed. 4. For each row in the list, highlight the row and choose Select.
136
JD Edwards EnterpriseOne: The Complete Reference
5. In the Task Relationship Revisions applications window, click on the row representing the task you would like to remove and click Delete. 6. Once this has been completed, choose Work With Tasks from the Tools menu. 7. Enter the desired task ID in the QBE line and choose Find. 8. Select the grid line displaying the task and choose Delete. 9. You would then promote the task views that this task was a part of via the OMW application. This will ensure that your changes move properly through the development life cycle and are propagated to the other environments.
Task Translations In today’s dynamic business environment, many companies have to maintain global implementations. So how do you effectively manage multiple languages in your implementation? The EnterpriseOne product allows you to apply translations to your custom task views. This will allow English-speaking users to see the view(s) in English and foreign users to be able to read the translation for the same task view in their own language (set in the P0092 user profile application). To set up a translation for a task view: 1. In Solution Explorer, click Menu Design. 2. On the Tools menu, select Work With Tasks. 3. In the Work with Tasks window, enter your Task ID and select Find. 4. Highlight the Task View and select the row exit Task Translation. 5. The Task Translation Revisions window will appear (see Figure 3-29). 6. Enter the language you would like to perform the translation for. For example if you typed an S in the Language field, you would be entering a translation for Spanish. To find out all of the User Defined Codes (UDCs) for each language, you can use the Visual Assist. 7. In the Task Name field you can enter your custom language translation. 8. Select OK to commit this translation. This capability allows companies to not only add custom translations to custom task views but to update existing task views.
Chapter 3:
Solution Explorer
137
FIGURE 3-29. Task Translation Revisions window
Filtering Task Views Once you have created custom task views for your business processes, how do you ensure that users only see the task views associated with their role/business process? The answer to this is Menu Filtering mode. Menu Filtering provides the ability to selectively enable or disable tasks by role in a task view. To leverage this functionality: 1. Access Solution Explorer. You will want to perform this action in the path code that you would like to filter for or in the path code that you are promoting task views from. 2. Select the task view that you want to redefine. 3. Locate and select the Menu Filtering button on the toolbar. When you enter Menu Filtering mode, as shown in Figure 3-30, you will notice that the task view changes to display enabled and disabled tasks. Enabled tasks are indicated by a green check mark and disabled tasks are indicated by a red X.
138
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 3-30. Menu Filtering mode 4. Click the Enable or Disable button on the toolbar to disable the task view. You can also double-click on the task to flip between enabled and disabled conditions. 5. Once you have completed your changes, you can save them by clicking on the Save button on the toolbar. Saving your changes will update the Master Task Relationship table (F9001), so the changes will be available to all users who access the same database/environment. 6. You can use the Show All in Menu Design mode to switch between hiding and displaying disabled tasks in the current task view menu for the currently selected role.
Understanding Task View Roles You can use roles to customize task views or parts of task views for specific user roles. Roles are used in EnterpriseOne to define users to logical business processes/ actions. For example, you might set up a role for your accounting users. These roles could be utilized for EnterpriseOne Security, defining the environments the users have access to and what task view that the user can view. To filter a task view by a specific role, you refine the task view by using Menu Filtering mode (detailed in the preceding section). To take advantage of this: 1. Log in to the Solution Explorer. 2. Locate the task view you would like to work with and select the Menu Filtering button on the task bar.
Chapter 3:
Solution Explorer
139
3. Select the task(s) that you want to hide from view and click the Disabled button. 4. After disabling all of the tasks that you do not want to appear, select the parent task. 5. You can then right-click on the parent task and select Save Role. 6. In the Save Role application (see Figure 3-31), select an existing role or create a new role. This will allow the resource responsible for your task view creation to control what task views that particular role is able to see/access. This combined with EnterpriseOne security provides the ability to present a task view to roles based on their specific business processes. NOTE In order to see the roles in the Apply Role application, Role Chooser must be enabled.
FIGURE 3-31. Save Role application
140
JD Edwards EnterpriseOne: The Complete Reference
Changing a Role View of Task View Leveraging the modifications of roles allows you to control users’ task views. As you plan and implement your task view strategy in your EnterpriseOne implementation, you might not only want to control what task views a role sees, but also things like task view names. For example, if you had a couple of different roles (such as TEST ACCNT and DEMOROLE), changes that you make to a specific role (such as TEST ACCNT), like assigning new task names, will only display to users in that role. To change a role view on a task view: 1. Log in to the Solution Explorer application. 2. Locate the task view you would like to work with and select Menu Filtering on the toolbar. 3. Right-click the task and select the View by Role option. 4. Select the role that you would like to apply the change to (such as TEST ACCNT). 5. You can then: a.
Use Menu Filtering to enable or disable the view.
b. Right-click on the task and select Override Name. This enables you to display different task names for different roles (such as Corporate Accounting, Region 1 Accounting, and so on). 6. Once you have made the required changes, you can select the Save button on the toolbar.
Change Control and Task Views Now that we have reviewed all of these great options available for configuring task views, how do you effectively track changes through your system? The authors recommend that you select a primary environment for the creation and promotion of task views in your EnterpriseOne system. This is generally the Prototype environment as it will be the application users who validate the task views (but this effort could also start in development). This primary environment would be utilized to make changes to the task views in the implementation. Once validated these changes would be promoted through OWM just like any other object in EnterpriseOne. This provides logging and the ability to efficiently track changes. To ensure that your task views are configured, you need to ensure that the activity rules are updated to reflect the task views. You will need to add activity rules for:
Chapter 3:
■
SE_REL Solution Explorer Task Relationship
■
SE_RULE
Solution Explorer Qualifier Rule
■
SE_TASK
Solution Explorer Task
■
SE_VAR
Solution Explorer Variant
Solution Explorer
(These are not shipped by default.) By setting up activity rules for the transfer of task views, you can migrate task views through the change control process with your standard objects. This allows you to coordinate changes to your task views throughout your project life cycle.
Summary
This chapter has reviewed the components required to maintain, create, and manage task views in the EnterpriseOne product. This top-down review of the Solution Explorer and its task view administration programs provides a base on which you can start building your task view strategy. As with many things in EnterpriseOne, task views can be managed effectively and efficiently, but they require a little bit of planning.
141
This page intentionally left blank
CHAPTER
4
EnterpriseOne Servers
143
144
JD Edwards EnterpriseOne: The Complete Reference
A
s you continue learning about the basics of the EnterpriseOne system—what the building blocks are and what they do, how to successfully implement the system, and what types of topics to keep in mind before, during, and after an implementation—we need to take time out to talk about the underpinnings of the system itself (both hardware and software). Though we certainly don’t want to minimize the other topics we have discussed thus far, or the topics we will discuss later, we would be remiss in our duties as EnterpriseOne tour guides if we didn’t spend the appropriate amount of time on servers and the options surrounding them. One of the topics that requires consideration for every EnterpriseOne implementation is hardware. After all, this is one of the larger expenditures you will make (right next to the software itself). In truth, having a good understanding for the various types of servers and their functionality is an essential first step when planning your EnterpriseOne enterprise solution. During this chapter, we will discuss, at a high level, the platforms supported by EnterpriseOne, the deployment server, the database server, the application server, the enterprise server, the web server, and the portal server.
Does the Platform Matter?
Although the EnterpriseOne enterprise resource planning (ERP) package does not support all platforms, it does support a wide range of hardware platforms. Will EnterpriseOne work on the iSeries (also commonly referred to as the AS/400)? Yes! The HP9000? Yes! A WinTel (Window/x86) solution, such as xSeries, HP, or Dell? Yes! The pSeries (also commonly known as the RS6000)? Yes! The Sun Solaris? Yes! Can you mix and match servers and databases? Yes, within the limits of the hardware and databases themselves. We would be lying to you if we said that all of the platforms (both hardware and software) were created equal. However, the authors can honestly say that there are pros and cons to all of them. There is no one single best solution. Rather, there is a best solution per set of circumstances—yours may not be the same as other companies that are implementing this product. This chapter is devoted to the options available to the EnterpriseOne architect, rather than on what hardware and software to implement (though we go into that too). We will go into detail on the following: ■
The deployment server
■
The data server
■
The application server
■
The enterprise server
Chapter 4:
■
The web server
■
The Collaboration Portal server
■
The Windows client
EnterpriseOne Servers
145
The EnterpriseOne Deployment Server
What better way to start a chapter dedicated to servers and hardware than with the good old-fashioned deployment server? To assist you in this, we will discuss the following questions: ■
Exactly what is the deployment server?
■
Why do we have it?
■
Can it be used for other functions?
A deployment server is an integral part of the EnterpriseOne system and is always mentioned as part of the enterprise—so much so that you will notice that the simplest architectural models have one. The following illustration shows a standard “out of the box” EnterpriseOne configuration.
Web server
Enterprise server Ethernet
Deployment server
Collaboration Portal server
146
JD Edwards EnterpriseOne: The Complete Reference
In the least of terms, a deployment server is an x86 server running Microsoft Windows. When determining the system specifications needed for the deployment server, it is best to verify the minimum technical requirements (MTR) published by Oracle. When you do this, you will find that they highly recommend working directly with your hardware vendor and Independent Software Vendor (ISV). NOTE Your deployment server can exist on the iSeries (AS/400) because IBM offers an x86 Windows chipset that uses the iSeries’ disk space. When you use this chipset, your deployment server can then exist as part of the iSeries. Depending on your specific environment, the deployment server may perform several different functions.
Deployment Server Basics The deployment server acts as a primary deployment location in a centralized software deployment model. It is the primary location for all path codes in the system and normally maintains the actual C code that comprises the EnterpriseOne ERP system. It maintains the system’s license security and can build packages for both clients and application servers. It houses packages for deployment to workstations, servers, or other deployment locations.
Does the Deployment Server Have to Do All That? No! There are many circumstances where the deployment server functionality would be better decentralized. However, you won’t see all this functionality dispersed even on a highly decentralized architectural model. Many of these functions make sense and are logically located where they do the most good. The deployment server is where EnterpriseOne is first introduced to your enterprise. The CDs shipped by Oracle get installed here, the EnterpriseOne system is defined here through the installation process, and packages can be dispersed from this location. More importantly, however, this server contains the Table Access Manager files, or XML/TAM, that track EnterpriseOne licenses on the system. DEFINITION Table Access Manager (XML/TAM): The Table Access Manager can be thought of as an XML miniature database format. XML/TAM is used to locally store design specifications for applications (for example, window layouts or event rules).
Chapter 4:
EnterpriseOne Servers
147
Off with Its Power Many companies have asked if the deployment server can be shut off. Most of these companies do so because they are mainframe, UNIX, or iSeries shops and the introduction of Windows is neither wanted nor tolerable to the existing system staff. Regardless of various proofs to the contrary, many IT professionals still don’t view the Windows server as a hardened, production-ready system. Unfortunately, in some enterprises (and depending on your specific configurations), you simply shouldn’t shut this system down. We would ask why an x86/Windows machine couldn’t reside on the enterprise. It doesn’t require a huge amount of maintenance (apart from security, functionality, and base OS patches that come out on a fairly regular basis), it is a very easy operating system to support (good Windows administrators are neither hard to find nor expensive to maintain), and has cheap hardware. Let’s think again about what this system does for your organization: ■
Provides an initial point of installation, update, and upgrade
■
Maintains EnterpriseOne license security
■
Maintains C code for all path codes (under typical configuration)
■
May contain a series of databases housing the central objects
■
Can be used for building software deployment packages
■
Houses all software packages for deployment throughout the EnterpriseOne enterprise
Rules for Turning the Deployment Server Off With all these functions, we think you should simply leave the system on; however, there are some rules for turning the system off. First, it may contain databases that house central objects. You should be sure not to turn the deployment server off for a prolonged period of time if you’ve placed a database on this server. The system will not work correctly if you do. NOTE The deployment server should be backed up regularly to ensure disaster recovery capability. You really don’t want to spend millions of dollars on development only to lose it. Second, since this system houses the EnterpriseOne license security in XML/TAM files, you can turn the deployment server off; however, you need to turn it back on when it is time to renew the license for a workstation and the system security.
148
JD Edwards EnterpriseOne: The Complete Reference
Third, when you are building workstation or server EnterpriseOne software packages, this server must be on if it is used as a C code repository. Fourth, though you can turn this system off, depending on your software configuration, you may experience difficulty checking items into or out of the path code. NOTE Many users do not recognize when they have successfully checked modified objects into or out of their EnterpriseOne system. There will often be an error stating that the system could not access a file. Do not ignore these error messages. Instead, look at the log files (client, server, and so on) and find out why you got the message in the first place. We have seen companies ignore this type of error and fail to have their modifications carry forward to the next release of EnterpriseOne. Finally, and yes, this reiterates the rules we’ve outlined: If you plan to perform a lot of development, package deployments, or future upgrades and have not implemented multitier deployment or some other modification, it is not advisable to turn this system off for more than routine maintenance.
Rolling the Deployment Server into a Configuration Concerning the information already provided, we never recommend the particular Windows/x86 solution to implement. Whatever platform you are comfortable with works for the deployment server. Now we’ll get specific about the actual hardware configuration for this machine. It all comes down to what your company’s objectives are when implementing this ERP package. Let’s look at a couple of different scenarios under consideration.
EnterpriseOne and the iSeries In this particular case, we are going to make the following assumptions: ■
There is no special development for the implementation of this software.
■
The central objects are going to be housed in an RDBMS on the deployment server. Though this is not a common implementation option, it is a potentially viable configuration.
■
You are implementing E812.
Chapter 4:
EnterpriseOne Servers
149
Now the fun questions: What types of hardware do we need? Should we have system redundancy? What is the best configuration? Concerning hardware, you will need approximately 80 gigabytes just in EnterpriseOne hard drive space (this assumes 8GB per path code with two packages each). If this sounds like three 80GB drives in a RAID 5 configuration, you would be correct. When you consider the upgrade, you will minimally add another 100GB of required space. If you are housing a relational database, not only will you need additional disk space, but you might consider configuring these drives to maximize the database throughput. However, since your development is minimal, your optimizations can be also. NOTE If you perform some basic optimization procedures on both hardware and software configurations, you will decrease the time required to install or upgrade EnterpriseOne. Whenever possible, try to separate the data files and the archive/redo/log files onto separate physical and logical disks when loading databases (this assumes you’ve decided to place a database on the deployment server). This separation will improve your database read/write capabilities. If you have multiple controller cards in your server, separating the data and logs on these will also improve performance. The system we have just described is a mission-critical piece of the enterprise solution. As such, system redundancy is highly recommended. This redundancy could be as little as using RAID (we, of course, prefer hardware RAID with a 1/0 configuration for the RDBMS) or as much as having a real-time, hot-backup, offsite system. Your company must decide how important EnterpriseOne’s being online is against your internal ability to support this solution and its cost. It comes down to how long EnterpriseOne can be down. In this system, we would also recommend nightly backups (either full or incremental) with offsite storage. Depending on your hardware solution, go with a minimum of an 18GB system drive. This will be used for the operating system, a paging file, and the log files. Then add data drives (obviously several drives combined using some RAID technology to maximize read/write) to house the EnterpriseOne directory structure and the RDBMS data files. This would provide enough space for future growth.
150
JD Edwards EnterpriseOne: The Complete Reference
NOTE When sizing any and all of your systems’ requirements, the authors cannot stress enough the importance of working with your hardware vendor, Oracle, and your ISV for determining the proper size, speed, and overall architecture of your solution. Some of the options that you need to keep in mind include read/write spindles, memory and memory caching, hard drive capacity, WAN/LAN bandwidth, processor speed, clustering, logical partitions (LPAR), virtual machines, SAN arrays, and the list goes on. Ensure that your vendors fully understand your enterprise architectural goals (let’s face it, minimum technical requirements are just that) and take into consideration cost and software upgrades. You will minimally want a Pentium IV 800 (pull it out of the basement) or a dual-core system (you could go with a quad for future functionality, but most companies won’t go for it, and it is overkill both now and in the immediate future). On the memory side, the authors recommend a minimum of 1024MB on this system and encourage between 2 and 4GB of RAM per processor because of the multifunctionality requirements of this system—most databases like their memory. Now, all this sounds like an expensive trip for a server that many people want to turn off. Still, under this scenario, you don’t want to bet your ERP solution on something underpowered and in continual need of upgrade. Most companies have problems with the actual disk storage requirements of this system, and we know of several companies that are continually running out of disk space. For these companies, having originally implemented a SAN environment would have been an ideal situation both from the data resiliency stance and the ability to grow your disk requirements as needed. Let’s look at a cheaper solution in our second scenario.
EnterpriseOne and the Minimalist Deployment Server If you are using EnterpriseOne with UNIX or Windows (the xSeries if you are using IBM servers) and have configured the central objects to reside on a server other than the deployment server, you can get by with much less power and hard disk capacity for your deployment server. Let’s assume for this configuration that you have a UNIX-based system and plan on keeping the central objects on the enterprise server. In this scenario, you will not be doing heavy development—rather, you will be trying to apply as few changes as possible to the system. Now, from the previous information provided, we know what type of server you can come up with, but do you need that server for this type of solution? No, the deployment server in this scenario can be as little as a workstation PC with quite a bit of associated hard drive. Let’s go into the details of what you actually need.
Chapter 4:
EnterpriseOne Servers
151
Considerations The first consideration for this machine is whether the deployment server is a system-critical piece of hardware. To this we would argue yes, but only at specific times. Similar to our earlier discussions on whether you should turn the deployment server off, it could be argued that most of the time this server is simply not a requirement for the system as a whole. It is required during any development that may occur, but we’ve already stated that it will be minimal (application of foundation code, minor report modifications during implementation, and upgrades every few years). It is required when you are building EnterpriseOne software deployment packages, provided it is used as the check-in location for the path code you are building the package against. It is required during deployment of these EnterpriseOne packages. It is even required when you are initially installing or update/upgrading EnterpriseOne. However—and this is a big however—it is not required during normal day-to-day activities or for running your business. Consequently, this is one of those scenarios where a company could turn the server off for months at a time, turning it back on for very short periods. CAUTION Although turning the deployment server off for long periods of time is technically possible, it is not recommended as it adds to the complexity of maintaining the system, such as determining when you turn it back on. We merely present you with the option so you can make informed decisions. As a non-mission-critical piece of hardware, the redundancy, backup, and administration of this particular system takes a much lower priority and provides opportunity for system savings. You don’t need to do nightly backups unless you are doing a lot of development work, which includes business functions or tables. Is there a high requirement for basic system redundancy? No! Is this really a PC with a large disk drive? Yes! The second consideration for this machine is the actual hardware required to make it work. Visit Oracle’s web site, www.oracle.com, or work with your hardware provider to find the minimum requirements necessary to run the system. In this scenario, you could get by with those requirements.
Data Servers
We are dedicating an entire section of this book to data servers for a number of reasons. First, the data server is a legitimate EnterpriseOne server. Although they are not prevalent in many of the existing installations, we think you will see a marked increase in their use. Second, in a chapter dedicated to EnterpriseOne servers, we could not honestly call this a complete reference without it. Finally, the more we talk about the virtues of the data server, when and why you would use one, and
152
JD Edwards EnterpriseOne: The Complete Reference
how easy they are to implement, the more likely you are to start using them and quickly gain the return on your investment.
Data Servers Defined In its simplest terms, a data server is defined on EnterpriseOne through data sources only (see Chapter 2 for more details on EnterpriseOne data sources). It can be any type of server that can run an EnterpriseOne supported database (Oracle, SQL Server, DB2 Universal DataBase [UDB], Microsoft SQL Server Desktop Engine [MSDE], or Access). A data server does not contain EnterpriseOne logic and, as such, does not have package deployments. Because this server never has Oracle’s JD Edwards EnterpriseOne application code installed, it can neither run EnterpriseOne services nor does it take up a software license. Consequently, this server is nearly undefined to the EnterpriseOne suite of applications. NOTE Support for MSDE expires in Q2 of 2008. After that time, the Planner database will use SQL Server Express (SSE). A data server contains a relational database management system (RDBMS; Oracle, Microsoft SQL Server, DB2/400, MSDB, or DB2/UDB) that houses EnterpriseOne tables. These tables can either be “master” tables or replicated tables. Basically, a data server is a server that provides EnterpriseOne access to data through a database. Pretty simple, isn’t it?
Why You Would Implement a Data Server Although many people, even the ones who know EnterpriseOne well, don’t have much use for data servers (after all, there is the hardware expense, the configuration, the support, and so on), we personally find multiple uses for them. Many times, you can vastly improve EnterpriseOne’s performance by using them. Let’s take a look at specific reasons why.
No Enterprise Server There is an argument, among the proponents of the various platforms, that states you cannot optimize a server to act as both a data server and an application server (this assumes that you aren’t using LPAR, which technically creates more than one “virtual” machine). Though we certainly think that any of the supported hardware platforms can run as both, we’ve seen firsthand the increase and raw performance gain of implementing two separate systems. UNIX and Windows both reap tremendous benefits from that separation. The basic entries for a data server are shown in Figure 4-1.
Chapter 4:
EnterpriseOne Servers
153
FIGURE 4-1. Machine Identification – Data Server Revisions (P9654A/W9654AC) UNIX: An Example When you are optimizing a UNIX server, you can increase the speed of your database by decreasing the UNIX kernel time slice (most modern RDBMSs tend to be memory-heavy, processor-light back-end applications). Depending on your UNIX server, a kernel time slice of 3 or 4 would certainly not be unreasonable. When optimizing your UNIX server for the EnterpriseOne application, it would not be unreasonable to have a time slice of 15 to 20 due to the heavy processing requirements associated with the EnterpriseOne application. Finally, when trying to optimize a UNIX server for both, you will actually change the box from 10 (which is the software default) to 14. As you can quickly determine, however, this is not optimal for either the database or EnterpriseOne. Consequently, this server, when fulfilling both roles, is not doing well for either one. A substantial gain is realized when you put two servers in place even if those systems have fewer raw resources than a single giant one. Windows is similar, though you don’t have as much control of the operating system kernel. If you don’t want separate sets of physical hardware, you can leverage LPARs and clusters to increase failover, redundancy, and simultaneously optimize the system for the various applications.
154
JD Edwards EnterpriseOne: The Complete Reference
Remote Development There are many ways to implement remote development, including creating a distributed path code. It really is very simple. Take a server and load your choice of supported RDBMS on it. Add a new path code, and during the process, define the new server’s database as the repository for the central objects. Add the directories associated with the new path code on the same machine (this assumes the machine is a Windows server). You will then need to update the path code master to reflect the new server’s name; this is how EnterpriseOne determines where your check-in location is. Then move the new server to the location where you want development. If you want to speed this system up even more, you can make a copy of the business data and control tables, so all development and initial testing can be done at the remote site. When the development is completed (on an object-by-object basis), you can transfer these objects to a consolidated space (PY812 could be used). NOTE In order for this configuration to work, you need an in-depth understanding of EnterpriseOne. CAUTION Oracle’s support will not assist you in setting up a distributed path code solution. They consider this a custom implementation approach and will refer you to either their field consulting arm or a business partner to implement this. This also means that if you run into problems with a distributed path code, you will not be able to obtain assistance as easily from Oracle’s customer support. Keep this in mind if you are planning on implementing this configuration.
Departmental Servers There are two types of departmental servers (or three if you combine these options). One is a data server that houses either static or transactional data. This machine allows the department to hit its data without having the entire organization hitting the same box. A quick and useful example of this would be moving personnel/ payroll data to a departmental server. You could much more effectively control this very sensitive data in this manner. A second type of departmental server is an application server. This server is discussed in more detail in the section “Application Servers.” Finally, you can add a new enterprise server for a specific department. This is discussed in more detail in the section “Enterprise Servers.”
Chapter 4:
EnterpriseOne Servers
TIP If you are implementing a departmental server at multiple sites, you will need staff to either maintain those servers at these sites or provide remote support. This drives up the cost of maintaining your system.
Data Replication Another good reason for installing a data server is data replication. Using data servers in a WAN environment with EnterpriseOne client workstations running full packages, you can decrease logon times by 80 percent across a 56KB line. By replicating other static data, you can also achieve significant increases in other applications.
How to Implement the Data Server Solution We will spend some time in this chapter discussing why and where your organization might consider this architectural solution.
The Mechanics The mechanics of actually adding a data server are quite simple. Acquire a server and configure it with the appropriate amount of disk, RAM, and processor resources. The following illustration provides a simple flowchart for this process.
Operations
Data Server Workflow
CNC Specialist
DBA
Order hardware from vendor
Install hardware, OS, kernel parameters, backup, failover, etc...
Load RDBMS
Determine how you plan on using the data server, tables for replication, etc...
Work w/ ISV to determine hardware configuration
Set up database instance, data replication, data clustering, users, etc...
Replicate tables
Modify object mappings for specific users and groups
155
156
JD Edwards EnterpriseOne: The Complete Reference
NOTE We know that merely stating the configuration should have the appropriate amount of resources is frustrating; however, it is almost impossible to predetermine what you need without making some very specific determinations as to how you are using the system. 1. Optimize this server for the database you will be using. Your DBA should have some very specific changes to implement. 2. Add the RDBMS software. Set it up for optimal use based on the service the data server will provide. Will this database be a primary read/write or readonly? The configuration is different for each. 3. Create the appropriate data files, databases, table owners, and log/rollback segments. For Oracle, define a new connect string. For DB2/400, DB2/ UDB, MSDE, or Microsoft SQL Server, set up new ODBC data sources (EnterpriseOne will guide you through this process). NOTE If this server is going to be used for replicated or departmental data, we recommend that you use a table owner that is different than the primary for the environment being hit. This makes troubleshooting some problems easier. 4. Set up new EnterpriseOne data sources for the new data server. (This is only required if you are not implementing a single enterprise server solution, such as data replication, departmental server, and so on.) 5. Copy or generate the new tables using the RDBMS or R98403 (shown in Figure 4-2). NOTE The R98403 Table Copy Universal Batch Engine (UBE) can be used to copy a wide range of data from one data source to another. You can use one of the predesigned UBE versions or a custom one to accomplish your specific data copy requirements.
Chapter 4:
EnterpriseOne Servers
FIGURE 4-2. R98403 Table Copy UBE
6. Change Object Configuration Manager (OCM) to point users, groups, or everyone to the new data server being implemented. Alternatively, you could set up a special environment pointing to this data server, if this server is an addition to an existing implementation and is not replacing the enterprise server for data storage requirements. For more information on OCM or setting up environments, refer to Chapter 2.
Application Servers
The application server (also commonly called an app or logic server) has become a fashionable addition to any enterprise solution because it allows what is called an N-tier architecture. You’ve heard of two-tier architecture and already know the benefits of a three-tier solution. But the N-tier solution means you add as many
157
158
JD Edwards EnterpriseOne: The Complete Reference
servers as you need to adequately fill your data and processing needs. In this section, you will find the following information: ■
App servers defined
■
App servers pros and cons
■
How to implement app servers
App Servers Defined An application server is a supported hardware platform server running EnterpriseOne server code. Is there a difference in server code as opposed to workstation code? Yes! Server code runs EnterpriseOne services, including security, data replication, time stamp, distributed processing, and UBE. The app server can perform many functions, including logic services (both Business Functions [BSFN] and UBE), security, and data replication. Supported hardware includes the following: iSeries, HP_UX, pSeries, Sun Solaris, Linux, and Windows (including xSeries, HP, Dell, and so on). The primary difference between an application server and an enterprise server is that the enterprise server is also a database server. An application server (including the enterprise server) must have two data sources associated with it: one logic data source and one server map.
Uses for App Servers In a generic form, the EnterpriseOne application server can be an add-on to an enterprise designed to improve system performance, or it can be part of the original solution. When initially designing your enterprise, you should consider the addition of EnterpriseOne application servers. This will allow a reasonable budgetary process for your implementation. There are several uses for EnterpriseOne application servers and, although they are not a required part of the EnterpriseOne solution, they are in almost all implementations. Running EnterpriseOne stand-alone is an example of when you don’t have an application server. In a traditional EnterpriseOne implementation, however, you will minimally have one application server (the enterprise server itself). This application server will provide basic EnterpriseOne services (such as batch, security, and transaction processing).
App Servers for Nightly Processing When determining your nightly or end-of-day reporting requirements, you will often find occasions where you simply don’t have enough time to get everything done. This can be remedied in many scenarios by adding application servers to offload
Chapter 4:
EnterpriseOne Servers
159
certain batch processes. This is especially true in multinational accounts where the official end-of-day is a predetermined time and not a true time when business has ended. The global nature of many clients means that business is always going and that there is no true end of day.
App Servers for a Specific Department Similar to the data server, application servers can be specifically defined for a department. This could be done for security purposes or to offload processing from a specific group of people. NOTE Do not add an application server to the far side of a WAN setup (that is, away from the data). This does not buy you any performance gain and usually decreases your performance.
App Servers in a Distributed Environment It is possible and often useful to implement EnterpriseOne with separate application and data servers. This solution is discussed in more detail in the section titled “Data Servers.” If you implement this particular solution, you will obviously have a true application server setup.
App Servers Pros and Cons We’ve just gone over the reasons you would add an application server. Are there other benefits to the application server, and what about the downside to this hardware solution? Let’s discuss both of these in a little detail.
Pros Other than the obvious—the three reasons for implementing them that we’ve already gone over—there are some advantages to having multiple logic servers. For one thing, an app server’s OS can be optimally configured for the EnterpriseOne application. Another advantage to multiple application servers is their scalability. To a very large extent, additional processing requirements can be effectively resolved by this simple addition. This allows the CNC enterprise architect to optimally configure EnterpriseOne so as to maximize the configuration. This is especially true in cases where the company has implemented distributed data architecture. Another benefit of application servers is that they can be added to your overall version control strategy. The ability to take one of these servers offline to test electronic software updates (ESUs), custom reports and modifications, and updates/ upgrades is well worth the effort of maintaining one.
160
JD Edwards EnterpriseOne: The Complete Reference
Cons As with any good solution, there has to be a downside, right? We’ve compiled a few of what we consider disadvantages to adding application servers. They include maintenance, maintenance, and more maintenance. There is maintenance associated with distributed systems. There is maintenance associated with multiple systems. And, there is maintenance associated with the EnterpriseOne system itself (package build and deployment, and so on). Oh, yes, and then there is cost. EnterpriseOne Maintenance The biggest problem with the app server is the EnterpriseOne maintenance. Does this mean they are difficult to maintain? Not really, but the more you add to the mix, the more complicated it becomes. Each of the application servers maintains its own unique set of EnterpriseOne code. If you change this code by implementing a new software action request (SAR) or by adding a new UBE, you have to build and deploy an EnterpriseOne software package to each of the application servers. This can become much more difficult when you implement servers for specific functions—which servers need what changes? Once you begin adding multiple servers, we highly recommend that you closely monitor your version control. Failure to do this can result in unpredictable results or data corruption. NOTE One of the safest methods of version control is to ensure that all packages are applied to all application servers rather than trying to determine what functionality is required on each. This will also provide greater system redundancy (all servers will be able to serve all required functionality). TIP If you build a software package for a specific type of server (such as AIX), you can deploy that package to any application server in the enterprise. Another possible disadvantage to adding application servers involves maintaining EnterpriseOne system changes. Each application server has a server map (you can share the server map between multiple servers of the same platform). Different server types require different server maps and, depending on what functions you have designed, the additional application servers may require unique server maps as well. The problem with more server maps is that OCM, data sources, and replication setup changes must be performed on each of the servers affected by the change. Finally, when discussing basic maintenance, remember that all changes should be applied to all application servers in a system. When you patch a server in the farm, it could react differently than others. Having multiple application servers is
Chapter 4:
EnterpriseOne Servers
161
an advantage in that you can test these patches, but a disadvantage in that you need to apply all of the patches to your production model at the same time to ensure consistency throughout the enterprise. EnterpriseOne Maintenance: Update/Upgrade Don’t forget that multiple application servers require that you upgrade multiple sets of code. The greater the number of servers, the longer it will take to fully upgrade the system. System Maintenance Multiple application servers also create more administration in hardware, third-party software, and general OS maintenance. Depending on the number of servers, you might need to increase your IT support personnel.
Application Server Elements Rather than go through the mechanics of adding an application server in detail (the actual steps can be found in Oracle’s JD Edwards EnterpriseOne Installation Guides), the authors want to ensure that you understand all the elements associated with application servers. Once you have a good feel for what is required for the application server, you can either follow the standard installation procedure or get creative in how you install these servers. Once the server is up and operational, it is very simple to quickly put it to use in your enterprise. The following illustration provides a high-level, swim-lane workflow for adding an application server. Application Server Workflow
CNC Specialist
Operations
DBA
Add table owner and table space for server map
Order hardware from vendor
Determine how you plan on using the app server
Install hardware, OS, kernel parameters, backup, failover, etc...
Work w/ ISV to determine hardware configuration
Add data sources for application server
Build server map tables and entries
Load host code on application server (ensure services start)
Modify OCM directing batch jobs to server
The elements required for an application server to function properly are as listed below Figure 4-3 (Enterprise Server Revisions). ■
Two data sources associated with an application server.
■
The actual EnterpriseOne host code (the base version of this ships on separate CDs with the EnterpriseOne software).
■
EnterpriseOne services.
162
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 4-3. Machine Identification – Enterprise Server Revisions (P9654A/W9654AC) ■
The server map tables themselves.
■
Entries in the F9650, F9651, F9652, F9653, and F9654 tables. These tables contain information on your application server.
■
Actually using the server.
Two Data Sources If you add an application server using the EnterpriseOne installation planner, it will automatically configure two data sources for you. It will be simpler to explain if we use an example of a server scenario. Let’s assume you are adding a Windows application server on a Windows system using Microsoft SQL Server. Server Map The first data source is a database data source that points to a server map. If the server you are adding is named APP01, the data source would be named APP01 – E812 Server Map. It would be set up similarly to all the other database data sources (refer to Chapter 2 for additional information on data sources). Server The second data source would be a logic data source defining the server to EnterpriseOne. This data source would be named APP01. When adding a data
Chapter 4:
EnterpriseOne Servers
163
FIGURE 4-4. Database Data Sources – Data Source Revisions (P986115/W986115O) source from scratch, there are certain required fields (including Data Source Type and Data Class) that are grayed out, ensuring that you don’t enter values into them. When a client submitted a UBE on a SQL Server or iSeries, it would look for F986110 in the Server Name ODBC data source. This data source would have to be configured to point to the location of F986110 as shown in Figure 4-4.
Server Code and the Services Run by Them As mentioned earlier, the code that resides on a server is different from the code that workstations use. Server code runs a series of services that do not run on a workstation, including network, security, replication, UBE, and logic. Additionally, as you could well imagine, the codes for the different hardware platforms are also different from each other (think about it—the code that drives an iSeries is very different from the code that drives an AIX system).
Making the Application Server Work for You Now that the application server is up and operating, you want to know how to put it to work as quickly as possible. There are two basic ways to start using an application server in the EnterpriseOne enterprise. This server can be accessed by users who override the location when launching their UBEs. It can also be put into service by using OCM to automatically map workstation or other server logic to the new
164
JD Edwards EnterpriseOne: The Complete Reference
application server. These mappings can be set up for your environments by individual or group, and will take effect when people log on to the EnterpriseOne environment. You can also schedule nightly jobs to run on these servers. In fact, these servers can act as the schedule server.
Enterprise Servers
After reading this section, you will have an understanding of what an enterprise server is and how to set one up. You will also have an understanding of what types of platforms are considered enterprise servers. In this section, we’ll cover: ■
Definition of an enterprise server
■
Types of enterprise servers
■
How to add an enterprise server
■
When you would add an enterprise server
Definition of an Enterprise Server An enterprise server can be defined as a server that contains a database and can process logic. This means that your business data, for at least one environment, is located in a database on this enterprise server. You can take advantage of this server’s processing power to run UBEs or reports on this enterprise server. The fact that you can place data specific to environments on these servers is very important. This means that you can set up a production enterprise server and a development enterprise server. We will discuss the benefits of adding enterprise servers later in this section.
Types of Enterprise Servers One of the advantages of an EnterpriseOne system is its platform independence. The currently supported platforms for an EnterpriseOne system are ■
HP9000
■
pSeries
■
Sun Solaris
■
x86 Windows (xSeries, HP, Dell, and so on)
■
iSeries
You can log on to one client machine and retrieve data stored on any of these platforms or run reports on any of these platforms. This configurability is very
Chapter 4:
EnterpriseOne Servers
165
important today, as your sites may all have different types of hardware. With the EnterpriseOne system, you do not have to adopt a new platform for each site or department. You just need to set EnterpriseOne up to run on each type of server.
How to Add an Enterprise Server Your first enterprise server will be configured as part of the installation plan for your EnterpriseOne system. However, business needs change, and you may have to add another enterprise server later. This section assumes that you already have an EnterpriseOne system installed and running and that you have now decided to add another enterprise server. Double-click on Machine Identification, P9654A, application located under Advanced Operations. You will now be at the Work With Machine Identification window. Click Find on this window to show your locations. Expand your location and you will now see folders for your workstations, deployment servers, enterprise servers, data servers, Java application servers (JAS), Windows terminal servers, and remote locations. Expand the enterprise server section. You will see your enterprise server in the window similar to the one shown in Figure 4-5.
FIGURE 4-5. Machine Identification – Work With Locations and Machines (P9654A/ W9654AA)
166
JD Edwards EnterpriseOne: The Complete Reference
Click the Add button, which will take you to the Enterprise Server Revisions window, shown in Figure 4-6. It is from this window that you can tell the system about your new enterprise server. When you add an enterprise server, the information will be stored in the F9650 machine master and F9651 machine detail tables. Let’s go over the specific fields you will need to populate to add an enterprise server into the system. ■
Machine Usage This field will be filled in automatically, since you highlighted the enterprise server directory before clicking Add. If this field is not filled in, enter 20 in the field, for enterprise server. This field is used to tell the system what the machine’s function will be.
■
Machine Name Enter the name of the machine that is going to be your new enterprise server in this field. If you are adding an enterprise server that uses a UNIX operating system, you need to place the machine name in the correct case in this field. If you do not, you will not be able to see your jobs in the Work With Servers application because EnterpriseOne will poll tables for the machine name using the wrong case.
FIGURE 4-6. Machine Identification – Enterprise Server Revisions (P9654A/W9654AC)
Chapter 4:
EnterpriseOne Servers
■
Description Enter a description of your enterprise server.
■
Release Specify the release of EnterpriseOne that the enterprise server has loaded onto it. An example would be E812.
■
Host Type
Enter one of the following values for your host type:
10
AS4006
20
HP9000
25
Sun
30
RS 600
35
Linux
40
Dec Alpha
50
Intel NT
80
Client – NT
90
Client – Win 95
99
Client
NOTE Since you can add records for workstations from this window, you will also see entries for client machines running Windows. Do not use these when adding an enterprise server. ■
Location This field contains the name of the location where you are adding your enterprise server—for example, you could have a location named corporate for your headquarters’ machines. This will automatically fill in with the location you originally specified and will be grayed out to ensure you don’t change it.
■
Primary User This is the primary user for this machine. (For release E812, the default user is jde812.)
■
Port Number This is the port EnterpriseOne will use when listening for requests from client machines. This port number will default in depending on your release of EnterpriseOne. Only change this port number if you are running multiple releases of EnterpriseOne in parallel.
167
168
JD Edwards EnterpriseOne: The Complete Reference
■
Logical Machine Name This is a logical name for your machine. If you are running multiple releases of EnterpriseOne on the same server, you will need to have different logical names and port numbers so the EnterpriseOne system can keep track of what release you are trying to use. For example, if your enterprise server is named ENT001, you could call the second release of EnterpriseOne on the server FINE812.
■
Database Type This field contains the type of database you are using. The acceptable values for this field are A
Access
D
DB2 UDB on OS/390
I
DB2 UDB on OS/400
L
SQL Server/OLEDB
M
MSDE OLEDB
N
MSDE/ODBC
O
ORACLE
S
SQL Server/ODBC
W
DB2 UDB on UNIX or Windows
X
SQL Server Express/ODBC
■
Server Map Data Source This is the name of the data source that will contain tables necessary to run UBEs on a server. Some of these tables are F986101 and F98611. These tables tell EnterpriseOne where to find its data when you submit a UBE to the server. See the section regarding environments and OCM in Chapter 2 for further explanation.
■
Installation Path This is where the EnterpriseOne host code is installed on your enterprise server. If your server is an iSeries, this will be a library name. If your enterprise server is running NT, this will be a drive and a directory structure.
■
Deployment Server Name This is the name of your deployment server. This field is necessary because EnterpriseOne will generate an INI file on this deployment server. This INI file will then be copied to your enterprise server when you install your host code.
■
Server Status This defines the status of the server and provides information surrounding the server’s role. The acceptable values for this field include:
Chapter 4:
Undefined
10
Unavailable
20
In Test
30
In Production
40
Expired
50
Initialize Package Deploy
EnterpriseOne Servers
NOTE Server status is not available when adding an enterprise server unless you use the P9654A as seen in Figure 4-7.
FIGURE 4-7. Machine Identification – Enterprise Server Revisions (P9654A/W9654AC)
169
170
JD Edwards EnterpriseOne: The Complete Reference
Now that you have filled in these fields, click Form Environments. You will be in the Machine Environment Revisions window (see Figure 4-8). Click in the grid under the Environment column and you will be given a Visual Assist. Click the Visual Assist and choose the environments you would like to be able to run reports for on this enterprise server. Click OK and you will be back in the Enterprise Server Revisions window. From this window, click OK; you will now be on the Data Source Revisions window, where you can add your data server map data source. Most of the screens will default in, as you can see in Figure 4-9. You will only need to verify most of this window. The data source name, server name, data source type, and object owner ID will all fill in automatically. The only fields you will normally have to change on this window are Database Name (TNS), if you are adding an Oracle data source, and Object Owner ID if different than standard. You might change the Object Owner ID so you do not overlay current server map tables.
FIGURE 4-8. Machine Identification – Machine Environment Revisions (P9654A/ W9654AF)
Chapter 4:
EnterpriseOne Servers
171
FIGURE 4-9. Machine Identification – Data Source Revisions (P986115/W986115O) If you are modifying the Oracle data source, click Form Advanced to go to the Advanced Set-Up window. You can then modify whether you have Unicode, OCM data source, or LOB data type support. Click OK to return to the Data Source Revisions window. Click OK again to return to the Data Source Set-Up window. Click OK. This will take you back to the Work With Locations and Machines window. You have now told the system about your new enterprise server, but you are not done yet. You still need to generate an INI file for this server, and you will need to create the server map tables, which the enterprise server needs to run UBEs. To accomplish this, from the Work With Locations and Machines window, click Find. Expand the enterprise server directory and highlight the name of your new enterprise server. Click Select; this will take you to the Revise Enterprise Server window. Click Form Generate Scripts. This will generate the INI file for your new enterprise server. This file will be located on your deployment server in the \E812\ HOSTS\PLATFORM\MACHINENAME directory. This INI file will later be copied to the enterprise server when you install your host code.
172
JD Edwards EnterpriseOne: The Complete Reference
Once the process of generating the scripts completes, click Form Generate Server Map. This will actually generate RDB tables in your new server map data source. Don’t forget to have your database user, Client Access, or Microsoft ODBC data sources or Oracle connect string created before this step is run. Once this process completes, you only have one thing left to do to complete adding your new enterprise server: installing your host code. The host code is the EnterpriseOne software that runs on the enterprise server. To install the host code, put your host code CD in your enterprise server’s drive and answer the questions you will be prompted for in the window.
When to Add an Enterprise Server The only time to add an enterprise server is when you have a true business need. One example of when you would add a new enterprise server is if your current server cannot handle the number of current users accessing master business functions through the web interface. Another reason would be if you want to add a departmental server that would contain the data for a department and have the ability to process logic. The most important thing to keep in mind when thinking about adding an enterprise server is that the new server should address a business need. It should give you a return on investment. In this section, we have gone over the type of platforms that can be used as an enterprise server and what needs to be done to add a new enterprise server. This process will become invaluable as your business grows and you add more users. So now that we have completed the deployment server, the data server, the application server, and the enterprise server, surely that’s all you need to know concerning servers and EnterpriseOne, right? No! There are specialty servers that perform a host of functions to add additional functionality and system configurability. These servers are essential for your deployment and enterprise solution.
Web Servers
A web server allows you to run EnterpriseOne over a WAN without severe performance degradation. The idea behind the web server is to allow your users to connect to the system no matter where they are, through a web browser. This is the primary model used for the EnterpriseOne production client. This section will cover: ■
Definition of a web server
■
Configuration
■
Setting up a web server
■
Special considerations
Chapter 4:
EnterpriseOne Servers
173
Definition of a Web Server Once you set up a web server, your users can connect to your system from anywhere in the world through a web browser. Not only is this the primary method for deploying EnterpriseOne to your end users, but it is also a considerable savings for your organization. All of the web servers are centrally located, which not only speeds up the application (no long data or services requests over the WAN) but also decreases maintenance costs. NOTE The web browser on the client machine can be one of many different types including: Microsoft Internet Explorer, Foxfire, Safari, and Mozilla for the E812 release of the product.
Configuration When you are thinking about setting up a web server, you should be asking yourself a few questions. Do I have a server large enough to handle my users’ requests? What type of server would be best suited for this work in my enterprise? What kind of resources will it take to support this essential service? You must ensure that your server meets the minimum technical requirements as listed by Oracle. These requirements cover hardware, software, and overall configuration and are a must to understand prior to procuring your systems. These requirements change from release to release, so check Oracle’s web site for current requirements. If you have any questions surrounding these requirements or the proper sizing for your implementation, you should work with your hardware vendor or ISV. If your machine only has the minimum requirements, it will be able to function as a web server, but may not deliver the performance you want. Remember, when you see “minimum requirements,” they really do mean minimum requirements needed to merely run the system, not necessarily run it well. After you have ensured that you have met the machine requirements, you will need to train your administrator in the use of web servers. The technology is advancing very quickly, so this administrator will need to constantly be looking for new information on the subject. This will help ensure that your company is in a position to take advantage of any new functionality. Now that we have discussed the high-level aspects of using a web server, let’s dig a little deeper into how you would actually set up the server. NOTE Because of the pace at which this technology is changing, you will need to obtain complete, current installation documentation (see Oracle’s web site).
174
JD Edwards EnterpriseOne: The Complete Reference
Setting Up a Web Server The following is a brief checklist to help ensure your success when installing a web server. We will address each of these points in more detail later. ■
Make sure your enterprise server meets the minimum technical requirements published by Oracle.
■
Confirm that your enterprise server is running correctly.
■
Verify that you have web services installed and operational.
■
Make sure you’ve installed all prerequisites (web services, web cache, Java Database Connectivity [JDBC] drivers, and so on).
■
Define the web server to EnterpriseOne.
■
Install the web server product from the CD.
■
Make sure you have an environment for your web server.
■
Build and deploy a package.
NOTE The only supported web server application supported by E812 is Oracle Application Server or WebSphere Application Server. The first point in the checklist is to verify that the machine you have chosen for your web server meets the minimum technical requirements. You can find these published on Oracle’s web site, since they change from release to release. If you meet only the minimum, you may not see the performance you would like. Ask yourself not only how many users are going to be using this server today, but also how many users may be hitting this server in the future. This will help ensure that your web server is properly sized. The second point in the checklist is to confirm that your enterprise server is functioning correctly. The reason this is important is that a web server has logic and UBEs processed on the enterprise server. Since you have multiple users hitting the web server, you cannot run UBEs locally, as this is a CPU-intensive process and your end users would see performance issues. A web server ensures that when a user makes a request for data, very little is sent across the WAN. The web server is where the actual processing is done, and the database call is then made across a LAN. The web server is sitting on the same LAN as your enterprise server. So when a call to the database is made, it is quicker
Chapter 4:
EnterpriseOne Servers
175
than going across the WAN. The only thing that goes across the WAN is the results of the search, and these would be displayed in HTML on the end user’s browser. This is why it is so important that your enterprise server is functioning. If you cannot run UBEs on the enterprise server, none of your production users can run UBEs either. It is also important to note that you can add an application server to process business functions and UBEs for your web users. This will take some of the load off your enterprise server, especially for groups that tend to use long-running applications that are heavy on system resources. Using an application server may help increase the performance of your system. The third point in the checklist is to verify that web services are installed on your web server. EnterpriseOne and your web server depend on this software to function correctly. Ensure that your web services are not only supported by EnterpriseOne, but are set up in accordance with your specific release requirements. The fourth point on the checklist is to make sure that all prerequisites are installed correctly on your web server. We are not going to document exactly how to set up each of these prerequisites (JDBC drivers, web cache software, and so on) in this book. Rather, we would recommend that you follow instructions both from the software vendors for the initial installation and Oracle documentation for specific EnterpriseOne installation considerations. NOTE You must follow the recommendations on release levels, patches, and configuration for your EnterpriseOne installation, or you will lose Oracle support. The fifth point is to define the web server to EnterpriseOne (see Figure 4-10). In order to do this, you will follow the steps associated with adding any of the servers starting with the Machine Identification application (P98654). Choose the JAS Server under the location you want to add to and click the Add button. Fill in the following: ■
Machine Name
■
Description
■
Release
■
Host Type
■
Primary User
■
Primary HTML Server
■
Protocol
176
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 4-10. Machine Identification – HTML Server Revisions (P9654A/W9654AC)
■
Server URL
■
Http Port
■
Default Login
■
Installation Path
■
Deployment Server Name
The sixth step is to load the EnterpriseOne CD for web servers. This is a normal part of the standard installation. Every user hitting the web server uses the specifications or XML/TAM files for that EnterpriseOne client installation. But where does HTML fit in, you ask? When you install a web server, there are a series of specific tables that need to be loaded. These tables contain the specifications for your applications to run in HTML. The seventh step in this checklist is to make sure your web server has an environment set up. Again, this is a normal part of the installation process and is
Chapter 4:
EnterpriseOne Servers
177
delivered from Oracle through the initial setup. This environment will have business functions and UBEs mapped to run on the enterprise server. You want to take processing load off your web server so that it can serve your end users more efficiently. The last step in the checklist is to build and deploy a package. This is especially true if you’ve done any development on the system. In the author’s personal experience, all implementations have some level of customization that would require a package build. Once you’ve built the package, deploy the product and you’re ready to connect to EnterpriseOne. To add a web server environment, refer to the environment section in Chapter 2 of this book for additional details. It will walk you through adding, copying, and modifying your environments.
Special Considerations There are some special considerations to take into account when setting up a web server. One of these special considerations is security. If your web server is outside your firewall, you will want to ensure that only your users can access the server. How to set up a firewall and complete security for a web server is outside the scope of this book. However, we feel it’s necessary to bring this consideration to your attention.
Collaboration Portal Server
As with many of the types of servers discussed in this chapter, the software often dictates the hardware as opposed to the other way around. When you decide on portal software, you need to ask whether you want to use Oracle’s Application Server Portal or IBM’s WebSphere application suite. Based on this decision, you will be able to best determine the type of hardware that will work for you and your environment. Oracle Application Server Portal supports AIX (the pSeries servers), HP_UX, Sun Solaris, and Linux. IBM’s WebSphere supports OS/400 (the iSeries servers), AIX, HP_UX, Sun Solaris, Windows (x86), and Linux. Now it is up to you to determine your software and hardware that will ensure your enterprise architecture is best suited for your needs. NOTE Oracle’s JD Edwards EnterpriseOne is both hardware- and software-agnostic, working with a wide range of both in delivering business value. As such, choosing hardware and software is more a decision based on customer business considerations as opposed to strict requirements and recommendations.
178
JD Edwards EnterpriseOne: The Complete Reference
The portal server provides your organization with an out-of-the-box solution for rapidly deploying role-based Windows work environments, sharing data, and simplifying work flow and work processing requirements. The collaboration portal is easily configurable. This allows your organization to quickly and inexpensively modify the preconfigured solution to best fit your organizational and role requirements.
The Windows Client
You might wonder why you would want a Windows client other than to do development with. The answer: you wouldn’t. However, you will find that not only building packages but deploying and maintaining the code on your development machines are very important aspects of your implementation and may be some of the larger issues you face during the implementation phase of the ERP project. The Windows client is added here as a type of server and we have provided a brief explanation of the requirements therein. It is one of the only servers where Oracle actually provides MTR details on the hardware itself. Although the developers may argue that they need the biggest and fastest machines on the enterprise, this is not necessarily the case. The minimum requirements for the hardware of the Windows client are shown in the following list: ■
CPU
Minimum required by Windows OS
■
RAM
156MB above OS requirements
■
Hard drive Eight (8) GB for the first path code and six (6) GB for each additional path code
NOTE Vista will be a supported OS for EnterpriseOne version 8.97 and above. Earlier versions support Windows XP. That is all there really is to it. Of course, you will want to review the Oracle MTR for Windows and development clients to ensure that you have the proper service packs loaded and the right version of the ANSI C compiler.
Summary
In this chapter, we have discussed what the different types of EnterpriseOne servers can do for you. We have discussed the deployment, data, application, enterprise, web, and Collaboration Portal servers. We have touched on the uses of these types of servers and why they are important to your business.
Chapter 4:
EnterpriseOne Servers
179
The deployment server is used for administering the system and deploying the EnterpriseOne software out to your enterprise. Data servers are used to store your business’s data. As we discussed, certain businesses may need them more than others. It all depends on how you need to configure your system to meet your business needs. Application servers are a great way to offload some of your processing from the enterprise server or your client workstations. These servers can be set up to be workhorses for your enterprise and can deliver serious performance gains. The enterprise server allows you to store all your data and run reports on the server. This is by far one of the most commonly used server types within EnterpriseOne. A web server can do incredible things for your business. Not only is it the only real method of deploying the EnterpriseOne solution, but web servers also let you keep your support staff in one location and have users all over the country or world. These users can access the EnterpriseOne system by simply using a web browser. This allows any of your remote locations and users easy access to your system. It also allows you to set up an electronic storefront. The Collaboration Portal server is a powerful tool allowing you to quickly develop role-based application environments, share data, and simplify work flow. It can be an integral part of the EnterpriseOne solution, and you should consider implementing it as part of the overall architecture. The intention of this chapter was not to take you through every step of setting up these servers. It was to give you a good feel for what is available for you to consider. Some of these solutions may not meet your business needs; others may be perfect. It is these varied choices and options that will keep you ahead of your competition.
This page intentionally left blank
CHAPTER
5
Data Warehouse and Business Intelligence 181
182
JD Edwards EnterpriseOne: The Complete Reference
M
any organizations today use a variety of different Business Intelligence (BI) tools and applications to collect information from a variety of sources, analyze it, and share it with users. However, many of these tools (1) are designed for professional analysts and not business users; (2) are complex to use and have several functional limitations; (3) are poorly integrated, making it complex to share analyses across different tools; and (4) have scalability and manageability limitations that make them expensive to maintain as the amount of data, the number of data sources, the number of active users, and the complexity of the analysis being performed grows. As a result, executives find that despite their continued investment in BI technology, they still do not have the relevant information they need to make decisions quickly and effectively. To a JD Edwards user, chances are that the terms and exposure to data warehousing (DW) might be a little fuzzy and beg the question of what the relevance is for you as a user. Once you understand exactly what a data warehouse with extensions to Business Intelligence (BI) and dashboards can do for your organization, you will decide that one is needed. The concept of data warehousing is deceptively simple. Data is extracted periodically from applications that support business processes and copied onto special dedicated computers. There it is reformatted, reorganized, validated, restructured, summarized, and supplemented with data from other sources. The resulting data warehouse becomes the main source of information for report generation, analysis, and presentation through ad hoc reports, portals, and dashboards. Building data warehouses has historically been difficult, costly, time-consuming, and resource-intensive. Over the years, it has earned a reputation for being risky. This is especially true for those who have tried to build data warehouses themselves without the help of real experts. Fortunately for JD Edwards customers, it is no longer necessary or appropriate to build your own data warehouse, because the heavy lifting has already been done by others. Prebuilt solutions are now available that dramatically reduce the risk and effort. The Oracle Business Intelligence Suite Enterprise Edition (OBIEE) is designed to meet the requirements for a new class of enterprise BI solution. It is a comprehensive and integrated suite of analytical tools designed to bring greater business visibility and insight to the broadest audiences of users, allowing any user in an organization to have web-based self-service access to up-to-the-moment, relevant, and actionable intelligence. The OBIEE suite consists of several products that can be used together or independently; later in this chapter, these products will be discussed in more detail. ■
Oracle BI Server A highly scalable, highly efficient query and analysis server that efficiently integrates data from multiple relational, unstructured, Online Analytical Processing (OLAP), and prepackaged application sources, Oracle or non-Oracle.
Chapter 5:
Data Warehouse and Business Intelligence
183
■
Oracle BI Answers A powerful ad hoc query and analysis tool that works against a logical view of information from multiple data sources in a pure web environment.
■
Oracle BI Interactive Dashboards Rich, interactive pure web dashboards that display personalized information to guide users to precise and effective decisions.
■
Oracle BI Publisher A highly scalable reporting engine to generate reports from multiple data sources in multiple document formats and to multiple delivery channels.
■
Oracle BI Briefing Books Reports that capture a snapshot of an Oracle Dashboard allowing the information to be viewed offline in presentation style.
■
Oracle BI Delivers An alerting engine to capture and distribute events to speed decision making.
■
Oracle BI Office Plug-In Automatically synchronizes information from Oracle BI Answers, Dashboards, and Reports to Microsoft Word, Excel, and PowerPoint.
■
Oracle BI Disconnected Analytics A packaged solution to offer Answers and Dashboards to mobile professionals on computers disconnected from the network.
The OBIEE Suite is an integrated suite sharing a common service-oriented architecture (SOA); common data access services; common analytic and calculation infrastructure; common metadata management services; common semantic business model; common security model and user preferences; and common administration tools. It is designed to provide mission-critical information and performance with data sources–specific optimized request generation, optimized data access, advanced calculation and integration, intelligence caching services, and clustering. Let’s take a step back and develop a thorough understanding of data warehousing and how you should approach your efforts in implementing a successful solution.
The Business Case for Business Intelligence
Managing a business has never been easy, but it gets harder every year to maintain margins in the face of foreign competition, rising employee costs, and demanding customers. Cost cutting alone is no longer enough. The businesses that thrive in this challenging atmosphere are the ones with current, actionable information that allows them to make better decisions than competitors.
184
JD Edwards EnterpriseOne: The Complete Reference
Too many executives are forced to make decisions based on financial statements that compare last month’s results to a budget created a year ago. They need information that helps them quickly answer the basic questions: What’s working? What’s not working? What has changed? Business intelligence systems provide the ability to answer these critical questions by turning the massive amount of data from your operational systems into a format that is current, actionable, and easy to understand. They give you information that is decision ready. They allow you to analyze current and long-term trends, alert you instantly to opportunities and problems, and give you continuous feedback on the effectiveness of your decisions. BI is not a new idea. The largest and best managed organizations in the world have been making use of it for more than a decade. Along the way, the giants that pioneered BI made an important discovery—the path to true Business Intelligence passes through a data warehouse.
The Connection Between Data Warehousing and Business Intelligence The Data Warehouse Institute defines Business Intelligence as:
The process, technologies, and tools needed to turn data into information, information into knowledge, and knowledge into plans that drive profitable business action. Business intelligence encompasses data warehousing, business analytic tools, and content/knowledge management.
Unfortunately, the warehouse adds its value behind the scenes. Its job is to provide data to the high-profile tools and applications with which users interact. This background role can hide its significance, especially since BI solution vendors frequently play down the importance of the data warehouse. Technically, it is not necessary to build a data warehouse in order to create a BI environment. As a result, there are many substandard solutions on the market that avoid the use of data warehouses. Those advocating these solutions often suggest that the absence of a data warehouse is a good thing. They are following the old marketing adage, “If you can’t fix it, feature it.” What countless BI pioneers have discovered, however, is that taking the shortcut around data warehousing will put you on a path that leads to lost time and money.
Data Warehouse Basics
The concept of data warehousing is not hard to understand. The notion is to create a permanent storage space for the data needed to support reporting, analysis, and other BI functions. On the surface, it may seem wasteful to store the same data in
Chapter 5:
Data Warehouse and Business Intelligence
185
more than one place. The advantages, however, overwhelmingly justify the effort and cost of doing so. Data warehouses typically ■
Reside on computers dedicated to this function.
■
Run on a database management system (DBMS) such as those from Oracle, Microsoft, or IBM.
■
Retain data for long periods of time.
■
Consolidate data obtained from a variety of sources.
■
Are built around their own carefully designed data model.
An extract, transform, and load (ETL) software tool is used to obtain data from each appropriate source, including whatever ERP systems are in use. ETL tools read data from each source application, edit it, assign easy-to-understand names to each field, and then organize the data in a way that facilitates analysis. A key aspect of the reorganization process is the creation of areas within the warehouse that are referred to as data marts. In most cases, individual data marts contain data from a single subject area such as the general ledger or perhaps the sales function. The best data warehouses do some predigesting of the raw data in anticipation of the types of reports and inquiries that will be requested. This is done by developing and storing metadata (for example, new fields such as averages, summaries, and deviations that are derived from the source data). There is some art involved in knowing what kinds of metadata will be useful in support of reporting and analysis. The best data warehouses are built around a data model that includes a rich variety of useful metadata fields.
Why Not Obtain the Necessary Data Directly?
For decades the high cost of computer storage caused users to attempt to store data in only one place at a time. As such, many of the earliest BI systems tried to avoid data duplication. However, BI pioneers quickly discovered that it was far less expensive to copy data onto computers dedicated to supporting the BI function than it was to deal with the host of practical problems that arose from trying to work directly with data stored only on source systems. This “direct access” approach
186
JD Edwards EnterpriseOne: The Complete Reference
simply does not work very well. Specific reasons why this is the case with JD Edwards systems include the following: ■
New releases frequently introduce changes in the JD Edwards database, thus making it necessary to rewrite and test reports every time an upgrade occurs.
■
These changes make it difficult to create and maintain reports that summarize any data that originates within more than one release.
■
Field names are hard to decipher. Some are just meaningless strings of characters.
■
JD Edwards data is often stored in odd formats such as Century Julian dates and numbers without decimal points.
■
Files are structured to optimize data entry and validation performance, making them hard to use for retrieval and analysis.
■
There is no good way to incorporate worthwhile data from other sources into the JD Edwards database.
■
Developing and storing metadata is an awkward process without a data warehouse.
■
Many data fields that users are accustomed to seeing on display screens are not present within the database, such as rolled-up general ledger balances.
■
JD Edwards applications frequently run on relatively expensive servers such as IBM’s I-System. The higher cost of storage on these systems makes it impractical to retain the amount of data Business Intelligence requires.
■
Priority always needs to be given to transaction processing. Reporting and analysis functions tend to perform poorly when run on the hardware that handles transactions.
■
There is a risk that BI users might misuse or corrupt the transaction data.
■
There are many ways in which BI users can inadvertently slow the performance of JD Edwards applications.
These problems are not unique to JD Edwards. Variations of the same problems exist for all ERP packages. All of them can be solved through the creation of a data warehouse. Fortunately, relentless and continuous declines in the cost of computer processing and storage have made the data warehouse option far more attractive than it was just a few years ago. These declines have averaged 30 percent per year
Chapter 5:
Data Warehouse and Business Intelligence
187
for many years and will almost certainly continue to do so for many more years. The declining cost of hardware not only makes BI solutions cost less, but also encourages businesses to retain even more data on which BI solutions can feast. As such, data warehousing is becoming steadily more sensible and valuable.
Making Use of the Data Warehouse
Once the data warehouse is in place and populated with valuable data, good things begin to happen. Examples of the many ways in which data warehouse–based BI systems deliver value to their users include the following: ■
The generation of scheduled reports Moving the creation of reports to a BI system increases consistency and accuracy and often reduces cost. A greater number of more useful reports result from the power and capability of BI tools. The creation of reports directly by end users is easier to accomplish in a BI environment.
■
Ad hoc reporting and analysis Since the data warehouse eliminates the need for BI tools to compete with transaction processing, users can analyze data faster and generate reports more easily. The tools that come with a good BI system also tend to vastly improve the analysis function.
■
Custom queries A good report or analysis usually leads to many follow-up questions. Most modern BI systems include easy-to-use tools that let users drill down into the details underlying the high-level summaries in their reports.
■
Foundation for packaged analytical applications A growing number of outstanding analytical software applications are coming onto the market. Oracle itself intends to be a market leader in this segment. These packages provide predefined reports and metrics that business units can use to measure their performance. Without a sound data warehouse, such applications often fail.
■
Support for regulations Sarbanes-Oxley and related regulations create demands that transaction systems cannot always support. Well-designed BI solutions can ensure that the necessary data is retained in the data warehouse for as long as is required by law.
■
The creation of metadata Data warehouses sit between source applications and BI tools, creating an ideal opportunity to predigest some of the data. Metadata is defined as “data about data.” It can include something as simple as an average. Data warehouses can be used to create and store a great deal of metadata of potentially great value.
188
JD Edwards EnterpriseOne: The Complete Reference
■
Dynamic presentation through dashboards A growing number of managers want access to an interactive display of up-to-date critical management data. Sophisticated displays that show real-time operational information in creative, highly graphical form are often called dashboards. The name comes from the similarity to the instrument panel on an automobile.
■
Support for operational processes The creation of a sound BI infrastructure is often the best way to meet certain ongoing business needs. The most common example is to facilitate the consolidation of financial results within complex organizations, especially those whose divisions use different software systems. Meeting regulatory reporting requirements is another common situation.
■
Data mining The outstanding software tools that can sift through mountains of data and uncover hidden insights work best on a data warehouse.
This long list of benefits is what makes BI and data warehousing essential once a business reaches a certain level of maturity and complexity.
Options for Creating a Data Warehouse Solution
There are primarily three different options available to obtain a data warehouse environment: ■
Create it yourself.
■
Build it using frameworks.
■
Buy it completely prebuilt.
Building your own data warehouse sounds simple—obtain an ETL tool and use it to move data from JD Edwards databases into a data warehouse. In practice, doing so turns out to be far more complicated. A significant percentage of those who have tried to do it themselves have either failed or spent far more money and time than planned. Many companies spent more than a million dollars over the course of a year or more and are still not satisfied with the result. The most difficult thing about creating a good data warehouse is the design of the data model around which it will be built. Decisions need to be made as to the names to give each field (since the names in the JD Edwards database can be obtuse), whether each data field needs to be reformatted, and what metadata fields should be calculated and added. It is also necessary to decide what, if any, data items from sources outside of the JD Edwards database should be added to the data model.
Chapter 5:
Data Warehouse and Business Intelligence
189
Once a data warehouse is made operational, it is important that the data model remain stable. If it does not, then reports created from that data will need to be changed whenever the data model changes. New data fields and metadata need to be added over time in a way that does not require reports to be rewritten. The bottom line is that the do-it-yourself approach to data warehousing is risky business. The first alternative to building a data warehouse yourself is to buy frameworks from which a data warehouse can be created. This approach involves less time, cost, and risk than building your own warehouse. In theory, frameworks can be customized to your special needs. However, doing so is not always easy, inexpensive, or foolproof. Success is highly dependent on the skills of those doing the customization. As such, the experience of those using the framework approach is better than those building their own from scratch; however, this is still not ideal. Fortunately, it is no longer necessary to deal with the risks associated with building all or much of a data warehouse yourself. Complete, prebuilt JD Edwards solutions are available that make it possible to have a data warehouse up and running quickly. Oracle recently announced plans to revamp its now obsolete JD Edwards enterprise performance management (EPM) data marts to make them compatible with OBIEE. Details about this offering, which will be called Oracle Fusion Intelligence for EnterpriseOne, were not available when this book went to press.
Advantages of Starting Now
Those exploring the options for obtaining a data warehouse need to be aware that custom creation is sometimes strongly advocated by vendors that hope to provide assistance for doing so. The available prebuilt options should always be examined before trying to build it yourself. The value of a data warehouse increases over time. It therefore pays to start putting one in place as soon as practical. Those who delay starting down this path could remain at a disadvantage versus competitors that begin sooner. Payback in terms of business benefits tends to come rapidly in many forms: ■
Hard savings come from things like discovering lost discounts in payables or finding that salespeople are offering discounts beyond approved limits.
■
Real-time consolidation of financial data becomes practical.
■
Debates cease over which source of data is correct.
■
The IT costs and staff dedicated to report development and maintenance are significantly reduced.
190
JD Edwards EnterpriseOne: The Complete Reference
Other reasons why the value of a data warehouse increases over time include the following: ■
Storage and processing costs decline each year.
■
Historical data becomes more valuable as the amount available increases.
■
Metadata becomes more complete and useful.
■
Use of a data warehouse becomes more widespread as users discover its value.
■
Users become more skilled at extracting useful information with experience.
■
Software tools that build and access data continually improve.
■
Additional data sources are often added to the warehouse.
With such an overwhelming list of advantages, it is easy to wonder why every organization does not already have a data warehouse. The main reason is that historically, the creation of a proper data warehouse was an expensive, timeconsuming, and expert-intensive process. In spite of this, thousands of organizations, including the majority of the most successful businesses in the world, have found it to be worth the effort. Fortunately, much of the pioneering work has been done. Those starting their deployments today face a clearer path to success and a broad array of proven tools and techniques to help. Data warehousing is now becoming available to ordinary organizations without the vast IT resources of the giants. Its acceptance is being accelerated by the availability of prebuilt data warehouse solutions. It should therefore be no surprise that BI is one of the fastest growing segments of the IT industry. For those that do not yet have one, a BI system based on a data warehouse can seem like an unnecessary luxury. Once in place, though, a properly built one almost instantly becomes an indispensable management tool. There are many reasons why the case for building BI solutions around a data warehouse is now so compelling: ■
Easier access Data warehouses are specifically designed to facilitate access, especially by individuals who are not IT professionals.
■
Removes conflict When BI solutions connect directly to source data, they require trade-offs that leave everyone unhappy. Those trade-offs are almost always resolved in favor of maximizing the efficiency of the transaction systems. The result is that those who want better analysis and reporting get less than they need.
Chapter 5:
Data Warehouse and Business Intelligence
191
■
Less report maintenance When reports are created using a well-designed data warehouse, they do not need to be modified when a new release of the underlying transaction system is deployed. The savings that result from this benefit alone can justify having a data warehouse.
■
Unlocks the potential of BI tools With a data warehouse, powerful new functions such as dashboards become practical. Sophisticated analytical applications can be implemented. End-user generation of reports and analysis finally becomes a reality.
■
Access to more comprehensive data A data warehouse can contain information that is impractical to keep within a transaction system’s database. This includes historical data and information obtained from other sources for which the transaction systems have no need. It also includes metadata—information about the data itself, such as when and how it was obtained, who should be allowed to see it, assumptions behind it, and how it has been formatted.
■
Consistency and accuracy When everyone who analyzes information uses a single source whose accuracy has been verified, it reduces the need to argue over whose information is valid. Organizations without data warehouses generally have long, wasteful debates about erroneous or misinterpreted data.
■
Security and backup It is easier to limit and control access to a data warehouse to those who need it than to do so with operational databases. The data in the warehouse also provides a secondary level of backup in case of disaster.
Over time, every company’s application infrastructure tends to become a complex conglomeration of different data sources. Trying to analyze these sources directly simply does not work. This makes the benefits of a data warehouse so great that managing a business without one seems pointless.
Using the Right Data Warehousing Architecture
In this section, we will examine and discuss enterprise BI architecture as a recommended solution; however, it can always be tailored and simplified based on the company needs and reporting requirements. The long-term vision for the
192
JD Edwards EnterpriseOne: The Complete Reference
enterprise BI architecture includes many components, all of which need to be integrated with common business rules and semantics. These components include: ■
A data warehouse application, with associated Operational Data Store (ODS); data warehouse; multiple data marts; extraction, transformation, and load (ETL) tool; and data modeling tool. The metadata repository generated and maintained by the ETL tool is the heart of the DW application. It maintains central metadata defining data sources, source-totarget transformations, business rules, target data models, and operational statistics.
■
End-user tools, with associated local metadata repositories
■
Corporate portal, with associated portal metadata repository
■
ERP, capacity requirements planning (CRP), and legacy applications, with associated business rules, semantics, and local metadata
To support enterprise BI applications, it is important that all of the above components share common business definitions, rules, and semantics. This can be accomplished through the use of a common, central metadata repository, which automatically shares metadata with all other components of the system via a metadata exchange architecture.
Phase 1: Implement Initial Architected Data Mart Industry experience dictates a successful strategy is to use a bottom-up methodology that builds the data warehouse incrementally, one business unit at a time. The bottom-up development methodology may be used to build a data mart for a specified business area, such as finance, sales, marketing, and so on, within a 90day time box. The bottom-up approach uses Rapid Application Development (RAD) techniques, rather than top-down Information Engineering techniques. Although the first phase of the development effort is focused on building a single data mart, the data mart is embedded with long-term enterprise data warehousing architecture that is specified in an early phase of the development methodology. The assumption is that the long-term DW architecture will be implemented incrementally, one business unit at a time. The development of more complex components of the architecture, such as a central data warehouse and an ODS, are deferred until later stages of the development effort. The incremental development effort is kept under control through use of logical data-modeling techniques (Entity Relationship diagrams (ERD) that gradually expand to an enterprise model), and integration of all components of the architecture with central metadata, generated and maintained by the ETL tool.
Chapter 5:
Data Warehouse and Business Intelligence
193
Data Integration Platform End-user Tools
Warehouse Admin Tools
Relational
• Managed Query Tools
Extract, Transform and Load
Legacy
RDBMS
• Desktop OLAP Tools • ROLAP Tools
Appl. Package Central Metadata External
Metadata Exchange
Data Cleansing Tool
Data Modeling Tool
Source Databases and Files
Data Extraction, Transformation and Load
Architected Data Marts
Data Access and Analysis
Phase 2: Implement Additional Architected Data Marts The next step is to implement additional architected data marts to the existing Phase 1 data mart. Each data mart reads metadata from the central metadata repository, for example: ■
Multiple source databases: DB2, RDBMS, VSM, and so on
■
Multiple target databases: RDBMS and/or multidimensional databases
■
Multiple data marts supporting individual business areas
■
Each architected data mart integrates with the central repository
■
Data from multiple sources that has been extracted, transformed, and loaded into multiple target databases
The architecture utilizes a more complex, integrated data warehousing framework, including a data extraction tool, a data modeling tool, a metadata repository, and a data warehouse administration tool.
Oracle-Regular / JD Edwards EnterpriseOne: The Complete Reference / Jacot / 873-1 / Chapter 5
194
JD Edwards EnterpriseOne: The Complete Reference
This supports a realistic pilot project with important learning experiences, especially if taken into account that not many vendors of data marts or data access tools provide a mechanism to integrate metadata with central metadata, and this opens the door for building stovepipe data marts. Data Integration Platform
Relational Legacy
End-user Tools
Warehouse Admin Tools
• Managed Query Tools
Extract, Transform and Load
RDBMS
• Desktop OLAP Tools
Appl. Package Local Metadata
Central Metadata External
• ROLAP Tools • MOLAP Tools
Data Cleansing Tool
Data Modeling Tool
Source Databases and Files
Data Extraction, Transformation and Load
Local Metadata
MDB Architected Data Marts
• Data Mining Tools Data Access and Analysis
Phase 3: Expand to Enterprise Architecture At this point your organization has adapted to the capabilities of the BI environment and is demanding more and more. The power of information is now driving requirements and pushing the DW to move into the next phase. This type of environment is commonly referred to as hub-and-spoke enterprise DW architecture. Extensions of the DW to enterprise architecture require implementation of a central data warehouse that stores detailed (atomic) data, that is, individual, lowlevel transactions. The hub-and-spoke mode consists of a large central DW driving multiple data marts and often has multiple sources. The central DW also supports organizational, consolidated analysis and reporting information. Note that at this point in your DW implementation, the complexity of the environment will be driving higher development cost and risk. The end users are getting smarter and will be driving demands for access to the detail (atomic) data to review detail transactions, rather than summary data.
ch05.indd 194
9/30/08 4:48:24 PM
Oracle-Regular / JD Edwards EnterpriseOne: The Complete Reference / Jacot / 873-1 / Chapter 5
Chapter 5:
Data Warehouse and Business Intelligence
195
Data Integration Platform
Relational Legacy
Warehouse Admin Tools Extract, Transform and Load
MidTier
Central Data Warehouse Local Metadata
Appl. Package
Data Mart Central Metadata
External
MidTier
RDBMS Local Metadata
Data Cleansing Tool
Data Modeling Tool
Source Databases and Files
Data Extraction, Transformation and Load
Local Metadata Central Data Warehouse
Data Mart RDBMS Architected Data Marts
MDB Data Access and Analysis
Steps in the Development of a Data Warehouse Following are the 12 steps for developing a data warehouse: 1. Identify business drivers, sponsorship, risks, and return on investment (ROI). 2. Survey user needs, and identify desired functionality. 3. Design long-term, enterprise data warehousing architecture on paper. 4. Define functional requirements for initial subject area. 5. Research and select decision support system (DSS) components and tools. 6. Design target database. 7. Build data mappings for extractions, transformations, and loading, with scrubbing rules and error handling included. 8. Build aggregation, summarization, partition, and distribution as per the requirements.
ch05.indd 195
9/30/08 4:49:02 PM
196
JD Edwards EnterpriseOne: The Complete Reference
9. Build an initial architected data mart, using an exact subset of enterprise DW architecture. 10. Build additional architected data marts. 11. Expand to enterprise architecture, including central data warehouse and optional ODS. 12. Maintain and administer the data warehouse.
Best Practices for Next-Generation Data Warehouses The following are best practices for next-generation data warehouses: ■
Your decision for a DW must be business-driven, not technology-driven.
■
Do not build “virtual” data warehouses.
■
Do not build “stovepipe” data marts.
■
Do not code ETL functions by hand using COBOL, C, and so on.
■
Use second-generation ETL tools to automate all ETL functions; the goal is to not write a single line of procedural code.
■
Buy, don’t build, data warehousing components.
■
Define a long-term vision for the DW by defining and promoting an enterprise DW architecture.
■
Use hub-and-spoke architecture that supports ODS, central DW, data marts, analytical applications, ERP, and e-commerce applications.
■
Do not let an ERP package dominate the DW.
■
Use new features of the ETL tool to support clickstream DW.
■
Integrate all components of DW with central metadata.
■
Use the data integration platform to generate and maintain central metadata.
■
Derive 100 percent of local metadata from central metadata.
■
Integrate multiple ETL engines with global metadata to create a Data Integration platform for a single version of the truth.
■
Do not load dirty source data into the DW; use a data cleansing tool and ETL tool to resolve inconsistencies.
Chapter 5:
Data Warehouse and Business Intelligence
■
Build DW using the bottom-up methodology one business area at a time, thus maximizing ROI and minimizing risk.
■
Use pre-computed aggregates for high performance. ■
Use performance management tool to identify aggregates.
■
Use the ETL tool to pre-compute aggregates.
■
Use an aggregate-aware BI tool or database to access aggregates.
■
Use hybrid tools, Multi Dimension Expressions (MDX) language, and persistent multidimensional cache to improve performance.
■
Create logical and physical models with a data modeling tool.
■
Do not assume that OLTP (Online Transaction Processing) experience applies to DW.
■
Deliver information from the DW over the Web.
■
Use a BI-oriented corporate portal as information gateway.
■
Do not code reports by hand; use a desktop OLAP tool.
■
Push reports to users on occurrence of user-defined events.
Using the Oracle Business Intelligence Suite of Products
197
The OBIEE Suite is designed to meet the requirements for a new class of enterprise Business Intelligence solution. It is a comprehensive and integrated suite of analytic tools designed to bring greater business visibility and insight to the broadest audiences of users, allowing any user in an organization to have web-based selfservice access to up-to-the-moment, relevant, and actionable intelligence. The OBIEE Suite includes ad hoc query and analysis, OLAP analysis, interactive dashboards, reporting, proactive intelligence and alerts, mobile analytics, and more. It offers a unified view of Enterprise Information; empowers business users and analysts with pervasive insight; and combines real-time and historical intelligence with alerting to drive actions to improve business performance. It offers the fastest time-to-value when compared with other analytic tools in the market today and is widely used by the world’s leading companies in virtually every industry. As discussed earlier in this chapter, there are various methods of implementing a DW for your company. One of the options is to build the solution yourself; however, even if you do decide to build, a key component to that is the myriad of tools required to make this implementation successful. Oracle provides a single
198
JD Edwards EnterpriseOne: The Complete Reference
source for tool selection across all components required to enable you to be successful, so now let’s discuss these different tools delivered within the OBIEE Suite in more detail.
Oracle BI Server Oracle BI Server is a highly scalable, highly efficient query and analysis server that provides services that enable the other components of the Business Intelligence Suite EE such as Answers, Dashboards, Reporting, and BI Applications. The Oracle BI Server itself (see Figure 5-1) exposes its services through a standard ODBC 2.0–compliant interface. At a simplified level, the internal layers of Oracle BI Server have two primary functions: (1) compile incoming query requests into executable code, and (2) execute the code. Clients of the Oracle BI Server see a logical schema view independent of the source physical database schemas. Oracle BI Server clients submit simplified logical SQL, which ultimately gets translated by the server to some combination of physical SQL sent to the back-end databases, in addition to intermediate processing within the Oracle BI Server Execution Engine. In addition, the Oracle BI Server also has necessary server infrastructure such as session and query management, cancellation, statistics logging, monitoring, and other server administration functions.
Parser Logical Request Gen.
Catalog
Cache Manager
Metadata Manager
Optimizer Code Generator
Scheduler
Data Access
SQL Ship
Relational Data Source
FIGURE 5-1. Oracle BI Server
OLAP Data Source
Chapter 5:
Data Warehouse and Business Intelligence
199
The Oracle BI Server provides the key services that are described in the following section.
Query Parsing and Compilation Query compilation is composed of the following five phases: (1) parsing, (2) logical request generation, (3) navigation, (4) rewrites, and (5) code generation. The final output of the query compiler is executable code. This code is passed to the execution engine that is then responsible for executing the code in parallel. The Oracle BI Server has groundbreaking innovation in query parsing and compilation techniques; content-aware data federation; parallel execution; connectivity adapters; custom memory management; and latch contention. ■
Parsing In the first compilation phase, the multithreaded parser accepts the full ANSI SQL-92 syntax (including subqueries and derived tables) and generates a parse tree as its output. Subsequently, the logical request generation component is responsible for instantiating the inferred aggregation in the simplified SQL supported by the Oracle BI Server.
■
Logical request generation The navigation and rewrite phases do the bulk of the work in compiling a query. The output of these two major phases is an execution plan that is then fed into the code generation phase. The navigator is responsible for the content-aware data federation capabilities— the input to the navigator is a logical request tree describing the precise semantics of the requested data while its output is the initial physical execution plan. The navigator exploits knowledge of content to eliminate the predominant majority of traditional multidatabase joins. It also has builtin support for common business analytics such as time series comparisons, shares, and dimension-specific aggregation rules,
■
Rewrite/optimizations Once the navigator generates the initial physical execution plan, the rewrite phase of the compiler is responsible for distributed relational query optimization and optimal native SQL generation. This phase covers (1) multidatabase join plan generation; (2) function shipping; (3) functional compensation analysis; and (4) optimized SQL generation. The Oracle BI Server’s join engine is seamlessly invoked when necessary, depending on physical location of tables, SQL functionality supported by the source database(s), and analytical complexity of the original logical query. Join plans are constructed to maximize collective function shipping down to the source databases. Two types of internal join strategies are currently supported: (1) sort/merge, and (2) nested-loop, parameterized query joins. Optimal function shipping reduces loads on the source database and the network. The most important query processing elements to function-ship include GROUP BY and aggregation; filters; and multipass SQL operations.
200
JD Edwards EnterpriseOne: The Complete Reference
■
Equivalence preserving Aggregate and filter rewrites may push aggregates and filters through the tree (past operators such as joins, union alls, and so on) down to the database, thus reducing database load and network traffic. Both WHERE and HAVING filters may also be pushed to the database, depending on the GROUP BY clause.
Code Generation Code generation is responsible for generating the native query-processing language directives to communicate with heterogeneous, remote databases (that is, physical SQL generation). It is also responsible for generating the code for any remaining query processing that has not been function-shipped to remote databases. This includes the insertion of parallel execution directives for the Analytics execution engine.
Parallel Execution Engine The Oracle BI Server execution engine is a state-of-the-art, parallel SQL execution engine extended with analytical execution operators. It leverages the sophisticated technology and architectural concepts developed over the past 20 years in the database research community. Some of its key features are ■
Function shipping The Oracle BI Server ships directives for native SQL query strings; directives to execute one or more aggregation passes; and directives for various types of filters to the source database.
■
Parallel query execution The Oracle BI Server allows multiple queries to be submitted and executed in parallel, perhaps on different machines. Any cancellations would also be done in parallel.
■
Sort optimizations In case sorts required for the FULL OUTER JOIN cannot be pushed to the databases, the Oracle BI Server has facilities to allow sorts to be done in parallel. It ensures that no rows are lost between the two queries.
■
Merge The Oracle BI Server has sophisticated join facilities to merge two or more result sets from several parallel queries.
■
Ranking and filtering
It can also rank and filter rows efficiently.
Information Reliability Oracle BI Server defines and stores all the elements of analytic calculations as metadata in a central repository. This provides a centralized, consistent definition of measures for all users. Should the definition of a measure change, it only needs to
Chapter 5:
Data Warehouse and Business Intelligence
201
be changed in one place, and all analyses automatically use the new definition. In contrast, with products that capture these definitions as “report variables” in individual report documents, a measure defined in one report may have the same name but a different definition in another report—and the possibility of having an incorrect definition in both. When definitions of report variables change, they have to be identified and modified in every report document, making ongoing maintenance very expensive.
Accessing Oracle BI Server Information Oracle BI Server presents itself to other applications as an ODBC 2.0 data source. This means that virtually any ODBC-capable report writer or query tool can use Oracle BI Server as if it were a database. When it does, the query/reporting tool (1) does not need connectivity to underlying data sources; (2) is completely insulated from changes in source tables and database platforms; (3) immediately becomes aggregate aware; (4) automatically takes advantage of the built-in security and connection pooling of the Oracle BI Server; and (5) can use all the measures and columns of the subject area as if they were stored in a single simple database schema. Users of these tools are also insulated against returning erroneous results as a result of incorrect table joins or missing data—SQL traps, sometimes known as chasm traps, fan traps, or missing data traps.
Oracle BI Presentation Server The Oracle BI Presentation Server generates the user interface in the Oracle Answers and Interactive Dashboards components used to visualize data from the Oracle BI Server. It interacts with the Oracle BI Server as an ODBC client and provides a number of important services: (1) it generates the Answers and Interactive Dashboards user interface; (2) it responds to user selections, generates logical SQL for the Oracle BI Server, and caches logical SQL statements and their results; (3) it records the specifications the user makes about how data should be presented and interacts with the charting engine to create charts; and (4) it pivots and aggregates data after the Oracle BI Server generates the result set. When a user session begins, Oracle BI Presentation Server submits the user’s identity (either username/password or some other token) to the Oracle BI Server; authenticates the user; and then requests the Oracle BI Server to provide the “databases,” “tables,” and “columns” that the user is entitled to use. These objects are displayed in the User Interface as subject areas, folders, and columns. The Oracle BI Server also provides metadata information to Oracle BI Presentation Server about column properties such as data types, aggregation rules, and whether or not the user can drill on the column—each of these elements also affects how data is displayed in the user interface.
202
JD Edwards EnterpriseOne: The Complete Reference
Features of Oracle BI Presentation Server Oracle BI Presentation Server offers the following features: ■
Pure web environment Oracle BI Presentation Server provides a rich interactive user experience within a 100 percent pure web environment based on HTML, DHTML, and JavaScript—no client downloads, no plugins, no ActiveX controls, and no applets. This allows business users with very little training to define new analyses and create new queries by pointing and clicking against a logical model of information they see in their browser.
■
Logical SQL generation Oracle BI Presentation Server allows users to visually define queries within the Answers and Interactive Dashboards interfaces, by presenting a visual picture of the query as the user selects and manipulates columns and adds filters (constraints) to the query. The Answers interface also allows users to enter logical SQL directly—the results can still be formatted and displayed within Answers. Once the user submits the query, Oracle BI Presentation Server sends logical SQL to the Oracle BI Server.
■
User interface personalization When Answers and Interactive Dashboards users personalize the structure of their user interface including defining views, layout specifications, and properties of individual charts, tables, and pivot tables, Oracle BI Presentation Server stores these personalization definitions in a metadata catalog called the Web Catalog as an XML Schema that includes metadata about the user interface and security information such as users, groups, and roles.
■
Web Catalog administration Oracle BI Presentation Server provides a pure browser-based administration tool to administer a Web Catalog. Administrators can control which users can access dashboards; set user privileges; create and manage groups and roles; change group membership lists; rename or delete catalog folders and saved analyses; and view and manage sessions.
■
Web Services interface Oracle BI Presentation Server offers a programming interface using Simple Object Access Protocol (SOAP). The SOAP API can be used to build a custom user interface or to embed Oracle Analytics functionality within existing applications. This API can be used to start and manage web sessions; retrieve results from BI Presentation Server in XML format; embed BI Presentation Server results in third-party dynamic web pages and Portal Frameworks including Oracle Portal and any other
Chapter 5:
Data Warehouse and Business Intelligence
203
JSR-168/WSRP–compliant portal; merge report parameters and logical SQL to create analyses and return results; and navigate and manage the Web Catalog. ■
Performance and scalability Oracle BI Presentation Server allows web servers to be clustered for scalability. If web server processing capacity becomes a bottleneck to system performance, an administrator can configure multiple presentation servers and HTTP servers. A variety of loadbalancing facilities are supported to distribute user sessions and maintain session affinity with the HTTP server it selected for that session.
Oracle BI Answers Oracle BI Answers provides end users with true ad hoc query and analysis capability. It is a pure web-based environment that is designed for users who want to create new analyses from scratch or modify and change existing analyses that appear on a dashboard page. Users interact with a logical view of the information— completely hidden from data structure complexity—and can easily create charts, pivot tables, reports, gauges, and dashboards, all of which are interactive and drillable and can be saved, shared, modified, formatted, or embedded in the user’s personalized dashboard or enterprise portal.
Using Oracle BI Answers Users learn to use Answers quickly. Users work entirely with understandable models of information completely expressed in business terminology. The Answers user begins by choosing a subject area—such as “Marketing,” “Sales,” or “Inventory”— by selecting a folder within Answers. See Figure 5-2. Upon selecting a specific subject area, the user sees within the folder a set of “semantic business objects” that define the business terms against which the user can define calculations or analysis. For instance, if a user chooses “Sales” as a topic, he or she may find items such as “Gross Revenue,” “Net Revenue,” “Net Revenue Percentage Change vs. Last Year,” or “Net Revenue Rank.” A specific business term can be selected through a simple point and click to become columns in an analysis. Selecting objects named “Region,” “Revenue,” and “Current Month” creates a calculation such as “Show me the revenue for each region during the current month.” As the user selects business terms or columns, Oracle Answers builds a query. This query is referred to as “logical SQL,” since it expresses the logical content of the request. This logical query will be sent to the Oracle BI Server, which will interpret the logical query and create subsequent physical queries to the underlying data sources where the data is stored.
204
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 5-2. Oracle BI Answers
Features of Oracle BI Answers Oracle BI Answers offers the following features: ■
Data storage independence Oracle BI Answers eliminates the need for users to understand physical data storage—in what table is the revenue for the current month stored, for instance. Measures can be selected with a single click even if the information is stored in two separate physical databases. Oracle Answers eliminates the need for users to understand business rules, for instance, how revenue is calculated.
■
Powerful visualization facilities Oracle BI Answers enables users to view data in several ways—tables, charts, or pivoted tables—and to combine multiple views in a compound view. After saving the analysis, users click to the dashboard editor to embed the views in dashboard pages.
Chapter 5:
Data Warehouse and Business Intelligence
205
■
Sharing analysis online Analyses, once constructed, can be saved for personal use or published for use by a wider audience. Unlike the report templates of other products, saved analyses can be modified without limit.
■
Saved analysis Measures, descriptive attributes, filters, sorting patterns, subtotals, charts, and pivot table views can be added, deleted, or changed. After a user makes all the changes, he or she can save the new analysis and share it with a group of users.
■
Powerful ad hoc analysis Since the analytic process is often iterative— select measures, add filters, examine results, add new columns, change filters, delete columns, and so on—Oracle BI Answers does not impose a prescribed order in which calculations are defined such as measures first, attributes second, and filters third.
■
Personalization Oracle BI Answers automatically filters and personalizes information for a user based on the user’s identity or role. With other products, role-specific personalization requires database administrators to define, create, and populate extra tables and views called “permission tables” that define data-level filters. Oracle Answers personalizes information without relying on joins to permission tables; minimizes database changes; and makes queries run more efficiently (joins to permissions tables can be expensive).
Physical Data Storage Independence Oracle BI Answers eliminates the need for business users to understand physical data storage and enables them to combine data from multiple enterprise information sources quickly and easily. The following list describes some of the key features of Oracle Answers in this area: ■
Combining structured data from multiple sources Oracle BI Answers allows users to combine data from multiple applications or databases in a single calculation. For instance, to compare sales forecasts, quotas, and actual revenue to accurately predict revenue growth, a business user may need to combine data from three sources—the forecasting system, the sales system, and the general ledger.
■
Combining relational and OLAP data sources Oracle BI Answers also allows users to combine data from a relational system and an OLAP source in a single calculation. For instance, it’s possible to compare sales forecasts from an Oracle CRM system with revenue data from a SAP BI/DW warehouse.
206
JD Edwards EnterpriseOne: The Complete Reference
■
Combining structured and unstructured data sources Oracle BI Answers also allows users to combine structured data from relational databases with unstructured data from Excel spreadsheets, for example, in a single calculation.
■
Combining transactional data with data warehouse information Finally, Oracle BI Answers also allows users to combine data from a data warehouse with information from transaction-processing systems in a single calculation.
In contrast, most Business Intelligence products restrict users to accessing information from only a single data source in a specific calculation, and some even restrict a user’s access to a single data source during an entire session.
Complex Business Measures Oracle BI Answers allows users to select complex business measures—such as market share changes versus a year ago or sales percentage changes versus a year ago—in calculations. The following are some of the key features of Oracle Answers: ■
Complex business measures are a challenge to compute in SQL or in most commonly used reporting products because they either (1) involve “row-to-row” comparisons, something SQL was not designed to do, or (2) involve queries that combine multiple levels of aggregation. Oracle Answers allows complex business measures to be calculated at the time the query is executed without having to pre-calculate and store this data.
■
Eliminates time-based reporting tables Oracle BI Answers eliminates the need to create and store complex time-based reporting tables. For instance, most organizations have tables structured with N*M columns representing the last N periods of data for M measures plus N*M more showing the variance from last year and so on. Oracle Answers makes available these measures by simply defining them in metadata, eliminating the need to build and maintain such tables.
■
Derived measures Oracle BI Answers simplifies the use of derived measures, that is, measures that are derived and computed on a query result set such as ranks, Ntiles, standard deviations, running totals, moving averages, and moving medians. These derived measures are difficult to compute in SQL but are very useful—moving average and moving median are valuable functions for smoothing data and discerning trends. Oracle BI Answers allows users to define new formulas using existing measures. In contrast, most Business Intelligence tools do not provide any such facilities today.
Chapter 5:
Data Warehouse and Business Intelligence
207
Oracle BI Interactive Dashboard Business users will access Business Intelligence primarily through Oracle BI Interactive Dashboard. Interactive Dashboard runs within a pure web architecture and provides users with a rich, interactive user experience by providing information that is filtered and personalized to a user’s identity or role; making information intuitive and easy to understand; and guiding users to precise and effective decisions. Users work with live reports, prompts, charts, tables, pivot tables, graphics, and tickers. Users have the ability to quickly and easily navigate to the information they need; drill in place for further analysis; modify calculations; and interact with results. Users have the ability to quickly and easily aggregate structured data from relational databases; legacy data from mainframe and other systems; and unstructured content from a wide variety of sources, including the Internet, shared file servers, and document repositories.
Using Interactive Dashboard Business users build interactive dashboards without any involvement from an information technology specialist and without any programming. Users create dashboard pages and select and organize content using a web-based dashboard editor. To add content to a web page, a user simply drags and drops the analysis from a web catalog in the left panel. The web catalog is a listing of all saved content—prompts, analyses, and dashboard pages. Users interact with the catalog by selecting prompted values and filtering data; clicking on charts or tables to drill down to more detail; changing the sort order or sort direction of columns; clicking to move within context to a different analysis by passing constraints automatically with the click; or even selecting different columns to display. Dashboards are flexible information containers. In addition to Business Intelligence content, they can embed a corporate “portal,” a web page or image on the Internet or intranet, a Word document, or even an Excel workbook. Figure 5-3 shows the Oracle BI Interactive Dashboard with some custom embedded information.
Features of Oracle BI Interactive Dashboard Oracle BI Interactive Dashboard offers the following features: ■
Full power of analytics Interactive Dashboard provides a powerful analytic environment for business users, precluding the need for them to drop into query and analysis to perform complex calculations.
■
Sharing information online Interactive Dashboard can be published as online work centers enabling groups of users to share information easily with each other.
208
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 5-3. Oracle BI Interactive Dashboard
■
Personalization Interactive Dashboard can be personalized to automatically show different results depending on how the user logs in, that is, based on the user’s identity or role.
■
Data filtering Interactive Dashboard can be set up so that the analyses shown are determined by data and data threshold values set by the user.
■
Sharing information offline Interactive Dashboard can be saved and distributed for offline use as Briefing Books or reports. Data on dashboards can be downloaded to Excel.
Chapter 5:
Data Warehouse and Business Intelligence
209
■
Saved selections Users can modify analyses on dashboards and save the modifications for their own use. Dashboard specifications are stored in a secure catalog on a web server.
■
Changing styles Interactive Dashboard obeys the Cascading Style Sheet standards. It is possible to modify dashboard styles by changing these style sheets, even providing different styles or “skins” to different groups of users.
Guided Analytics with Oracle BI Interactive Dashboard Guided Analytics is a feature of Interactive Dashboard that enables the content and layout of Interactive Dashboard to change dynamically based on changes in information being analyzed. Specifically, sections in a dashboard page can be set up and only appear when there is “interesting” information in the data. For example, a dashboard for a sales manager might contain a section that only appears when sales volumes for major products have declined in the current quarter. If customer complaints have become a problem, a section showing the rise in customer complaints would appear. Individual links in a dashboard can work the same way. For example, when sales volumes for major products decline, a link could appear with a message notifying the user of the decline. Clicking on the link would bring up an analysis (or a whole dashboard page of analyses) focusing on these products. Through guided analytics, organizations can capture best practices in the use of information by one user or one division and guide other users or divisions to use the system in the same way. For example, it is possible to capture how an organization’s best sales manager uses information to be more effective, and use guided links and navigation within dashboard pages to direct every other sales manager in the organization to use information intelligence in the same way.
Oracle BI Publisher Oracle BI Publisher offers a highly scalable reporting server that generates and delivers reports from multiple data sources, in multiple document formats, via multiple delivery channels. Oracle BI Publisher reduces the high costs associated with the development, customization, and maintenance of business documents while increasing the efficiency of reports management. Furthermore, it reduces a company’s dependency on third-party software systems that are required to format business documents. Utilizing a set of familiar desktop tools such as Adobe Acrobat and Microsoft Office, users can create and maintain their own report formats based on data extracts supplied by a multitude of sources. Oracle Publisher provides developers with precision control over report format, layout, and output—enabling
210
JD Edwards EnterpriseOne: The Complete Reference
the creation and distribution of “pixel-perfect” reports, regardless of graphical complexity. Oracle BI Publisher is fully integrated with the other components of the Oracle Business Intelligence Suite EE and shares common metadata, security, calculation, caching, and intelligent request-generation services.
Using Oracle BI Publisher Business users can quickly and easily use Oracle BI Publisher to create a report definition; define the data format for the report; schedule a reporting job to execute the report; specify the output and delivery channel for the report; and publish the report to an online document repository. ■
Defining a report A business user creates a report definition using a pure web rich-client development environment. From this web client, the user can connect to multiple data sources including the Oracle BI Server and define the data he or she would like to see published as a report.
■
Defining the layout template Once the user has defined the data for the report, he or she defines a layout template for the report. Users can define the layout template using a variety of commonly available tools—Microsoft Word, Adobe Acrobat, or Microsoft Excel. Within these tools, Oracle BI Publisher provides an easy-to-use report builder wizard to define the report template and a desktop template viewer and debugger.
■
Report delivery format and channels The user then goes to a pure web administrative console and defines a variety of facilities—users and roles authorized to access the report; define new roles and assign reports to these roles; and delivery channels for the reports. The user can specify multiple document formats and delivery channels for the same report.
■
Report scheduling Having defined the report template, the user can then specify whether the report should be run immediately or run on a scheduled basis. The user can also look at existing reports and their history, and manage report jobs that are running.
Features of Oracle BI Publisher Oracle BI Publisher offers the following features: ■
Performance and scalability Oracle BI Publisher has a highly efficient J2EE-based data extraction, formatting, and runtime engine. It can be deployed to any J2EE 1.3–compliant Application Server and exploits the scalability, concurrency, and availability facilities of the Application Server to provide highly efficient report generation.
Chapter 5:
Data Warehouse and Business Intelligence
211
■
Multiple data sources Oracle BI Publisher allows data from multiple structured data sources—Oracle BI Server, Oracle Databases (8i, 9i, 10GR1, 10GR2), IBM DB/2, Microsoft SQL Server, Informix, and Sybase databases— and from unstructured data sources—files, XML, Web Services, URLs—to be embedded in the same report. Oracle BI Publisher uses optimized connection-pooling mechanisms when accessing data from these data sources.
■
Multiple document formats Oracle BI Publisher separates the definition of the data to be aggregated into a report from the format in which the report is to be published. A single report can therefore be simultaneously published in multiple document formats including Microsoft Word, Excel, RTF, PDF, XML, EDI, and others.
■
Multiple delivery options Oracle BI Publisher provides a variety of delivery options for generated reports. Reports can be published to online folders via WebDAV; they can be automatically attached to e-mail for distribution; they can be send to enterprise print servers; they can be placed on a file server from which they can be transmitted by FTP.
■
Batch processing and report bursting Oracle BI Publisher is integrated with the Oracle BI Server’s Job Scheduling facilities and can also be integrated with external Job Scheduling systems to drive batch reporting. It provides an easy-to-use administrative interface to define reporting jobs, to schedule them, to manage jobs, and to track their status, including taking corrective action if they have failed. Oracle BI Publisher also supports advanced report bursting.
■
High-volume printing Oracle BI Publisher provides advanced integration with enterprise printing servers and enterprise printers (that support IPP and LCUP protocols) including queue management, capacity-based distribution, failover, and recovery.
■
Content management and search Reports generated by Oracle BI Publisher can be stored and managed in online folders. The online folders are themselves secured by role-based security. Documents within these folders can be searched using the powerful search facilities of Oracle Secure Enterprise Search.
■
Open standards Finally, Oracle BI Publisher is based on open standards— Java, J2EE, XML, XSL-T, FO, RTF, PDF—allowing users to adopt it easily alongside their existing information technology investments and Business Intelligence tools.
212
JD Edwards EnterpriseOne: The Complete Reference
Oracle BI Briefing Books A Briefing Book is a report that captures the content of an Oracle BI Interactive Dashboard, allowing the information to be viewed by anyone with Briefing Book Reader software. The Briefing Book provides a way to create snapshots of dashboard pages, view them offline, or share them with others. Briefing Books have the same look and feel as a dashboard page. Multipage Briefing Books have paging controls and are well suited for presenting information to others. Briefing Books also provide a way to archive the information in a dashboard. Briefing Books can be saved locally on a user’s desktop. Users have the option to make Briefing Books “updatable” so they can be updated with up-to-date information from the corresponding dashboard with a single click whenever the user chooses. Personalized Briefing Books can also be automatically distributed to distribution lists of users in a working group via e-mail through Oracle BI Delivers.
Oracle BI Delivers Oracle BI Delivers is a proactive intelligence solution that provides the ability to monitor business information; identify patterns to determine whether specific problems are occurring; filter the data based on data and time-based rules; alert users via multiple channels such as e-mail, dashboards, and mobile devices including text messages and wireless phones; and allow users to take action in response to the alerts they have received. Alerts can be chained together. By passing contextual information from one alert to another, it is possible to execute a multistep, multiperson, and multiapplication analytical workflow. Furthermore, Oracle BI Delivers can dynamically determine recipients and personalized content to reach the right users at the right time with the right information.
Using Oracle BI Delivers Delivers provides a web-based self-service alert creation and subscription portal where users choose delivery options by creating individual delivery profiles. For example, a user might define a delivery profile to be used when he or she is out of the office. Within a profile, the delivery options can be varied according to the urgency of the alert. Alerts can be sent to individuals or groups. Users can save analyses designed in Answers, schedule them to run automatically, set data thresholds, and specify whom they want to be alerted when thresholds are exceeded. Oracle BI Delivers allow business executives to manage their organization by exception—they receive notifications and alerts from the Business Intelligence infrastructure that is monitoring their organization and can take action quickly and effectively.
Chapter 5:
Data Warehouse and Business Intelligence
213
Features of Oracle BI Delivers Oracle BI Delivers offers the following features: ■
Create and subscribe to proactive alerts Oracle BI Delivers presents an intuitive mechanism to allow business users to create, publish, and subscribe to proactive alerts and conditions. Users can select and schedule published requests to be executed and delivered to them via a multitude of devices. Users can define alert conditions on data-driven thresholds on specific analytic measures and on time-driven conditions.
■
Actionable bots Beyond this, however, Oracle BI Delivers provides the ability for any user (not just administrators) to very easily define their own processes, called bots, which will “watch” for user-defined conditions and or thresholds and notify the user. Further, Oracle BI Delivers can take actions based on a predefined decision tree. A simple example might go like this: “If supplies of Product A drop below 10,000 units, send an e-mail to me, the warehouse, and the supplier.”
■
Composite/complex conditions Oracle BI Delivers allows users to create bots that watch for very complex conditions combining data-driven and time-based conditions with real-time and historical data.
■
Multiple delivery channels and profiles Users can personalize how they wish to be notified (e-mail, pager, palm, phone call) at various times of day and week. Delivery profiles can be matched to individual alerts to which a user subscribes.
Oracle BI Delivers and Oracle BPEL Process Manager Oracle BI Delivers can also be configured to interact with Oracle BPEL Process Manager—Oracle’s industry-leading Business Process Management solution. A business user can drive an Enterprise Workflow process defined in Oracle BPEL Process Manager in response to an alert from Oracle BI Delivers. Oracle BI Delivers can also interact with other Enterprise Workflow systems in response to an alert.
Oracle BI Office Plug-In Oracle Business Intelligence Office Plug-In integrates Business Intelligence information from the Oracle BI Server and Reports with the Microsoft Office environment, embedding up-to-the-minute corporate data in Microsoft Word, Excel, and PowerPoint documents. Users can then share these Office documents with others over the Web for collaborative decision making. Business users waste a lot of time trying to add corporate data in their Microsoft Office documents. They need to determine (1) how to access data from many different systems; (2) what security
214
JD Edwards EnterpriseOne: The Complete Reference
privileges they need to access this information; (3) how to keep data in Microsoft Office current to avoid issues with data accuracy of the data you use; and (4) how to protect data so it does not get into the hands of unauthorized users. Oracle Business Intelligence Suite’s Microsoft Office Add-in allows business users to add intelligence to Microsoft Office documents, thus saving time; eliminating data accuracy problems; providing self-service access to information; and securely sharing information with coworkers with appropriate context.
Features of Oracle BI Office Plug-In Oracle BI Office Plug-In offers the following features: ■
Simplified data embedding The Office Plug-In makes embedding corporate data within Office documents easy and efficient. A business user lays out a document template into which he or she would like to embed corporate data using Microsoft Word or Microsoft Excel. The user can also quickly and easily change the layout, the output format, and the locale (language, time zone) within Microsoft Office itself. Once the user has defined the layout, they simply define a data source—either a database schema itself or a measure or dashboard within the Oracle BI Server—from which they would like to embed data in Office. Facilities such as the Parameters toolbar preserve analytic parameters within Office.
■
100 percent standard Microsoft Office documents Unlike other Business Intelligence tools, Oracle’s Office Plug-In generates a 100 percent standard Office document. This allows users to format and reorganize the document, to use macros, to perform cell-based calculations within Office, and to integrate data from non-analytic sources into the same document. Users can also modify data filters, saved selections, rules, and formulas as needed while retaining all existing formatting and calculations in Office.
■
Simplifies security The Office Plug-In also preserves the user’s security when accessing corporate data from Office documents. This eliminates the need to maintain a separate username/password for the user—the same username/password that the user uses to access Interactive Dashboards can also be used to secure access to Office, lowering security administration costs and simplifying maintenance.
■
Elminates data inaccuracy The Office Plug-In also eliminates data accuracy problems by allowing the user to choose to automatically refresh a single data item or all the data in the Office document when the user connects to the network.
Chapter 5:
Data Warehouse and Business Intelligence
215
■
View data in context The Office Plug-In also helps provide document recipients with greater context about the data they are accessing. By clicking on the data they are interested in, they can easily view the underlying report—from within Office.
■
Distribution The Office Plug-In also allows users to share documents for collaborative decision making in a variety of ways: (1) place them online in an embedding dashboard; (2) share them through online folders; (3) share them through a corporate portal (Oracle Portal or others); (4) share them as e-mail attachments.
To summarize, therefore, Oracle Business Intelligence Suite’s EE Office Plug-In integrates within the familiar Microsoft Office environment to provide business users with an easy and efficient way to embed accurate, updatable data in their documents, spreadsheets, and presentations. Any resulting Office documents can be shared securely with others for collaborative decision-making. The Office Plug-In simplifies security, is easy to install via the auto-update mechanism of Microsoft Office, and eliminates data inaccuracy with the live update feature.
Oracle BI Disconnected Analytics Oracle BI Disconnected Analytics provides full analytical functionality for the mobile professional, enabling interactive dashboards and ad hoc analysis to be done on a laptop computer while disconnected from the corporate network. It provides the same intuitive interface for users whether they are working in a connected or disconnected mode. Oracle BI Disconnected Analytics leverages advanced data and metadata synchronization capabilities to move data; analytic metadata; dashboards; saved selections; filters; and other information to the mobile laptop environment. Oracle BI Disconnected Analytics allows for full and incremental synchronization of data with enterprise data sources. Data is personalized for each user, maintaining all role-based security and visibility, and is compressed during synchronization, resulting in minimal data set size and fast synchronization times.
Mission-Critical Performance, Scalability, and Reliability Oracle BI Server has a number of performance, scalability, and reliability optimizations to provide optimal performance and scalability whether users are constructing new analyses; changing the visualization of an existing analysis; or refreshing several analyses embedded on a single dashboard. The most important performance and scalability features are described in the following sections.
216
JD Edwards EnterpriseOne: The Complete Reference
Highly Efficient Oracle BI Server Design The Oracle BI Server offers several performance and scalability optimizations including custom heap memory management to avoid memory contention issues; hashing to avoid central locking; specialized synchronization mechanisms such as spin latches; parallel query and computation execution engines; and highthroughput connectivity adapters. When performance requirements exceed the capability of a single server, Oracle BI servers can be clustered together with session replication and automatic failover.
Highly Efficient Data Sourcing and Aggregation Oracle BI Server minimizes data retrieval time by picking the most efficient data sources to satisfy user queries. It is aware of and automatically selects “aggregate tables” in relational databases. Preaggregating and storing additive information is the standard practice for improving the query performance of relational databases. When users request information at a high “grain” of aggregation, the Oracle BI Server can use the already-aggregated sources instead of asking the database to add up the detail. Sometimes there can be multiple sources at the same level of aggregation. For example, data may be aggregated by month, with the last three years of information stored in 36 separate tables. Because the Oracle BI Server’s metadata has a description of the contents of each of these tables, when a user submits a query and filters on a specific month, the server will select the one table needed to satisfy the query.
Exploiting Database Facilities Oracle BI Server also optimizes performance and minimizes network traffic by exploiting the native capabilities of the available database platforms. When generating SQL (or other query languages), the Oracle BI Server is aware of the functions and language constructs the database supports, and generates highly optimized target-specific SQL. The Oracle BI Server function-ships this optimized SQL to the database, conducting as much processing as possible in the database itself. Examples of such differences between databases include string processing, statistical and mathematical functions; logical if-then-else statements; expression maps in a HAVING clause; and others. Conversely, if the database platform does not support a function or a SQL feature, the Oracle BI Server will itself compensate for the missing functionality using its own computation and data processing engine. By doing so, it exploits the advances in query optimization, indexing, data partitioning, and other technologies in relational databases. Note that the Oracle BI Server can perform a superset of the data manipulation and calculation capabilities of SQL-92 compatible database products. This ability to customize the query language to the platform and to compensate for missing functionality is unique to the Oracle BI Server.
Chapter 5:
Data Warehouse and Business Intelligence
217
Connection Pooling The Oracle BI Server can be configured with one or multiple connection pools for each database. The administrator can specify a maximum number of database connections to keep open until they are unused for a specified period. As the query load increases, the number of open connections increases in the connection pool. When the maximum number is reached, the server will queue new connection requests. This prevents database servers from being overloaded. With more than one connection pool configured per database, specific users or groups of users can be assigned to specific connection pools. This allows an administrator to give certain groups higher priority.
Query Reuse and Caching When multiple users access the Oracle BI Server, many queries will have similar content, allowing the Oracle BI Server to intelligently reuse previous query results, a capability called “query caching.” There are two kinds of caching in the system: ■
Web server Oracle BI Presentation Server caches queries and query results. When a user submits a query, the web server examines the logical SQL to see if it matches an existing cached query. If it does, then the web server uses the results without resubmitting logical SQL to the Oracle BI Server. As a user generates new data views, manipulates a pivot table, or returns to a recently viewed dashboard page, the web server uses cached results. The user can explicitly “refresh” the query if needed.
■
Oracle BI Server Query caching also occurs at the Oracle BI Server. The Oracle BI Server saves each logical query and all its components—the text of the logical SQL, the time and date of the query, the list of physical tables used in the SQL (or other query language), and the results of the query. The Oracle BI Server will analyze each new query it receives and determine whether it can answer it using cache. The Oracle BI Server also allows queries that require extensive database processing to be prescheduled to run so results are already available when users open their dashboards.
A frequently experienced benefit of caching is improved dimensional browsing performance. Since it has been estimated that 80 percent of user queries to a data warehouse are pure dimensional browses, this results in a significant reduction in database activity and improves the responsiveness of the system.
Oracle BI Administrator During system installation, an Oracle BI administrator specifies the content of various physical table sources using a graphical administration tool. At run time, the navigator uses these physical table content descriptions to mix and match physical
218
JD Edwards EnterpriseOne: The Complete Reference
table sources to answer the logically requested data. The administration tool has been designed with wizards, utilities, and interface design elements to help the administrator work efficiently with real-world, large-scale enterprise metadata. A calculation wizard helps administrators write formulas (for example, a share calculation) and ensures their correctness, while the Time Series Wizard enables an administrator to create hundreds of time series comparison measures (for example, sales last year, percentage change vs. last year, ratio of sales to last year, and so on) in a matter of seconds. Project management features also enable multiple administrators to simultaneously work on the metadata repository.
Features of Oracle BI Administrator Oracle BI Administrator offers the following features: ■
Change management The Oracle BI Administrator provides a number of change management services. For instance, a rename wizard makes it easy to change the names of multiple objects at once, substituting text, changing case, and adding prefixes or suffixes. This makes it easy to drag and drop physical columns into the business model layer to give them more meaningful, readable logical names. The administrator can set the aggregation rule for a group of logical columns all at once, rather than one at a time.
■
Metadata administration To make working with large repositories easier, the administration tool enables the administrator to structure and organize metadata, for instance by using folders to organize objects. The administrator can put all dimension tables in a single folder and all hierarchies in a different folder or alternatively put a dimension table and its related hierarchies in the same folder and use graphical icons to mark objects for specific purposes.
■
Dependency and impact analysis A query utility allows the administrator to find metadata objects by type, while filtering on properties and relationships to other objects. For example, an administrator could find all logical columns that are dependent on a specific physical table or column to determine what “business objects” will be affected if a certain physical column is deleted in the database.
■
Export-import The administration tool provides facilities to export and import metadata in order to move systems from staging to production environments and to export metadata to files for the purposes of documentation. A repository documentation utility generates a list of presentation columns, business model columns they correspond to, formulas, and physical sources they map to.
Chapter 5:
Data Warehouse and Business Intelligence
219
■
Multiuser collaboration for administration The administration tool can be used in both “offline” and “online” modes. Online edits take effect immediately after they are checked in without restarting the server. The offline mode allows multiple administrators to edit a metadata repository concurrently. As objects are selected for editing, they and objects that depend on them are automatically checked out and are available on a readonly basis to other administrators. They become available for editing again after they have been checked in. The administration tool and Oracle BI Server can be used in concert with any popular source code management systems.
■
User administration The administration tool also offers a way to view (and terminate) current user sessions; to see the variables being used in each session; to list the available cache entries by subject area, user, or physical table; and to report on the recent history of cache usage. Usage logs written by the Oracle BI server(s) can provide a basis for understanding usage patterns, response times, and load variations. This information is useful for diagnosing and tuning systems.
Summary
This chapter has given you a glimpse into the work of Business Intelligence. It is defiantly not the be-all and end-all reference, as we could have written a whole book just on this subject. In order to cover Business Intelligence and data warehouses, we started by discussing the business case of using Business Intelligence. We then moved on to discuss why it is not a good idea to use your production data as a source for your Business Intelligence solution. We then moved on to talk about data warehouses. We covered how you can use a data warehouse and how you can create one. It is less expensive to use a prepackaged solution to create your data warehouse. This chapter also covered how to configure your data warehouse architecture. We covered three phases for the architecture. These phases are: implement initial architected data mart, implement additional architected data marts, and expand to enterprise architecture. We finished the section talking about best practices for next-generation data warehouses. We also covered using the Oracle Business Intelligence Suite of products. The Oracle BI Server capabilities were covered. We talked about the parallel execution engine. We then moved on to talk about the Oracle BI Presentation Server and Oracle BI Answers. These are all important tools for a Business Intelligence solution. As every executive knows, you cannot talk about Business Intelligence without a dashboard. So we covered the Oracle BI Interactive Dashboard, how to use this dashboard and the features it can offer your business.
220
JD Edwards EnterpriseOne: The Complete Reference
We then talked about the Oracle BI Publisher and how it can be used for your business. This included a discussion on the features such as the different document formats that can be used. We finished this chapter with a discussion of what it takes to administer a Business Intelligence system. It is our hope that this chapter has helped to answer some of your lingering questions about Business Intelligence. Businesses need to constantly be improving their processes to respond to their customer base. In order to have tight control of your business, you need visibility. Business intelligence gives you this type of visibility.
CHAPTER
6
Interactive and Batch Applications Defined 221
222
JD Edwards EnterpriseOne: The Complete Reference
W
ithin the JD Edwards Solution Explorer you will find a large suite of integrated applications—3,620 of them as of EnterpriseOne 8.12, to be exact—presented through an HTML user interface. These applications are presented in JD Edwards Solution Explorer menus and are accessed by clicking on the menus, which are role based.
Generally, the applications have versions associated with them. Versions provide certain runtime parameters that the user base can manipulate if the Configurable Network Computing (CNC) administrator allows within his or her security plan. Versions can be configured for use by single users, multiple users, or roles. Universal Batch Engine (UBE) versions can also be configured so that a specific batch queue is used whenever that version is executed. There are 13,669 versions out of the box with EnterpriseOne 8.12. This chapter will thoroughly analyze each and every one of these applications and versions in a really, really small font. Actually, this chapter will examine the two main classes of applications at the top of the EnterpriseOne object hierarchy. We will also break down the food chain of EnterpriseOne objects with regard to applications. Notice we did not say “programs.” EnterpriseOne does utilize a series of programs, such as BusBuild.exe and others; however, they are not considered applications, as they are not directly maintained by the EnterpriseOne Object Management Workbench application. EnterpriseOne programs are maintained in the \E812\System\bin32 subdirectory on each client. Because these programs are precompiled and Oracle does not provide the source code for further manipulation, we suggest it is sufficient that the CNC administrator make him/herself aware of them without our further exploration. Rather, in this chapter, we will focus on the following: ■
Applications defined
■
Interactive applications
■
Batch applications
■
Versions
We will look at subcomponents, processing, and development at a high level for both interactive and batch applications. We also address how versions extend EnterpriseOne flexibility in the enterprise and discuss security issues that arise due to this flexibility.
Applications Defined
What is an application? In the context of EnterpriseOne, an application can be defined as a collection of objects that perform a specific function. To keep things simple, we can say that all applications in EnterpriseOne begin with a P and all batch applications or Universal Batch Engines (UBEs) begin with an R.
Chapter 6:
Interactive and Batch Applications Defined
223
The word “application” might bring to mind a precompiled, Windows-based executable such as Word or Excel. While it is true that EnterpriseOne has some precompiled executables that it runs, interactive and batch applications are not as singular in nature. These applications are actually a combination of various types of logic containers designed in a form-based interactive presentation or as a series of instructions to be executed in batch. The logic is contained within event rules, C-based business functions, and specification files whose instructions are interpreted by the EnterpriseOne HTML server and host code on EnterpriseOne application servers. Interactive applications are often referred to as IV, and batch applications are referred to as UBEs (Universal Batch Engines). NOTE EnterpriseOne applications and batch applications are made up of compiled C code and interpretive specification files. This specification information is stored in a series of relational database tables; the central object tables until a package is built. During the package build records are written to special package tables that contain XML information. This information is read at run time by the EnterpriseOne HTML server, which is the EnterpriseOne web server. The EnterpriseOne application server, which runs host code, also reads and uses this XML information.
Logic Interfaces Beyond the functional differences between these two applications, the way users interact with them is different as well. Batch applications or UBEs allow the user to submit the job and move on. They do not need to wait for anything, like a next screen in an application. In other words, the batch application runs “asynchronously” of the user. On the other hand, the interactive application is more of a task master, requiring constant feedback from the user, who must type data into the form and then wait for validation. This type of application typically processes in a “synchronous” mode.
Naming Conventions The JD Edwards EnterpriseOne groups functional modules together with system codes. Some examples of system codes are ■
00 Foundation Environment
■
01 Address Book
224
JD Edwards EnterpriseOne: The Complete Reference
■
03 Accounts Receivable
■
04 Accounts Payable
■
07 Payroll
■
08 Human Resources
■
09 General Accounting
In keeping with our first definition of an EnterpriseOne application, you can quickly see that an application with the name R00xx would be a Foundation Environment batch application and P04XX would be some type of Accounts Payable interactive application. Although EnterpriseOne comes out of the box with thousands of applications, your organization may need to add additional applications or modify existing ones to meet specific business requirements. One of the strong points of EnterpriseOne software is that it can easily be changed or modified. However, we will also tell you that nothing in life is free. The more you modify objects in EnterpriseOne, the greater the effort will be required to apply Electronic Software Updates (ESUs) to the system. If you have a modified an object that is in an ESU, you will need to perform a retrofit effort to incorporate your custom code with the patch. When evaluating whether or not to modify the EnterpriseOne code, you also should ensure that your development efforts follow standards. Oracle has documented some specific standards for development efforts. We recommend that you use this type of standard and also follow the rules defined in the developers guide. These rules define what type of modifications will be preserved; they also inform you that the system codes 55 to 59 are reserved for customers. Using these rules will ensure that you have less of an effort to make when applying ESUs to the system or even upgrading the system later on. The authors cannot state strongly enough that you should have a formal document and communicate all of your development naming standards and development rules to your user community. This will save you countless hours of frustration later on. When developing any type of object in the Object Management Workbench (OMW), from the subcomponents that make up the high-level business applications to the high-level business applications themselves, you will need to provide a name for the object. The first letter should be a P for interactive (obviously) and an R for UBE (again, obviously). You will then be asked for a system code. These system codes are used by EnterpriseOne to group applications within functional modules, as already mentioned. Again, Oracle has designated a series of system codes—55 through 59—that are reserved for the identification of client objects by clients. By using these system codes for your customized objects, you will have ensured the first line of protection for your hard-earned custom work from the threat of destruction posed by a EnterpriseOne upgrade/update.
Chapter 6:
Interactive and Batch Applications Defined
225
TIP If you are looking at modifying an object, a common practice is to copy the existing object and then modify the copy. Although this is not a bad practice, you need to be aware of certain things. When you copy the object, your application is a new custom object name, but it still references or calls standard objects such as a business view. What this means is that if you upgrade the object you will need to test it to ensure that the standard objects referenced in your application still function the same or even still exist, as objects can be made obsolete during an upgrade.
Application Design One of the best ways to understand EnterpriseOne applications is to examine their components. Object Management Workbench (OMW) is the entry point to several tools for creating, generating, running, and modifying applications. For more information on the Object Management Workbench, see Chapter 10. Object Management Workbench includes Form Design Aid for creating forms and Event Rules Design for attaching business logic through event rules. Use Object Management Workbench to access the design tools for applications: ■
Access Forms Design for creating forms
■
Browse Event Rules
■
Run the application (in releases 8.11 and above the developer can see their work on a local web server)
■
Create Vocabulary Overrides
■
View Forms
■
Perform an Event Rule compare
■
Select a version and change processing options
OMW also allows you to ■
Modify the summary information (object name, description, product code, product system code, and object use)
■
Access Category codes (these codes allow you to define additional information about the application)
226
JD Edwards EnterpriseOne: The Complete Reference
■
Install/merge codes
■
Attachments (these allow you to add notes and objects to the object definition in OMW, thus allowing you to keep good documentation on your modifications)
Taking a Peek Inside Applications Whether the developer is designing a new form or batch application or modifying an existing object, he or she must start with the Object Management Workbench. The Object Management Workbench is the central point where objects can be accessed. The Object Management Workbench will also show the developer if someone else has the object checked out or not.
Interactive Applications
We will first examine the structure of interactive applications.
Forms: An Overview When you think of an application, you need to think about how it is structured. An application is made up of a form or multiple forms. These forms provide the application with certain types of abilities. Figure 6-1 shows the different forms available to your developers. The standard form types are ■
Find/Browse
■
Fix Inspect
■
Header Detail
■
Headerless Detail
■
Search & Select
■
Message Form
■
Parent/Child Browse
■
Power Edit
■
Power Browse
■
Wizard
■
Reusable Edit Subform
Chapter 6:
Interactive and Batch Applications Defined
FIGURE 6-1. Form types available in Form Design Aid ■
Reusable Browse Subform
■
Edit Portlet
■
Browse Portlet
Each form has a specific purpose and function that will be reviewed in the sections that follow. We will also show how these forms are used.
Find/Browse The Find/Browse form is one of the most frequently used forms in the system. It is the entry point into most applications. This type of form is displayed in Figure 6-2.
227
228
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 6-2. Find/Browse form The Find/Browse form consists of a header section and a grid where the data will be displayed. The header section consists of key fields for the specific application. The grid section will display the detail data. It is also possible for the user to use the grid to search. On the grid, the top line is a section where you can search under each individual column. This line is the Query By Example (QBE) line. If it is enabled, you can type search items in that section, although not all lines are always enabled to perform this task. An item for which the QBE is grayed out is either not a business view column, has QBE functionality turned off in the data dictionary for that particular field, or is not enabled in the Object Configuration Manager (OCM) definition. The Find/Browse forms are used to allow users to find information easily within applications. So the developer should choose the layout of the grid and fields in the header section of the applications carefully.
Fix Inspect The Fix Inspect form, shown in Figure 6-3, does exactly what you expect. It lets users look at their data and make the necessary changes where they are needed. It
Chapter 6:
Interactive and Batch Applications Defined
229
FIGURE 6-3. Address Book Revision Fix Inspect form also lets the users add a new record where needed. This form has two buttons that perform specific actions when used. The first is the OK button. When this button is clicked, the program will update or write the specific information that you have changed or added to the appropriate table. The other button is the Cancel button. When it is clicked, the form will ignore all changes that were made and no updates or additions to the database will be made. In this particular Fix Inspect form, there are also different tabs on which the user can change data. Not all Fix Inspect forms have these tabs. Since this form only allows you to edit or add one record at a time, there is no grid record associated with this form. This form is usually accessed from another form and the detail information is brought into the Fix Inspect form for editing purposes.
230
JD Edwards EnterpriseOne: The Complete Reference
Header Detail The Header Detail form in Figure 6-4 gives you the ability to update or add records to two separate tables at one time. The top portion of this form is used to add or update the header records of data. The bottom half or grid portion of this form lets you add or update multiple detail records associated with the particular header record. This unique form lets you attach two business views to one form. A business view can be attached to the header portion of the form, and a separate business view can be added to the detail section.
Headerless Detail This type of form is very similar to the Header Detail form as shown in Figure 6-4, but it can only display information that is associated to one table. Therefore only
FIGURE 6-4. Sales Order Detail Revisions header detail
Chapter 6:
Interactive and Batch Applications Defined
231
one business view can be attached to this form, and both the header and detail come from that view.
Search & Select This type of form is used to return values to specific fields. It is most commonly used with the Visual Assist function of the system. These forms must be attached to the specific item for which you are searching. The Search & Select form includes a grid that has the same functionality as the Headerless Detail form. When you select the record you need, this form will return it to the field that initially called the Search & Select form. An easy example would be when you use the Visual Assist to search for a User Defined Code value.
Message This is a typical form that can be seen with most software packages and operating systems. It is a pop-up box where the user is warned about possible problems or informed about actions that have been completed. This form can only be composed of static text and push buttons. This type of form doesn’t perform any database changes or inquiries of any type.
Parent/Child This form, as shown in Figure 6-5, is laid out differently than the previous forms that have been described. The top portion of the form still has the header records that some of the other forms showed. The bottom right half of the form is a grid section used to display the detail records of the child section of the tree. The bottom left half of the form is a graphical representation of the relationship between the parent and child.
Power Edit Can you feel the power? Power forms are used for web-only application forms. These forms, through use of subform control, provide the ability to view different data and tabs on one form. They also allow you to pass logic between the different forms. These tabs can have their own unique business views and can pass data to each other. This means that you can see changes that occur in a different business view on the form. This makes it easier for the user to move around. Power forms have these general properties: ■
All regular controls except a parent/child control can be placed on a power form.
■
Multiple tab controls are permitted.
232
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 6-5. Work Center Parent/Child form ■
The maximize grid feature is supported for all grids.
■
All power form (and subform) errors and warnings are shown from the error button on the power form.
■
Power forms contain vertical and horizontal scroll bars.
JD Edwards EnterpriseOne offers two types of power forms: browse and edit. A power edit form with a grid enables users to update and enter multiple records simultaneously. Similar to a headerless detail form, a power edit form has only one BV.
Chapter 6:
Interactive and Batch Applications Defined
233
Power Browse Power Browse forms are web-only application forms that, through the use of the subform control, enable users to view multiple, interrelated views of data, grids, and tab pages on one form. These forms can also pass logic between them. The tabs can have their own business views (BVs), and these BVs can communicate with each other. The tabs can be updated based on data selection or changes that occur in business views on other forms. In this way, you can simplify navigation tasks for users. Power forms have these general properties: ■
All regular controls except a parent/child control can be placed on a power form.
■
Multiple tab controls are permitted.
■
The maximize grid feature is supported for all grids.
■
All power form (and subform) errors and warnings are shown from the error button on the power form.
■
Power forms contain vertical and horizontal scroll bars.
JD Edwards EnterpriseOne offers two types of power forms: browse and edit. The Power Browse form, like its name implies, allows you to browse data on a form. However, you cannot use a power browse form to change data on the form. In many ways this form is similar to a find/browse form.
Wizard This is a form type that allows you to create a wizard to guide users through a process. You have seen these forms with the installation screens. This type of form can allow you to easily design a process to gather information from a user and perform a task.
Reusable Edit Subform Throughout EnterpriseOne there is a theme of reusable code. The reusable edit subform is no different. You can create a subform that is not tied to a parent. There is a property on these forms that indicates whether the form is reusable. When you reuse a subform you can reference that form by an alias on a power form. NOTE If a subform is created as a control on a parent form, it cannot be referenced with alias and thus is not reusable.
234
JD Edwards EnterpriseOne: The Complete Reference
Reusable Browse Subform Another area where code can be reused is the browse subform. There is a property on these forms that tells the system if it is reusable. These subforms can be called from a power form by referencing them as an alias on the power form. Again, if these forms were created as a control, they cannot be called with an alias, and thus are not reusable.
Edit Portlet The portlet form is a new form type. This form allows you to design a portal page and create a portlet (JSR168) for use in the Collaborative Portal. The development tools guide on Forms Design Aid has additional details on this type of form.
Browse Portlet A portlet can be defined as a single piece of portal content. As the name implies, this is a portal or window for the users of the system to interact with an application, such as an open enrollment application, while using a portal. NOTE A portlet can provide information to applications, but they cannot communicate to another portlet. The Forms Design Aid tool allows you to work with two different types of portlet forms. These are both edit and browse portlet forms. These can be accessed through FDA. On the FDA toolbar, go to Form/Create/Edit Portlet or Browse Portlet; this will create a form similar to a Power Form. With a Power Form, you manually insert the type of controls you want; it is not a predefined form type like a Find/Browse or Fix Inspect. The portlet designed in FDA is also known as “FDA portlet” or “JSR168 portlet” to be used on the JD Edwards EnterpriseOne Collaborative Portal. The FDA portlet is not the same as the “native portlet.” Native portlets for Self Service Applications (Customer Self Service, Employee Self Service, Supplier Self Service) are delivered as prebuilt portlets to be used on the JD Edwards EnterpriseOne Collaborative Portal, and they are available for download from the Update Center under search type “Collaborative Portlet.” Although the application specifications of the “native portlet” (for example, P4310SS, P4311S, P43230SA, P4334SS, P43001SS, P0092SS, P01012SS) can be reviewed in FDA, they should not be modified because the form is not an FDA portlet.
Batch Application Definition
As an alternative to interactive applications, batch applications can also help your user base perform a large variety of business-related functions. Batch applications more fully utilize the power of Configurable Network Computing (CNC) with scheduling and through the use of different application servers to handle the processing load.
Chapter 6:
Interactive and Batch Applications Defined
235
Batch applications are extremely powerful tools for massive data manipulation and output. UBEs can read data from tables within EnterpriseOne for informational purposes, and they can perform data conversions to read and manipulate data within the system. Batch applications or UBEs can also create comma-separated value (CSV) files and trigger e-mail notification. A CSV file can be opened with Microsoft Excel. With new tools such as the XML publisher, you can also create very crisp-looking forms, such as a packing slip. This type of functionality can enable companies to further leverage their investment into their EnterpriseOne system.
Walkthrough of Report Design Aid (RDA) This section will walk you through the basic screens in the Report Design Aid Director, a wizard-like tool that assists you in setting up a basic report. Additional code must be added to the report for further functionality or custom requirements. The first screen of the Report Design Director, as shown in Figure 6-6, provides the initial setup of the report. This is where the developer must make decisions
FIGURE 6-6. Report Design Aid
236
JD Edwards EnterpriseOne: The Complete Reference
about the three main sections of the report. The first section is the header section, where the name of the company or other information can be placed. In addition to a page header, a report header can be selected if necessary. The next section is the body of the report. There are three types of layouts that can be selected for the body: ■
Columnar
■
Group
■
Tabular
A columnar type of report will give the report a look similar to a listing and will place the selected fields straight across the top of the section. The group format, as the name suggests, will give you the ability to group and move the selected fields around. The tabular format will give a spreadsheet look to your report. The final decision to be made is whether the report will require a page footer or a report footer. If you decide to put a page header into the report, the Report Design Director will ask if you want to have the director automatically or manually lay out the page header. If the automatic option is chosen, the Report Design Director will place the report name, the company name, the report title, a page number, and a date and time stamp on the header of the report. The next step in the process is to decide which business view will be assigned to the report. Here you can choose whether to have the system give you a list of business views or to have the program choose the business view. Generally, it is easier to have the program choose the business view. When first laying out the information needed for a report, the developer should initially know which business views are out there or create one for the specific purpose of the report. Choose the business view you will use. Here, via the QBE utility, you can choose the business view by supplying either a description or the name of the business view. After finding the appropriate business view, highlight it and click the Next button. After choosing a business view, the Report Design Director leads you to choose which columns are needed for the report or the section layout screen. On the left side of this screen are all of the columns that are in the chosen business view, and on the right side are the columns that have been chosen for the report. To add or subtract the columns, you can highlight them and click the arrows on the bottom of the screen, or just double-click and drag them. After choosing the columns to be displayed, you can align their order by highlighting them and using the up and down arrows until they are in their desired order on the right side of the display. After you have completed this portion, the Report Design Director will help you with sequencing the data within the columns. Similar to the layout screen, all the columns in the business view are listed on the left side and the data is sequenced on the right side. Make sure that when placing columns on the right side of the form
Chapter 6:
Interactive and Batch Applications Defined
237
they are listed from the top down in the sort order you want, starting with the top field being the first or highest level for the data sequencing. After the sort order is determined, the Report Design Director will bring the columns that were selected into the next step of the process. This is where the actual sort properties are determined. Here it can be determined whether the sort order for each column should be ascending or descending order, whether there is a level break needed for each column, and whether there should be a page break after each column. After the sort properties are selected, the data selection must be determined. Here you can decide what data from the associated business view is needed. After this last portion of the Report Design Director is completed, the report is finished, and a congratulations screen will appear. This is the final screen associated with the Report Design Director. Click the Finish button, and the system will automatically generate the report with the specifications that were entered. At this point, the report will run only on the workstation on which it was created, although the object librarian will now have a system-wide record for the report. To give others access to the batch application and/or to have it run on the server, the application will need to be checked in, a package built and deployed.
Report Templates A report template is the UBE name itself. This template holds the specifications for the report. It also holds all of the business function calls and the code that actually drives the report. When you create a version it uses this template to create the version, which we will talk about shortly.
Report Versions Each report is based on the template, but a version is required for the report to run. A version can be created automatically when the report is initially made. Consider the following example. Suppose you have a report that shows sales orders by business unit. The version would allow you to specify sales orders for a subset of data, such as only one business unit rather than all business units. Let’s look at versions in more detail for both reports and interactive applications.
Versions
Versions are a stroke of development genius. They are a set of dynamic specifications that the user can manipulate to customize either batch or interactive applications. With versions, the integrity of the report or interactive engine is preserved while still allowing for very quick, on-the-fly data-manipulation modifications by the user base. The user does not have to change the code to change the operation of the code. Rather, versions allow the user to stipulate a variety of possible options. Versions let you extend EnterpriseOne functionality beyond your application
238
JD Edwards EnterpriseOne: The Complete Reference
developers out to the people who should know the business better than anyone: power users. CAUTION Even though versions extend flexibility to the power user base, it is important that any changes being considered go through a very tightly controlled change management plan. Changes in processing in one module of an integrated enterprise system may have unintended effects on other modules. Your implementation partner can best help you design a change management plan that will suit your organization’s business requirements. The CNC administrator needs to have an understanding of application security and version security to help maintain system integrity with the change management plan. Through the use of data selection and processing options, the user can easily modify the scope of the report versions. These versions inherit the characteristics of the parent UBE or template application, but can be modified for specific purposes. Each application can have any number of versions associated with it, and each version can perform different functions depending on its characteristics. There are three main characteristics that can be changed by each version: ■
Data selection
■
Data sequencing
■
Processing options
TIP There are RIS versions that are preconfigured versions that are used by the Oracle Business Accelerators (OBAs). RIS is a naming convention so that you can easily recognize these versions. These versions are protected, meaning that their processing options will not be changed by an ESU. Oracle Business Accelerators can help your reduce your implementation time.
Chapter 6:
Interactive and Batch Applications Defined
239
Data Selection Data selection is used to narrow down or limit the amount of data that the application will process. For instance, the user might want to pull specific business units for a trial balance report. Without requiring any knowledge of SQL, data selection is the mechanism that allows the user to specify the specific business unit. The data items—such as business units—that these data selections can be processed against have to be associated to the batch applications through the business view. NOTE Data selection can be changed on the fly by the users. The versions can also be set up to prompt the user for data selection at run time. However, be aware that if a user submits a report with data selection, that will be the data selection used if the report version is called by the EnterpriseOne scheduler. This is why all scheduled jobs should have specific scheduler versions.
Data Sequencing Data sequencing is another way of formatting and specifying the display order for your data. For instance, data sequencing within a report allows you to put business units in ascending order and then sort each object in descending order. The columns to be sorted must be associated to the business view of the application.
Processing Options Processing options are one of the most powerful tools in EnterpriseOne. They can allow you to change your business process by simply changing a flag or option. These can be used for both batch and interactive applications. For instance, a processing option flag allows you to set a report to clear data after the report is run or keep the data in the tables to be erased later. Processing options are similar to data selection in that they specify subsets or qualified data for the application to process. For example, processing options allow you to specify ledger types. Other processing option flags allow the user to decide whether a report should commit records to the database or just run in proof mode (this option is very handy in cases of data manipulation such as updates, inserts, and deletes).
240
JD Edwards EnterpriseOne: The Complete Reference
NOTE It is important to note that processing options are dynamically available to the EnterpriseOne system because they are recalled every time an application is run. These values are stored in the F983051 table, which is the versions table.
Batch Versions Versus Interactive Versions In EnterpriseOne, every batch application has an associated version connected to it. However, not every interactive application has a connecting version. Overrides can also be placed on a report version through the design tools. With these overrides, a programmer can actually change the report to fit a specific need while still keeping the template intact. This can be done for batch applications through the OMW. The version must be checked out in the same fashion as UBE. Interactive applications are handled in a little different manner. You can access interactive application versions from the Object Management Workbench. However, with interactive versions, you do not have as much freedom to manipulate the application. The main use for interactive versions is to modify the processing options for that particular application. The different versions on an interactive application allow for different business units to have different business processes while using the same base application. An example would be the address book application with a processing option to default in the search type. One business unit may want the search type to default in as E-Employee, where another might want the search type to default in as C-Customer.
Commonalities When creating new versions—interactive or batch—there are some common items that must be filled out by the user: prompting option and version security.
Prompting Option Applications called from the JD Edwards EnterpriseOne Solution Explorer menus will behave in one of three ways with regard to prompting versions for the user to manipulate, depending on the following settings: ■
Blank (no processing options) This option states that there are no processing options associated with this application.
■
1 (blind execution) This option indicates that this version has processing options that are not displayed when the application is run.
■
2 (prompt for values) This option specifies that every time this version is run, the user is prompted for processing options.
Chapter 6:
Interactive and Batch Applications Defined
241
TIP This value for processing option prompting is located in the F983051 and can be used to help configure your security. You can perform a SQL query to determine what versions are set to prompt to processing options. These are the versions for which you do not want to restrict users on changing processing options, as the business process requires that they change processing options.
Version Security The next important option is the security level assigned to the version. There are four different levels of security that can be applied to versions: ■
0 (no security) This is the default value and will let all users design, change processing options, change detail values, check in, check out, install, transfer, copy, delete, or run the versions.
■
1 (medium security) This level will allow only the “Last Modified By” user to have access to design, change processing options, change detail values, check in, check out, or delete the version. It will allow other users to install, copy, transfer, or run the version.
■
2 (medium to full security) This level allows all users to install or copy the version, but lets only the “Last Modified By” user complete all the tasks.
■
3 (full security) This level allows only the “Last Modified By” user to do anything, including run the application.
What is happening behind the scenes is the following. Version security is a UDC called H98:EX, which correlates to the data dictionary item called EXCL. Possible UDC values are 0, 1, 2, or 3, as listed earlier. When you create a new version and assign the security level, the security value is stored in the F983051 table as VREXCL, with the user as VRUSR0. When the user does a Find against versions on the UBE, EnterpriseOne does a Select against F983051 as well as against the UDC tables. Then, when the user selects a version to run, the business function VersionListCheckVersion validates whether the user has access against all the various cached data. This type of security is different than security defined by the security workbench. Application security provides or prevents access for users running a particular version and still gives them access to the report or application. In some cases, you may create multiple versions that you want to make accessible to your user base for their selection, although within that series of versions you might want to make one particular version available to only one particular user.
242
JD Edwards EnterpriseOne: The Complete Reference
Summary
In this chapter, we have taken a look at what defines an application and the two main types of EnterpriseOne applications: the batch application and the interactive application. We also touched on some development standards and the development process for the applications. We discussed the different ways that batch and interactive applications enable users to interface with the data stored in the system. Interactive applications are field-level, tab-validation forms with which the user interacts. Reports can be initiated by the system or scheduled to run with no further user intervention. We then presented the steps necessary to develop both interactive and batch applications so that the CNC administrator can better understand what developers are doing. This step-by-step explanation will help CNC practitioners in their troubleshooting function. Finally, we explored the subject of versions, which we feel is the key to JD Edwards EnterpriseOne’s flexibility and the element that enables the power of ERP to be extended throughout the enterprise. We discussed how data selection, data sequencing, and processing options allow users to flexibly address data without altering code. But with flexibility comes danger, so we discussed version security and indicated the difference between application and version security. Our intention with this chapter was to give you an understanding of the importance and power of interactive and batch applications. We also wanted give you an idea of the different types of forms that make up an application.
CHAPTER
7
Packages and Their Delivery 243
244
JD Edwards EnterpriseOne: The Complete Reference
W
e can discuss the inner workings of Oracle’s JD Edwards EnterpriseOne, and you can have it installed on the various servers by your implementation specialist. The question, however, must arise surrounding how you deploy the software, its updates, and modifications you create throughout your enterprise. The answer: packages. Packages enable EnterpriseOne to be a distributed solution. In this chapter, we are going to provide information on the package build process and how this process affects your system’s architecture. We’ll cover the following topics: ■
EnterpriseOne packages
■
Centralized versus decentralized package strategies
■
Workstation packages
■
Server packages
■
Package deployment
■
Troubleshooting packages
EnterpriseOne Packages
A package can be defined as a snapshot in time of a particular set of your enterprise resource planning (ERP) software. It is a compilation of the source code (foundationand path code–specific) that is used throughout the enterprise on all types of clients and servers. A path code can be roughly defined as a set of central object tables and C functions. These central object tables are a key to your EnterpriseOne system, because these relational database tables contain information about your EnterpriseOne objects. An EnterpriseOne object is a business function, data structure, business view, table, version, business library, Universal Batch Engine (UBE), or an application. These objects define how the software operates and looks, and they define much of the code that actually processes and distributes your data generating the information that will help drive business value across your enterprise. The software comes with multiple path codes allowing a standard development life cycle (SDLC) to be utilized without negatively impacting the production code. The central object tables are relational database tables containing information about your objects that tell the system how the application will look—that is, what data the report will show.
Chapter 7:
Packages and Their Delivery
245
NOTE If you need more information on EnterpriseOne environments and path codes, refer to Chapter 2. As stated previously, a package is a snapshot in time of these tables. When a package is built and this “snapshot” is taken, the information in the central object tables is read and converted into a new format, XML/TAM (Table Access Manager). Releases 8.11 and lower used TAM files, but with 8.12 the specs have mostly moved from TAM to XML. The update process still uses TAM and the dddict, ddtext, and glbltbl tables are still in TAM format. Your development client workstations, HTML servers, and EnterpriseOne servers read XML/TAM in order to run EnterpriseOne. TAM is proprietary to EnterpriseOne and is a flat file system. TAM simply presents the information to your client workstations in a manner that can be accessed quickly. Speed is not the only advantage to XML/TAM. Remember that a package is a snapshot in time of your central object tables with associated runtime C code. When you make a change to the software, you need to test the change before allowing end-user access. If each client read directly from the RDBMS (besides WAN/LAN performance issues), any development would be immediately accessed by everyone using that path code. XML/TAM allows the majority of your development workstations to continue running on an approved, tested package (that is, they have an image of the application or report before your modification). You can then build a package with the change and thoroughly test it prior to making it generally available to your enterprise. XML/TAM gives you the ability to distribute objects around the system while providing another safeguard for change control management. Now that you know the role central object tables play in the EnterpriseOne and package build process, let’s discuss C components. The EnterpriseOne system uses business functions (pieces of C code and an EnterpriseOne object) to define many of the functions associated with the EnterpriseOne application. To run, C code must be compiled. When you perform a package build in EnterpriseOne, you compile these objects. The compiler builds a dynamic link library (DLL) (also known as a “business function library”). These DLLs hold information required for the software to function correctly. In the following sections, we will discuss how the central object tables and the C components fit into the package build process. NOTE EnterpriseOne is a multiplatform ERP solution. DLLs are created on Windows platforms (both client and server). On platforms that do not use DLLs (for example, iSeries servers), analogous files are created.
246
JD Edwards EnterpriseOne: The Complete Reference
Centralized Versus Decentralized Strategy
Before we discuss the different types of packages, we need to understand the highlevel architecture strategies as they relate to packages. EnterpriseOne gives you the ability to be flexible with your system architecture so your system grows to meet your changing business requirements.
Standard Central Objects and Check-in Location EnterpriseOne software delivers a single path code out of the box that your Configurable Network Computing (CNC) implementation specialist will duplicate a minimum of three times (four if you plan on development). These standard path codes are ■
PD812 Production path code
■
PY812 Prototype path code (for the older OneWorld specialist, this is the conference room pilot [CRP] path code)
■
DV812 Development path code
■
PS812 Pristine path code
The documentation that you receive with EnterpriseOne shows you how to set up the standard configuration, including the path codes previously listed. The check-in location is a directory structure that contains the C component files for a path code. You are not restricted to having the check-in location only on your deployment server, though that is a typical deployment of the product. You can separate the location of your central object tables if your business requirements dictate.
Decentralized Strategy You may create a custom or decentralized strategy for your path codes and check-in locations (for example, if your company plans significant development in EnterpriseOne). Most companies do not want their development objects on the same machine that acts as their production machine. After all, the nature of development means that the development environment will have some objects that are not fully stable. To separate your development and production machines, you need to ask yourself what must reside on the development box and what can reside on the production machine. You should place your central object tables for the development path code on your development server. You can also place your prototype path code on this server because it is normally associated with your testing environment. However, it is a good practice to have a separate testing machine.
Chapter 7:
Packages and Their Delivery
247
We also need to address the issue of where you would place your data. Let’s start with the development machine, your most “unstable” machine. The developers are most likely going to need the machine cycled, logging turned on to isolate any problems, and in general, more maintenance tasks performed. This is why you place your development central objects, control tables, and business data on this machine. You also probably want to install the prototype (PY812) central objects, control tables, business data, and host code on this machine, assuming you do not have a separate prototype machine because your testing environment is often associated with the PY path code. Because EnterpriseOne supports multiple data dictionaries, it’s difficult for the authors to definitively state where the data dictionary tables should reside. You can locate these tables on the production machine (it is generally a high-availability machine); however, that is not your only solution. Your CNC administrator may configure two sets of data dictionary tables, one for production and one for everything else (prototype, development, and testing). NOTE EnterpriseOne provides an organizationally significant flexibility in how the system is configured, but this flexibility is a double-edged sword. Changing the default setup adds complexity to your system both in the initial setup and eventual maintenance. In EnterpriseOne, the development workstations normally have only a partial set of data dictionary TAM files. If a user attempts to run an object and does not have the necessary data dictionary information in their client TAM files, the software performs a just-in-time installation (JITI) of the data dictionary item. If you have only one data dictionary and your development staff changes something, it could be seen immediately on one of your production client workstations. If you are going to run two data dictionaries, you need to understand that it is a trade-off between taking on more maintenance tasks for your staff and having a more stable system. When you run two different data dictionaries, you will need to ensure that you move the data dictionary changes into your production data dictionary as you promote objects into your production path code. If you forget to do so, you will not be able to run any object that references a new or changed data dictionary item. Finally, the authors recommend placing the system and object librarian tables on your production machine because this data must be available for EnterpriseOne to work properly.
248
JD Edwards EnterpriseOne: The Complete Reference
Advanced Distributed Strategies You have a number of options when designing your architecture to ensure high availability. We have already discussed separating the production and nonproduction central object tables and the data dictionary; we will now address separating the check-in location or setting up separate system and object librarian tables for your production system. Advanced Check-in Location Configurations EnterpriseOne’s flexibility allows you to change your check-in location to a different server instead of the deployment server. You may be wondering why you would want to divide your check-in locations. Most companies will not want to do this; however, some organizations may have the need for such a configuration to facilitate remote development or for other architectural considerations. Hundreds of developers work in Oracle’s development department, and each of them is working on a different project. Development has divided their check-in locations across different machines, which means that if they lose their deployment server and the check-in location is on a different machine, they can still check out their object and work with it, assuming that the database containing the system, object librarian, and central object tables is still up and running. To determine what, if any, special modifications you need for your ongoing EnterpriseOne system requirements, the authors highly recommend that you consult your CNC specialist or systems provider.
Workstation Packages
As you work with EnterpriseOne, you will learn that there are several different types of packages. Workstation packages are deployed to your development workstations in order for an EnterpriseOne client to run. NOTE This chapter on package builds was written for the version E812 and later releases of EnterpriseOne. Though the information is useful for prior releases of the application, there may be specific differences not discussed. Additionally, any release after E812 could have differences as Oracle continues to improve the product. The EnterpriseOne system gives you several options for the types of packages that you can build. You must determine what type of package suits your business’s needs.
Chapter 7:
Packages and Their Delivery
249
Full Package A full package is a complete snapshot of all specifications contained in your central object tables and the C components in your check-in location at a point in time. When you deploy this package to a client workstation, that workstation will have the specifications for all of the objects in that path code. This type of package takes up the most drive space and takes the longest time to build because of the processes necessary to encapsulate the application runtime. Among other things, when you build a package, the system is performing SELECT statements over your central object tables and converting the information into XML files. This type of package, because of its simplicity, is the best one to build when you are just starting to work with EnterpriseOne. You will always have all of the objects that have been checked into your central objects in this type of package.
Update Package You may decide the time required to build a full package (between six and eight hours) is more effort than its benefit is worth when you have changed only a handful of objects. For example, if you applied an Electronic Software Update (ESU) that modified ten objects and you needed to deploy this quickly, you won’t want to wait 12 hours to build a full package, test it, and then schedule its deployment. DEFINITION Electronic Software Update (ESU): An ESU is the way that Oracle delivers application code changes, allowing you to merge changes directly into your system. When a limited number of objects have been modified, you can build an update package that contains the specifications for the specific objects included in the package definition. When you deploy an update package, it will merge the specifications into the existing package on the client workstation. An update package is an ideal way of deploying necessary changes to the system quickly.
Overview of Package Delivery Package delivery consists of three basic steps: 1. Define the package. 2. Build the package. 3. Deploy the package.
250
JD Edwards EnterpriseOne: The Complete Reference
Defining a Package The first step in building a new package is defining it. To start, you need to log on to an EnterpriseOne client workstation or the deployment server in the deployment environment. Navigate to the Package and Deployment Tools menu GH9083. To define a new package, select Package Assembly (P9601). Double-click this application (this opens the Work With Packages window). This application automatically shows all defined packages (click the Add button to define a new package). The director will guide you through defining a package. You will be initially presented with a welcome window and then a Package Information window, shown in Figure 7-1. This window gathers key information about your package. NOTE The authors recommend using the Director mode, not the Express mode, for Package Assembly. The out-of-the-box default has the Express option selected. This can be changed with a processing option in P9601.
FIGURE 7-1. Package Information window (P9601/W9601F)
Chapter 7:
Packages and Their Delivery
251
NOTE The authors recommend developing a consistent naming convention for your company; the maximum is 9 characters. We recommend PCYMMDDT: PC=Path code Y=1 digit year MM= month DD=Day T=Type (U for Update, F for Full) Once you have completed the Package Information window, click the Next button to display the Package Type Selection window, shown in Figure 7-2. On this window, you choose the type of package that you want to build. The Package Type Selection window has two radio buttons that you use to choose the type of package you want to build. If you want to assemble a full or update package, click the corresponding button. However, if you choose to assemble an update package, the Parent Package field becomes accessible. When you assemble an update package, you must include the Parent Package field. This field controls which full package is updated with the information from
FIGURE 7-2. Package Type Selection window (P9601/W9601G)
252
JD Edwards EnterpriseOne: The Complete Reference
your update package. EnterpriseOne will update the full package that you enter in this field with your changes from update packages. Once you have completed entering this information, click the Next button. If you have a mobile environment defined for the Path Code the package is being built for, then the Mobile Client Database Revisions form will display. From this form you can select to build a Mobile Client Package; the mobile package will be the name of the package with _M (underscore M) appended to the end. Click Next to display the Foundation Component window. Here you accept the default for your foundation (the system directory), or you can define a custom foundation. If you are new to EnterpriseOne, accept the default. The Database Component window is next. Unless you are using the store-and-forward functionality, use the default provided by the director. Click Next; the Object Component window is displayed (see Figure 7-3). If you selected to build a full package, you can click Next on the Object Component window. If you selected to build an update package, you must identify the objects to include in the package.
FIGURE 7-3. Object Component window (P9601/W9601O)
Chapter 7:
Packages and Their Delivery
253
Click the Browse button to launch the Object Component Selection window, shown in Figure 7-4. This window enables you to find objects by searching for the OMW Project Name, the object name, the description, object type, status code, or the other fields on this window with a Query By Example line. CAUTION If searching by OMW Project Name, only the latest project containing the object in question will be returned by the search. If an object is in several projects (a bad practice in the first place), then ensure that you’ve searched by the object itself. When an ESU is applied, an OMW Project is created with all objects in the ESU. To find these objects, use the search in the OMW Project Name field using ESU Number (underscore) Path Code, for example JK12345_DV812.
FIGURE 7-4. Object Component Selection window (P9601/W9601D)
254
JD Edwards EnterpriseOne: The Complete Reference
Once you have identified the object(s), select it by highlighting the line and clicking the Select button. If you want to add UBEs or interactive applications to your package, you need to choose one of the three radio buttons (All Versions, PeopleSoft Versions, Select Versions) in the Object Component Selection window. When you are defining an update package and you finish selecting the objects that you want to include in the package, click Next to access the Features window where you will be able to select web development objects or Workflow Modular. Features have to be set up manually in the P9623 application in a DEP812 environment prior to selecting it for a package. Click Next to access the Language Component window. Select a language to deploy to the workstations. English is always shipped with the EnterpriseOne product, but if you want a different language, you must have previously installed the EnterpriseOne Language CD. After you choose your language, click Next to access the Package Component Revisions window shown in Figure 7-5. You will see what you have selected for the Foundation, Database, Objects, Features, Language, and Mobile Client Database.
FIGURE 7-5. Package Component Revisions window (P9601/W9601B)
Chapter 7:
Packages and Their Delivery
255
To save your package assembly information, click the End button. If you click Cancel, you will lose your changes. NOTE If no foundation or database is selected, the software will use the default foundation or database. When you click End, the Work With Packages window launches (see Figure 7-6). The new package you defined is on this window with an open box next to it, meaning the package is still in definition. You need to highlight the package name and select Row | Active/Inactive to display the package with the box closed. The next step is defining the build.
FIGURE 7-6. Work With Packages window (P9601/W9601L)
256
JD Edwards EnterpriseOne: The Complete Reference
In the Work With Packages window, choose Row | Define Build to display the Package Build Definition director. This director guides you through package build options. The Package Build Location window, shown in Figure 7-7, indicates whether you are going to be building a client workstation package, a server package, or both. You can, and often will, build both types of packages at the same time. NOTE Figure 7-7 shows a full package build. For a full package build with server selected, the Share Specs option must be checked and the Shared Location field will auto-populate. If you build for more than one server, all servers will share the same specs database; however, they will still use their own DLLS. After selecting Client, click Next to display the Build Specification Options window shown in Figure 7-8. This window tells the EnterpriseOne system to build the XML/TAM specification files for a package. You are given this option so that if
FIGURE 7-7. Package Build Location window (P9621/W9621F)
Chapter 7:
Packages and Their Delivery
257
FIGURE 7-8. Build Specification Options window (P9621/W9621G) you have to go back later and rebuild part of a package due to errors, you won’t have to build the entire package over again. The All Specification Tables and Individual Specification Tables radio buttons are available if you are building a full package. They enable you to build all the XML/TAM files or just one. If you choose to build one XML/TAM file, for example, if you were troubleshooting a package build, select the Individual Specification Tables radio button and click Next. In the Individual Specification Selection window, shown in Figure 7-9, you can select the specification tables you want to build. The Stop-Build Option in the Build Specification Options window controls what happens when an error occurs during the package build process. The valid values for this field are ■
01—Continue Build On All Errors
■
02—Stop Build On Spec Failure
258
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 7-9. Individual Specification Selection window (P9621/W9621P)
■
03—Stop Build On BSFN Failure
■
04—Do Not Compress If Errors
When you select Continue Build On All Errors, that package build will run to completion, even if a specification file does not build correctly; by allowing the build to continue with errors, you can troubleshoot that error and may not have to rebuild the entire package. The Do Not Compress If Errors option tells the software not to compress the package if it has errors. EnterpriseOne compresses your full and partial packages, ensuring limited network utilization during deployment.
Chapter 7:
Packages and Their Delivery
259
The Replace JDE.INI option may be grayed out. The Replace JDE.INI option is accessible only if you are building an update package. This is a good way to roll out changes to the development workstation JDE.INI files. After you choose Next on the Build Specification Options window, the Business Function Options window, shown in Figure 7-10, launches. This window controls whether the business functions are built. The specification XML/TAM files for business functions are always built. If you are going to build the named event rules and DLLs, the Build Functions Options check box calls the Busbuild application, which compiles your business functions. This window also has options that control the business function build. After the Business Function Options window, the Compression Options window, shown in Figure 7-11, launches. This window defines which directories are compressed during the package build process. This option should be selected only for full packages.
FIGURE 7-10. Business Function Options window (P9621/W9621N)
260
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 7-11. Compress Options window (P9621/W9621M)
If you compress the update packages, you will receive errors when deploying them to client workstations. The only time that you should compress an update package is when using the product packaging tools. Table 7-1 lists the options on the Compression Options window. After you click Next in the Compression Options window, the Package Build Revisions window, shown in Figure 7-12, is displayed. Here, you review the definitions for your specification build, business function build, and compression option build. If you are satisfied with the options you have chosen, click the End button, not the Cancel button. If you click the Cancel button, you will lose all your current definitions. When you click the End button, you are taken back to the Work With Packages window. On the Work With Packages window, select your package name and click the Activate/Inactivate button.
Chapter 7:
Packages and Their Delivery
Table Name
Specification Name
Package Table Name
Table Owner
F98710
DDTABL
F98710DV812FA
DV812FA
F98711
DDCLMN
F98711DV812FA
DV812FA
F98712
DDKEYH
F98712DV812FA
DV812FA
F98713
DDKEYD
F98713DV812FA
DV812FA
F98720
BOBSPEC
F98720DV812FA
DV812FA
F98740
GRBLINK
F98740DV812FA
DV812FA
F98741
GRBSPEC
F98741DV812FA
DV812FA
F98743
DSTMLP
F98743DV812FA
DV812FA
F98750
FDATEXT
F98750DV812FA
DV812FA
F98751
FDASPEC
F98751DV812FA
DV812FA
F98752
ASVRHDR
F98752DV812FA
DV812FA
F98753
ASVRDTL
F98753DV812FA
DV812FA
F98760
RDATEXT
F98760DV812FA
DV812FA
F98761
RDASPEC
F98761DV812FA
DV812FA
F98762
JDEBLC
F98762DV812FA
DV812FA
TABLE 7-1.
261
Specification Tables in E812 Package Build Process
What Happens During a Package Build Now that you have activated the package, you are ready to begin the package build process. Click the Submit Build button (this launches the R9621 Package Build report, which will run locally). In this section, we are going to cover what happens when this UBE runs. NOTE With the E812 version of the software, Oracle moved from a TAM (Table Access Management) format creating two files per specification (a .ddb and a .xdb) to an XML specification file; this creates a table for each spec file. The client stores these tables in the Microsoft SQL Server Desktop Engine (MSDE) or SQL Server Express (SSE) database, and the server build stores them on the database.
262
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 7-12. Package Build Revisions window (P9621/W9621B)
R9621 for a Full Package Build The R9621 report builds a full package and is the key to the package build process. By understanding this report, you can debug most package build issues. First, this UBE creates a package directory structure on the deployment server under the path code directory defined. This directory structure will have the same root name as the package. Under this directory, you will find the following directories: ■
bin32
■
include
Chapter 7:
Packages and Their Delivery
■
lib32
■
make
■
obj
■
pkgspec (this is a temporary package used for the specification build process)
■
res
■
source
■
spec
■
work
263
This first step creates an empty directory structure. The R9621 report then creates the package INF file. This file contains package information such as pointers to the CAB files that will be generated from the package build process and the path to the .inf files of any features that are included in the package. The second step of the process involves copying the .c and .h files (located in the source and include directories) from the check-in location for the package into the appropriate directory under the package file structure. These files are used in the definition of EnterpriseOne for business functions and tables. The package build process then copies the contents of the make and work directories from the check-in location to the newly created package directory. NOTE If you do not select to build business functions when you define your package, then the source, include, lib32, obj, make, and work directories are copied out of the check-in location. The software uses the contents of the check-in location and does not recompile the business functions and named event rules. So far, the package build process has only copied files and created directories. At this point, the package build process reads the central object tables and generates your XML specification files in the pkgspec directory under your package directory— for example, E812\DV812\Package\package name\pkgspec, where package name is the name of the package you are building. Each of the tables has a DBMS table generated as part of the package build process (refer to Table 7-1) stored in MSDE for the client and RDB for the server.
264
JD Edwards EnterpriseOne: The Complete Reference
NOTE MSDE support will be dropped in Q2 of 2008. SSE will be supported from that time forward. NOTE Because the package table name changes with the package name, they are not listed in the object librarian and can’t be queried by EnterpriseOne tools. The package tables listed in Table 7-1 are created in an MDSE database called SPEC__DV812FA.mdf (SPEC two underlines and the package name) in the pkgspec directory under the package name. Once completed, this database is copied to the spec directory and renamed SPEC_DV812FA.mdf (notice that there’s only a single underscore this time). Busbuild While the XML specification files are being built, the business function build process begins. The business function build process calls the C compiler required for your deployment server or development workstations. It uses this compiler to build your business functions and NERs (named event rules). This process occurs through the Busbuild application launched on the build machine. When Busbuild runs, it does several things in the background including generating NERs. When you generate an NER, it creates both header and source files. Once generated, they are located in the source and include folders under your package directory. Next, make files are generated and the C source code is compiled into the obj files. Busbuild then links the obj files into libraries that are placed in the lib32 directory under your package directory on the deployment server. The DLLs are generated from the libraries in the obj directory. These DLLs are then placed in the bin32 directory. Then the NER files are copied back into the check-in location. Finally, the package is compressed. This generates a CAB file for each of the directories under your package directory containing all of the information in those directories. Finally, the bin32, lib32, and obj directories are copied back into the check-in location so that if you build an update package, it will have the most current set of DLLs to add information into. If the directories were not copied back into the checkin location, information would be missing from these DLLs.
R9621 for an Update Package Build Update packages are a great way to deliver a small number of changes to your end users quickly; however, you need to know how these packages are built in order to easily troubleshoot them.
Chapter 7:
Packages and Their Delivery
265
When you build an update package, it launches the R9621 report just like building the full package described earlier. The overall process associated with the R9621 is identical regardless of the type of package build with minor differences. During an update package build, only information on the objects that you selected to be built into the package will be placed into the XML/TAM specification files. On update packages, EnterpriseOne creates TAM specifications instead of the newer XML spec files defined in the full package build area of this chapter. If you selected to build business functions for your update package, the software determines which business functions or named event rules you need to build based on the package definition. It copies the DLLs associated with these objects from the check-in location. So far the update package build process has been fairly similar to the full package build process. However, when this point is reached, the update package build process proceeds differently. A backup directory is created, and the CAB files from the parent package, which you defined during your package definition process, are backed up. The obj, lib32, bin32, source, and include files are then copied from the update package to the corresponding directories in the parent package directory. Once this has been accomplished, these same directories are copied from the update package directory structure to the check-in location. The process then moves on to merge the specification files from the update package with the specification files from the parent package. Then the update package build process is complete. Why do we copy the information from the update package back into the checkin location? If the software did not copy this DLL back into the check-in location, you would not have a good base DLL to add information to. NOTE The TAM specifications used for a client update package are converted to XML specifications for a server update package.
Tables Used During a Package Build Definition and Build Process Let’s briefly discuss the tables used to define and guide the package build process. They contain various kinds of information, including the date you build your packages, the type of package you build, and what the package contains. The F9603 table (Package Header) contains the following information on your packages: ■
Name of the package
■
Description of the package
266
JD Edwards EnterpriseOne: The Complete Reference
■
Path code that the package is being built over
■
Type of package
■
Package definition status
■
Parent package name (for update packages only)
■
Include Object Specs flag (for update packages only)
The F9631 table (Package Detail) contains the following information: ■
Package item type (when the package contains custom definitions for the EnterpriseOne foundation, objects, or data files; information will be listed in this column)
■
Object name (for update or partial packages)
■
Version (the UBE version included in the partial or update packages)
You have probably noticed that the tables contain similar kinds of information. This provides easy linkage. The F96021 table (Software Package Build Header) contains the following information: ■
Name of the package
■
Path code that the package will be built over
■
Whether the package is a client or server package
■
Build status
■
Whether the JDE.INI file will be replaced
■
Date when the package was built
■
Whether business functions were specified
■
Build mode for the business functions
■
Whether the output destination should be cleared when building business functions
■
Amendments to the business function build log, if any
Chapter 7:
Packages and Their Delivery
■
What will stop the build (for example, Stop Build On Error or Continue Build On All Errors)
■
Selection chosen to stop Busbuild on error
■
Whether all of the specification files are being built
■
Whether all of the specification files are being compressed
■
Whether to transfer without building the specifications (for server packages only)
■
Whether to build the business function documentation
267
The F96215 table (Package Build Header History) is an important table because it drives the Package Build History application. We will discuss the Package Build History application in the section “Troubleshooting Package Builds,” later in this chapter. This table contains the following information: ■
Name of the package
■
Path code that the package is being built over
■
Whether it is a client or server package
■
Date and time the package was built
■
Build status
■
Whether the JDE.INI file is going to be replaced
■
Whether specification files were built
■
Whether business functions were built
■
Build mode for business functions (for example, 20 Optimize)
■
Whether to clear output destination during the business function build
■
Amendments to the build log
■
Selected stop Busbuild on error option
■
Selected stop build on error for specifications option
■
Whether all specification files were built
■
Whether specification files were compressed
268
JD Edwards EnterpriseOne: The Complete Reference
■
Transfer without building the specifications (for server packages only)
■
Whether you want to build business function documentation
The F9622 table (Package Build Detail) contains the following information: ■
Name of the package
■
Path code the package is being built over
■
Whether it is a client or server package
■
Which specification files to build
■
Which directories to compress
■
Which business functions to build and their associated DLLs
The F96225 table (Package Build History Detail) contains a lot of the information that will be displayed on the Package Build History window. It contains the following information: ■
Name of the package
■
Path code the package is being built over
■
Whether it is a client or server package
■
Build date and time
■
Which XML/TAM files were built
■
Which business functions were built
■
Which files were compressed
■
Number of records read from the central object tables for each specification file
■
Number of records written to each of the specification files that were built
■
Status of each specification file (whether it built successfully or an error occurred)
■
Number of pack records written and read (for server packages)
■
Pack status (whether the pack operation was successful)
Chapter 7:
Packages and Their Delivery
269
Server Packages
What are the differences between client and server packages? ■
Server packages are machine type–specific (that is, different code for a UNIX server versus an iSeries).
■
Server packages launch the R9622 UBE, which initiates the server build on the server itself (this is discussed more later in this chapter) in addition to the R9621.
■
C code compiled on the server itself and is specific for that type of server.
■
You check the box for the server by name when defining the package build.
■
Not all functions are designed to run on the server—a server package build is designed to build only the appropriate code on the servers themselves.
NOTE With the E812 version of EnterpriseOne, the specification files are the same for both client and server. Suppose you have developed a brand new report. To move this report to your client workstations, you have to build a client package. The same is true for a server. If you have changed a report, business function, data structure, business view, or table definition, you will need to update the specification files on your enterprise or application server with this information. This process is completed via a server package. When you define a server package, you follow a process similar to the one we discussed in the section “Workstation Packages,” earlier in this chapter. One difference is that you check the Server(s) check box on the Package Build Location window (shown earlier in Figure 7-7). Another difference in defining a server package, instead of a workstation package, is that you must tell the system what server you are defining the package for. After you check the Server(s) check box and click the Next button on the Package Build Location window, the Server Selection window is displayed, where you select a server. When you select a server, a check mark is displayed to the left of the server name. Make sure that you see a check mark next to the server name before moving on from this window. As you can see in Figure 7-13, you can build the same package on multiple servers at the same time.
270
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 7-13. Package Assembly Server Selection window You can also build the package as both a server and client package simultaneously. However, if you are having problems with the package build process, the authors recommend that you build your client and server packages separately. After you have defined and activated your server package, the Work With Packages window is displayed, where you click the Submit Build button to kick off the server package build.
Full Server Package When you build a server package, the R9621 report is run. First, the R9621 report builds the package directory structure under your path code on the deployment server. For example, if you built a package named DEVSVRFA over the DV812 path code, the E812\DV812\Package\Dvsvrfa directory is created. The Dvsvrfa directory will contain the bin32, include, lib32, make, obj, res, source, spec, and work directories, just as it does when you build a client workstation package. The process then creates the package INF file, just as it does when a client workstation package is built. After the package directory structure and the INF file are built, the R9621 report copies the source and include files from the check-in location to the package directory.
Chapter 7:
Packages and Their Delivery
271
The software knows which specification files are required to build a full server package by reading the F96225 table (Package Build Detail History). It reads the HDPKGOPER column in this table, looking for a value of 01, and the HDPACKSTS column, looking for a status of “Not Built” or “Error.” This information tells the software to build a pack file for each XML/TAM specification file listed in the table. These files are “compressed” XML/TAM files that will be transferred to the enterprise or application server. After the process creates the pack files, it will then update the HDPACKSTS column to 03 successfully for each specification record. NOTE New to E812: the server and client XML specifications are identical. Then the process runs the Busbuild application in the background. This application runs only if you chose to build business functions when you defined your server package. When this application runs, it generates only the source and include files for the named and table event rules in the system. This is because most enterprise servers, except for x86/Windows servers, do not use DLLs. At this point, the R9621 UBE calls the R9622 Server Package Build report. This report will first create the server package INF file, which is placed in a directory on the deployment server under your package directory. The server package INF file tells the system what information to transfer to the enterprise server. This INF file ties into the server package build process, telling the system exactly what will be moved to the enterprise or application server. You may have noticed that the specification files have a series of numbers, each corresponding to a unique specification file. This INF file also tells the system which DLLs are going to be transferred to the enterprise or application server. In building a server package, we need to build and move several DLLs to ensure that the server is able to run the appropriate code. After the server package INF file is created, the R9622 then creates the directory structure on the enterprise server. The server packages are built under the package directory. The R9622 report creates a directory with the same name as your server package, containing the bin32, spec, lib32, obj, include, pack, and source directories. CAUTION Since the software creates a package directory under the E812\DDP folder which is used for all Path Codes, you should not use duplicate package names. If you named a package SVRFULL and you already had a SVRFULL package defined, even if it was under a different path code, this package would be written over and lost.
272
JD Edwards EnterpriseOne: The Complete Reference
When the directory structure has been created, the R9622 report transfers files to the server using JDENet (the same communication process that is used to call other server functions). If you are performing a server package build, your host services must be up and running correctly. The server package build process will transfer the source and include files from your package directory on the deployment server to your enterprise or application server using JDENet. After all of these files are on the enterprise or application server, the R9622 report unpacks the pack files from the pack directory, placing the specification files into the spec directory under your package name directory on the server. The F96225 Software Package Build Detail History table is updated to show that your specification files have been successfully unpacked. NOTE Unlike the E812 revised method for building full client/server packages, the update packages use the TAM process (.ddb and .xdb files) to build specification files with pinpoint changes. Business functions are compiled on the enterprise server ensuring they are in the correct format and because the AS/400, RS6000, HP9000, Linux, and Sun Solaris systems do not use DLLs. Once the server package build is complete, you will be able to deploy the new code to the server. Prior to deployment, however, you should review the server build reports. If you see an error on a report, you should review the log files to determine what went wrong. This will provide you with clues as to what you will need to fix in order to have a fully functional package. We will cover how to do this in the section “Troubleshooting Package Builds,” later in this chapter. Further down in the Pack File Build Status column, some “Not Built” messages are listed. These messages refer to the DLLs that you are moving over to the enterprise server. If you receive such messages on a Server Package Build report, don’t worry about them. DLL files are not packed, so this “Not Built” message is not really an error message. After you receive the R9622 report, you should look at your enterprise server’s directory structure. You will want to ensure that it includes the package directory and that specification files are under the spec directory.
Update Server Package You will use an update server package when you have only a few objects to move to your enterprise server in a similar condition and with identical requirements to the Update Client Package. Building an update server package is a process that is a
Chapter 7:
Packages and Their Delivery
273
combination of what you already know about client update package builds and server package builds. The overall process is identical to other update packages: 1. Define the package (this includes choosing specific objects in the update). 2. Define the build (this includes selecting the server). 3. Build the package. It uses the same two UBEs associated with the server package build and for the same reasons (R9621 for the base build and R9622 to transfer and initiate build on the specified server). NOTE Don’t delete the most current package to reclaim disk space. You will need at least one per path code to perform update server packages. Rather than reiterating the update build process, let’s move from building to deploying the newly built, or indeed any, package.
Package Deployment
The following sections will discuss how to deploy packages to your enterprise.
Deploying Client Packages The process of building a package in and of itself has not moved it into a production stance. Rather, you have to place the updated code into production on the client, server, or mobile device within your enterprise. You have several options associated with this process.
Interactive Deployment Interactive deployment, sometimes referred to as a pull package deployment, is a common method of deploying packages to your workstation. This method is the first used on an EnterpriseOne system. This method of package deployment is usable both with custom and packages shipped with the EnterpriseOne system. To start the deployment process, you need to log on to the client workstation as a user who has administrative rights. You need administrative rights because you will update the registry of your client workstation when you deploy a package.
274
JD Edwards EnterpriseOne: The Complete Reference
After you log on to your client workstation, open Windows Explorer. In Windows Explorer, map a network drive to the deployment server. When you map the network drive, you should see the E812 directory share (this is a step during the installation of EnterpriseOne). Map your network drive to this directory. Expand the E812 directory and double-click on the “OneWorld client install” directory where you will find the install manager.exe program. Double-clicking on this executable starts the Install Manager program. From the first window of the Install Manager program, click the Next button to access the Client Workstation Setup Package Selection window, shown in Figure 7-14. This enables you to choose the package you want to deploy. Notice that the description of the package defined during the package build process is displayed. This description helps end users choose the most current package. Select the package that you want to deploy and click the Next button. The next window enables you to choose the drive where you want the package installed. This window has two radio buttons used to indicate deploying development versus production objects. If you choose the Development Objects radio button, the system will copy the source, include, work, make, and obj directories as well as the
FIGURE 7-14. Client Workstation Setup Package Selection window
Chapter 7:
Packages and Their Delivery
275
production directories. These additional directories are required if you are going to perform development on this machine. If you choose to load the production objects, you will deploy only the bin32, spec, data, and res directories. These directories create a smaller footprint on your client workstation, and the end production user will not need the other directories. After you have selected the drive letter you want to install the package to and have indicated whether you are installing development or production objects, click the Next button. The package will start to deploy to your workstation.
What Happens When a Package Is Deployed A client workstation install is really only a fancy file copy. The package deployment is handled strictly through INF files delivered as part of the deployment process. These files tell the system where to copy data from for the package deployment process. Once we begin the package deployment process, the system connects to the deployment server and finds the Install INF file under the EnterpriseOne client install directory. The system reads the file locations section of this file to determine where to find the package information. The system reads the package INF’s value in this file, which guides the system to find the package INF files. The package INF’s path points to the deployment server’s package_inf directory. If this path is incorrect, your package deployment will error out. NOTE The release master path must be correct, or your package deployment will not function correctly. The values for this file are written during the installation process of EnterpriseOne—specifically, when you release the plan. Once the system finds the package_inf directory, it locates the package INF file. This file guides the system to the information needed to deploy a client workstation package, including the locations of the CAB files shown in the following list. In addition, this file also contains the data necessary to set up the ODBC components for data access and even to create shortcuts for the EnterpriseOne product. ■
Bin32
■
Spec
■
Include
■
Lib32
■
Obj
276
JD Edwards EnterpriseOne: The Complete Reference
■
Source
■
Work
■
Make
■
Res
■
System
How a Client INI File Is Created When the client install process begins, it completes the process described in the previous section. The JDE.INI file (located under the E812\EnterpriseOne Client Install\Misc directory) is copied from the deployment server. It is updated with information, such as path code, environment, and system settings, contained in the package INF file, which is located under the package_inf directory on the deployment server. If you want to deploy changes to your client INI file, you must modify the INI file under the EnterpriseOne Client Install\Misc directory. For example, when you want to change your security server settings for your client workstations, you modify the security section of the INI file under the EnterpriseOne Client Install\Misc directory.
Silent and Verbose Deployment A silent package deployment is basically the process of running a client installation from the command line. In order to run a silent package deployment, you pass the following command: \\deploymentservername\E812\OneWorld Client install\setup.exe -S -U username -P package name -D Install Path
This command begins package deployment in the background. The first part of this command is the path to the SETUP.EXE file on your deployment server. The other parameters tell the system how to install the package. The –S parameter tells the system that this deployment will be a silent package deployment. The –U parameter is the username, and the –P parameter is the name of the package that you want to deploy. The –D parameter is the install path, which tells the system which drive you want to install the package onto on your client workstation. You can place this command in a .bat file, if you like, and e-mail it to your end users. A verbose package deployment is similar to a silent package deployment. The main difference is that the status of the deployment is displayed on your window. You must modify the previously provided command line in order to run the deployment in verbose mode. Change the first parameter on the command line from –S to –V to indicate to the system that you want a verbose package deployment.
Chapter 7:
Packages and Their Delivery
277
Assigning Packages to Workstations You may not want to have all clients updated simultaneously with the same package (this is especially true in large development environments). When you are assigning packages to be deployed to workstations, the Package Deployment application is used. This program can be accessed through the Deployment button in the Package Build application off the row exit, or it can be found on the Package and Deployment Tools menu. After you start the Work With Package Deployment application, click the Add button to launch the Package Deployment director. This director helps set up package deployments for specific workstations, deployment servers, deployment groups, enterprise servers, and locations. The Package Selection window (see Figure 7-15) enables you to select the package to deploy to the client workstations. Only packages that have been successfully built display on this window. Select the package to deploy to the client workstations and then click the Next button.
FIGURE 7-15. Package Selection window (P9631/W9631C)
278
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 7-16. Package Deployment Targets window (P9631/W9631B)
The Package Deployment Targets window, shown in Figure 7-16, launches. This window enables you to specify the type of machine you want to deploy. Suppose we want to assign the package to specific workstations; on this window, we check the Client Workstation check box and then click the Next button. You can verify the name of the package that you are deploying and the path code that this package is associated with on the Package Deployment Attributes window, shown in Figure 7-17. It also enables you to make the package mandatory, ensuring the end user has to accept the package. You can also set up a push installation from this window. The Machine Selection window enables you to choose the workstations to assign the package for deployment. You can select one or multiple workstations on this window. In order to select the machine(s), double-click on the first column of the grid ensuring a check mark is displayed. Once you have selected your workstation(s), click the Next button to access the last window of this director. As with many of the directors in EnterpriseOne, the final window is a summary window. After saving any changes on this final window, you are ready to test the assignment of the package.
Chapter 7:
Packages and Their Delivery
279
FIGURE 7-17. Package Deployment Attributes window (P9631/W9631D) If you log on to one of the workstations that you have assigned the package to, you will be prompted to select the package, as shown in Figure 7-18. If the package is mandatory, the end users will not be able to log on to EnterpriseOne unless they accept the package. You can deploy full and update packages in this manner.
Deploying Packages Using the Listener After you have deployed a client workstation the first time, a service will be installed on your client that, when set up, will listen for package installations. This means that you can schedule packages to be deployed to your workstations unattended. Installing the Listener on Your Workstations The EnterpriseOne Listener is a service that runs on your client workstation. This service can be set up as a local or network service (the authors recommend you set it up as a network service). If the
280
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 7-18. Scheduled Packages window
Listener is installed as a local service, the end user has to be logged on to Windows in order to receive a package. The end user does not have to be logged on to Windows to receive a package if the Listener is setup as a network server. Rather, the machine simply has to be connected to the network and physically powered up. You can install the Listener service through a .bat file, Microsoft Software Management System (SMS), or manually by deploying the first package to the workstation. Because this Listener service is installed by running a simple setup executable, you can even deploy it through a web page. You will find this executable and the other required files are located on your EnterpriseOne deployment server under the E812\EnterpriseOne Client Install\Push Install Listener folder. Double-clicking on the setup executable file displays a welcome screen recommending that you close all other applications before you begin the installation process. Clicking the Next button takes you into the EnterpriseOne Client Listener Setup window shown in Figure 7-19 where you can set up your Listener service.
Chapter 7:
Packages and Their Delivery
281
FIGURE 7-19. EnterpriseOne Client Listener Setup window
The window shown in Figure 7-19 contains a series of mandatory fields. You must select the release of EnterpriseOne software installed and enter the location where the service is to install the client. This latter field must contain a network path statement to the client installation setup executable. The path statement consists of your deployment server’s name and a path to the EnterpriseOne client install directory. You also enter the drive letter where you want the package installed on the client workstation. Two check boxes are available under Additional Options on the EnterpriseOne Client Listener Setup window. These options enable you to automatically start the EnterpriseOne Listener service when the workstation starts up and to always uninstall the previous version of EnterpriseOne before deploying a new full package. After you have made these choices, click the Next button. On the EnterpriseOne Client Listener Setup Type window, shown in Figure 7-20, you select whether to set up your service as a local service or a network service. Select the appropriate radio button, verify that you have enough space to install the service in the window at the bottom of the window, and click Next.
282
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 7-20. EnterpriseOne Client Listener Setup Type window If you have selected to set the Listener up as a network account, the EnterpriseOne Client Listener Setup User Information window (see Figure 7-21) is displayed and prompts you to enter a username, password, and domain. This username and password are used to start the EnterpriseOne Client Listener. After you fill in this information and click Next, the Listener is installed. CAUTION The authors recommend you use an account that is a member of the administrators group on your Listener workstation setup. Because this account is a “secure” account, the password can be set up not to expire.
Chapter 7:
Packages and Their Delivery
283
FIGURE 7-21. EnterpriseOne Client Listener User Information window
TIP After you install the Listener service, if you want to change the options for it, you can simply right-click the ear icon that is displayed on the right side of your Windows taskbar. This accesses a window that enables you to change the default parameters of the service. Scheduling a Package to be Deployed Through the Listener Service After you set up the Listener service on your client workstations, you can enable push installations. In order to set up a push installation, log on to the deployment server in the deployment environment or onto a client workstation in any environment. Start the package deployment application, P9631, on the Package and Deployment Tools menu.
284
JD Edwards EnterpriseOne: The Complete Reference
Set up the package for deployment in the same manner discussed in the section “Assigning Packages to Workstations.” When you get to the Package Deployment Attributes window, shown in Figure 7-22, check Enable Push Installation, specify a date and time, and click Next. The client package is pushed out to the workstation when this time and date have expired. You are then prompted to select the workstations to deploy the package.
Deploying Server Packages To deploy a server package, double-click on the package deployment application, P9631, which is located on the Package and Deployment Tools menu. Click the Add button on the Work With Package Deployment window. The Package Selection window, shown earlier, is displayed. Select the package you want to deploy to your enterprise server or servers on this window and click the Next button.
FIGURE 7-22. Package Deployment Attributes window (P9631/W9631D)
Chapter 7:
Packages and Their Delivery
285
On the Package Deployment Targets window, indicate that you want to deploy a server package by checking the Enterprise Server check box. Because you are deploying an enterprise server package, everything will be grayed out on the Package Deployment Attributes window, which is displayed next. Simply verify that your package name and path code information is correct and then click the Next button. On the Enterprise Server Selection window, choose the enterprise server that you want to deploy the server package. Once selected, a check box is next to the enterprise server’s name. You can choose more than one server. When your selections are complete, click Next.
What Happens When a Server Package Is Deployed On the Work With Package Deployment window, select the Machine radio button and click Find. You will then be presented with three directories: client workstation, deployment server, and enterprise server. When you expand the enterprise server directory, you should see a directory named after the server on which you set up a deployment. Select this directory and click the Active/Inactivate button under the Row Exit. Once you have activated the package, you can deploy it by selecting the package and clicking the Row Exit Deploy button. This starts a UBE that will deploy the package to your enterprise server. When you click the Row | Deploy button for server packages, the R98825D UBE (Enterprise Server Deployment) is launched on the workstation or deployment server where you ran the package deployment application. The R98825D UBE is responsible for deploying your changes to the enterprise server. When this batch file runs, the server status is changed from a 30 (In Production) to a 50 (Initialize Package Deploy) in the MDMCHRCDNM field in the SY812.F9651 table. This value can also be viewed within EnterpriseOne from the Machine Identification (P9654A) application. No new UBEs can be processed by a server in this status. Any UBE submitted to the enterprise/application server with a status of 50 will be queued until after the package is deployed. The EnterpriseOne system will actually allow currently running UBEs to complete. The server is given 5 minutes to complete any processes that are running. If more than 5 minutes is needed for a UBE to finish processing, the process will wait, and then the status is changed to 10 (Unavailable) and the deployment can begin. This UBE also copies the bin32 directory (contains compiled C code) from the packages folder (E812\DDP\packages\package name\ bin32) on the Enterprise Server into the path code directory (E812\DDP\path code\ bin32) and updates the server Spec.ini (<E1 install location>\E812\DDP\Path Code\spec) to point to the new package name. The server will now use the XML spec files for this package. Once this process is complete, the R98825D UBE updates the server status to 30 (In Production), and any reports submitted will be able to run normally.
286
JD Edwards EnterpriseOne: The Complete Reference
When you are deploying an update package, the bin32 directories are copied from the parent package directory into the path code directory (this file was updated during the package build process). The update package TAM files on the deployment server are converted to XML and merged into the parent package XML tables on the database. The include, source, lib32, work, and make directories are only used for compiling of business functions and named event rules. This is why you will only find the spec and bin32 directories under your path code directory— for example, DV812, on your enterprise server. The spec and bin32 directories are the only two needed to run the EnterpriseOne host code. Once the package deployment finishes, validate the dates and times on your C code files located in the path code on your enterprise server. These files should contain the time stamp associated with the deployment. The SvrPkgBuild.log file on the deployment server under the package name directory should not show errors, and the R98825D report will show “Success”; once these items are confirmed, you have successfully deployed your server package.
Troubleshooting Package Builds
If something goes wrong during a package build, you will want to have a few tricks of the trade in your back pocket.
Troubleshooting Client Package Builds When your package build completes, you should first check your build logs. For a client package build, you will have two main log files: the ClientPkgBuild.log and buildlog.txt logs. The ClientPkgBuild.log file tells you if you have successfully built the specification files for your package. This log file, which is located in your package directory on the deployment server (for example, DV812\package name\DV812FA), lists all of the specification files that were built. You will want to review this log file to ensure that it contains no errors. The buildlog.txt (located in the PathCode\package\package name\work directory on the deployment server) indicates whether your business function, named event rules, and table event rules built successfully. Because of the size of this file, scroll to the end of the log file where you will find a summary of all the DLLs that you are trying to build. Ensure that this summary contains no errors for any DLLs. If it does, you should investigate the errors and ensure that the C code compiled correctly. Nearer the beginning of the buildlog.txt file are headings for each DLL that was built and a list of all of the objects that were built into these DLL files. Suppose an error was logged on the CFIN DLL; you would want to look under the CFIN section of this log file to determine what object failed to compile and why.
Chapter 7:
Packages and Their Delivery
287
Another common problem is the message “restored previous DLL.” You will find this error message in the summary section of the log file. It means that no DLL was created, and thus the build completely failed for these DLL files. A number of circumstances may have caused this problem, but it must be resolved in order for a good package to be built. You might also want to review the Build report, the NotChkdn.txt file, and the NoSource.txt file, which are also in the work directory. The Build report gives you information on the size of the file directories that were built for your package. It is handy to review to determine whether the package build was successful. The NotChkdn.txt file shows you the objects that were not checked in when the package was built. When you want to verify that an object was checked in before the package was built, you should review this log file. The NoSource.txt file tells you when a business function does not have a source file associated with it. Another quick and easy check is to compare the size of your new package to an old package. A full package should never be smaller than the shipped package. If you are building a partial or update package, you can still check to ensure that your file sizes are not zero and that your XML/TAM specification files were created.
Troubleshooting Server Package Builds When you build a server package, the log files on the deployment server are not the only things that you will need to review to ensure your server package was built successfully. Once you have reviewed the log files on your deployment server, you can move on to some more advanced log files. You will want to ensure that the server INF file was created correctly. Remember that the server INF file is created during the server package build process. It tells the system exactly what to transfer to your server. If it is not created, you will get nowhere with your server package. The server INF file is located under a directory that is named the same as the server you built the package for in your package directory. As we mentioned earlier, the server INF file controls what is moved to your enterprise server with the server package. It is a detailed file that will tell you every specification file and DLL built for your server. EnterpriseOne uses a predefined port to send the files to the enterprise server through a JDENET process.
Server Package Build Logs on the Server The server contains log files that can help you troubleshoot problems with a package build. To access these files, log on to your enterprise server, find the packages directory, and select the name of your package. Under this directory, you will find a subdirectory called text, which contains a number of log files that end in STS or TXT. These log files provide vital information on your server package build. Before you read them, you should look at the sizes and modification dates of your
288
JD Edwards EnterpriseOne: The Complete Reference
server package’s DLL files and specification files. This will assist you in determining whether your package build was successful. The STS files are status files that tell you the status of parts of the server package build. These files provide details on your XML/TAM specification files and the DLLs that you are attempting to build. If the STS file is for an XML/TAM specification, it lists the number of records read for this file and the number of records written into the XML/TAM file. STS files are also available for the DLLs that you attempted to build. These files indicate the number of objects that did compile into the DLL and the number that failed. They can be useful when troubleshooting a server package build; for example, a common problem new installations suffer is that the server cannot find the C compiler. This problem will show up in the STS log files for DLLs. If the STS log file lists all of the objects as not compiling, this can be caused by bad INI file settings on your enterprise server. If you are experiencing a problem where the build process cannot find the compiler on your enterprise server, you should ensure that the path statements are correct both in the OS and in the EnterpriseOne INI. You will also want to ensure that the BSFN Builder section of your INI file is correct. When you build server packages, the Busbuild application will run in the background. This application calls the C compiler and builds your DLLs for EnterpriseOne. The BSFN Builder section of the INI file tells the software how to run Busbuild. A problem in this section usually occurs because the username and password specified are not a valid EnterpriseOne username and password. Another common problem is that a path code listed in this section does not exist on the enterprise server. Ensure that this setting is set to a valid path code because this setting determines the XML/TAM specification files that will be used to run the Busbuild application. Another common problem with server package builds is the build area being set incorrectly. This build area needs to reflect the drive letter where the host code software is installed and the path to the package and path code directories. If this is not set correctly, the Busbuild application will not be able to run. Another important aspect of this section of the server’s INI file is that it indicates where the server’s BSFNERR log file is located. This log file lists compiler errors and can be useful in tracking down issues. By default, this log file is located in the E812 directory. The rest of this section of the INI file consists of flags that tell the C compiler how to build the DLLs on your server. Do not change these flags without the direction of Oracle. Another common problem on Windows platforms is that the C compiler information isn’t in the path statement of the machine. When you install the C compiler, one of the prompts is to register environmental variables. This selection is a check box that defaults to being unchecked. Make sure that this check box is checked so that the path statement for the compiler is placed into the user variable.
Chapter 7:
Packages and Their Delivery
289
Package Build History Application The Package Build History application enables you to review the parts of your package build that have failed; it even enables you to resubmit only the parts of your package that failed. This can save you a lot of time when you are dealing with full package builds. The Package Build History application is located on the Package and Deployment Tools menu. When you double-click on the Package History application, the Work With Package Build History window (see Figure 7-23) launches. You view information on your client and server package builds on this window. You can review the build specifications, build business functions, and compression options that you selected for your package. You can also review the objects that you defined for your package and whether the package is an update or partial package. Finally, you can review the status of your XML/TAM specification files. When you use this application, you can tell if your XML/TAM specification file was built; the Status column indicates whether the build was successful or failed. The Work With Package Build History application in Figure 7-23 is used to show client and server packages. The Pack Build Status column indicates whether the pack files, which are transferred to your enterprise server, were built correctly. The Specifications Written column shows how many records were written into each of your XML/TAM files. This number should match the number in the Specifications Read column for a full package. The Pack Records Written and Pack Records Read columns are for server packages. These columns allow you to determine whether your server package pack files were built correctly.
FIGURE 7-23. Work With Package Build History window (P9622/W9622A)
290
JD Edwards EnterpriseOne: The Complete Reference
You can determine whether the business functions built correctly in much the same manner (expand the Business Function Options directory and select one of the business functions that you were attempting to build). Suppose an error was listed on this window, and we subsequently fixed the problem. Half of our specification files and all of our business functions still have not been built. The Package Build History application enables you to resubmit the parts of your package build that failed. Select the package name and choose Row | Resubmit Build. This launches the parts of your package build that failed. You can also view some of the log files from this application, but you cannot see the STS or TXT log files on your enterprise server. Finally, you can reset parts of your package build if you desire.
Troubleshooting Client Package Deployment When you are troubleshooting a client workstation deployment issue, remember that a client installation is nothing but a glorified file copy. A common problem that occurs with client package deployments is that the package that you want to deploy does not show up in the client installation director. Actually, the package’s INF file shows the package in a status that is not ready to deploy. You need to find the package_inf directory on your deployment server and open the INF file that has the same name as your package. Once you have opened this file, search for deployment status. If this variable is not set to “approved,” you will not see the package in the Client Installation Package director. Another common problem that occurs with client package deployments is that the path statements in the package INF file are not correct. These path statements tell the software where to find the pieces of your package on the deployment server. The section of the package INF file, SrcDirs section variables, might not contain the machine name and path to the files. When this happens, the software will not be able to find the correct files to install the package, which means that once you select the package to deploy, the system will error out. TIP The authors recommend no more than ten update packages per full package. Once you’re ready for the eleventh, you’re ready for a new full package. NOTE Package maintenance is one of the more important steps for the CNC administrator. A full package uses up to 5.5GB of disk space. Having several older full packages for a specific path code will quickly consume your deployment server disk array.
Chapter 7:
Summary
Packages and Their Delivery
291
In this chapter, we covered a great deal of ground. We defined what packages are and what types of packages are available. We discussed the benefits and drawbacks of each type of package. We explained a centralized versus decentralized package strategy. This conversation on advanced CNC configuration will assist you in setting up your company’s EnterpriseOne solution. We then discussed what happens when workstation packages are built. You learned how to define a workstation package and the choices that you have when setting up a client package build. The different options for the specification build, business function build, and compression options were discussed. The R9621 UBE was explained and discussed in detail. This UBE is the heart of the package build process. The chapter then went on to discuss how you define server package builds. We talked about what the R9621 UBE does for server package builds. We also introduced the R9622 UBE and explained its importance. The reasons you need to build server packages were also covered. We then discussed the options you have in deploying your packages. We talked about deploying client workstation packages through an interactive session. We also talked about using silent and verbose installation methods. Finally, we discussed advanced deployment methods, such as assigning packages to your workstations so that they will be deployed when your users log on to the system, and push installation procedures. We also described what happens when you deploy server packages. Finally, we spent some time discussing how to troubleshoot packages. We explained some common client and server package build issues. You were introduced to the Package Build History application and shown how it can assist you in troubleshooting your package builds. Finally, we also talked about common client workstation deployment problems. This information will assist you as you roll packages out to your end users.
This page intentionally left blank
CHAPTER
8
Foundation Code
293
294
JD Edwards EnterpriseOne: The Complete Reference
T
he longer you work with EnterpriseOne, the more likely that you will find a problem you are facing has been fixed in a Tools Release. These releases are one way that Oracle delivers fixes to its clients. In this chapter, we are going to discuss the Tools Releases in detail and how they affect your system, including:
■
Definition of a Tools Release
■
When to apply a Tools Release
■
Why to apply a Tools Release
■
How to apply a Tools Release
■
How to test and remove a Tools Release
Definition: What Is a Tools Release?
A Tools Release can be defined as part of the foundation code of EnterpriseOne. In fact, they are also called Foundation Software Updates (FSUs). The foundation code of EnterpriseOne allows EnterpriseOne to run on multiple platforms. This foundation code is written by experts in multiple platforms (UNIX, Windows, and OS/400) and multiple databases (Oracle, Microsoft SQL Server, DB2/UDB, and so on). The applications in EnterpriseOne are then written using a toolset included in EnterpriseOne. When an application programmer writes a program in EnterpriseOne, they do not care if this program will attempt to access data on a UNIX machine, an AS/400, or Windows. Nor does the programmer care about what kind of database their program will be accessing. All of this is taken care of by the foundation or system code. This is why a Tools Release can fix symptoms that are found in applications or reports. Since all applications are written to use this toolset, an error in this foundation or system code can cause the errors to show up in applications or reports, even when these applications and reports are written correctly. DEFINITION Foundation Software Update (FSU): This term is synonymous with service pack and Tools Release. The foundation code is contained in the system directory of your deployment server, enterprise server, and client workstations. You will notice that these folders do not contain source files. This is because the system code of EnterpriseOne is considered a trade secret. Quick translation: the only way that you can get changes into the foundation code is by getting a Tools Release from Oracle. Common terminologies surrounding the types of updates from Oracle can be found in Table 8-1.
Chapter 8:
Foundation Code
Name
Abbreviation
Functional Definition
Delivered Via
Tools Release/ Service Pack
TR/SP
All available updates for the foundation code (release specific).
Update Center
Compilation of all available fixes and enhancements for a specific point in time.
edelivery .oracle.com
Fixes issues with applications and reports.
Update Center
When ESUs for a functional area become very large, a Baseline is created so the subsequent ESUs for the object are much smaller. The Baseline is a prerequisite for ESUs, which contain objects in the Baseline.
Update Center
Application and report enhancements that concentrate on a specific functional area; may also include third-party products.
edelivery .oracle.com
Updates
Electronic Software Update
ESU
Baselines
Application Software Update
TABLE 8-1.
ASU
Code Available from Oracle
ESUs, ASUs, Updates, Baselines, and Tool Releases are all pregenerated code from Oracle designed to either fix or enhance your existing release of software. ESUs and ASUs are described in more detail in Chapter 12. Oracle has designed these software updates to be systematically merged with your implementation of EnterpriseOne. This chapter hones in on the Tools Release, or what used to be called a service pack, and specifically deals with foundation code.
When to Apply a Tools Release
Now that you know what a Tools Release is, you might wonder when you should apply one. You do not need to take a Tools Release every time one is offered by Oracle. In fact, Oracle specifically states that you should only apply a fix if there is a function or issue that is directly resolved by its application. Tools Releases contain fixes
295
296
JD Edwards EnterpriseOne: The Complete Reference
for specific issues, which are tracked through Software Action Requests (SARs). If you are experiencing issues that have been fixed by a SAR in one of these Tools Releases, you would then begin planning and taking the steps necessary to implement that release. DEFINITION Software Action Request (SAR): This is a term used by Oracle to track issues or enhancements within the EnterpriseOne software. If an issue or bug is found with the software, a SAR will be entered so that Oracle’s JD Edwards programmers can fix the issue. Clients and business partners of the company can track the progress of these requests through the Oracle web site. It is possible that these updates will fix an issue that is not specifically mentioned in the SAR list. Remember, a SAR is how Oracle tracks the bugs and enhancements in their software. If you are unable to determine the root cause of an issue, a service pack may help you, but it isn’t a guarantee.
Why to Apply a Tools Update
The reason you would want to apply a tools update is simple: It fixes issues with the software and applies enhancements to the toolset provided by Oracle. These Tools Releases or fixes to the EnterpriseOne foundation code resolve issues that manifest themselves in the applications or in the toolset that is supplied with EnterpriseOne.
How to Apply the Tools Update
We have discussed what a tools update is and when an organization would apply one. In this section, we will cover how to apply these fixes to your EnterpriseOne system. With Tools Release 8.97 and the introduction of the Server Manager, the tools update has drastically changed for the better. We will cover the steps of applying a Tools Release with Server Manager and for pre–Server Manager releases for the enterprise servers, deployment servers, and development workstations. Although some of the procedures may sound complicated (especially for pre-Server Manager releases), they really aren’t. What you need to keep in mind is that the tools update is the system directory on your deployment server, enterprise server, and client workstations. When you apply a new tools update, all you are really doing is replacing the system directory on your machines. Also, at the time of writing this chapter, the deployment server upgrade is the only server whose Tools Release level is not upgraded using the Server Manager. All other servers are upgraded using the Server Manager Console including E1 Collaborative Portal, E1 Enterprise Server, PIMSync Server, Transaction Server, and E1 HTML Server.
Chapter 8:
Foundation Code
297
With all Tools Release installs, you will need to follow certain basic procedures: 1. Back up your old Tools Release. 2. Apply the new Tools Release to the deployment server. 3. Apply the new Tools Release to the enterprise server. 4. Build and deploy an update package to your client workstations.
Backing Up Your Old Tools Release Before you attempt to apply a new Tools Release, you will want to back up your old version of the foundation code. This is so that you can easily roll back the Tools Release in the event that it does not produce the desired results or if it causes more issues than it resolves. For the deployment server, the backup will always be valid and is a hard technical requirement. For your enterprise server, you will also want to create backups unless you are upgrading from 8.97 or higher. The reasoning behind this is that Server Manager takes care of all steps for the enterprise server upgrade, so if you need to resort to a backup, you can easily apply the previous Tools Release as the code line is still available through the Server Manager. With that said, it is always a good idea to copy any configuration files, such as the INI files, just in case. TIP You should always have a backup before you attempt a major update or upgrade, or before applying a Tools Release to your system. To back up your system, you will need to back up certain directories on your enterprise server and deployment server.
Deployment Server The first step to backing up your old Tools Release is to back up your deployment server. The easiest way to do this is to create backup directories and copy the contents of the directories affected by a Tools Release. Although the essence of a Tools Release is the system directory, a Tools Release affects more than just your system directory on the deployment server. When the setup disk for a Tools Release is executed, the system directory and the EnterpriseOne client installation directory will be updated; a Tools Release updates DLLs in the EnterpriseOne client installation directory. The next directory that you would need to back up on the deployment server is the entire content of the system and systemcomp directories. Though you could back up these directories to tape, the authors recommend creating a temporary directory and copying the contents of your current system directory into the
298
JD Edwards EnterpriseOne: The Complete Reference
temporary directory on the deployment server. This procedure allows easy, fast recovery in the event of undesired results. Enterprise Server Windows or UNIX Finally, you will need to back up the system directory on your enterprise server. If you are using Windows or a UNIX system, such as an HP9000, pSeries, or Sun Solaris, you can create a temporary directory and copy the contents of your current system directory into this temporary directory. CAUTION When you copy the system directory, you should have your host services stopped or you could suffer corruption of your host code. On the Windows platform, you can bring your EnterpriseOne services down through the Control Panel’s services program or a custom batch file. On UNIX machines, you can bring the host services down by using the EndOneWorld script. Enterprise Server AS/400 If you are using an AS/400 platform, you will need to back up the system library on your AS/400. This system library is normally named after the release of EnterpriseOne that you are running; for example, if you are running E812, the system library should be E812SYS. You can back up this library by using the cpylib command and copying the contents to a new library, for example, E812SYSBAK. The SVM812 and the Path Code libraries should also be backed up at this time, again using the cpylib command. This is because they are affected by a command that is run during the application of the Tools Release, LINKBSFN, and can become corrupt if this command fails. We will discuss the LINKBSFN command in the section “Relinking the Business Functions on the AS/400.”
Apply the New Tools Release to the Deployment Server After you have backed up your system, you will want to install the new Tools Release to the deployment server. The deployment server install process has not changed with the introduction of the Server Manager and is currently the same for all Tools Releases. The most widely used method for obtaining a Tools Release is to download the Tools Release from the Update Center. It downloads a par file; this can be unzipped using a tool like WinZip, or using the preferred method, Change Assistant. To install, ensure you are signed out of EnterpriseOne on the deployment server, and then run the Install Manager.exe executable and follow the steps in the install wizard. When it is finished, your deployment server has been updated and you are now ready to apply the Tools Release to your enterprise servers.
Chapter 8:
Foundation Code
299
Apply Tools Release 8.97 and Newer Using Server Manager With the introduction of 8.97 and Server Manager, the “old” way of applying a Tools Release is no longer valid as the Tools Release must be applied using the Server Manager Console. You may be thinking, “Great, another new application to learn….” Well, we can put your mind at ease because this new tool will make your life much easier. For the Tools Release install, you no longer need to worry about the different steps for installing a Tools Release (depends on the platform you are working with). The Server Manager automatically takes care of the various steps for you. You just need to take three steps: 1. Upload the Tools Release par files into the Server Manager. 2. Distribute the Tools Release to the appropriate server. 3. Have the Server Manager install/upgrade the Tools Release. Sound simple? Well, it is—at least much more so than the old way! In this section we will cover the steps of applying an Enterprise Server Tools Release using Server Manager. It should be noted that the Server Manager is more than just an install utility (for more in-depth documentation on the exciting new features of Server Manager, please refer to Chapter 12, where we will also cover installing the E1 HTML Server Tools Release).
Upload the Tools Release into Server Manager 1. Download the desired Tools Release from the Update Center to the server where the Server Manager is installed. This should be your deployment server. 2. From the left side of the screen, select Managed Software. 3. In the Upload Software Components section, browse to the downloaded Enterprise Server Tools Release par file and select Upload, as shown in Figure 8-1.
Distribute the Tools Release to the Appropriate Server 1. When the Upload is complete, the new Tools Release will appear in the Managed EnterpriseOne Software Components section. Select the Tools Release and click the Distribute button; see Figure 8-2.
300
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 8-1. Software component upload
FIGURE 8-2. Select the software component to distribute.
Chapter 8:
Foundation Code
301
FIGURE 8-3. Select the machine to distribute the software component to.
2. The next screen will allow you to select the servers where you would like to install the new Tools Release (see Figure 8-3). This doesn’t install the Tools Release; it just makes it available to the Managed Instances on the server.
Have the Server Manager Install/Upgrade the Tools Release 1. Now, navigate through Server Manager to the Enterprise Server instance that will be upgraded. Under Software Component Version, click the Change button and select the desired Tools Release (see Figure 8-4). 2. Sit back and watch the Server Manager upgrade the server for you. The existing configuration settings are maintained and any new settings that are introduced will be set to the default value.
FIGURE 8-4. Change the software component.
302
JD Edwards EnterpriseOne: The Complete Reference
Tools Release 8.96 and Older To apply a Tools Release 8.96 and older, you will not be able to use the Server Manager but instead need to follow the more manual steps. This will install the new Tools Release’s system directory to the enterprise server. This process will be a little different for each of the platforms. Let’s take a look at how you would apply the Tools Release to the different platforms. CAUTION Although this section gives you an overview of how to apply a Tools Release, keep in mind that each Tools Release comes with its own set of instructions. You will need to refer to these instructions to ensure that there are no special steps in applying a particular Tools Release. TIP Remember that when you apply a Tools Release to an enterprise server, you will need to stop your host services. This means that sign-on security, EnterpriseOne services, and the running of reports on your enterprise server will not be available during the installation of the Tools Release. The authors recommend that Tools Releases be applied after hours or on the weekends, so as not to impact your production users.
AS/400 Let’s start with applying the Tools Release to the AS/400 platform. Now that you have applied the Tools Release to the deployment server, you need to move your new system or JD Edwards foundation code onto the AS/400. Ending Host Services To start this process, sign on to the AS/400 as the ONEWORLD user (this user is created during the installation program). Once you have logged on to the AS/400, you need to end your host services. This can be done by typing ENDNET on the command line; this command stops the EnterpriseOne host services on the AS/400. Once this command completes, type the CLRIPC command. This cleans up any hanging processes on the AS/400 for the EnterpriseOne services. Rename System Library Now that you have stopped your host services, you need to log off the AS/400 and log back on to the machine as a QSECOFR. Once you have signed on to the AS/400, you will have to rename the system library. This library is
Chapter 8:
Foundation Code
303
usually named after the release of EnterpriseOne that you are on; for example, if you are on E812, the library is usually named E812SYS. To rename the library, type RNMOBJ on the command line and prompt the command by pressing F4. Set the object to E812SYS, leave the OBJTYPE as *LIB, and set the NEWOBJ to E812SYSBAK. You have now renamed the system library to E812SYSBAK. At this point, you should also copy your Path Code libraries and SVM812 library by using the CPYLIB command as an additional safety measure. You can press F4 to prompt this command and fill in both the library you are copying and the name of your backup library. Grant Authority You must now grant your users more authority to the ONEWORLD user ID. To do this, enter the GRTOBJAUT command and prompt it by pressing F4. In the OBJ field, place ONEWORLD; in the OBJTYPE field, place *USRPRF; in the USER field, place *PUBLIC; and in the AUT field, type *USE. Now that you have granted the JDE user the correct authority, it is time to copy the new foundation or system code onto your AS/400. NOTE You can download the appropriate Tools Release for the iSeries platform directly to the server itself. In this scenario, we recommend that you follow the instructions and naming conventions outlined in Oracle’s 8.9.6_Tools_Release_Installation_iSeries.pdf. Create a Temporary Directory To copy your new foundation onto the AS/400, you first need to create a temporary library to copy the system files into. NOTE This temporary library is used to hold the files on the Tools Release download or CD. It is not used for a backup of the current system files—a process described earlier in this chapter. To create this directory, type CRTLIB JDETEMP. This will create a temporary library on your AS/400 that will contain the new foundation code. Once your Tools Release is installed and tested, you can remove this library. However, you are not done yet; you still need to create a save file for both the system and kernel spec. This file can be created by entering the CRTSAVF JDETEMP/SYSTEM and JDETEMP/KRNLSPEC commands. FTP Process for the AS/400 The next step requires you to move to a Windows computer where the Tools Release CD is in the CD-ROM drive. Normally, this
304
JD Edwards EnterpriseOne: The Complete Reference
machine would be the deployment server, though it can be a development workstation. Once you have logged on to this machine and placed the Tools Release CD in the CD-ROM drive, you need to perform the following steps: 1. Start a CMD session. 2. Type FTP and the name of your AS/400. 3. You will be prompted for a user and password; enter the security officer user ID and password. 4. Type cd to change the AS/400 directory you are in to the jdetemp library. 5. You need to change your local directory to find the necessary files on the Tools Release CD. To do this, type lcd e:\hosts\AS400, where E: is your CD-ROM drive containing your Tools Release CD. 6. Type bin; this will change the transfer mode to binary. 7. At the CMD prompt, type put SYSTEM; this will transfer the system files from the Tools Release CD into your AS/400’s temporary directory. 8. Type put KRNLSPEC. This will transfer the kernel spec to the AS/400’s temporary directory. 9. Type quit; this will disconnect you from the FTP session. NOTE The FTP session will time out if it is inactive for more than 5 minutes in most systems. Restoring the System Library on the AS/400 You now need to log back on to your AS/400 and restore the system library. You should be logged on to the AS/400 as QSECOFR. Type the following: RSTLIB SAVLIB(E812SYS) DEV(*SAVF) SAVF(JDETEMP/SYSTEM) RSTLIB(syslib)
You now have your new system library on the AS/400. Recovering the Printqueue on the AS/400 The next step is to recover your printqueue, which contains the reports that you have run. This printqueue will exist in your old system library and will need to be moved into your current system library. Type the following: CPYF FROMFILE(E812SYSBAK/PRINTQUEUE) TOFILE(E812SYS/PRINTQUEUE) FROMMBR(*ALL) TOMBR(*FROMMBR) MBROPT(*REPLACE) CRTFILE(*YES).
Chapter 8:
Foundation Code
305
DEFINITION Printqueue: The printqueue is a physical file that contains the PDG version of the reports that you have run on your AS/400 enterprise server. On other platforms, this is a directory that contains the PDF version of the reports that you have run. CAUTION If you do not recover your printqueue, you will not be able to see any of the reports that were run before the Tools Release was applied. Restoring the INI File and IFS File System When the new system library is restored onto the AS/400, it does not contain your INI file. To copy your INI file, use the CRTDUPOBJ command. Press F4 to prompt this command. In the OBJ field, type INI; in the FROMLIB field, type E812SYSBAK; in the OBJTYPE field, type *FILE; in the TOLIB field, type E812SYS; in the DATA field, type *YES. Once you have completed restoring the INI file, you will need to replace the objects in the IFS file systems. Use the following command: RST DEV('/qsys.lib/jdetemp.lib/krnlspec.file') OBJ(('/KRNE812' *INCLUDE '/newsyslib')) ALWOBJDIF(*ALL)
Relinking the Business Functions on the AS/400 The final step in this process is to relink all of the business functions located in each of the path code directories on the AS/400. To do this, type LINKBSFN and prompt the command by pressing F4. Enter the currently deployed full package name of the path code for which you are relinking business functions and the path code for the second field. Once this step is complete for all path codes, log off the AS/400 and log back on as the ONEWORLD user. You should run a porttest to ensure that everything is set up correctly. To run a porttest, you simply type porttest on the command line followed by a valid EnterpriseOne user ID (use the JDE user), password, and environment. The program will tell you if it succeeded or failed. Once you have run a successful porttest, start your host services again by typing in the STRNET command. Your AS/400 enterprise server is now on the new Tools Release.
HP9000, pSeries, or Sun Solaris If you have an HP_UX, AIX, or Sun Solaris system, you will have to perform similar steps to apply a Tools Release. The first step is to move the new foundation code or system directory onto your UNIX system. To do this, you need to copy the system.Z file from the Tools Release CD or download to the hosts\HP9000, pSeries, or Sun
306
JD Edwards EnterpriseOne: The Complete Reference
directory on the deployment server. It is common to perform this procedure on the deployment server. All you need to do is place the Tools Release CD into the CD-ROM drive on the deployment server. The system.Z file will be located under a hosts directory on the Tools Release disc; for example, E:\hosts\HP9000, where E: is the name of your CD-ROM drive. Stopping Host Services Once you have completed this step, log on to the enterprise server as the EnterpriseOne user that starts your host services (for example, jdeE812) and stop the host services. To stop the host services, type CD $SYSTEM/bin32. This is a shortcut that should have been set up during the initial installation of the EnterpriseOne software. If this shortcut is not set up, you will need to type cd u03/JDEdwards/E812/system/bin32
where u03 is the drive on which EnterpriseOne is installed on your enterprise server. Then type EndOneWorld.sh. When this command completes, type rmics.sh; this last command will clear up any hanging processes, similar to the CLRIPC command used on the iSeries (AS/400) server. Backing Up the System Directory Next, you must rename the system directory. To do this, change to the drive where EnterpriseOne is installed on your enterprise server, for example, by typing cd u03/JDEdwards/E812
Once you are on the correct drive, type mv system systembak. This will rename your current system directory to systembak. Once you have installed and tested the Tools Release, you can delete this directory; until then, it can be used to roll the Tools Release back quickly. Moving the Tools Release onto Your Enterprise Server Now that you have renamed your current system directory, change your directory to a temporary directory; for example, cd u04/JDEdwards/E812/tmp. You will then need to move the system.Z file from the deployment server to your HP9000 enterprise server by using FTP. It doesn’t matter whether you do this from the deployment server itself using a CMD window or from the UNIX server. Since you’re already on the UNIX box, you would do the following steps: 1. Type ftp and your deployment server name. Enter JDE for the user (this user should have been set up during the installation process) and enter the appropriate password.
Chapter 8:
Foundation Code
307
2. Now you need to change to the correct directory, the drive where EnterpriseOne is installed; for example, Z:. Once you are on the correct drive, type the following: cd JDEdwards/E812/hosts/HP9000
3. This is the directory to which you copied the system.Z file from the Tools Release disc or download; this file is your new foundation code for the HP9000 or other UNIX platform. 4. Once you are in the current directory, type bin to change the transfer mode to binary (if you forget this step, the next series of commands will go horribly wrong). Then type get system.Z. When typing this command, ensure that the Z is capitalized, since the zcat command, which is described in the following section, will not recognize the file if the Z is not capitalized. This will copy the system.Z file into your temporary directory. Type bye to disconnect from the FTP session. Checking Permissions on the System.Z File You now need to ensure that the correct permissions are set on the system.Z file in your temporary directory on the HP9000. Type chmod 777 system.Z; this will set the appropriate permissions for this file. Then type zcat system.Z|(Cd/u03/JDEdwards/E812;tar xvf )
This will create the system directory for you on the HP9000. Restoring Startup Scripts Now that you have the new system directory, you need to restore the scripts that are used to start your host services. These are the RunOneWorld.sh and EndOneWorld.sh files. To copy these files, type cp and the directory from which you are copying the files followed by the directory to which you are copying the file. For example, cp /u04/JDEdwards/E812/systembak/EndOneWorldOne.sh /u04/JDEdwards/E812/system/EndOneWorld.sh.
Copy both the RunOneWorld.sh and EndOneWorld.sh files. Checking Permissions on the System Directory and Running a Porttest Now that you have your new system directory and your scripts in the correct spot, you will need to ensure that your permissions are set correctly. To do this, go to the JDEdwards/E812 directory and type chmod 775 system/lib/*system/libv32*. You have now installed the Tools Release on the HP9000, pSeries, or Sun Solaris system. Type cd $SYSTEM/bin32 and run a porttest from this directory, which should be JDEdwards\E812\system\ bin32. This shortcut should have been set up during the installation process. To run a porttest, enter the porttest command from the system/bin32 directory followed by
308
JD Edwards EnterpriseOne: The Complete Reference
a valid EnterpriseOne user ID, password, and environment. Once you have run the porttest, you can start your host services with the RunOneWorld.sh command. TIP When running a porttest, always type the environment, user ID, and password in uppercase. This is necessary because the porttest program passes these values exactly as typed to the database, and EnterpriseOne stores the user names and environments in uppercase in the database. Passing an environment name in lowercase will cause your porttest to fail, and the logs will tell you that the environment could not be found. NOTE The installation process for the pSeries and Sun Solaris system is almost identical. The only difference is that you get the system.Z file from the JDEdwards/ hosts/pSeries or Sun directory. Another minor difference is that the commands are slightly different on the pSeries—but anyone familiar with AIX should be able to use the preceding instructions with ease.
Intel/Windows The final type of enterprise server that we will discuss installing a Tools Release on is the Intel/Windows server. This is by far the easiest platform to apply a Tools Release to. The first step is to end your host services. You can do this from the Control Panel Services program. In this application, you will see your JDE XXXX service, where XXXX is the name of your EnterpriseOne release (for example, JDE E812). NOTE EnterpriseOne does allow you to run update or cumulative update (CU) levels in parallel as well as different releases. For example, a parallel release would be E811, a different release would be E812, and a CU level would be E812.1. If you are running a CU or update in parallel, the name of the update will follow the release level in the service name; for example, JDE E812 Update 1.
Chapter 8:
Foundation Code
309
Backing Up the System Directory The Tools Release install wizard will create a backup of the system directory to a specified folder; however, it is never a bad idea to create one manually. Now that you have stopped your host services, open Windows Explorer. Go to Z:\JDEdwards\E812, where Z: is the drive on which EnterpriseOne is installed on your enterprise server. Highlight the system directory, right-click, and click Copy. Then paste the directory to a desired location. Do not delete the original system directory as it is used during the Tools Release install. Also do not delete the backup directory, as you may need it if you have to roll back the Tools Release. Installing the New System Directory to the Enterprise Server Next, you will need to install the Tools Release to the Enterprise Server. From the Tools Release download on the enterprise server, run the ETNT Setup.exe file; this will kick off the install wizard. This wizard will allow you to select a directory for the backup of the system folder. When it is finished it will also restore the jde.ini file and the resource directory from the backup as well as set the file attributes and validate/update any third-party DLLs. Restoring the INI File The last step the setup.exe performs when installing a Tools Release to an Intel/Windows server is copying the INI file from your old system directory to your new system folder. If the application did not do this, your host services will not run correctly. This is because certain values are set up in this file during the EnterpriseOne installation process, and if you do not have these values in the file when you attempt to run your host services, you will have problems. Once the setup.exe has completed successfully, you need to run a porttest and then start your host services from the Control Panel. To run a porttest, start a CMD session and change directory CD to Z:\JDEdwards\ddp\E812\System\Bin32, where Z: is the drive letter on which you have installed EnterpriseOne. You then type the porttest command followed by a valid EnterpriseOne user ID, password, and environment. It is a good idea to type the environment and user ID in uppercase, since the porttest program will pass whatever you type to the database, and the environment names are stored in uppercase in the database. If you pass an environment name in lowercase, your porttest will fail and the logs will say that the environment could not be found.
Building and Deploying an Update Package to Your Client Workstations The next step in applying a Tools Release is to build an update package that contains the new system directory and deploy it to your development workstations. Client update packages are the easiest and simplest ways to move the foundation code down to the client development workstations. A full package would also move the foundation code to your development workstations, but these packages take a
310
JD Edwards EnterpriseOne: The Complete Reference
long time to build and install, which is why the update package is the preferred method of delivering a new Tools Release unless there is a major jump in the Tools Release versioning. To build an update package that contains the foundation code, follow the instructions for an update package found in Chapter 7. The instructions are very easy and quickly defined.
How to Test and Remove a Tools Release In this chapter, we have spent a lot of time discussing when you would want to apply a Tools Release and how to apply a Tools Release. However, we have only alluded to how to test and roll back a Tools Release when necessary. This may be necessary because, as anyone in the software industry knows, things do not always go as planned.
Testing a Tools Release When testing a Tools Release, you need to test the Tools Release on both the workstation and the server. The easiest place to start is on a web workstation. Once you have applied the Tools Release to your web servers, you will need to test the issues that you applied the Tools Release to remedy. You will also want to test the issues on your server, if applicable. To do this, you could run any UBE on the server that was giving you problems. Once you have tested the issues that caused you to apply the Tools Release in the first place, the authors also recommend a cursory test of other mission-critical functionality. Although Oracle tests their Tools Releases extensively, issues can surface with new Tools Releases. TIP After applying a Tools Release, the authors recommend always testing row and column security, printing, and sign-on security. Tools Releases in the past have been known to change how and whether these work normally.
Removing a Tools Release If you do discover an issue or cannot meet a timeline and need to roll back a Tools Release, there are some things that you need to keep in mind. You will need to complete the following procedures: 1. Restore the original system directory on the deployment server. 2. Restore the original OneWorld Client Installation directory on the deployment server.
Chapter 8:
Foundation Code
311
3. Restore the systemcomp directory on the deployment server. 4. Restore the system directory on your enterprise server. Restoring the Deployment Server The first step is to restore the original system directory on the deployment server. You should also restore the original OneWorld Client Installation directory. You can do this through a Windows Explorer session on your deployment server. Remember, one of the first steps in this chapter was to back up this system directory. To restore the directory, ensure that you are logged out of EnterpriseOne on the deployment server. Using Windows Explorer, rename the current system directory to systemservicepack. Once you have done this, you will need to rename the systembak directory to system. This directory should be under Z:/JDEdwards/E812, where Z: is the drive that EnterpriseOne is installed on. Restoring EnterpriseOne Clients You will also have to recompress the system directory, as client installations will look for the CAB file contained in the systemcomp directory. Until you recompress your foundation, this CAB file will contain information from the Tools Release. To recompress the system directory, you need to go to menu GH9083, Package and Deployment Tools. Double-click on the P9621 package, Build Application, highlight your package, and go to Row Advanced. You will be prompted with a button to reset the package status; click Reset. Next, click Find from the Work with Package Definitions window. Expand the package until you see the status under the Properties directory. Ensure that the build status is set to In Definition. If it is not, highlight the package name and go to Row Active/Inactive. Once you have done this, go to Row Build Revisions and ensure that only the Compress Options are set for foundation. Once you have done this, click OK and you will be back on the Work with Package Build Definition window. Highlight your package and choose Row Active/Inactive and then Row Submit Build. This will recompress your foundation or system code. You will then need to redeploy the package to your client workstations. Restoring the Enterprise Server The final step of this process is to restore the system directory on your enterprise server. This process will be a little different for each platform. We will go over restoring the system directory for the iSeries, HP9000, and Intel/Windows platforms. The basic steps will simply repeat our earlier processes for installing the Tools Release in the first place. The real difference is that you will perform renames on your systembak directories created as a backup prior to the installation of the Tools Release. Let’s start with the AS/400 platform. First, log on to the AS/400 as a JDE user and type ENDNET; this will end your host processes. Once this command is finished, log on to the system as QSECOFR. You will then need to use the RNOBJ command; prompt this command by pressing F4. In the OBJ field, enter E812SYS;
312
JD Edwards EnterpriseOne: The Complete Reference
in the OCJTYPE field, enter *LIB; and in the NEWOBJ field, enter SYSOLDSP. This command will rename your system directory. Now you will need to run the command again, except that you need to rename your systembak library E812SYS. Once you have copied the system directory, you will need to grant other users authority to the ONEWORLD user profile. To do this, type GRTOBJAUT on the command line and press F4 to prompt the command. In the OBJ field, type ENTERPRISEONE; in the OBJTYPE field, type *USRPFFR; in the USER field, type *PUBLIC; and in the AUT field, type *USE. This will give the ONEWORLD user the correct authority. If you followed the instructions in this book, you should not have to copy your INI file again. If you didn’t, you will need to copy your INI file and printqueue directory. To copy the printqueue directory, type the following command: CPYF FROMFILE(E812SYSBAK/PRINTQUEUE) TOFILE(E812SYS/PRINTQUEUE) FROMMBR(*ALL) TOMBR(*FROMMBR) MBROPT(*REPLACE) CRTFILE(*YES).
To copy your INI file, use the CRTDUPOBJ command. Press F4 to prompt this command. In the OBJ field, type INI; in the FROMLIB field, type E812SYSBAK; in the OBJTYPE field, type *FILE; in the TOLIB field, type E812SYS; and in the DATA field, type *YES. Now that you have your system directory restored, the only step left is to perform a LINKBSFN. Type this command and prompt it by pressing F4. Enter the package name for each path code on the first line and the path code on the second line; you will need to perform this for every path code. You have now successfully rolled back a Tools Release on an AS/400 enterprise server. We will now discuss removing a Tools Release from the HP_UX system. To do this, you will need to copy the system directory on the HP9000. Since you copied the RunOneWorld.sh and EndOneWorld.sh scripts earlier, all you will need to do is end your host services and copy the system directory back. To end your host services, log on to the HP9000 as the user that starts your host services; for example, jdeE8121. Type $SYSTEM/bin32; this shortcut should have been set up during the initial installation. Type EndOneWorld.sh; this will stop your host processes. Once this command has ended, rename your current system directory and rename your systembak file to system. You should then be able to run a porttest and start your host services. NOTE The steps to restore the system directory on the pSeries and Sun Solaris systems are almost identical. An experienced administrator should be able to follow the preceding instructions and successfully roll back a Tools Release on either of these platforms.
Chapter 8:
Foundation Code
313
The Intel/Windows platform is by far the easiest platform to restore a Tools Release on. Log on to your enterprise server and go to Start | Control Panel and double-click on the Services program. You can start and stop the host services through this program. Highlight JDE XXXX service and click Stop. Now that you have ended your host services, you need to open Windows Explorer and go to Z:/JDEdwards/ddp/E812, where Z: is the drive where you have installed EnterpriseOne. Rename the existing system directory to systemold. Once you have done this, you need to rename the systembak directory to system. Copy your INI file out of the systemold/bin32 directory into your new system/bin32 directory. You should now be able to run a porttest and then start your host services again. NOTE If you copied the INI file when you originally installed the Tools Release, you will not need to recopy it when putting the backup system directory back in place. Rather, just copy the system directory backup and restart services.
Summary
This chapter should help you feel more comfortable with applying and administering Tools Releases across your system. You should now have an understanding of what a Tools Release is, when to apply a Tools Release, how to apply a Tools Release, how to test a Tools Release, and how to roll back a Tools Release. As an EnterpriseOne system administrator, you will find these skills invaluable, since Oracle delivers many of their fixes through Tools Releases. The ability to effectively work with Tools Releases separates good administrators from the average ones.
This page intentionally left blank
CHAPTER
9
EnterpriseOne Kernel Architecture 315
316
JD Edwards EnterpriseOne: The Complete Reference
A
s with many ERP systems, EnterpriseOne takes advantage of the underlying concepts of the client/server architecture. This allows the implementation to take full advantage of the power of the back office servers. To allow for this the EnterpriseOne product uses the concept of kernel processes on any EnterpriseOne servers that execute logic (business functions or batch processes). While these processes are all generically called kernels, each of them plays an important role in the EnterpriseOne implementation by fulfilling specific purposes. Working together, these server-based processes provide EnterpriseOne with a formidable amount of power and flexibility. By leveraging these kernel processes, you can tune your EnterpriseOne implementation to fit the needs of your business. To provide a greater understanding of the kernel processes, this chapter will review the following aspects: ■
What is a kernel?
■
An overview of the kernel processes
■
A closer look at the JDENET_n processes
■
JDENET_k kernel types
■
How to configure these kernels
■
Rules for configuring EnterpriseOne kernel processes
■
Strategies for configuring your server
■
Monitoring EnterpriseOne kernel processes
What Is a Kernel?
At the lowest level, a kernel is simply a daemon process that executes on the EnterpriseOne logic/application server(s). These essential background processes handle requests from development client machines, E1 HTML clients, other servers, and even third-party software. There are a number of different types of kernels in the EnterpriseOne product. These kernels are broken into different kernel definitions or kernel def types. Each of these kernel types addresses a separate set of requirements and performs different functions. Depending on what you need your EnterpriseOne server to do, the kernel processes can be tuned to meet different business needs. This provides EnterpriseOne implementations with the ability to leverage separate machines for different business processes. For example, you might have one server dedicated to batch processing and another server available to address business function requests from the interactive applications. The separate kernel definitions allow each of the servers in our example to be tuned for specific purposes. By modularizing the kernel parameters in this way, Oracle has provided the ability for
Chapter 9:
EnterpriseOne Kernel Architecture
317
their client base to tailor their kernel settings and tune servers in the EnterpriseOne implementation.
Overview of Kernel Processes Before we start discussing the lower-level components of the kernel processes, it is helpful to understand an overview of how the kernel processes look on the enterprise server. Figure 9-1 provides a high-level view of some of the kernel processes on an enterprise server. When the E1 services are started on the enterprise server, a parent JDENET_n process is spawned. This “master” process spawns other JDENET_n and
EnterpriseOne Kernel Overview Business Logic Shared Libraries
Message Queues
JDENET_k Call Object
Message Queues
JDENET_k Security
F98OWSEC
JDENET_k UBE
F986110
JDENET_n
JDENET_n Network Socket (Port Number)
Message Queues
JDENET_n Message Queues
jdequeue
FIGURE 9-1. EnterpriseOne kernel overview
runbatch
318
JD Edwards EnterpriseOne: The Complete Reference
JDENET_k processes. These processes are created at startup (this can be specified in the JDE.INI file via the autostart setting) or as they are needed. (When EnterpriseOne receives requests, processes can be started by the main JDENET_n kernel to handle new network connections. Any of these net processes can also start new kernel processes as new requests are received.) The number of net and kernel processes configured to start and what type of kernels these JDENET_k processes are can be configured in the JDE.INI file. The Queue kernel will generate runbatches when UBE/batch request(s) are placed in the F986110 table. When the runbatch completes, the job will update the F986110 table. It is important to note that the EnterpriseOne processes can access other database tables as required. For example, a runbatch process can access a number of different tables on the database (such as F0101, F0010). The message queues shown in Figure 9-1 are interprocess communication (IPC) resources, which are generated by calls to the operating system from the EnterpriseOne processes. When packets are routed to the JDENET_n job from a client or another server, they are placed in a message queue based on the type of packet. The JDENET_n processes in Figure 9-1 provide communication between clients and servers as well as from servers to servers. While the JDENET_k processes are generally generically labeled “kernels,” they can actually be a number of different types of processes. However, before we get into the specifics on each of the kernel types, let’s first take a closer look at the JDENET_n process.
A Closer Look at the JDENET_n Processes A key underlying component for the concept of a kernel process to work is that the processes must share a communications protocol or set of protocols. This is a formal set of rules that specifies the format and relationship for exchanging data across different devices. For the purposes of EnterpriseOne, this really draws back to what is generally referred to as middleware. The primary layers of the communication middleware are ■
Network layer This layer handles the addressing and routing information, error checking, and retransmission requests. Basically this layer is the roadway on which the information travels between processes.
■
Transport layer This layer provides the capability for end-to-end data exchanges in which systems maintain a session or connection with each other to exchange data.
■
Application layer The application layer provides application-toapplication interaction. JDENet is the application-layer communication middleware.
Chapter 9:
EnterpriseOne Kernel Architecture
319
This proprietary middleware communication package provides communication between the clients and the server as well as server to server. It is this base-level communication that handles how the EnterpriseOne software works with JDENET_k processes. When clients or servers send a request to a server, it will be via the sockets-based JDENET_n middleware. Once on the server, the JDENET_n processes will pass on the request between the different types of kernels. In this manner EnterpriseOne takes care of transferring a request to a server as well as spawning the required request over to a specific JDENET_k kernel process. In order to effectively address server-side requests, EnterpriseOne can configure different types of JDENET_k processes to address separate requests. For example, one type of JDENET_k process might be a Call Object kernel that handles business function requests where another might be a security kernel to handle security server requests. By splitting the types of kernels into separate “kernel definitions” that address different types of business processes/requests, EnterpriseOne provides the ability to tune and configure the servers based on your needs or requirements. Not only can these processes handle a number of different requests from users or servers (and load-balance these requests), but they can be adjusted based on the type of requirement you need to fill.
JDENET_k Kernel Types As we have discussed, EnterpriseOne provides a number of different types of kernels to address separate implementation processes. By dividing these processes up, the system can effectively address the incoming requests. So what are these mysterious kernel processes? The following list outlines the kernel processes that can be defined in the JDE.INI and a brief description of what these processes do: ■
Kernel Def1: JDENET reserved kernel Used for internal purposes. The JDENET_n processes are adjusted in a slightly different manner, which we will discuss later in the chapter.
■
Kernel Def2: UBE kernel
■
Kernel Def3: Replication Processes data replication requests (this is mainly a throwback to previous releases).
■
Kernel Def4: Security kernel
■
Kernel Def5: Lock Manager kernel Designed to process Transaction Manager and Lock Manager requests. Lock Manager is utilized to monitor time/date stamp changes to records. (Lock Manager is not true transaction processing. Transaction processing has to be done at the application level.)
■
Kernel Def6: Call Object kernel
Addresses EnterpriseOne batch requests.
Processes security server requests.
Handles requests for business functions.
320
JD Edwards EnterpriseOne: The Complete Reference
■
Kernel Def7: JDBNET kernel Addresses JDBNet server-to-server requests. This mainly handles communication between disparate systems (for example, AS/400 and Windows platforms).
■
Kernel Def8: Package Install kernel the server.
Addresses package build requests to
NOTE This kernel only exists in versions prior to 8.12. It does not exist in 8.12. ■
Kernel Def9: Server Administration Workbench (SAW) application requests.
■
Kernel Def10: Scheduler kernel
■
Kernel Def11: Package Build
■
Kernel Def12: UBE Subsystem kernel
■
Kernel Def13: Workflow kernel
■
Kernel Def 14: Queue kernel
■
Kernel Def15: XML Trans kernel
■
Kernel Def16: XML List kernel Handles requests for data in XML document format. (These processes handle moving information in and out of the EnterpriseOne system.)
■
Kernel Def19: Event Notification kernel Processes real-time events and XML documents generated by the Interoperability Event Observer, as well as Z file events. This will publish EnterpriseOne events to subscribers.
Handles SAW
Handles Scheduler application requests.
Addresses package build requests. Handles UBE subsystem requests.
Addresses workflow processes.
Handles the job queues. Handles XML requests.
NOTE If guaranteed events (such as a Transaction Server) are utilized, this kernel will no longer be used. ■
Kernel Def20: Interoperability Event Observer kernel Processes information from business functions calling real-time APIs and uses that information to generate an XML or Z file that is publishable to subscribers by the Event Notification kernel.
NOTE If guaranteed events (such as a Transaction Server) are utilized, this kernel will not be used.
Chapter 9:
EnterpriseOne Kernel Architecture
321
■
Kernel Def22: XML Dispatch kernel kernel.
■
Kernel Def23: XTS kernel Transforms XML messages from one type to another. This kernel is used when the XML message is not in a recognized E1 format.
■
Kernel Def24: XML Service kernel
■
Kernel Def30: Metadata kernel
■
Kernel Def31: XML Publisher
■
Kernel Def32 Server Manager Provides information to the Server Manager application. This application/kernel is specific to the 8.97 Tools Release and higher.
Routes XML messages to their proper
Processes inbound XAPI messages.
Processes XML spec access requests. Handles XML publishing requests.
NOTE The kernel definitions available will vary somewhat based on the product release of the EnterpriseOne product. Now that we have taken a look at some of the kernel processes, let’s talk in some more detail about each of them. JDENet is a generic term you will hear bantered about to describe communication between EnterpriseOne servers and clients. This is really a proprietary communications middleware package that provides server-to-server and client-to-server communication. The JDENET_n process is a peer-to-peer middleware solution. This solution handles requests from one machine to another (for instance a batch request or a request to execute a business function). This communication occurs through messages. JDENET_n messages can originate from the client or the server. JDENET_n messages contain requests for processing (such as EnterpriseOne sign-on security requests). The JDENET_n process handles database requests only if multiple servers are in use and if they are different server types. If this is the case, then the middleware is generally referred to as JDBNet. Application messages and requests can be issued synchronously or asynchronously. A synchronous message (like a business function) would wait for the server to complete the request. An asynchronous request (such as a batch process) would allow the client to continue working on another task while the EnterpriseOne application processed the request. While the JDENET_n processes communicate with workstations and servers, this key process also routes requests to the appropriate dedicated EnterpriseOne kernel processes. These processes (which can run on any platform type supported for the
322
JD Edwards EnterpriseOne: The Complete Reference
EnterpriseOne product line) route work to platform-specific logic processes, such as DLLs, shared libraries, and job queues. An individual EnterpriseOne application/ logic server will have multiple dedicated kernel processes, DLLs, shared libraries, and/or job queues. The key advantage to this is that many different clients can make requests to the same server at the same time. EnterpriseOne enables you to control the number of clients that can make and maintain a session connection to the server processes and further allows you to define the total number of dedicated processes on that server. This enables you to tune the server to handle different types of requests (such as batch, XML, BSFN). The JDENET_n process is key to all of this action as it is the “Ma Bell” of EnterpriseOne and keeps everyone connected. In the JDE.INI file on the EnterpriseOne application/logic server, you can define a number of key components of the JDENET process. For one thing, you can define how many JDENET_n processes you would like to run on a particular server. This will control how many connections you can have to that server at any one time. A good rule of thumb is one JDENET_n process for every 50 or so concurrent users (this would be in addition to the main JDENET_n process). To adjust this you would locate the [JDENET] stanza in the JDE.INI file. Under this section of the configuration file you can control the number of JDENET_n processes on the server by adjusting the maxNetProcesses setting. This setting will control how many JDENET_n processes can be spawned on your EnterpriseOne application/logic server. The next variable in the configuration file, maxNetConnections, provides you with the ability to determine how many connections you will allow for the EnterpriseOne server. This value is divided among the JDENET_n processes, not including the main JDENET_n process. For example, if the setting is 200 and you have set maxNetProcesses=5, then each JDENET_n process will handle up to 50 connections. The reason for this is that the main JDENET_n does not handle user requests (unless maxNetProcesses=1, which we do not recommend); it will only handle the initial connections from clients. The default value for this setting is 400; however, if you have a fairly large implementation, it is a good idea to increase this setting. By configuring these settings in the JDE.INI file, we are able to determine how many JDENET processes we will have and how many connections can be made to each of these processes. The next kernel we will examine is kernel definition 2, which is the UBE kernel. This kernel process addresses batch process requests. Part of this function is to handle user requests for PDF and log files. The Replication kernel definition (Kernel Def3) was designed to process data replication requests. This is mainly a throwback to earlier releases when EnterpriseOne had replication functionality to move tables from a central database to a local database. This kernel also handled data dictionary replication functionality. In newer releases, such as 8.12, EnterpriseOne does not replicate information.
Chapter 9:
EnterpriseOne Kernel Architecture
323
The Security kernel (Kernel Def4) is a critical server-side process for the EnterpriseOne product. This process pretty much is the “mother may I” functionality of EnterpriseOne. Whenever a user logs in to the system, accesses an application, or reads data in the system, the Security kernel comes into play. As this kernel does a large amount of work, let’s step through some of the scenarios one at a time. When an EnterpriseOne client logs in to the system (HTML or fat/development client), they will read their local configuration file and locate their security server defined for the client interface. This will define to the client which server to direct the user interface security requests to. Once the user enters their user ID and password, the client interface (such as HTML or fat) will communicate the request to the identified security server. The identified security server will query the F98OWSEC table and validate the user ID and password. The F98OWSEC table contains the encrypted password for individual user IDs. Depending on the results of the validation, the security server will either return success and allow the user to continue logging in to the system, or return a failure. If the user experiences a failure, they will get a message that they entered an incorrect user ID or password. Additionally, the Security server returns the first of proxy user IDs and passwords assigned to the signed-in users so that they can have access to the various data sources where EnterpriseOne stores data. So what happens for batch processes? Whereas the interactive users determine which security server they utilize via the local configuration file (such as JDE.INI or JAS.INI), the batch process uses the JDE.INI security server entry on the enterprise/ logic server that the batch process was submitted to. This allows clients to configure multiple security kernels to handle requests. The next kernel we will discuss is the Lock Manager kernel (Kernel Def5), which handles lock kernel requests. In the JDE.ini file the LOCK MANAGER stanza defines how EnterpriseOne handles Lock Manager requests. [LOCK MANAGER] Server = Name of the server providing Lock Manager AvailableService = Setting indicates the service the Lock Manager server is offering as well as indicating whether the Lock Manager server is on or off. To enable the Lock Manager, the Server variable needs to have a valid server name defined. In addition the Available Service variable needs to have the value of ■
TS or
■
NONE
The TS setting will turn on the Transaction Manager. The Transaction Manager process prevents users from overlaying data. Because of the name,
324
JD Edwards EnterpriseOne: The Complete Reference
this is a little misleading. The Lock Manager kernel does not handle true transaction possessing. Transaction processing has to be done at the application level. The Lock Manager verifies data based on the date changed. This is designed to protect one user from selecting a record and having another user modify the record. This would result in the first user having essentially “old” information. So, for example, suppose one user accesses a record (say an address book record) but leaves the screen open and does not save the changes, another user modifies the same record and clicks OK, and the first user then returns and clicks OK. Whose change is retained? In EnterpriseOne the last change wins. This means that the last user to click OK would overlay the existing record in the database. However, this user did not have the change that the second user put in place. So if the user changed a field the second user did not modify, that change would be lost. By reading the time/date modified column, the Lock Manager will determine which record was opened first. The Lock Manager would then produce a message to the second user telling them that the record is currently in use by another user, which will prevent them from changing a record that is currently being modified or could be out of date. It should be noted that as the Lock Manager process reads the date/time stamp columns, it does have some overhead associated with it. The Call Object kernel definition is key to the EnterpriseOne implementation because it handles interactive users’ requests to process business functions. Especially in later versions of the software, more and more of the business functions execute on the enterprise servers (HTML does not have any way to execute business function logic). So when a user accesses a field or enters data, there are functions executing on the server to validate the data or process the user’s request. This directly affects how the system responds to the user’s request. In the later releases of the EnterpriseOne product line (Tools Release 8.95 and higher), Oracle released the concept of multithreaded call object kernels. Prior to this new technology advancement, Call Object kernels were single-threaded. This meant that even though Call Object kernels can handle multiple user connections at one time, the Call Object kernel would service the requests one at time. For this reason, if you had a long-running business function and shorter-running business function, the shorter-running function could get queued behind the longer-running function. Multithreaded kernels enable the Call Object kernel to service a number of requests at the same time. The Call Object kernel would have a dispatch thread that would control the work being spawned to the other threads on the Call Object kernel. This allows the Call Object kernel to service the configured threads at the same time. For this reason, you need to keep an eye on the operating system setting for the number of threads and other key resources so you do not overtax your servers. The JDBNET kernel definition handles communication between disparate database platforms. For example, assume that you have an AS/400 and a UNIX server in your implementation. But your database is Oracle. The EnterpriseOne
Chapter 9:
EnterpriseOne Kernel Architecture
325
processes on the AS/400 server cannot directly access the data in the Oracle database because there is no native driver for Oracle on the AS/400. The JDBNET protocol allows the EnterpriseOne processes on the AS/400 server to access the data in the Oracle database by communicating with a JDBNET kernel running on the UNIX machine. This JDBNET kernel accesses the Oracle database on behalf of the AS/400 process and sends the results back using the JDBNET protocol. The Package Installation kernel handles package installation requests. This kernel process is utilized when packages are deployed to the enterprise server. This kernel can also be utilized when version specifications are submitted to the server. If a user has made a change to a version and wants to be able to see that change without a package build, they can submit version specifications to the server. To do this the user would go to the Advanced option in the Batch Versions application. From there they would select Submit Version Specifications Only. This will trigger the EnterpriseOne application to contact the Installation kernel and update the local specifications on the enterprise server with the latest version information. NOTE The Package Install kernel is only valid for releases prior to 8.12. As of 8.12 this kernel is no longer used. The next kernel in the JDE.INI file is the Server Administration Workbench (SAW) kernel. This kernel is responsible for collecting and reporting information about the kernels in EnterpriseOne. The SAW kernel will connect to each of the kernels to determine information including: ■
Number of users connected to the kernel (if applicable)
■
Number of requests processes by the kernel
■
Average time to complete the request
■
Outstanding requests
■
Users connected to the kernel process (if applicable)
This information is displayed in the SAW or Server Manager applications. This is critical to monitoring the health of the EnterpriseOne kernels and providing a view into how the system is executing. NOTE As of 8.97, Server Manager replaces the Server Administration Workbench application.
326
JD Edwards EnterpriseOne: The Complete Reference
EnterpriseOne is shipped with an out-of-the-box scheduler application. The Scheduler kernel is the server-side component of this application. In EnterpriseOne the administrator would define the scheduler server via the P91300 (Scheduled Jobs) application. This application updates the shared F91300 series tables (F91300, F91310, F91320 and F91330), which control the EnterpriseOne Scheduler application. In addition to defining what jobs the scheduler will submit, these tables define which EnterpriseOne server will run the Active Scheduler kernel. This means that the Scheduler kernel process on this server will handle submitting the UBEs to the defined servers. What if your implementation requires more than one scheduler? For example, what if the client wanted to have one schedule for their non-production and another for their production (assuming the client has separate hardware for production and non-production). As you will find with many things in EnterpriseOne, just because it does not come configured out-of-the-box does not mean that you can’t do it. To configure this you would want to create a copy of the scheduler tables (for example, F91300, F91310, F91320 and F91330) in a separate data source. This new set of scheduler tables would then be mapped via Object Configuration Manager (OCM) to the separate data source. This provides the ability to manage a separate scheduler. This includes not only the defined scheduled jobs but the identified server where the scheduler would execute. This is why it is important that the separate table OCM mappings are placed in the system and server map data sources. The next kernel in our discussion is the Package Build kernel definition. This kernel addresses requests for the package build and deploy processes. This serverside process is essential to the package build processes and spawns the programs required to complete the requested package builds. It is this kernel that will issue IPC locks to ensure that all EnterpriseOne jobs submitted during the package build process go to a W or waiting status until the package deployment has completed. (The IPC lock will also stop call object or business function processing during the deployment.) This will thereby prevent the EnterpriseOne processes from attempting to update the specifications while the package is being deployed. In this manner the Package Build kernel is kind of the control tower for package deployment processes. NOTE While the Package Build kernel process will prevent standard EnterpriseOne processes from interfering with the package deployments, jobs called via the runube process will not be placed in a W or Wait status. Due to this you could run into the situation where a third-party scheduler/manual runube process continues to execute while the package deployment process is under way. Because this can result in issues, we would recommend pausing any runube processes during package deployments.
Chapter 9:
EnterpriseOne Kernel Architecture
327
EnterpriseOne uses the UBE Subsystem kernel to submit new UBE subsystem jobs. The subsystem is designed to be a more effective alternative when clients need to execute short-running processes (for example Print Pick Slips). Instead of taking on the overhead of starting each Pick Slip process independently, a UBE Subsystem process acts as a daemon that immediately picks up and processes these requests. In many cases using UBE subsystems can result in better performance for business processes. The UBE Subsystem kernel handles requests to run iterations of UBE subsystems by adding an entry to the F986113 table. The Workflow kernel addresses workflow requests into the system. These requests trigger actions or messages. For example, a Workflow process might send a message to a manager when a customer requests that their credit limit be increased. This process would then wait for the manager to approve or deny the request. This kernel should be tuned based on how you are using Workflow in your implementation. The XML List kernel handles requests for data in XML format. This kernel process handles moving information in and out of the EnterpriseOne system. Many thirdparty programs such as DSI or RFSMART take advantage of the XML format and interface with EnterpriseOne in this manner. Whereas the XML List kernel handles requests for data in XML format, the Event Notification kernel processes real-time events and XML documents generated by the Interoperability Event Observer, as well as Z file events. It is this kernel that will publish EnterpriseOne events to subscribers. This defines EnterpriseOne processes to external systems and/or processes. NOTE This setting is obsolete when using guaranteed events with a Transaction Server. The next kernel definition, the Interoperability Event Observer kernel, handles processing information from business functions calling real-time APIs and uses that information to generate an XML or Z file. This file is then publishable to subscribers via the Event Notification kernel. The XML Dispatch kernel routes the XML messages to the proper kernel process. This kernel acts at the “radio man” for the XML processes. The XML Dispatch kernel parses incoming XML requests to determine the type of request (XML List, XML Call Object, and so on) and routes a new request to the appropriate kernel. The XTS kernel is utilized to transform XML messages from one type to another. This provides clients with the ability to leverage multiple XML types. The XML Service kernel processes inbound XAPI message for EnterpriseOne interfaces. The combination of these XML kernel processes provides the foundation for interface transactions to move through the system.
328
JD Edwards EnterpriseOne: The Complete Reference
In 8.12 the Metadata kernel processes XML spec access requests. This kernel is responsible for ensuring that the code matches between servers. In 8.12, when an application is executed, the specifications will be validated against the deployed package. If the specifications do not exist or have changed, the Metadata kernel will ensure that the proper specifications out of the package are installed. All of the specifications in 8.12 have moved from TAM to XML format. While this change is transparent to most of the system users, EnterpriseOne relies on new kernel processes like the Metadata kernel to make it as transparent as possible.
How to Configure These Kernels Now that we have talked a little bit about what each of these kernels are, how do you use the kernels effectively in your implementation? This is a hotly debated topic in the EnterpriseOne world and depends on many factors. To fully understand this we should first review some of the settings in the EnterpriseOne JDE.INI file. These settings control how kernels are defined to the EnterpriseOne system (how many kernels will be started, how many total kernels are defined for a specific kernel, and other key factors). In the JDE.INI file each of the kernel types has its own stanza. These stanzas identify the kernel definition that we are dealing with. These definitions define what role the kernel process will play and how it will communicate with the EnterpriseOne implementation. Each of the kernel definitions contains some standard variables that define each kernel process. Table 9-1 identifies these variables. These settings allow clients to adjust their EnterpriseOne kernel processes based on needs, but how do you know what your needs are?
Rules of Thumb for Tuning the EnterpriseOne Kernel Processes When setting up or tuning an EnterpriseOne logic/application server, it is a good idea to identify what role the server will play in the implementation. Will you primarily be submitting UBE/batch jobs to this server, or will you be directing business function calls to the server from the user interface? Well, as you review each of the kernel definitions, there are some good rules of thumb to tune the major EnterpriseOne kernel processes: ■
JDENET_n processes (the JDENET Kernel, Def1 should always be 0) A good rule of thumb is to have one kernel for every 50 users.
■
UBE kernel
■
Replication kernel As this is a throwback to previous releases, a good rule of thumb is to leave this kernel alone.
■
Security kernel 70 users.
A good rule of thumb is to have one kernel for every 60 users.
It is a good practice to have one kernel for every 60 to
Chapter 9:
EnterpriseOne Kernel Architecture
Setting
Purpose
dispatchDLLName
Identifies the name of the library that contains the function that will process JDENET requests received by the kernel process. These entries are platform specific.
dispatchDLLFunction
Contains the name of the JDENET function for handling JDENET messages. Each of the kernel types will have a different dispatchDLLFunction. These entries are also platform specific.
maxNumberOfProcesses
Represents the maximum number of kernel processes that can be run on the server for a particular kernel type. This setting can be modified to tune performance.
numberOfAutoStartProcesses
Shows the number of kernel processes that will automatically be started when the services are brought up. If this setting is 0, then no processes will be started automatically but will spawn based on requests to the particular kernel type. The value defined for the numberOfAutoStartProcesses must be less than or equal to the maximum number of processes for the kernel type. This value can be modified to tune performance. This would be done in the case where it was beneficial to start the process up front rather than waiting for the process to spawn on request.
KrnlName
Consists of a short description of the kernel’s usage.
TABLE 9-1.
329
EnterpriseOne Kernel Settings
■
Call Object kernel As the number of these kernels can affect interactive performance in the EnterpriseOne application, it is important to have enough of these kernels available. To meet this requirement, a good rule of thumb to follow is to have one Call Object kernel for every 6 users. This ratio tends to keep you out of situations where you are getting outstanding requests on the kernels.
■
JDBNET kernel If you are using this kernel, it would be a good practice to have one kernel for every 50 to 60 users.
330
JD Edwards EnterpriseOne: The Complete Reference
■
SAW kernel This kernel should be set to the number of users/administrators who could be accessing SAW information at any one time. For example, if you have two system administrators working in SAW throughout the day, you might want to increase your number of SAW kernels to two.
■
Scheduler kernel
■
UBE Subsystem kernel
■
Metadata kernel For large implementations, it is a good practice to have one Metadata kernel for every 300 users. This generally keeps the Metadata kernels down to under four.
■
Workflow kernel The Workflow kernel handles application requests for workflow processes. An example of this might be a request to increase a client’s credit limit. This could produce a workflow request to a manager to approve the credit approval. A good rule of thumb for this kernel would be a user ratio of 1 kernel to every 40 users.
■
Management kernel
This kernel should remain at the shipped value of one. This kernel setting should be set to a single process.
This kernel setting should not be set larger than one.
By using these rules of thumb you can configure your server to meet your business requirements. The following is an example of how the kernel definitions appear in the JDE.INI file: [JDENET_KERNEL_DEF2] krnlName=UBE KERNEL dispatchDLLName=jdekrnl.dll dispatchDLLFunction=_JDEK_DispatchUBEMessage@28 maxNumberOfProcesses=1 numberOfAutoStartProcesses=0 [JDENET_KERNEL_DEF4] krnlName=SECURITY KERNEL dispatchDLLName=jdekrnl.dll dispatchDLLFunction=_JDEK_DispatchSecurity@28 maxNumberOfProcesses=1 numberOfAutoStartProcesses=0 [JDENET_KERNEL_DEF6] krnlName=CALL OBJECT KERNEL dispatchDLLName=XMLCallObj.dll dispatchDLLFunction=_XMLCallObjectDispatch@28 maxNumberOfProcesses=1 numberOfAutoStartProcesses=0 ThreadPoolSize=20 ThreadPoolSizeIncrement=5 SingleThreadedMode=Y
Chapter 9:
EnterpriseOne Kernel Architecture
331
[JDENET_KERNEL_DEF12] krnlName=UBE SUBSYSTEM KERNEL dispatchDLLName=jdekrnl.dll dispatchDLLFunction=_JDEK_DispatchUBESBSMessage@28 maxNumberOfProcesses=1 numberOfAutoStartProcesses=0
As you can see from this subset, each of the kernel definitions has its own stanza in the JDE.INI file. Within this stanza you can identify the kernel based on the krnlName value. (As you become more familiar with the EnterpriseOne product, you might also start referring to the kernels by their definitions, like Kernel Def6 [Call Object kernel]). The dispatchDLLname defines the kernel. This will vary based on the platform you are working with (for example, NT has DLL, UNIX has so or sl, and so on). This identified file can be found in the system/lib directory for the enterprise server. The dispatchDLLFunction value defined the function call in the identified “library” for each type of kernel. This is important as these two fields differentiate the kernel definitions from each other. This is what tells EnterpriseOne how to call the separate kernel types. The administrator can use the maxNumberOfProcesses value to define the maximum number of kernels of that type that can be started on the system. If the kernels are not configured to start automatically via the numberOf AutoStartProcesses, they will spawn when a request comes into the system for that type of kernel process. This will continue until the maxNumberOfProcesses is reached. At that point the kernel processes will “round robin” requests between them. During this process the software attempts to keep the users load-balanced across the Call Object kernels, thereby attempting to keep the user count as equal as possible for each kernel.
Strategies for Configuring Your Servers As with all things in EnterpriseOne, a little planning goes a long way. If you do not have a large implementation, you might not require different servers to handle different requirements. In that case you want to tune your enterprise server to meet the general needs of your implementation (in other words, you need to find a happy medium between the different types of requests that the implementation will make on the server). If, on the other hand, you have a larger implementation, you really should start out by asking yourself what you are going to use this server for. This will help guide you in tuning the servers and the overall implementation. With larger implementations, it becomes effective to tier your system. This means that you have different layers to address separate business requirements. For example, you might have a separate server for batch processes versus interactive application calls (such as BSFN). This is essentially tiering your implementation into two separate components, batch and interactive. This enables you to tune each of the servers to meet the need that each is serving. As batch processes do not utilize Call Object kernels, the batch server would not require that many if any call objects are defined;
332
JD Edwards EnterpriseOne: The Complete Reference
however, it might require more UBE kernels. In this manner you can configure the servers to meet specific needs in your implementation.
Monitoring EnterpriseOne Kernel Processes Now that we have defined some of the kernels and have them running on the system, how do we know if they are working correctly? To determine the answer to this question, we can take advantage of a number of tools available to us. Let’s start out with the netwm tool on the enterprise server. This tool is delivered with the software and provides the ability to dump information about the kernel processes. This can be very useful in auditing how your kernel settings are doing on the server. This application will read data stored in shared memory and retrieve specific information about the kernel processes, such as: ■
Type of kernel process
■
The user count associated with the kernel This represents the number of users connected to the kernel process. This is very important for monitoring the load on an EnterpriseOne server. If too many users are associated with a kernel process, it can result in outstanding requests.
■
Outstanding requests When the kernel process is too busy to service a request right away, the outstanding request goes into a wait until the kernel frees up enough resources to answer the request. In a properly tuned implementation you should not have outstanding requests.
For example, Def6 would be Call Object kernels.
As this tool resides on the enterprise server, it can be useful for scripting custom alerting processes. By configuring this tool to run at specific times and to write to a log file, you can generate a performance profile of the kernel processes on your server(s). With this information you can determine how best to adjust your kernel settings in response to changes in load on your system. While the netwm tool is very useful, it is not as user-friendly as the SAW tool. You will find that there are a number of parameters that can be passed to the netwm tool (you can type netwm –h for a list of options). However, it is important to be careful with these options, as some of them modify the data in shared memory. NOTE We would recommend only providing SAW access to system administrators as configurationrelated information can be viewed via SAW. As of 8.97, Server Manager provides the ability to more closely limit what type of access a user has to the monitoring/administration functions.
Chapter 9:
EnterpriseOne Kernel Architecture
333
In the newer releases of EnterpriseOne, the Server Administration Workbench tool is web based. This web-based application is split up into a number of different components that can be utilized based on the type of information the administrator is looking for: ■
Enterprise SAW
■
HTML/JAS SAW
■
RTE/XML SAW
Each of these parts of the SAW application provides the administrator with information about different parts of the implementation. The HTML/JAS SAW component, for example, provides detailed information about the JAS server(s). Within this part of the SAW application the administrator can perform the following tasks: ■
View JAS logs
■
Turn on logging for the server: ■
Debug logging
■
Logging for an individual user
■
Examine information about the heap size of the server
■
Examine the environment-specific information about the server
■
Clear the EnterpriseOne caches (for the HTML/JAS Server):
■
■
Security cache
■
Data dictionary cache
■
OCM cache
The SAW application will also allow the administrator to clear the F989999 and F989998 tables via this interface.
The tools available in this component of the SAW application are very useful for determining how the interactive user is interacting with the kernel processes on the enterprise server. For example, the system administrator can determine whether the users have been experiencing any Call Object kernel failures. If users have, the system administrator can then start tracking back what exact business functions have been failing on the server. This tool will also provide information about functions timing out on the HTML server. To dig deeper into these types of items,
334
JD Edwards EnterpriseOne: The Complete Reference
the system administrator can search the JAS log files for timeouts. This will provide the system administrator with information on what function timed out and on which server. Armed with this type of information, the system administrator can take the next step and examine the individual server processes (for example, Call Object kernels) that are having issues to determine whether they might need tuning. To do this the administrator can utilize the enterprise server part of the Server Administration Workbench. This tool will provide the administrator with an overview of the kernel processes on EnterpriseOne application/logic server, including: ■
The type of the kernel process Each type of kernel process performs a different series of tasks. In our example the administrator would be looking for Call Object kernels, which are type 6.
■
Current state of the kernel process This will tell the administrator if the process is active or has become a zombie process.
■
The Process ID of the kernel This will allow the administrator to examine that process on the operating system of the enterprise server. This will provide the administrator with the following information:
■
■
How much CPU the resource is taking (is the process looping?)
■
How much memory the process is taking (do we potentially have a memory leak?)
The number of outstanding requests on the kernel process If the administrator sees a large number of outstanding requests, this can have several possible causes: ■
There are not enough kernels to handle the load on the server. To verify this, the administrator would look at the number of users on the individual kernel processes.
■
The kernel process has started to loop. This can be caused by applicationspecific issues and would be indicated by high CPU and low user counts on the other kernel processes. If the kernel process goes zombie or the system administrator kills the kernel, it will collect information on the last application/user utilizing it. This can be used to isolate any applicationspecific issues.
■
The kernel process has a memory leak. This could be the result of an issue with a specific application or a tools-related issue. To isolate this type of issue, the system administrator would examine the memory consumption of the kernel process.
Chapter 9:
EnterpriseOne Kernel Architecture
335
NOTE Depending on load, the memory footprint of the kernel processes might increase. Therefore, it is a good idea to get a baseline of how much memory your kernel processes are taking on the enterprise server. It is important to note that while the SAW application will show you what kind of kernel processes are running, they will only appear as JDENET_k processes on the enterprise server operating system. Another way to determine the type of kernel process is to examine the jde.log file for the kernel. This will show what type of kernel process was started. Here’s an example of a Call Object kernel starting up: 8728/1 MAIN_THREAD Sat May 31 12:31:41.193744 ipcmisc.c299 process 8728 <jdenet_k> registered in entry 9 8728/1 MAIN_THREAD Sat May 31 12:31:41.219009 netcfg.c265 Starting Kernel of Type:CALL OBJECT KERNEL 8728/1 MAIN_THREAD Sat May 31 12:31:41.644967 XMLRequest.cpp1260 ICU0000017 - ICU CodePage for 1252 is ibm-1252. 8728/1 SYS:Dispatch jdekdisp.c2087 INITIALIZING CALL OBJECT KERNEL
Sat May 31 12:31:41.648592
8728/1 SYS:Dispatch Sat May 31 12:31:42.267014 jdekdisp.c2164 KNT0000888 - Call Object Kernel Thread Pool in multi-threaded mode. 8728/1 SYS:Dispatch Sat May 31 12:31:42.267587 jdekdisp.c2171 KNT0000999 - Call Object Kernel Thread Pool Setting: size 20, increment 5
As you can see, the log files will show you the type of kernel process being started and any error messages reported by the kernel. This assists the system administrator in tracking down application-specific issues or kernel-specific related issues.
336
JD Edwards EnterpriseOne: The Complete Reference
As valuable as the SAW information detailed in this section is, as of 8.97 all of this functionality is pulled into the Server Manager application. Both pre- and post8.97, you can see the value that this toolset can provide to your technical staff in the administration of your implementation.
Summary
In this chapter we have reviewed the concept of the EnterpriseOne kernel processes. These daemon processes execute on the enterprise server(s) to address different types of system requests. This chapter has provided a high-level look at what a kernel process is before diving deeper into how these processes work in EnterpriseOne. We have examined the JDENET_n processes and how they allow the servers to “speak” to each other, as well as discussing the different types of kernels available in EnterpriseOne. Much like instruments in an orchestra, each of these kernel types plays a different part in the overall implementation. As the conductor of your implementation, we have provided you some guidance on how you can tune these kernels to meet your business requirements. The combination of this information should provide a base toolset to configure the kernel processes for your implementation and take full advantage of these server-based processes.
PART
II
System Administration and Troubleshooting
This page intentionally left blank
CHAPTER
10
EnterpriseOne Specialty Applications 339
340
JD Edwards EnterpriseOne: The Complete Reference
E
nterpriseOne is a very robust enterprise resource planning (ERP) system. This means that it offers a lot of specialty applications that users can use to their advantage. In this chapter we are going to look at some of the major applications that you need to be aware of in EnterpriseOne.
We will touch on the Object Management Workbench (OMW). This application has change management features built into the tool. We will explain how it can help meet your software development life cycle requirements. It is also a single interface for your developers to access all the tools in EnterpriseOne. The software uses metadata across the system to provide some of the functionality. This metadata is used to handle Julian dates and translate field names to meaningful descriptions. The system uses metadata to handle field lengths and different data types. This metadata is called the data dictionary. We will cover why this is important and some of the key concepts of the data dictionary. Media objects are often the unsung hero of the EnterpriseOne system. This functionality allows you to put notes with your key transactions and even attached scanned documents to the records. Next we will discuss the system tables. These are key to the functionality of the system. They are what is referred to as a shared data source, which all of the environments use. We will also cover why the server map tables are important and how they are used by the host code. The control tables contain key information such as user-defined codes and menus. It is important to understand how they affect your environments and system behavior. The data browser, which is a fairly new application, is also a very powerful one. This application allows users to use EnterpriseOne business views to view data directly from the database tables. We will cover how this tool can be leveraged by your power users. Finally, we will cover how you can control batch processing through the Job Queue application. This application allows you to specify your job queues, which servers they are on, and how many jobs can run in the queue at the same time.
Object Management Workbench
JD Edwards EnterpriseOne is an object-based product. This means that objects can be reused over and over again in the code for the product. This approach helps to keep the costs of developing new functionality in the system down and also makes modifications to the system easier. In this section we are going to cover the high points of the Object Management Workbench. If you want more details on this powerful application you can reference Oracle’s documentation or additional volumes from McGraw-Hill on EnterpriseOne.
Chapter 10:
EnterpriseOne Specialty Applications
341
The Object Management Workbench (OMW) is a change management system consisting of models, methods, techniques, and other tools for EnterpriseOne development activities. This tool helps to automate many change management procedures and can be very powerful if used correctly. It provides a graphical user interface (GUI) for EnterpriseOne developers (see Figure 10-1) and puts all of the different tools that developers use in a single application. OMW also employs the concept of projects, user roles, and object tokens to give you better control of your change management process within the EnterpriseOne system.
Projects The OMW is a project-based tool. What does this really mean for how you use it? Well, this application sees the world in the context of a project. A project consists of a group of EnterpriseOne objects that have been modified or created by a user, which is normally a developer. These projects allows you to group EnterpriseOne objects to complete a task or problem. In some systems developers have to use multiple forms and spreadsheets to track all of their objects for a development effort. With OMW projects the developer can simply add all of the objects to their project
FIGURE 10-1. Object Management Workbench
342
JD Edwards EnterpriseOne: The Complete Reference
and everything automatically stays together through promotions. OMW also allows the developer to reserve the object with the token, which will be discussed later in this section. It may be easier to think of a project as something like building a plane. You need to track the progress of the plane as it is built and ensure that the proper parts are put on at the proper time. The same holds true with an OMW project. This type of tracking also allows companies to perform release management instead of just change management. In change management you are only concerned about how objects are handled. In release management you are concerned about how complete functionality is moved forward in releases. This type of functionality may consist of 10 objects or 200. All of a developer’s work must be done in a project. This means all modifications inside EnterpriseOne are done in the context of a project. There are two types of projects in the OMW. These are the projects that users add to the system for modifications, such as a sales order project, and a default project. The default projects are created automatically and there is one per user in EnterpriseOne. These projects cannot be promoted and can really be thought of as an area where a developer can look at something without putting the object into a formal project. Also, if someone uses a tool directly instead of through OMW, they are really still using OMW. The object will simply be placed in their default project. A common example would be a business analyst or developer adding a version through the Batch Versions application. The action will be logged by OMW and the object placed in their default project. TIP A common issue during prototyping of an EnterpriseOne system is that all the analysts add their versions directly from batch versions. This places the versions in their default projects, which cannot be promoted. This means that the objects have to be moved manually from the default projects to a standard project. This is a very time-consuming task. Instead, add a project for versions for each major team and add all your analysts with restricted rights to the project. Then all of your versions will be in one place and easily promoted.
Objects When we say that the OMW tracks all objects within EnterpriseOne, it is important to define what EnterpriseOne considers an object. With the introduction of the OMW the definition of objects changed slightly. In the past all objects were listed in
Chapter 10:
EnterpriseOne Specialty Applications
343
the Object Librarian. Now OMW also considers some items that are not listed in the Object Librarian table as objects. These objects are actually stored in some data files. Why are they considered objects, then? Well, they can drastically affect how the system functions, so there is a definite need to track this type of change. To keep these objects straight it may be easier to think of them as control data. Object Librarian objects include the following: ■
Interactive applications
■
Batch applications
■
Data structures
■
Business functions
■
Business views
■
Named event rules
■
Media objects
■
Tables
■
Business services
The following are Non-Object Librarian objects: ■
Data dictionary items (DD)
■
Interactive and batch versions
■
User-defined codes (UDCs)
■
Workflow items
■
Menus
■
User overrides
TIP In the past maintaining two data dictionaries could be challenging as you had to manually promote these changes. The OMW recognizes the two data dictionaries and allows you to easily promote changes as you move projects through different status codes.
344
JD Edwards EnterpriseOne: The Complete Reference
Owners We have talked about projects, but have not spoken about how users interact with those projects. Each project has what is referred to as owners. An owner of a project is a user that plays a role on that project. So going back to the example of building a plane, you may have welders on a project that play one role and mechanics that play another. The concept is very similar with OMW. Users can play different roles on the same project. Also, there can be many users on the same project. The search tab, on the right side of the OMW screen, is used to add users to a project and assign a role for that user on their project.
Roles Each person in a play or on a sports team has a specific role to play. This ensures that each person is doing what they should be doing to reach the end goal. The OMW is constructed in a manner that allows you to tie users to specific roles on projects. In the previous section we described how users are owners of projects, when they are assigned to a project. However, just being an owner is not enough. The system needs to know what specific role you are going to play on the project. Another way to think of a role would be a job description. The managers generally assign the project roles to individual users on projects. The Object Management Workbench is very flexible and configurable. It allows you to define customer roles if you like, to better show how work is done in the system at your site. However, for our purposes here we will talk about the shipped roles within OMW, which are listed in Table 10-1.
Allowed Actions Allowed actions are rules that spell out what actions a specific user may perform on an object in a project. These allowed actions are defined for each project status and for each object type. OMW has project statuses that show a project’s advancement through the software development life cycle (SDLC). An action is an event or series of events, such as design and transfer—actions that are common within a development environment. An example would be an allowed action for a developer, which is an authority or privilege that comes with the user role. So this role would have the ability to change objects within the EnterpriseOne system, such as applications. These rules or allowed actions are configured by the system administrator for each object type and project status. The shipped values generally cover a company’s needs, but they can be customized easily as well.
Chapter 10:
EnterpriseOne Specialty Applications
Role
Description
Definition of Role
01
Originator
The user that originated the project. When a project is added in EnterpriseOne, the user that added the project is automatically added as the originator, with the standard OMW configuration.
02
Developer
A user that creates and works with the projects. These are your report writers and people who will modify your EnterpriseOne objects for you.
03
Manager
The user that manages the project. This is generally the supervisor or manager of the development team.
04
Quality Assurance (QA)
Users that test and sign off on the project’s functionality.
05
Product Support
Generally, users that relay status of the project to outside persons.
06
PVC Administrator
Users that are responsible for maintaining version control over the EnterpriseOne development tools. This is the most powerful role in OMW.
07
Training
User(s) responsible for maintaining training manuals and creation of training sessions.
08
Documentation
User(s) responsible for updating and creation of documentation on a change made to the EnterpriseOne system.
09
Supervisor
User(s) that supervise a portion of the project. This code is generally only used by larger customers.
TABLE 10-1.
345
OMW User Roles
Tokens Earlier in this section, when we discussed objects, we mentioned that all projects can contain Object Librarian–type objects and non-Object Librarian–type objects, which we referred to as control data. Object Librarian–type objects use the concept of a token to minimize the possibility of one user overwriting another user’s changes to an object. Non-Object Librarian–type objects do not work with a token. These objects are generally controlled through environment access, OMW user roles, and application security. The token system organizes the development and modification of EnterpriseOne objects by providing a single check-out environment. Tokens are assigned to the
346
JD Edwards EnterpriseOne: The Complete Reference
project, if the token is available, when an object is checked out. This means that anyone on that project can work with that object. However, it is important to note that OMW is smart enough not to allow the same object to be checked out to different machines at the same time, even if the users both belong to the project with the token. Still not sure you get what a token is? Remember when you were a kid at camp sitting around the fire and could only speak when you had the stick or token? This is the same concept. The token is assigned to the project and you can only check the object out and in if you have the appropriate user role and are assigned to the project that owns the token. If some other project has the token, it will not stop you from attempting to add the object to your project. You will be notified that another project has the token for the object when you attempt to check the object out. You will then be presented with a screen asking if you want to be placed in queue for the token or if you want to inherit the token, as shown in Figure 10-2.
FIGURE 10-2. Token queue window
Chapter 10:
EnterpriseOne Specialty Applications
347
NOTE The authors do not recommend inheriting the token. This joins your project with the project that owns the token. This means that these projects must now be promoted at the same time. Also, once you inherit a token, there is no easy way to undo this. Unless you truly understand and are comfortable with the concept of inheriting a token, the authors recommend that you use security to restrict this option. You may be asking yourself what if my developer is sick or a critical issue is found. Am I stuck? The answer is no. If your user role has the correct allowed actions, you can switch the token. This means taking the token away from one project and assigning it to another. You can also release the token and allow the next project in line to be assigned the token. If you are in queue for the token, once it is released, either by the project reaching a specific status code or manually, you will automatically receive the token for that object.
The Object Management Workbench Form In this section we are going to very briefly cover the basics of navigating around the Object Management Workbench application. To access this application you can simply type OMW in the Fast Path or go to menu GH902. This will bring you into the Object Management Workbench application, which is shown in Figure 10-3. On this screen you will see several things. Let’s start with the two tabs on the right-hand side of the screen. One is the News/Status tab. This tab will show a news page if no project or object is highlighted. This HTML page can be customized and display information specific to your company. If you highlight an object or project in the left-hand pane of the application, this tab will then show you information on that specific object or project. You will also notice some fields in the top-left side of the application. These allow you to easily find what you are looking for in the application. These fields are User, Role, and Status. They allow you to search from projects assigned to a specific user. You can also limit the search to projects in which that user is assigned a specific role, and/or you can search for projects in a range of project statuses. The buttons in the center of the application will change depending upon the role you are assigned to, specific projects you are working on, and/or the project’s status code. These buttons allow you to perform specific actions such as checking an object out of or into the system.
348
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 10-3. OMW application
TIP There is a feature in OMW called the Save Location. When this location is set up by the system administrator, it allows users to save objects to the server without checking them in. This means that if a development workstation is lost for some reason, the work is not lost. The user can also highlight the project and click the Save button, and all Object Librarian–type objects in the project will be saved. This button looks like a disk. The Restore button will restore the objects from the Save Location to the development workstation. The authors highly recommend that all developers use this feature.
Chapter 10:
EnterpriseOne Specialty Applications
349
You will also notice that you have the standard Select, Find, Add, Copy, Delete, and Close buttons at the top of the application. When you click the Add button, you will be prompted with a screen, shown in Figure 10-4, that allows you to select what type of object you want to add. OMW allows you to add all the different object types from one handy, easy-to-use application. The Select button allows you to select an object or project. This will allow you to see information specific to that object or project. OMW gives you the ability to attach documentation to both projects and objects. This is very handy in keeping track of changes to the system. The Find button allows you to search for projects. The Copy button allows you to copy an object or project. The Delete button allows you to delete an object or project. If you delete a project, the objects in the project are not deleted. If a token is attached to the project, it will be released and the project definition is simply deleted. If you delete an object, you will be presented with the screen shown in Figure 10-5. This screen allows you to choose whether you are deleting the object from the save location, deleting it locally, deleting it from the path code, and/or marking the object to be deleted from higher path codes when it is promoted.
FIGURE 10-4. OMW Add window
350
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 10-5. OMW Delete window
Basic Search in OMW In the previous sections we described how you can search for projects on the main window of the Object Management Workbench application. Now let’s take a minute to discuss how you would search for objects to add to a project. You would do this by selecting the Search tab on the right-hand side of the Object Management Workbench window. You will see two drop-down lists and a search field on this window. The drop-down lists are Category and Search Type. The Category is the category of the item you want to find. So if you are looking for an application you would choose Object Librarian as the category, since an application is an Object Librarian–type object. If you want to find a user to add to, you would select user from the Category drop-down list. The search type allows you to refine your search even more. You can search for a specific version of an application or UBE. You then type what you want to find in the Search field and click the small Find button next to the Search field. You can also use * as a wildcard in these searches. So if you are looking for an application and its name begins with P09, you can search for P09*.
Chapter 10:
EnterpriseOne Specialty Applications
351
FIGURE 10-6. OMW Search window Figure 10-6 shows the search tab for the OMW application. Once you find what you are looking for, you can add it to your project. There is also an advanced search link below the Search field. This will take you to a screen where you can further refine your search using Query By Example (QBE) functionality.
Logging The OMW application is a change management application as well as a development application. This means that it has the ability to log or track what occurs in the application. The logging level can be customized in the OMW configuration, by the system administrator. Out of the box all logging is turned on. The logged events are written to a table in the system data source. This means that you will have a record of these logged events unless you clear this table. All major events, such as check-out, add object to project, check-in, design, object transfer, and delete, are logged. If you would like to see the logging for an object or a
352
JD Edwards EnterpriseOne: The Complete Reference
project, you can take the Logging row exit, after highlighting the object or project. This will take you into the Logging window, which allows you to search for all actions on an object or project or simply the last action. This is very powerful as you can easily see which user has done what to each object at what time and from what workstation. This provides your system administrator with a very detailed audit trail if they ever have to troubleshoot what has happened to an object.
Behind the Scenes of OMW EnterpriseOne software has evolved and added new functionality over the years. Part of this functionality has been the Object Management Workbench. However, in the background this application uses some old familiar tables.
The F9860 Table (Object Librarian Master) For the Object Management Workbench to function correctly there must be a list of all objects in EnterpriseOne. This list has to ensure that all objects are unique to the system, so the system requires all the objects to be uniquely named. EnterpriseOne handles this through the F9860 table, which maintains a single entry for every object in the EnterpriseOne system. Included in these definitions are the object’s ID, its description, its object type (known as its function, such as BSFN, TBLE, APPL, and so on), the system code, and the parent DLL. This is why each instance of EnterpriseOne only has a single set of Object Librarian tables. The Object Librarian data source is what is called a shared data source. That means that all environments in an EnterpriseOne installation use the same Object Librarian data source. This ensures that no duplicate object names are allowed in the system.
The F9861 Table (Object Librarian – Status Detail) The F9861 table maintains path code–specific entries of every object in the system. There can be more than one entry per object for a specific path code because this table maintains information such as object name, machine name where the object is located, path code name, the major release level, merge options, change status, who currently has the item checked out, and when they checked it out. This type of information is shown in the Object Management Workbench when you highlight an object, on the right-hand side. However, it is important to note that this is not the logging information used by the OMW. The logging information is stored in specific OMW tables in the system data source.
The F9862 Table (Object Librarian – Function Detail) You’re probably wondering what other data you could possibly need. After all, you know what the objects are and where they reside. What else is there to define? The F9862 table specifies every function in a business function.
Chapter 10:
EnterpriseOne Specialty Applications
353
NOTE When you are working with the EnterpriseOne application (especially during troubleshooting), you may notice that a particular function will cause an issue. The logs almost never tell you the actual name of the business function that fails. They will instead give you some description. The F9862 table can help you decipher the actual business function that failed. You can also access this information through the advanced search in Object Management Workbench.
The F9863 Table (Object Librarian – Object Relationships) The F9863 table is exactly what it seems. It defines the connection between the business functions and other objects, primarily other business functions and tables. However, there are a few business functions that have direct relationships with UBEs.
The F9865 Table (Object Librarian – Form Information) The F9865 table defines each and every form in every application in the EnterpriseOne system. Some of the information contained in this table includes the form name, its ID (where held over from earlier releases of EnterpriseOne), the form description, the form type (parent/child, find/browse, and so on), the system code, the application, and the help file associated to it.
Checked-Out Items The F9861 table can be used to quickly identify items that are checked out by path code, machine, and user. In the old days we would use a direct SQL statement against this table, to determine who has what item checked out to what machine and when they checked it out. However, now you can easily see this type of information directly in the OMW application. However, for those old die-hard CNC folks out there, the following is an example of a SELECT statement to show what objects are checked out. SELECT siobnm, sipathcd, simkey, siuser, siupmj FROM OL812.F9861 WHERE simkey<>'DEPLOYMENT SVR NAME' ORDER BY sipathcd, siuser, siupmj
Another quick note on this is that it is a read-only SELECT statement. Consequently, there is no way to damage your data or database by running the preceding query. This means you do not need to back up this table prior to using this method.
354
JD Edwards EnterpriseOne: The Complete Reference
Data Dictionary
What is the data dictionary and how does it qualify as part of the specialty applications group? The data dictionary is one of the most important pieces of the EnterpriseOne software package. It is a part of every installation and implementation. If there is a problem with it, you will definitely hear about it. In this section, we will discuss in more detail what the data dictionary is and what considerations you need to have when you are working with it.
Data Dictionary Defined The data dictionary is a central repository of data item information. In simple terms the data dictionary is the metadata of EnterpriseOne. Many of the elements in the data dictionary are immediately realized when changed without the requirements of recompiling an application. This is true of all components of the data dictionary except for row and column descriptions. The data dictionary performs the following functions in the EnterpriseOne system: ■
Defines every data item in the EnterpriseOne system including column definitions and base text information. We will discuss this in more detail later in this section.
■
Determines how data items appear on reports and interactive forms.
■
Provides error messaging.
■
Contains column and row descriptions. These may be used as default values when developing in EnterpriseOne.
■
Used in conjunction with User-Defined Code (UDC) values, validates field data entry (when you enter information into a field and the field turns red indicating an error, the data dictionary was instrumental in determining the validity of the data entered).
■
Provides field-level help messages. These are shown when you press F1 in a field.
■
The system does not store the decimal place in the database file and uses the data dictionary to determine the number of decimal places displayed in various interfaces and calculations throughout the system.
Data Dictionary Tables The tables associated with the data dictionary include the following in the central repository:
Chapter 10:
EnterpriseOne Specialty Applications
■
F00165 (Media Objects Storage)
■
F9200 (Data Item Master)
■
F9202 (Data Field Display Text)
■
F9203 (Data Item Alpha Descriptions)
■
F9207 (Data Dictionary – Error Message Information)
■
F9210 (Data Field Specifications)
■
F9211 (Data Dictionary Smart Fields)
■
F9212 (Smart Field Criteria-Setup Rules)
■
F9755 (Change Table Data Item Master)
■
F9757 (Change Table Data Item Alpha Description)
■
F9760 (Change Table OneWorld Data Field Specification)
355
We’ll start with the F9200 table (Data Item Master), and work our way forward as we gain a better understanding of what is in the data dictionary. The F9200 table is the header information for each data item and includes the data item name, its system code, and its reporting code. It also contains some audit data, including the user ID of the user who either added or modified the data dictionary item last, the machine the change was issued from, and when the change occurred. The next table we should discuss is F9202 (Data Field Display Text). It contains a language identifier and several different columns for descriptions and fieldsensitive help. The next table is F9203 (also known as Data Item Alpha Descriptions). It maintains descriptions used in both the data dictionary searches and the Object Librarian records. The next table up for discussion is the F9207 table (Data Dictionary – Error Message Information). It is important to note that all error messages displayed in EnterpriseOne originate from this table. Many organizations decided to modify these error messages to make more sense for their specific implementation of the product. The next table is the F9210 table (Data Field Specifications). This defines each data item in detail, including the type of field, the number of decimal places, and so on. This is the real information behind the data dictionary item definitions and can be considered the detail lines to F9200’s header information. The next table we’ll discuss with regard to the data dictionary is F9211 (Data Dictionary Smart Fields). Smart fields are data dictionary items that are associated with specific business functions. An example might be a smart field in a UBE drilldown report that summarizes data from multiple places for the end user. This table
356
JD Edwards EnterpriseOne: The Complete Reference
is related to the F9212 (Smart Field Criteria-Setup Rules). This table contains information on the setup or configuration for the smart fields. The next series of tables we will discuss is change tables. These tables are not used in the day-to-day operation of EnterpriseOne. The only time these tables are used is when an upgrade to the system takes place. The data dictionary merge during an upgrade or ESU is a customer-based merge. This means that the data is not reloaded with out-of-the-box EnterpriseOne data dictionary files. Instead Oracle development keeps track of every data dictionary change they have made. This goes into the change tables. This is how the merge process knows what data dictionary changes to apply when you upgrade from a specific release to another release. These change tables for the data dictionary are F9755 (Change Table Data Item Master), F9757 (Change Table Data Item Alpha Description), and F9760 (Change Table OneWorld Data Field Specification).
Data Dictionary Locations As we have discussed, the data dictionary is the metadata that EnterpriseOne uses to determine how to display columns and even data in the applications, such as display decimals. The data dictionary is maintained in several different locations throughout the enterprise. When speaking about data dictionary information, it is important to be clear on what type of data dictionary files we are talking about. There are the data dictionary relational database tables and the specification files that are used at run time by client workstations as well as application servers. The specification files are the DDTEXT and DDDICT files. These are “light” files, meaning they start out empty, and as the user moves through the system, the information is just-in-time installed (JITI) to the files. The process is similar for web servers, except that the data dictionary information is generated on the fly to the serialized object tables. However, the result is the same; once the information is loaded, then the machine does not have to go look at the data dictionary tables again since it has the information in “local” files. So if that is the case, how does a change to the data dictionary get recognized by the system? The easiest way is a package deployment. If you build and deploy a package, the data dictionary files will be replaced by blank files. In a pinch you can log out of the client or stop the application server host services and remove the DDDICT and DDTEXT files from under your path code directory structure. They will be created again when the application reads the data dictionary. With this in mind, let’s finish our discussion on data dictionary locations. Now that you understand the difference between the data dictionary master relational database files and the local spec files, let’s talk about the shipped data dictionary configuration. When EnterpriseOne is installed out of the box, you have two sets of data dictionary relational database files. These are for the pristine data dictionary
Chapter 10:
EnterpriseOne Specialty Applications
357
and the data dictionary data source. By default the pristine environment is mapped to look at only the pristine data dictionary. This ensures that you have a base pristine setup to look at and test against. All other environments are pointed to the data dictionary data source and share the same set of data dictionary tables. Now if you are a small organization with minimal to no development efforts, this configuration will work fine for you. However, if you are a larger organization or will be doing any significant development efforts, it is recommended that you add a production data dictionary data source. You would do this by creating the custom data source, copying the data dictionary tables to this data source, and mapping the production environment’s data dictionary tables to this data source. To ensure that this data dictionary is updated when objects are promoted, you could simply configure this in your promotion rules for the Object Management Workbench. This allows you to isolate changes made via development or an Electronic Software Update (ESU) to your lower environments prior to promoting them to the production environment.
The Data Dictionary and Development Anyone who has worked with the EnterpriseOne development tools knows that when working with either interactive or batch applications, the column names for data fields are somewhat archaic—especially when you consider long filename support. You’ll see column names like OMOBNM or VRPID and might have a difficult time understanding that these two columns actually contain the same data in two different tables. The actual data dictionary defined items are OBNM (object name) and PID (program identification). Let’s consider how the data dictionary helps with development. First, before any data item can be used in the system, it must be defined to the data dictionary. This is done using the Data Dictionary application (P92001; this will be discussed in more detail later in this section). When tables are designed, you use these data item definitions to describe your new table columns. The Object Management Workbench is then able to use these definitions when generating the table in the database. Second, once you have a table to store the information in, you want to add, manipulate, and display the information for and to end users. The data dictionary allows you to control what type of data is entered into your tables, whether it is capitalized, what applications are used to validate the information entered, and even the number of decimals displayed to the end users. It controls every aspect of the data entered and displayed. Finally, the data dictionary itself is integral to any EnterpriseOne development. Each of the tools associated with EnterpriseOne has and uses a data dictionary browser, allowing development to find, drag, and drop these definitions into the forms, reports, and tables they are creating and modifying. When a developer wants to add an index to a table through the Table Design Aid (TDA) tool in OMW, he or she can find the data item in the data dictionary browser and drag the definition of the data item into the index definition.
358
JD Edwards EnterpriseOne: The Complete Reference
Working with the Data Dictionary Application Now that you know what the data dictionary is and some of what it does, you need to know how to manipulate it and add to it as necessary. There is a disclaimer that needs to be put forward at this point. It is strongly recommended that you do not modify most of the data dictionary specifications as shipped with the software (one of the exceptions to this rule is the glossary text). Doing so could adversely affect any number of tables, interactive applications, or reports. Traditionally, it is only recommended that you add or modify custom items that have been added to the data dictionary. It is also highly recommended that you don’t delete any data items shipped with EnterpriseOne. Since the standard EnterpriseOne applications use these data dictionary items across the system, if you modify one or remove it you could cause serious issues. An easy example would be changing the display decimal. Since the system stores the data in the database without decimal places, one million is stored as 100000000 with two decimal places. So in the system it would look like this: 1,000,000.00. Now let’s say you changed this to four decimal places. This is what would now show in the system: 10,000.0000. If this field were related to dollars or even inventory items, this would definitely get the attention of senior management! TIP There is a tool that you can use to see everywhere a data dictionary item is used in the system. This tool is the Cross Reference Facility application. You can find this on the GH902 menu under Object Management. This application can show you everywhere a data dictionary item is used, once you build the relationships. This is done through a UBE, which is called through the application under the form exit Rebuild Relationships. Having the crossreference built can greatly assist in troubleshooting.
Interactive Applications To get to the Data Dictionary application, type dd in the Fast Path or go to the GH951 menu (refer to Figure 10-7) through the EnterpriseOne Solution Explorer. You will notice that there is one primary application P92001, a secondary P92002 application containing several different versions based on what you are trying to accomplish, and several batch applications that are used to help administer the data dictionary that can be accessed through this menu. The P92001 application is described in much greater detail in the JD Edwards EnterpriseOne Developer’s Guide; however, we wanted to go over what the application does and how the data dictionary works in general. As with most of the applications we describe, we will
Chapter 10:
EnterpriseOne Specialty Applications
359
FIGURE 10-7. Data Dictionary menu use an example so that you can gain a better understanding of the application itself. In this case, we are going to work with the alias ENHV and the environment field. To start P92001, double-click it on the GH951 menu. You will see a basic search form allowing you to find your data dictionary item in different ways, including by data dictionary name, by alias, and by description. You can even find all of the data items by system code. All these options become useful when trying to find data items associated with a specific product or if you aren’t quite sure what the data item is called. In the Alias QBE line, type ENHV and click the Find button (refer to Figure 10-8). Either click Select or double-click the grid row to access the EnvironmentName data item record (this can be seen in Figure 10-9). You will note that there are elements from several different tables displayed on this form; however, the majority of the information is from the F9200 and F9210 tables. You will also note that this form contains a series of tabs that display most of the other data controlled by the data dictionary. Feel free to explore this application, but remember the warning provided earlier not to delete entries. If you accidentally modify something, click the Cancel button so you don’t cause any harm to your EnterpriseOne implementation.
360
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 10-8. Work With Data Items window NOTE Because of the powerful and possibly adverse effects the Data Dictionary application can have on the system, it is recommended that only specific users, such as senior developers or change control personnel, have access to this application. P92002 – Error Messages Application The P92002 application primarily works with text information and error messaging. You will see this application listed three times, just running different versions on the Data Dictionary menu. The application shows up on the menu as Error Messages, Workflow Messages, and Processing Option Glossaries. One of the differences in this application as opposed to other applications in EnterpriseOne is that you can specify particular languages as you modify these messages. This will allow you greater customization regarding the system itself—that is, it gives the look and feel of a custom application when you modify the error coding to make it more pertinent to your specific situation. One caveat to this process (and for that matter to changing the glossary text of a data item using P92001): remember that the same message and data item can be used in multiple locations throughout EnterpriseOne. Though making a change might make great sense to you for a specific application, it might be a very different story for another application.
Chapter 10:
EnterpriseOne Specialty Applications
361
FIGURE 10-9. Data Item Specifications window The system tracks different kind of messages for use by the applications. These message types will depend upon their uses, as shown in the following list: ■
E
Error messages
■
Y
Workflow messages
■
H
Glossary items
Batch Applications There are five batch applications associated with data dictionary maintenance; depending on how you use the data dictionary, you might use one or all of them. It is recommended that you assign one or two users per functional area to be the data dictionary masters (primary and backup). These individuals should fully understand their functional area as well as have a solid understanding of how EnterpriseOne is
362
JD Edwards EnterpriseOne: The Complete Reference
being used in those areas. Personally, however, we haven’t found many organizations that want to provide that many individuals with the ability to manipulate the data dictionary. Instead, there are usually two or three people in the entire organization who have the ability to modify these records. R9200 Data Dictionary Clean Up (Invalid Characters in Data Item) This report allows you to perform some clean up on your data dictionary. It will clean up data items, by deleting them, with invalid characters. It is recommended that you always run this in proof mode prior to running it in final mode. R00165 Data Item Text Check (Glossaries with No Data Items) This report will find processing option glossaries with no data items associated with them. It can be run in both proof and final modes. It is recommended that you always run this report in proof mode first. R9200100 – Update Display Decimals Similar to this concept, the next three data dictionary batch applications should also have tight security because they can definitely cause problems with your system. One of the most important of these batches is R9200100 – Update Display Decimals. This UBE is designed to determine the number of display decimals used for display and calculations. If you are going to run this UBE, it is recommended that it be run prior to data entry. The EnterpriseOne software stores numbers as integers in the database. The number of decimals you see is dependent on the number set in the data dictionary. If you have a substantial amount of data in your database and decide that inventory really should be calculated to four decimal places instead of two, you could quickly devalue your company’s assets. There are no conversion programs in EnterpriseOne to automatically add two zeros to every inventory field in the system. What makes a mistake like this even worse is that the number of display decimals is used in every calculation from that point forward. We think you can see how quickly things could get messed up with this batch application. The only nice part is that you can always run the batch again and set the decimal places back to two if you’ve made this type of mistake. Our recommendation is that you determine the number of decimal places you want early in your implementation cycle, set it using the R9200100 batch application, and then place security to ensure that no one “accidentally” runs it. R92TAM Recreate Replicated DD (Rebuild Data Dictionary TAM Specs) This UBE builds a complete local copy of the data dictionary Table Access Manager (TAM) specification files. These files are used by the local workstations to reference the data dictionary. The importance of this UBE has diminished as the main user interface with EnterpriseOne is now HTML based. In the past users would access the system through terminal servers or thick clients. So, to decrease just-in-time (JITI) installs and ensure performance, this UBE was run and the TAM files placed on the server.
Chapter 10:
EnterpriseOne Specialty Applications
363
R98CRTGL Generate Global Table Specs (Rebuild Global Table TAM Specs) The R98CRTGL works hand in hand with the R92TAM UBE. This report creates a full set of global table specifications, which contain data on EnterpriseOne tables. It was used in prior releases when Windows terminal servers were used as the primary user interface to the system. This report is not used that often anymore.
Data Dictionary Administration We’ve already described the tools at the data dictionary administrator’s disposal. Now it is time to describe base data dictionary administration. As we mentioned earlier, you definitely don’t want just anyone in the data dictionary applications. If something were to go drastically wrong with the data dictionary, it could easily cost someone his or her job. If you limit who has access to the menu and then add security beyond that, you can assume that your data dictionary will be kept relatively safe. When an administrator begins working with the Data Dictionary application, he or she should be working from a thick client. This will allow the administrator to run some of the batch applications necessary to do this work. The administrator should work closely with functional leads to ensure that the glossary overrides necessary for that group are made. The administrator can also research where the data item is used to have a better understanding of what is being affected when changing the field-sensitive helps. When you make changes to the data dictionary using a thick client, the changes are made to your local machine as well as to the tables in the relational database on the enterprise server (or database server if you have a distributed system). These changes can then either be pushed to clients through a new package build, be automatically updated on the clients (in the case of much of the data), or be replaced by copying over it with the new set.
Other Data Dictionary Concerns In older releases of EnterpriseOne there was the concept of data dictionary replication. This concept has gone away with the introduction of XML packages. EnterpriseOne no longer has any real replication functionality.
Wrapping Up the Data Dictionary The data dictionary is essential in every installation of the EnterpriseOne product, defining data items and its specifications. You should try to limit the number of users who have access to the Data Dictionary application. Because the data dictionary defines all information in your system, it is possible to do significant damage using its tools. Although you can make safe changes to these tables, thought should be taken before doing so. It should then be done in a controlled atmosphere.
364
JD Edwards EnterpriseOne: The Complete Reference
Media Objects
Users of EnterpriseOne software have all probably heard about media objects. However, most users probably do not know their full potential or enough information on them. The EnterpriseOne Media Objects and Imaging functionality allows you to attach pertinent information to an application; this may also include information that has been scanned from a paper-based document. For example, if you were using the contract management module, you could attach scanned copies of your signed contracts into the system for easy reference by your EnterpriseOne users who are assisting your clients with contract questions.
Media Objects Defined So what really is a media object? It is a piece of information that you can attach to individual rows in an application or to a form. Why is this important? Well, it can be extremely handy to provide users with up-to-date information. If you have users taking orders for customers, notes can be added to each order for special instructions or just to help process the order. Let’s talk about the different types of media objects that you can actually attach to a row within an application. These are text, image, object linking and embedding (OLE), JDE Shortcuts, and uniform resource locations (URL)/files, as described in Table 10-2. This gives your users great flexibility in how they are going to store data with a record. You can also set up templates for your users, such as letterhead with the company logo on it.
Media Object
Description
Text
This is simply notes that can be attached to a row. There is a built-in word-processor document that allows users to enter desired text, such as special instructions on order.
Image
This is exactly what it sounds like, a picture such as a JPG file. This could be a scanned image of a paper document.
Object Linking and Embedding (OLE)
OLE is an industry standard. This standard allows links to be created between different programs.
JDE Shortcuts
This allows you to attach a shortcut to another EnterpriseOne application.
Uniform Resource Locations (URL)/files
The World Wide Web is everywhere, including within EnterpriseOne. A media object can be a link to a web page.
TABLE 10-2.
Types of Media Objects
Chapter 10:
EnterpriseOne Specialty Applications
365
Imaging You may have heard the term “imaging” or “document handling system” thrown around the industry a lot. What does this really mean to your business? A third-party imaging system allows you to scan paper documents, such as a signed contract or a vendor invoice, and store them in your EnterpriseOne system. This can greatly reduce the number of paper records that you are required to keep at a site and increase productivity as all of the records will be at the fingertips of the user instead of in a old filing cabinet or box in the basement of the building. TIP When considering an imaging system to integrate with the EnterpriseOne software, be aware of the file size created by the scanned documents. Depending upon the type of file produced by the imaging system (PDF, JPG, GIF), the storage requirements could be significant for a large number of documents.
Setting Up Media Objects in EnterpriseOne EnterpriseOne comes out of the box with a standard ability to process media objects. Although you can customize how media objects are handled most of the time, this is unnecessary and can be costly. The information on media objects is stored in the F00165 Media Objects Storage table. This table contains the path to media objects and image records. EnterpriseOne delivers many predefined media object categories and you can define custom ones as well. The user-defined categories reside in the F00166 Media Object Categories table. The default configurations for these categories are category codes 1–30, dates 1–5, and numeric 1–5. TIP If you are adding a custom application in Forms Design Aid and want to use media object functionality, you must enable this on the form. Simply right-click on the grid portion of the form and go to Properties, turn off the Hide Row Headers option, and choose Form | Media Object Setup. This will allow you to select the Enable Automatic Media Object Functionality check box.
366
JD Edwards EnterpriseOne: The Complete Reference
Media Object Queues When the concept of media objects was developed in EnterpriseOne, the developers knew that once records were added, hardware could change and so could machine names. So they wanted a design that did not cause a lot of pain when something changed outside of EnterpriseOne. They came up with media object queues. These queues allow the physical storage location of media objects to be tracked by a reference instead of a physical location, such as server name and share name on the network. To use media object queues you must define the object queue to identify the reference to the location where the data is really stored. This would be how you can point EnterpriseOne to scanned images that are coming from a third-party product outside of EnterpriseOne, such as scanned vendor invoices. There are several different queue types that are available for use. These include image objects, OLE objects, and URLs (see Table 10-3). NOTE The two tables for media object queues are F98MOQUE Media Object Queues and Imaging Constants F98101. These tables are located in the system data source. The F98MOQUE contains the key to the data record with which the media object is associated or to which it is attached. Adding a Media Object Queue To add a media object queue you need to go to menu GH9011 System Administration and select the Media Object Administration folder. This will show you the applications available for media object administration. These programs are Media Object Search, Media Object Queues, Media Object Constants, and Media Object Templates, as described in Table 10-4. It is important to understand these applications when it comes to working with media objects.
Queue Types
Description
Image media objects
This type would be an image scanned by a third-party system. These queues are defined with a network path and a logical name.
OLE media objects
This type of media object queue is for OLE media objects that can be viewed through OLE-compliant applications outside EnterpriseOne.
ULR media objects
This type of media object queues is for addresses that point to web sites.
TABLE 10-3.
Types of Media Objects
Chapter 10:
EnterpriseOne Specialty Applications
Application
Description
Media Object Search
Allows you to search for media objects in the system.
Media Object Queues
Allows you to add and maintain media object queues in the system.
Media Object Constants
Allows you to define the constants for a specific media object data structure.
Media Object Templates
Allows you to add and maintain templates, such as company letterhead, that can be used by your users when working with media objects.
TABLE 10-4.
367
Media Object Applications
Now that you are familiar with the different applications available, let’s talk specifically about how you would add a media object queue. To do this you could select the Media Object Queues application. This will take you into the Work With Media Object Queues application shown in Figure 10-10.
FIGURE 10-10. Work With Media Object Queues window
368
JD Edwards EnterpriseOne: The Complete Reference
TIP You can access the imaging setup for the system from the Imaging form exit on the Work With Media Object Queues application. This link takes you into the Imaging Constants Revisions window. In this window you can define your imaging vendor, imaging vendor description, the image program ID/DLL, whether the type will be OLE or DLL, and whether the imaging is active. From this application you can modify or delete existing media object queues. You can also add new media object records to the system from this application. To do this click the Add button. This will take you into the Media Object Queue Revisions window (see Figure 10-11). It is on this window that you tell the system about your media object queue. The fields in this window are explained in Table 10-5.
FIGURE 10-11. Media Object Queue Revisions window
Chapter 10:
EnterpriseOne Specialty Applications
Field
Description
Queue Name
This is the logical name for your media object queue. You want this to make sense to your users, such as vendor invoices.
Queue Path On-Line
This is the path that points to the location of the images, OLE file, or URLs. This path is on the network.
Queue Path Off-Line
This is the path that points to the location of the images, OLE files, or URLs at a local resource or drive location.
Type
This is the type of media object queue. Valid values are 01 Image/File Queue 02 OLE Queue 03 Text Queue 04 ActivEra Queue 05 HTML File Upload Queue 06 Composer Data Queue 07 Non-Supported Help Data Queue 08 Non-Supported Eclipse Data 09 PeopleBooks Help Queue
On-Line Access Type
This determines whether queue is read-only or read/write for the online path.
Off-Line Access Type
This determines whether the queue is read or read/write for the offline path.
TABLE 10-5.
369
Media Object Queue Revision Fields
System Tables
Though system tables are unique enough to warrant a section in this chapter, we have discussed the majority of them in other sections in this book. When we talk about system tables, we are talking about tables that are shared across all environments and have the table owner SY812. Some of the functions controlled by system tables include: ■
Data sources (F98611 and F986115)
■
Path codes (F00942)
■
Environments (F0094 and F00941)
■
OCM, the Object Configuration Manager (F986101)
370
JD Edwards EnterpriseOne: The Complete Reference
■
Printers (F98616, F986161 to F986167)
■
Users (F0092, F00921, F00922, F00924, F00925, and F0093)
■
Security (F00950, F95921, and F98OWSEC)
■
Servers and workstations (F9650 and F9651)
Because so much time and effort has already gone into describing their functionality and associated tools, system tables receive an honorable mention in this chapter.
Server Map
In previous chapters, we discussed data sources, including the one identified for each application (or logic) server. The questions to ask, however, are what tables are included in this data source, why they are needed, and what tools are available to help manipulate them. This section will be dedicated to answering these and other pertinent questions regarding the server map data source.
Server Map Defined Every application server (a server running EnterpriseOne code and providing EnterpriseOne services) must have an associated server map. Luckily, this doesn’t mean that the servers can’t share a server map; in fact, unless there is a specific reason not to share a server map, the authors recommend sharing a server map between machines. We will talk about this a little later in this section. To get a better feel for what the server map tables do and why you need them, let’s examine what tables are a part of this data source. There are five main tables in the server map data source, including: ■
F98611 (Data Source Master)
■
F986101 (Object Configuration Master)
■
F986110 (Job Control Status Master)
■
F986111 (Job Number Master File)
■
F986113 (Subsystem Job Master)
Why would you need these tables to be segmented off from the tables used by workstations or other servers? Let’s find out. The F98611 table (Data Source Master) contains a list of all defined data sources with pertinent information on how to access the data contained in them. Unfortunately, however, there are different
Chapter 10:
EnterpriseOne Specialty Applications
371
applications used to access data from workstation to server platform. This is true with the single exception of Windows workstations and servers. A prime example of this follows. Scenario: An AS/400 with Windows web server. The AS/400 host code uses DBDR to access the data, whereas the Windows web server uses Java Database Connectivity (JDBC) to access data. This means that the data sources used need to be different. Thus each server references different F98611 Data Source Master tables. The web server accesses the data source master in the system data source and the host code looks at the data source master in the server map data source. The F986101 table (Object Configuration Manager) is another table located in both the server map and system data sources. This table also differs between workstations and servers. The primary data source’s difference, as called by the OCM, is EnterpriseOne Local – XX812 (where XX represents the path code name). This data source is defined as a Microsoft SQL Server Development Edition (MSDE) database; if you are on 8.97, you can also use Microsoft’s newer SQL Server Express (SSE) database. This local database has many uses. However, the most common use is to enable the development workstations to have their own local web client. This database contains their local serialized objects and gives them the functionality to test screens through their web server before checking the objects in. Another use for this local database would be the mobile client. The F986110, F986111, and F986113 tables are unique to the server map data source. These tables are used to track and maintain information on jobs submitted to the server. These tables can be shared between multiple servers because the information contained is server specific. If you have multiple application servers in your production environment, the authors recommend you use a single server map. This reduces your Object Configuration Manager maintenance. If you need to change an OCM mapping, you only need to change it in one place. TIP The submitted jobs table does need regular maintenance. The larger the number of records in this table, the slower it will be for your users to find their jobs. You can perform this maintenance by using the R9861101 Job Control Status Master Calling UBE. This UBE will purge jobs from the job master and PDF files from the printqueue directory.
Tools Associated with Server Maps One of the primary tools associated with the server map data source is the Work With Server Jobs application (P986116). This application is accessible by several different methods, including the GH9011 menu, typing WSJ on the Fast Path, or
372
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 10-12. Submitted Job Search window clicking the Submitted Jobs button, located in the User Options interface (accessed by choosing View | User Options on the main EnterpriseOne Explorer interface; see Figure 10-12). This application (P986116) allows you to view, print, delete, terminate, put on hold, or release batch jobs submitted to various servers. EnterpriseOne has built-in logic surrounding the entry point based on how you launch P986116. When you start using the menu, Fast Path, or user options routes, you are prompted to select which data source you want to use (see Figure 10-13). You should choose the server that you submitted the job to. If, however, you launch P986116 from the Batch Versions application (P98305), it will automatically start with the server you launched against. Consequently, depending on your specific requirements, you should pick the launching method most appropriate to your own needs. When you’ve just launched a UBE, it is very convenient to use the P98305 launch point. It automatically goes to
Chapter 10:
EnterpriseOne Specialty Applications
373
FIGURE 10-13. Work With Servers window the server the UBE was launched against, automatically filters the output based on your user ID, and is easy to use. When you are more interested in viewing what jobs are active across the server, what jobs are currently in queue for either batch or subsystem processing, or what subsystems are currently active, you can either use the Fast Path or user options launch method. There is no right or wrong method of accessing the P986116 application; however, there are certain functions that are limited based on your access method.
Breaking Down the P986116 For this section, we will assume that you accessed P986116 using either the Fast Path or the Report Management menu GH9111. When you first launch this application, you are prompted (using the W986116A Work With Servers form) for the data source associated with the server you want to look at. This application queries the system F98611 data source master table for data sources with an SVR type. The results are presented in a grid format that allows the user to highlight and select the appropriate data source. If your EnterpriseOne application server was called OWSVR1, you would either click to highlight or double-click to select this machine. If you click, you will be able to select either the submitted UBE batch jobs or subsystem jobs. These options will be explained in more detail shortly. Job Data and Detail Once you have picked the server of your choice, the W986110BA form will launch, automatically finding all of the jobs in the F986110
374
JD Edwards EnterpriseOne: The Complete Reference
table with your specific user identification. These will be displayed with the following information: ■
Queue
■
Status There are only a few valid entries E: Error D: Done S: Submitting W: Waiting H: On hold P: Processing S: In Queue H: Hold
■
Description
■
Priority
■
Type
The type of job submitted (usually UBE).
■
User
The user who launched the job.
■
Job Details type.
■
Host
■
Job # The EnterpriseOne job number associated with the specific job. This number is retrieved from a job number table.
■
Environment
■
Origination Host
■
Process ID
■
Date Submitted
The date the job was submitted.
■
Time Submitted
The time the job was submitted.
■
Date Last Activity
The date the job was last processed by the server.
■
Time Job Activity
The time the job was last processed by the server.
■
Port Number
The queue name the job was launched against.
The description of the status.
This is a holdover from World software. It is not used.
A combination of UBE name, version, job number, and output
The server the job was submitted against.
The environment the job was launched in. The machine the job was launched from.
The server process identification.
This is the port that the job was submitted on.
Chapter 10:
EnterpriseOne Specialty Applications
375
The last two are pertinent because many jobs cross over dates and times. It is good to be able to determine when the server last updated the F986110 table. Also you need to be aware of the new universal time zone feature in EnterpriseOne. If this feature is being used, it will affect how you see the record entered for date and time. This is because this feature allows you to specify what time zone is your master. This feature helps global companies recognize revenue in the correct day. Imagine that you have users in India as well as Denver, Colorado. If you are closing the quarter without the universal time zone feature, you would not see certain records, due to India being 16 hours ahead. So some of their records would show as being entered in the next day.
Subsystem Jobs Subsystem jobs are often underused and misunderstood. Subsystem processing can help to significantly streamline your business process. A simple rule of thumb is the fewer clicks the users have to do to accomplish the job, the happier they generally are! Subsystem processing can almost be thought of as a process running in the background waiting for an event. With standard subsystem processing you launch a UBE that runs in the background. These specially configured versions run on the server looking for specific records to work with. A prime example is the R42520 Pick Slip UBE. If you launch XJDE0006, this launches a UBE subsystem that then looks for records in the F986113 subsystem job master table in a waiting status. When the records populate the F986113 with a W status, the subsystem version of the R42520 UBE will automatically run the records and then delete each record once successfully completed. This means that the user does not see the screen to print the pick slip. It also means that the load on the server is more efficient, as the Print Pick Slip subsystem loads what it needs into the cache once and reuses it. However, if you are not using subsystem processing, then each user will start a UBE that will take overhead to start, put things in memory, work, clear the memory, and close. One of the things people want to be able to do is monitor their subsystems and the jobs that are in queue to run. The P986116 application has the capability to view both the subsystems and the jobs that are in the F986113. Go to the GH9111 Report Management menu and double-click the Work With Server Jobs (P986116) application or type wsj in the Fast Path and then press ENTER. This will launch the W986116A (Work With Servers) form. Click Subsystem Jobs on the Exit bar or choose Row – Subsystem Jobs from the menu selection on the W986116A form. This will launch the P986113 (Work With Subsystem Jobs) application. There are two radio button options on this form (Processes and Waiting Jobs). By default, the Processes radio button is checked. This will show you the subsystem jobs that are currently working on the server selected on the W986116A form. If you have more than one of these UBEs running, it will show multiple entries and provide the following information. When you select the Waiting Jobs radio
376
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 10-14. Subsystem waiting jobs button (see Figure 10-14), the P986113 application will automatically locate all of the records in the F986113 table. ■
Job Name
■
Version
■
Job Type The type of record: R: Subsystem record S: Subsystem job
■
Job Status The status of the job: E: Subsystem record to end job P: Subsystem record processing R: Subsystem job running W: Subsystem record waiting
The application name (such as R42520)
The version of the application name (such as XJDE0006)
Chapter 10:
EnterpriseOne Specialty Applications
■
Host The server running the subsystem service
■
Environment The EnterpriseOne environment associated with a particular subsystem record or job
■
Origination Host was launched
■
User
■
Date Submitted
The date the record or job was launched
■
Time Submitted
The time the record or job was submitted
■
Job #
377
The name of the workstation where the job or record
The EnterpriseOne user ID that launched the record or job
The EnterpriseOne number assigned to the specific record or job
UBE/Subsystem Counts It is often handy to know how many UBEs have been launched per day and when your anticipated peak times are so you can work on the anticipated server response times. Additionally, especially during the modeling phase of your implementation, when you know that you’ve outworked your server, it is nice to be able to determine the number of subsystem records currently waiting to be serviced. With these dynamics, you will have some of the empirical data you need to determine sizing requirements or new configurations for your system. Using the information we’ve already provided, it is easy for you to create very simplistic queries against the server map data source for the information you need. We’ll start by looking at the subsystems and then we’ll move into the more difficult subject of UBEs. Subsystems use the F986113 table and, once completed, are erased from the system. Because of this, it is difficult to determine your peak usage times. Still, if you think you have a backup of subsystem jobs, this is relatively easy to validate. Go to the Work With Server Jobs application (P986113) and find the records. The only problem with this concept is that you would have to count the records you found. It is far easier to log on to the server, log on to the correct database (JDE for Oracle, JD812 for MS SQL Server), and perform the following query: select count(*) from sv812.f986113 where sspid='R42520' and ssvers='XJDE0001' and ssopcr='W' and ssenhv='PY812'
This will return the number of pick slip records in the F986113 table that are currently in a waiting status in the PY812 environment. To get the UBE count, you will find that you need to do a little more work. In particular, one of the decisions you need to make is whether to determine the number of UBEs launched per hour or every 30 minutes or even more often. You can use the following SELECT statement and the one after that to produce even more information regarding the
378
JD Edwards EnterpriseOne: The Complete Reference
UBEs launched by your users. One nice thing about the F986110 table is that it won’t automatically delete the UBE records after processing them, as subsystems do. select count(*) from sv812.f986110 where jcenhv='PD812' and jcsbmdate='100xxx' and jcsbmtime<'080000'
This will provide the number of UBEs submitted prior to 8:00 A.M. in the production environment. It is easy to modify this SELECT statement to map out the number of UBEs submitted per hour. When you look at this data over a period of several weeks to several months, you start to get a clear understanding of your end users’ habits and system requirements. With a slight modification, you can actually pull out the names of the UBEs themselves: select jcfndfuf2 from sv812.f986110 where jcenhv='PD812' and jcsbmdate='100xxx' and jcsbmtime<'080000' order by jcfndfuf2 asc
Data Replication Data dictionary replication has become obsolete and is no longer used. All of the enterprise and application servers, and even the web servers, indirectly look at a set of tables containing XML data. This is new architecture as of EnterpriseOne 8.12.
Control Tables
You may have heard of the concept of a control table in your dealings with the EnterpriseOne software. Some folks may not be familiar with the term “control table.” What are control tables and what do they do for you? Well, there are a variety of different control tables that perform a variety of different functions throughout the system. This section is dedicated to explaining the functions performed by control tables and how they operate.
Control Tables Defined Control tables are a group of 77 tables that perform a series of background, nontransactional tasks, including next numbering, User-Defined Codes (UDCs), menus, change tables, and workflow. These tables are normally contained in a single Control Table data source. In a standard configuration each environment has its own Control Table data source. It is easy to think of the data that is contained in the control tables as control data. It affects how the environment reacts. You can configure custom menus and user-defined codes, for example. These menus and user-defined codes can be configured for the specific user requirements, for example, if you want specific category codes, which are user-defined codes, to address requirements of a business unit.
Chapter 10:
EnterpriseOne Specialty Applications
TIP The control table data source contains the next-numbers table. This is used for numbering your transaction data. If you refresh your lower environments with production data, you need to also copy back the next-numbers table or manually, through the Next Numbers application, set the numbers high enough where you will not try to assign a number that has already been used.
The Pristine Environment There are many instances where the pristine environment is somewhat unique, and control tables are an excellent example of it. There is no control table data source associated with the pristine environment in a typical customer software configuration of EnterpriseOne. Additionally, there is no table owner or database user called jdctl. Rather, the pristine environment keeps the tables traditionally defined as control tables in the pristine business data data source with a jddta table owner. Although this certainly poses no system-level issues or instabilities, it is a consistent inconsistency to be aware of. The pristine environment maintains all the appropriate tables, just in a different location. The pristine environment is loaded with demo data out of the box with each installation. Although you do not have to install this environment, the authors recommend that you not only install the environment and path code, but that you maintain it by keeping it current with Electronic Software Updates (ESUs). This will allow you to keep a copy of pristine code line. If you apply ESUs to your pristine environment and path code, you will then have the ability to restore objects from the pristine path code. You will also have an area where you can test the results of an ESU against EnterpriseOne pristine data. This will help to isolate whether your custom data or configuration is the reason an ESU is not doing what you think it should.
Next Numbers You may have wondered how EnterpriseOne assigns unique numbers to sales orders, the address book, accounts payable checks, and a whole slew of other items. The answer lies in two little tables: F0002 and F00021. These tables allow you several options for formatting and maintaining next numbers and are easily accessed through a simple interface. There are two next-number tables (F0002 and F00021) that maintain a list of numbers for the applications to use.
379
380
JD Edwards EnterpriseOne: The Complete Reference
The F0002 Table (Next Numbers Automatic) The F0002 table has 31 columns listing the system code, the elements in the system that contain next-number values, the next-number values for each element, and whether the next number uses a check digit or not. The layout of the table is in four distinct sections: System code
1 column
Data item description
10 columns
Next number itself
10 columns
Flag for check digit
10 columns
Each system code can contain up to 10 data item elements. This is currently a limit on the number of items in a system code that can have next numbering due to a unique index on the F0002 table (F0002_1) based on the NNSY column.
The F00021 Table (Next Number by Company/Fiscal Year – Automatic) The F00021 table has 10 columns and is designed to maintain specific next-number data for companies and fiscal year concerns. The combination of the F0002 and F00021 tables makes up the next-number requirements for the EnterpriseOne applications. Without custom coding, next numbers are used for voucher numbers, invoice numbers, journal entry numbers, employee numbers, address numbers, contract numbers, and sequential W-2s.
User-Defined Codes (UDCs) In almost all implementations of EnterpriseOne, companies quickly become aware of and then modify the User-Defined Codes (UDCs). But what are UDCs and what types of functions do they perform? The user-defined codes are one of the quickest methods of customizing the EnterpriseOne suite of applications to meet the business needs of your organization. This customization can be performed easily and will not adversely affect upgrades and updates of the software itself. UDCs are used in EnterpriseOne, in conjunction with the data dictionary mentioned earlier in this chapter, to validate data entry in interactive applications. They are also instrumental in many batch functions because they validate specific information in the EnterpriseOne system.
Maintaining UDCs Most organizations select a controlled group of people to administer UDC changes. These UDC administrators are responsible for changing, adding, and deleting UDCs. If you follow stringent software development life cycle standards, all
Chapter 10:
EnterpriseOne Specialty Applications
381
changes, including UDCs, would originate in the development environment. However, sometimes that is really not realistic. Some customers add UDCs every day to do standard business. However, they still need to maintain these objects, as they are tracked through the Object Management Workbench as an object. There are multiple ways to do this. Some customers will simply not promote UDC values from their lower environments. The production environment becomes the master, while others follow a more standard approach of promoting all UDC values from the development environment. Base your decision on your business needs and also on your ability to track these objects, as they can change how the system behaves.
The P0004A (User-Defined Codes) Application We’ve mentioned changing the UDCs shipped with the release, but we haven’t mentioned the tool used to effect these changes. The P0004A (User-Defined Codes) application, which can be accessed through the Object Management Workbench, is the primary tool used when modifying, adding, or deleting UDCs from any one specific environment (see Figure 10-15).
FIGURE 10-15. User-Defined Codes application
382
JD Edwards EnterpriseOne: The Complete Reference
NOTE Even if the User-Defined Codes application is called from the Fast Path, by typing UDC or P0004A in the Fast Path the application is still linked to the Object Management Workbench. So any additions or deletions will be logged through OMW and the UDC added to the default project. Using this application, you can add, modify, and delete specific values used for validation as defined with the data dictionary. In order to have a blank as an option, you have to add a blank value in your UDCs. TIP Be very careful about deleting existing UDC values. When you delete a UDC value, you are not deleting the entries of that value in business data. This means that once the value is removed from the UDC table, users will not be able to view business data referencing that UDC value without errors in the applications.
Data Browser
If you have worked in EnterpriseOne for any real length of time, then you are familiar with Universal Table Browser (UTB). You are also familiar with the users saying, why can’t I export the data from UTB to an Excel spreadsheet like I can with the EnterpriseOne application grids? Well, the truth of the matter is they were not designed using the same tool. That is why they behave differently. Take heart, though; development has heard your plea. The Universal Table Browser is now being replaced with Data Browser, which is an HTML application. Data Browser does so much more than UTB did. In Table Browser you can actually use EnterpriseOne business views to see data across different tables. The users can use saved queries, or simply pick the table that they want to look at. This allows business analysts to more easily see the data they are looking for. You can also export data using the Data Browser. This is a functionality that has been requested for a long time and is finally here. How do you access this wonderful new technology? It is actually very simple: As long as you have access to the application through EnterpriseOne security, you can launch Data Browser from any EnterpriseOne application on the web client. Simply go to the Tools menu and select Data Browser. This will pull up the Data Browser and allow you to select your business view as well as pull up the Data Browser with a view based on the application you are in. The Query Selector screen is shown in Figure 10-16.
Chapter 10:
EnterpriseOne Specialty Applications
383
FIGURE 10-16. Table Browser, Query Selector Once you select how you want to see the data, you will be brought into the Data Browser window. In this window you can use the Query By Example (QBE) line to pull up data that you are interested in. This is shown in Figure 10-17. If you want to export this data, you can choose Tools | Export Data. This will allow you to pull the data from EnterpriseOne into a comma-separated values (CSV) file. TIP You will also notice that different fields will populate in the top of the Data Browser application. These fields are based on the key for the file. They will show with a drop-down box next to them that allows you to select and create queries for equal to, greater than, less than, greater than equal to, less than equal to, or not equal to. This is a very handy feature that allows you to easily refine your search.
384
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 10-17. Data Browser
Job Queues
An important feature of EnterpriseOne is how it handles batch processing. In early releases you needed to manually define your job queues in the JDE.INI file or on the host machine itself. There is now an application that handles this for you. This application, Work With Job Queues, which works with a kernel process that polls the table the application is based on, allows you to define and maintain your job queues from one easy-to-use interface, as shown in Figure 10-18. This application allows you to define the following: ■
Port Number
■
Host Name
■
Job Queue
The port used to communicate with the server. Name of the application server.
Name of your job queue.
Chapter 10:
EnterpriseOne Specialty Applications
385
FIGURE 10-18. Work With Job Queues window ■
Default Queue This feature allows you specify which queue jobs go to without a specific override.
■
Queue Type Type of queue. This can be 01 JD Edwards Queue or 02 AS/400 Queue.
■
Queue Type Description
■
Job Queue Status
■
Queue Status Description
■
Maximum Batch Jobs Maximum number of jobs that can be run at the same time in the job queue.
Summary
Description of job queue.
A queue can be set to active or inactive status. Description of queue status.
You may hear a carpenter say that for every job there is a correct tool. This concept also applies to EnterpriseOne. That is why the specialty applications are so important. These applications perform specific functions for you and are the correct tools for certain jobs. This chapter has given you a good look at these applications and the type of functionality that they offer. So whether is it configuring your software development life cycle using the Object Management Workbench, or setting how a field is displayed across the system in the Data Dictionary application, you have these tools available to help you.
This page intentionally left blank
CHAPTER
11
EnterpriseOne Security
387
388
JD Edwards EnterpriseOne: The Complete Reference
T
o fully understand the detail contained in this chapter, it is first important to understand the full scope of the options EnterpriseOne security features offer you at a high level. This allows you to dive into areas that apply to your needs more fully. The security model for EnterpriseOne has grown with the software and has given users greater and greater functionality each year. The first thing to understand about EnterpriseOne security is that security within EnterpriseOne is object based. This means that when an application or a report is restricted, it does not matter how that object is called—it is secured out across the system. This means you do not need to worry about finding every menu this application resides on. This is very powerful when it comes to restricting access to the EnterpriseOne system. Another key feature is the many different types of security that EnterpriseOne offers you. This allows you to truly tailor your security to your business’s requirements. We will cover all of these different options in this chapter. It is important to mention that EnterpriseOne is LDAP compliant. It is also important to mention that if you are going to use a portal server, you must configure LDAP in order for the portal to function correctly, as of release 8.12. If you are a user of the earlier releases of EnterpriseOne, you will notice that the entire security architecture has changed. In the past you had the concept of a group. This is now gone and all user security is role based. What this means is that a user can inherit privileges by belonging to many roles. In the past, all security had to be defined for each specific group and a user could only belong to one group. Now with the concept of roles, the maintenance cost of owning the system goes way down. This is of vital importance if your company is a public company and must meet Sarbanes-Oxley requirements.
Users and Roles
Okay, you have your brand new EnterpriseOne system installed and ready to go, but what about security? Well, if you have just installed EnterpriseOne out of the box, there is no security in place. This means that the users have total access to the system. EnterpriseOne is shipped with access to all the programs in the system. This leaves you with many questions: What type of security do I need? What is offered with my EnterpriseOne system? Will I be able to be Sarbanes-Oxley compliant? If I am upgrading from OneWorld Xe to EnterpriseOne 8.12, will my security be brought forward? These are all valid questions that need to be answered. In this chapter we are going to cover what types of security are available with EnterpriseOne 8.12 and how this type of security can be used to be Sarbanes-Oxley compliant. We will also cover how security affects your implementation and how it
Chapter 11:
EnterpriseOne Security
389
can affect your implementation time. The first step in understanding EnterpriseOne security is to understand the concept of users and roles. It is also important to understand how these line up against the concept of users and groups in releases prior to 8.9.
Defining Users and Roles When a JD Edwards system is first set up, there are only specific users defined in the system. These users usually are JDE, APPLEAD, DEVUSER, and PRODUSER. These users are shipped to provide examples of how you should set up your users. The JDE user is an all-around user profile that is used during the installation process. The APPLEAD user is the manager or supervisor who is responsible for the personnel using the various EnterpriseOne modules. DEVUSER is an example of a development user profile. PRODUSER is an example of a production user on your system. The real benefit to these example users is that they show you how JD Edwards recommends you assign environments to your user profiles, which we will cover later in this chapter. Until the installation is complete, you must log on as the JDE user. NOTE There is a shipped role of SYSADMIN that should be assigned to users who will be system administrators. To add user profiles, log on to a client workstation in any environment. Adding users and roles can also be done from the HTML user interface. The table that holds your EnterpriseOne user profiles (F0092, the Library Lists—User table) is called a “system table,” which means that no matter what client machine you log on to (in any environment); you will be hitting the same table. Log on to the workstation as JDE. Type GH9011 into the Fast Path (this is located at the top of your screen, generally on the left-hand side). The System Administration Tools menu appears on the right side of the JD Edwards Solution Explorer. This menu contains many useful applications that assist an administrator in maintaining an EnterpriseOne system. Double-click on the User Profile application P0092. The Work With User/Role Profiles window, shown in Figure 11-1, is the main window you use when adding users and roles. Click Find, and all of the users and roles that are shipped with the system are displayed. You can add and delete users, assign environments to them, and set up security from this window. It enables you to easily manage your users and security from one location. To add a new user, click the Add button in the Work With User/Role
390
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 11-1. Work With User/Role Profiles window Profiles window. To add a new role you would click the Add Role form exit from the Work With User/Role Profiles window. The User Profile Revisions window, which is shown in Figure 11-2, contains the fields listed in the following table. Field
Description
User ID
Enter the name of the user that you are adding. Until you set up sign-on security (which is covered later in this chapter), this user has to exist in your database. NOTE: There is a limit of ten characters for the user ID field. A best practice is to use the last name of the person, up to nine characters, and the first letter of the first name. This helps administrators easily identify users.
Chapter 11:
EnterpriseOne Security
FIGURE 11-2. User Profile Revisions window Field
Description
Address Number
A number that is assigned when you add users, customers, or suppliers into the Address Book program. Workflow uses this information for EnterpriseOne messaging. We recommend that you set your users up in the address book prior to setting up actual users and roles. Don’t assign a valid address number to a role. NOTE: You should set a policy where the master address book is in the production environment. This will ensure that all users you set up will be able to access the Work Center application.
391
392
JD Edwards EnterpriseOne: The Complete Reference
Field
Description
WhosWhoLineID
This setting allows you to select the “who’s who” information for the user.
Batch Job Queue
This field allows you to select the default job queue for the user.
Language
Specifies the language that the user wants displayed when he or she logs on to the system. The default is the domestic language (for example, English).
Justification
This setting is used only for Arabic languages. You can choose to display the language from left to right or right to left.
Visually Impaired
This feature enables a plug-in to enable EnterpriseOne to read screens to visually impaired users.
Date Format
Enables a user to specify a date format. If this field is left blank, the date format defaults from the computer’s regional settings in the Control Panel.
Date Separator Character
Specifies the date separator. If this field is left blank, the system value is used.
Decimal Format Character
Specifies the character that is used as a decimal separator.
Localization Country Code
Contains a country code that enables EnterpriseOne to recognize localization changes.
Universal Time
This code associates a user with a specific time zone. This setting is needed so that the universal time zone functionality works correctly in EnterpriseOne. With the universal time zone feature, you can ensure that all your transactions are posted based on a specific time zone. This feature was not available in OneWorld Xe.
Time Format
This is the format the time is displayed in, such as 12-hour clock or 24-hour clock.
Daylight Savings Rule
This is a value that specifies the daylight savings time rule for the region or country that the user requires.
NOTE You can also add users using a Universal Batch Engine (UBE) R0092. However, the authors do not prefer this method as it limits how the users are added. Either the address book number or the user’s initials and the address book number must be used. If this is not your naming convention for users, then you cannot use the UBE.
Chapter 11:
EnterpriseOne Security
393
There are several form exits on the User Profile Revisions window. One of these is the Business Preferences window, which contains three options: Industry Code, Business Partner Code, and Customer Code, as shown in Figure 11-3. These options enable the user to define codes that trigger specific functionality. Another option in the User Profile Revisions window is the Translation Preferences form exit. This takes you to the Translation Preferences window (see Figure 11-4). This window allows you to specify a language, second language, and translator type for users. This window can be used if you have people working on translations in the system. A final option in the User Profile Revisions window is the Address Book exit, which accesses the Address Book window. This window enables you to add address book entries in the Address Book program. On the User Profile Revisions window, an Address Number field is used by Workflow to send messages to users informing them of the status of jobs. When you are finished adding your user in the User Profile Revisions window, click OK. This takes you back to the Work With User/Role Profiles window. Click Find, and your new user will be listed in the grid. This window has several form and row exits that assist you in administering the EnterpriseOne system. The options available under the row exits are discussed in the next section.
FIGURE 11-3. Business Preferences window
394
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 11-4. Translation Preferences window After you have filled in the fields on the User Profile Revisions window, you are still not finished adding your users. As you may have noticed in Figure 11-1, you have several exits to other programs that enable you to configure user profiles just the way you want them to be. The Environments exit allows you to assign environments to your roles. We say roles since you do not want to assign environments directly to a user. This will help to ensure that you have an easy-to-maintain system. When your users sign on to the system, they see only the environments that you assign them. When you assign an environment to a role, a user is then assigned to that role; he or she inherits the rights to the environments assigned to the role and can log in to them. This is the best method of setting up environmental access because it requires the least amount of work for the systems administrator. You can assign environments through the Work With User/Role Profiles window (shown earlier in Figure 11-1). After you choose the Environments exit, you are taken into the User Environment Revisions window (see Figure 11-5) where you can add environments on the grid. You can also determine in what order the environments are presented to users when they log on to the system by setting the Display Sequence Number. Setting this option is not required, but it can make users’
Chapter 11:
EnterpriseOne Security
395
FIGURE 11-5. User Environment Revisions window lives easier by listing the most commonly used environments first. The process is virtually the same for assigning environments for users and roles, although the authors do not recommend assigning an environment to a user unless you cannot get around it. The only difference is that when assigning environments to roles, you have the ability to set up an environment list once for multiple users. Once you assign the environments to a role, using the User Environment Revisions window, shown in Figure 11-5, you can then use that role to assign environments to specific users. To do this you would use the Work With Role Relationships application, P95921. This application is accessed through the Work With User/Role Profiles application, shown earlier in Figure 11-1. The Work With Role Relationships application, shown in Figure 11-6, is a very powerful application. This program allows you to assign specific roles to user profiles. Also you can assign expiration dates to these roles. For example, suppose someone is out on leave so another user must fill in for their duties. You can assign that user a role with greater authority, but have that role expire on a certain date. This means that the administrator does not have to take any additional action and the authority will be taken away from the user on a specified date.
396
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 11-6. Work With Role Relationships window NOTE In Figure 11-6 you can see that Debbie is assigned two roles. One has no expiration date and the other is only good from February 17, 2008, to February 29, 2008.
Dueling Environments You may be wondering which set of environments a user sees if you have environments assigned to both the user and the role. This depends on how the application looks for environments when you initially log on to EnterpriseOne. The system determines environments by using a search hierarchy. The search hierarchy for environments is users and then roles. As soon as the system receives a return on this search, it quits looking. So if environments are listed for the user and other ones are listed for the role, the user gets the ones listed for their specific ID.
Chapter 11:
EnterpriseOne Security
397
The Real Story on Users and Roles Let’s start by describing what is under the row exit. Under the row exit on the Work With User/Role Profiles window are the Environments and Copy Environment options. The Environments option was described in the preceding section. The Copy Environment option is a handy tool that enables you to copy environments that have been assigned to one user to another user or role. In the Work With User/Role Profiles window, select the role whose environment list you want to copy and then click Copy Environment. The Copy Environment window is launched, and it enables you to specify a user or group you want to copy the environment to. The name you enter is assigned all of the environments listed in the grid form in the Copy Environment application, as shown in Figure 11-7. If that user already has environments assigned that you forgot about, you will receive a warning message telling you that the user already has environments assigned to it. You can then click OK to replace the environments with the ones you are copying, or you can click Cancel and check to see if you really want to overwrite those environments. This will ensure that you don’t accidentally overwrite the environment selections already available to a user or group.
FIGURE 11-7. User Environment Revisions window
398
JD Edwards EnterpriseOne: The Complete Reference
Creating Custom Library Lists Users are able to access various environments based on entries in the F0093 table. You can set up special tables that quickly and efficiently limit user access. This often proves beneficial when you are trying to get everyone into a single environment for testing purposes (for example, you want everyone in the test environment and no one in production). The F0093 table can be put in place quickly using the R98403 UBE or the Table Copy utility (this is in the Object Management Workbench program). The steps required to use a custom F0093 are as follows: 1. Using R98403 (Environment Database Creation UBE), copy the F0093 table from the System – 812 EnterpriseOne data source to another EnterpriseOne data source; for example, Local – DV812. 2. Using SQL Server Enterprise Manager or another database tool, open the database corresponding to the EnterpriseOne data source. 3. Make a copy of the F0093 table (we usually name it F0093_org). 4. Using an appropriate database utility, open the F0093 table and modify it appropriately. In the case of our example of getting all users into a testing environment you would limit the entries to roles only and a single environment for each. This will ensure that users logging in will only have the single option listed. This is the LLLL field in the F0093 table. You will want to ensure you limit your changes based on the user field, LLUSER. 5. Using R98403, copy the F0093 table from your alternate data source (use the same data source as in step 1) to the System – 812 data source. 6. Conduct the testing. When the testing is complete, use an appropriate database tool to rename the F0093_org to F0093 and repeat step 5 thus replacing the system table. This will grant all users their original environmental options. Getting back to our discussion of the Work With User/Role Profiles window, there are multiple form and row exits on this window. The form exit has 13 options, as shown in the following list: ■
Add Role
■
Role Description
■
Role Sequence
■
Role Relationship
■
User Overrides
■
User Security
Chapter 11:
■
Security Workbench
■
Machines
■
Deployment Groups
■
Add Environment
■
PIM Export
■
BU Security
■
Mobile User
EnterpriseOne Security
399
Add Role and Role Description The first form exit is the Add Role exit. This form exit allows you to add a new role to the system. The Role Revisions form (see Figure 11-8) is almost identical to the User Revisions form. The exception is that the first field is Role instead of User ID and
FIGURE 11-8. Role Revisions window
400
JD Edwards EnterpriseOne: The Complete Reference
there is an additional field beside the field for the name of the role. This can be used to enter a role description. When you enter the role description, it will default in for the domestic language. If you would like different role descriptions for alternate languages, you can take the form exit Role Description. That will give you a form where you can add different role descriptions for different languages. This can come in handy if your company is a global company doing a worldwide roll-out. You can also access the Role Description application from the form exit of the Work With User/Role Profiles window.
Role Sequence The Work with Role Sequences window (see Figure 11-9) allows you to determine a hierarchy of the roles you define in the system. This determines which role is used when a security conflict exists between roles when a user signs in with the *ALL wildcard role. This special role tells the system that the user wants to sign on using all the privileges of their assigned roles. Thus the role sequence becomes important. When you are planning your roles, it is important to understand that roles are
FIGURE 11-9. Work With Role Sequences window
Chapter 11:
EnterpriseOne Security
401
checked in descending sequence. You should limit the number of roles in your system to help ensure ease of maintenance. Each role should be a job description; as a general rule, if you cannot equate a role to a job description, you probably don’t need the role.
User Override Considerations User overrides allow your users to customize the look and feel of their screens without modifying the screens. A common example is changing the number of columns that show up in a screen for a certain user, the order of the columns displayed, and the sort sequence. You can even change the colors of the grid for your users. This allows your end users to use the screen more efficiently. In the past, user overrides could cause some issues with memory violations when you moved up from one service pack to another. For the most part Oracle has resolved this issue once you get to 8.9 and above. This would put you on the 8.9X foundation code. The Work With User Overrides application allows you to create these override records for specific roles or users. You can also copy existing overrides to other users or roles. This is useful because during your prototyping, the business analyst is normally the one to create a useful override template that can be rolled out to the users. You can see this application in Figure 11-10.
FIGURE 11-10. Work With User Overrides window
402
JD Edwards EnterpriseOne: The Complete Reference
NOTE The user overrides information is held in the F98950 table. This table is held in the Central Objects data source. This means that your overrides can be different from path code to path code. You can promote user overrides using the Object Management Workbench. Just add the user override to a project and promote the project through your project status codes.
User Security The next form exit from the Work With User/Role Profiles window, (refer to Figure 11-1) is User Security. This form exit takes you to the User Security application. This application is used to configure sign-on security, which will be discussed later in this chapter.
Security Workbench This form exit, from the Work With User Profile Revisions window (refer to Figure 11-2), will conveniently take you to the Security Workbench application. This application is one of the main ones that will be used to configure your EnterpriseOne security model. We will discuss this application in great detail later in the chapter.
Machines From the Work With User/Role Profiles window, you can also take the form exit to go to the Work With Locations and Machines application. This application allows you to add new machines and locations into your architecture.
Deployment Groups The Deployment Groups form exit is more used for package builds and deployment. This form exit is located here so that it is easy for an administrator to add users to deployment groups without having to travel through the system menus. Deployment groups allow the administrator to deploy to a set group, which consists of multiple workstations. This is a less frequently used application now that 8.12 is an HTML application for all end users. However, it can be handy for development users.
Add Environment This form exit is extremely handy. It takes you to the User/Role Environment Revisions window (see Figure 11-11). From this application you can grant access to an environment for multiple users and roles at the same time. To perform a multiple select, highlight the first record in the grid and then press the CTRL key to select individual records, or press the SHIFT key and click on another record to select that
Chapter 11:
EnterpriseOne Security
403
FIGURE 11-11. User Role/Environment Revisions window
record and all records in between it and the first. Figure 11-11 shows the details of this application.
PIM Export All Users The form export for PIM Export All Users will run a UBE batch job. This job, the R95927A, is used to export the EnterpriseOne user’s PIM information to a Microsoft Exchange Server. This type of functionality can be useful.
BU Security This is a fairly new application to EnterpriseOne. This application is Business Unit Security, which allows you to filter data by business units. This data filtering applies to both transactions and user-defined codes. This allows you to restrict data in the system based on business units.
Mobile User This application allows you to configure security for mobile device users. An example of a mobile device would be a PDA used to access the EnterpriseOne applications.
404
JD Edwards EnterpriseOne: The Complete Reference
Sign-on Security
Now that we have covered adding a user through the Work With User/Role Profiles application, we can move on to the next step that you would follow when configuring a new user. Now that the user exists, you need to configure the EnterpriseOne system to pass a user to the database. This is done through sign-on security. This functionality allows you to set up a proxy user to pass to the database for EnterpriseOne users. This means that you do not have to set up a database user for each EnterpriseOne user. This is accomplished through the P98OWSEC, User Security application, which is also found on the Security Maintenance menu GH9052. The program P98OWSEC, User Security, enables you to set up your EnterpriseOne users to pass a database user and password under the covers. This means that your users won’t know what the system user is so that they cannot perform manual SQL statements against your database. This added layer of security helps to ensure that someone cannot gain unauthorized access to confidential data through direct SQL access at the database level. A user who can manually manipulate your database through SQL statements can cause all sorts of damage to the system and frustration for you and the end users. This situation can also cause severe business problems.
Sign-on Security Concepts With an understanding of the concepts behind sign-on security, setting it up will make much more sense. You should first understand that you will be setting up entries in a relational database table. This table contains your EnterpriseOne database users, and encrypted EnterpriseOne and database passwords. This system table is read when sign-on security is set up. The table (and in fact, the entire signon security process) is controlled by a kernel process on the enterprise server. The sign-on security kernel polls the F98OWSEC table and controls sign-on security. It is important to notice this because the client machines and web servers are not directly reading the F98OWSEC table. Instead, they are communicating with the server through JDENet to validate the users’ EnterpriseOne passwords and to obtain the system user and password that will be passed to the database. This means that most of the problems with sign-on security are database related or are caused by client machines or web servers communicating with the enterprise server. (We explain how to set up a server as a security server and how the web server knows which server is their security server later in this chapter.) To populate the F98OWSEC table, use the P98OWSEC program on the Security Maintenance menu GH9052. Double-clicking on this program takes you into the Work With User Security window, shown in Figure 11-12. (A form exit on the Work With User/Role Profiles program takes you to the same application.) The Work With User Security window is where you set up and maintain your EnterpriseOne
Chapter 11:
EnterpriseOne Security
405
FIGURE 11-12. Work With User Security window
passwords and where you specify what system user ID is passed to the database. However, these database users need to be set up in your database by your database administrator. This program enables the EnterpriseOne system administrator to specify different database users for different EnterpriseOne data sources or a single database user for all data sources. The Work With User Security window enables you to easily see what security has been set up for individual users or groups. It contains a data source field where you can specify a database user and password to be passed when a certain data source is used by that user or group. By working with your database administrator, you can secure your system so that your end users have only the access that they truly need and not the access that they think they need. How this all comes into play will become clearer after we go over adding and modifying security for users.
406
JD Edwards EnterpriseOne: The Complete Reference
The first step in setting up users in sign-on security is to define your proxy or system users to the EnterpriseOne system. These are the database users that will be passed to your database under the covers. You should have your DBA set up a specific database user for each major role, such as finance lead. These database users will be passed for users that have these job roles. To add this system user, go to the form exit and select the System Users option. This will take you into the Work With System Users application, which is shown in Figure 11-13. From this application you tell the system about your database users, which were created by your database administrator for you. You define these users by clicking the Add button on the Work With System Users application. This takes you into the System User Revisions window. On this window you enter the name of the system user, which is your database user. You then enter the data source for which you want this user passed to the database. If you want this user used for all data sources, you can use a wildcard value of DEFAULT. This tells the system to use the system user for all EnterpriseOne
FIGURE 11-13. Work With System Users window
Chapter 11:
EnterpriseOne Security
407
data sources. It can be useful to have a specific database user for specific table schemas, such as production business data, in your sign-on security configuration. This can allow you to grant access to the production data with a database user that only has read access to the database. This gives you great flexibility in your configuration. The final fields in this application allow you to enter the password and verify the password for the database user. This is the only place where you need to enter the database password. Once the system user is configured, administrators with access to this application can simply select the database user to pass to the database. This is very powerful as you do not really want all the members of your IT help desk to know all of your database passwords. This window is shown in Figure 11-14. Now that you have set up the system users, you can move on to associate the EnterpriseOne user with a system user. To set this up, from the User Security application, click Add on the Work With User Security window. (This window was
FIGURE 11-14. System User Revisions window
408
JD Edwards EnterpriseOne: The Complete Reference
shown in Figure 11-12.) This takes you into the Security Revisions window, shown in Figure 11-15. The options on this window are shown in the following table. Option
Description
User ID
Enter a valid EnterpriseOne user, or if you are revising a user’s security, the username is displayed in this field.
Role
Specify a role. If your user is part of a role, he or she inherits the sign-on security setup of that group. NOTE: The user needs to be a member of that role at the time the record is added.
Data Source
Specify a data source so that the system user and password specified will be passed for this data source. For example, if the data source is Business Data – CRP, the system user is crpdta, and the password is crpjde, then these users and this password are passed every time this data source is used by the user specified in the User ID field. You can also use a wildcard value of DEFAULT, which will pass the system user specified to all data sources.
System User
This is the database user that is passed to the database “under the covers.” This user must exist in the database in order for sign-on security to function correctly. Adding the system user was discussed previously in this chapter. You can simply use the Visual Assist and select the system user you want. You do not need to enter or know the database password.
Password
The password that the user enters during the EnterpriseOne sign-on process. This password is not related to the database user or password.
User Status
Use these radio buttons to enable or disable a user account. If an account is disabled, the user cannot log on to the system.
Allowed Password Attempts
This setting is similar to a feature in Microsoft Windows. If this number of attempts to log on to the system for a user with the incorrect password is exceeded, the account is disabled.
Invalid Password Attempts
The number of attempts to log on to the system with an invalid password.
Chapter 11:
EnterpriseOne Security
Option
Description
Password Change Frequency
Specifies, in days, how often a user must change his or her EnterpriseOne password.
Password Changed
The number of times the password of that user has been changed. This field is blank when you add a user.
Daily Password Change Limit
The number of times per day that a user can change his or her password.
Security Changed
The date that specifies the last update to the file record.
Force Immediate Password Change
This option allows you to force your users to change their password upon initial login to the system.
FIGURE 11-15. Security Revisions window
409
410
JD Edwards EnterpriseOne: The Complete Reference
TIP If records already exist for a user, EnterpriseOne does not stop you from adding security revisions. This means that you can specify different users and passwords to be passed to the database for different data sources. A form exit on the Security Revisions window shows you the security history of a user (see Figure 11-16). It is basically an audit log that shows you the activity of a user’s account. You can easily see when a user has changed his or her password and when a user’s sign-on security profile was set up. The information on this window is similar to the security logging in Microsoft Windows. If you cancel out of the Work With Security History window, you will be back at the Security Revisions window. Click OK to finish setting up the security profile for your user or role. This takes you back to the Work With User Security window. This window contains several form exits: User Profiles, Admin Password Rev, Add Data
FIGURE 11-16. Work With Security History window
Chapter 11:
EnterpriseOne Security
411
Source, Add System User, Revise All, Security History, Required/Not Required, and Global Password Policy. The User Profiles form exit takes you to the user profile application. The Admin Password Rev selection takes you to the Administrator Password Revision window. Here administrators can change the passwords on user accounts. The Add Data Source exit takes you to the Add Data Source window. From this window you can associate an EnterpriseOne user or role with a specific system user and pass that user for a specific data source. The Revise All exit enables you to change all of the users’ settings. If you want to enable all of your user accounts, you can do so, or if you want to change the password frequency or the incorrect logon attempts before disabling the accounts, you can do so from the Revise All window. Security History is also available as a form exit. The Security History window shows you the changes that have been made to your sign-on security profiles, as described previously. The Required/Not Required option is important because it requires the user to connect to a security server and have his or her EnterpriseOne password validated before the user is allowed to log on to the system. The way in which the system checks for whether sign-on security is required isn’t all that complicated. When you choose the Required/Not Required option, it sets a flag under the RMRLS01 column in F00945, the Release Master file. When the client workstation or EnterpriseOne HTML server logs in, it reads this flag even if sign-on security is not turned on in the client workstation’s INI file. (We discuss these INI settings later in this chapter.)
Steps Prior to Forcing Sign-on Security Do not set sign-on security to be required unless you are sure that sign-on security is configured correctly. If your security kernel does not come up correctly on your enterprise server, your users will not be able to log on to the system (including the system administrator’s user account). What do you do now? All you need to do is remove the flag from the F00945 table that tells your EnterpriseOne client workstations and Java Application Servers that sign-on security is required. To do this, you can use a SQL statement after first backing up the table. You should always pass a SELECT statement before an UPDATE or DELETE statement. The following are the SELECT and UPDATE statements that you should use: Select * from sy812.f00945 where RMRLS01 = 'SEC';
Once you have confirmed that the record returned is the one the you want to update, use the following SQL statement to make sign-on security not required: Update sy812.f00945 where RMRLS01 = ‘SEC’ set RMRLS01 = ' '; Commit;
412
JD Edwards EnterpriseOne: The Complete Reference
The COMMIT statement is necessary only if you are running Oracle. Once you have completed this step, you still need to turn off sign-on security in your client machine’s INI file under the Security section. You can then log on to the system as a user that exists in the database and EnterpriseOne. If you do not have a user that exists in both, you are prompted with database sign-on screens during the log-in process. Sign on through these screens with a valid database user. This logs you on to EnterpriseOne so you can troubleshoot sign-on security.
Global Password Policy The Global Password Policy form exit from the Work With User Security application takes you into the User Security Global Password Policy application. This application allows you to configure your security policy. You can set the minimum password length, minimum number of numerics, maximum consecutive characters, minimum number of characters, and minimum number of special characters. This allows you to have strong passwords required for your EnterpriseOne system.
Other Application Options Several other options are available under row exits on the Work With User Security window: Revise Security, Revise Data Source, Password Revisions, and Copy Record. These options may be grayed out when you initialize this form. You have to find user and data source security records before you can modify them. On the Work With User Security window, enter a user ID in the User field and click Find. You can then click the User Revisions option, which takes you to the Security Detail Revisions window, shown in Figure 11-17. The fields on this window are shown in the following table. Field
Description
User ID
This field is grayed out and shows the name of the user whose sign-on security profile you are modifying.
User Status
This is the status of your user account. It is either enabled or disabled. This field is where you enable user accounts that have been disabled due to invalid sign-on attempts. The valid values are 01—Enabled 02—Disabled
Password Change Frequency
This field specifies, in days, how often your EnterpriseOne users have to change their passwords.
Allowed Password Attempts
The number of incorrect sign-on attempts that the system allows before disabling the user account.
Chapter 11:
EnterpriseOne Security
Field
Description
Invalid Password Attempts
The number of invalid password attempts on the account.
Password Changed
The last date that the password was changed.
Security Changed
The last date that the security was changed.
Daily Password Change Limit
The maximum number of times a user can change their password in a day.
Force Immediate Password Change
Forces the user to change their password upon their next login.
413
The Data Source Revisions row exit enables you to change the system user and passwords that are used for a specific data source. This option is grayed out unless you fill in the data source that has been set up for a sign-on security profile. You can also find records associated with a data source by filling in the name of the data
FIGURE 11-17. User Security – Security Detail Revisions window
414
JD Edwards EnterpriseOne: The Complete Reference
source and clicking Find. This enables you to enter a new system user for use with this data source. For example, if you wanted database user TEST1 to be passed every time the Business Data – PROD data source was used, you enter TEST1. The Password Revisions row exit is fairly self-explanatory. It enables you to change your EnterpriseOne users’ passwords. When users tell you that they changed their passwords and cannot remember them, you can reset them. This option is grayed out until you find a user that has been set up with sign-on security. The final row exit is Copy Record. This exit allows you to copy security records from one role or user to another. This can be useful in setting up your sign-on security configuration.
Enterprise Server INI Settings Let’s look at how sign-on security applies to your enterprise server. When working with sign-on security, you must remember that the work takes place on the enterprise server. To set up sign-on security on your enterprise server, open up the INI file on that enterprise server. The settings in the Security section of the INI file follow: Setting
Description
Security Server
The name of the server that handles your sign-on security.
User
A database user who is passed to the database for SELECT statements over the F98OWSEC table.
Password
A database password associated with the previously described user.
Data Source
The name of the EnterpriseOne data source where the F98OWSEC table resides. This is usually the System – 812 data source. NOTE: This setting is case sensitive. It must match the EnterpriseOne data source in F98611 (the Data Source Master table) both in case and number of spaces used.
Default Role
This is the role of the EnterpriseOne user. This is almost always set to *ALL.
Default Environment
This setting should equal the name of the environment that is associated with a path code where the specifications for the F98OWSEC table exist. Since F98OWSEC is a standard JD Edwards table, this setting can be almost any environment, as long as the associated path code exists on the enterprise server. It is important to note that the Transaction Monitor kernel uses this environment setting as well.
Chapter 11:
EnterpriseOne Security
Setting
Description
Security Mode
This setting controls whether or not standard logons (unified logons or both) are accepted by the system. With a unified logon, EnterpriseOne validates the user and password using Windows NT account validation. All you have to do is set your users up in Microsoft Windows. The accepted values are as follows: 0—Standard EnterpriseOne logons only (the default) 1—Unified logon only 2—Both logon modes
NumServer
The number of security servers that you have running in your system. The default is 1. If this value is higher than 1, the system attempts to authenticate users by sending a message to each security server in the order the servers appear until a server validates the user or no more security servers are listed. The authors recommend that you set up multiple security servers. This helps to ensure a high level of services to your end users.
History
This setting writes security access history to the F9312 table.
415
By filling in these INI settings and setting up your users’ sign-on security profiles in the P98OWSEC program, you are securing the system from users who do not know what they are doing—and from users who do know and are attempting to use the system in a malicious manner. In the authors’ experience it is generally a user who is not trying to be malicious but has access they should not have and performs a bad SQL statement. This can cost days of system downtime. Setting up sign-on security should be done during the first part of the conference room pilot phase of your implementation. By performing sign-on security at this early phase, the system administrator and users are accustomed to regarding sign-on security as a part of the system. It also provides more time to test the system and ensure that no loopholes exist that someone can exploit. TIP As of 8.12 the portal servers require LDAP to be implemented. The time to set this up should be built into your project plan timeline.The EnterpriseOne HTML servers do not require LDAP to be configured for them to run correctly.
416
JD Edwards EnterpriseOne: The Complete Reference
Client Workstation INI Settings The INI file on the EnterpriseOne client workstations contains a Security section; the settings are as follows: Setting
Description
SecurityServer
The name of the security server. If you are using multiple security servers, you will have multiple security server names listed in your INI file.
DataSource
The name of the EnterpriseOne data source where the F98OWSEC table exists. This setting is case sensitive. It must match the entry in F98611, the Data Source Master table, in case and spaces used.
Default Role
This is the EnterpriseOne user role. This is almost always set to *ALL.
DefaultEnvironment
This setting should be a valid environment for that workstation.
RowSecurity
No_Default
To secure a system, you must control the database users’ privileges. This means that if you are using TEST as your database user for production, TEST does not need rights, at the database level, to the development environment’s tables, including the Business Data tables and the Central Object tables. Another option is to assign specific database users to certain groups with appropriate privileges. Your database administrator can then track these users through the database and ensure that they have only the necessary privileges. It also provides an audit trail to track which users are updating or deleting records. If you suspect users of tampering with the system, you can assign a specific database user to their profiles and track the tables that they access in the database. With this type of database security, your system will truly be secured. This ensures you won’t be surprised by an end user publishing your payroll files on the Internet!
Security Workbench
Limiting the type of database IDs that your EnterpriseOne users pass to the database should only be part of your security solution. However, it is true that when sign-on security is set up correctly, a user who is passed to the database does not have the privileges to perform SELECT statements over the salary tables in HCM when they are not in the human resources or payroll department. If you limit the security solution to only sign-on security and the user passed to the database does not have the proper permissions to the tables, all sorts of errors will be displayed on users’ screens and in the client workstation’s logs. This means that you (as a system administrator) will be receiving calls from your end users saying that the system
Chapter 11:
EnterpriseOne Security
417
doesn’t work! To avoid spending a lot of time explaining what applications the end users can and cannot run, you should probably set up application security. It will save you a lot of headaches. You can set up application security by going to the Security Maintenance menu GH9052, where you can find the Security Workbench application P00950. This application enables you to set up a variety of different security options. From this application you can set up the following: ■
Inclusive/exclusive row security
■
Application security
■
Action security
■
Row security
■
Column security
■
Processing options security
■
Tab security
■
Hyper Exit security
■
Exclusive application security
■
External calls security
■
Solution Explorer security
■
Mics security
■
Data Browser
■
Push button
■
Link
■
Image
■
Media Object
■
Text Block Control
■
Chart Control
■
Publisher BSSV
As you can see, this application can be a powerful tool in assisting you in securing your EnterpriseOne system. The task for you, as a system administrator, is to use this tool for the good of your end users! Even though your company may not
418
JD Edwards EnterpriseOne: The Complete Reference
need all of these different types of security, it is a good idea to be aware of the functionality that EnterpriseOne offers. Your business may not need some of these features today, but they might tomorrow. To start setting up application security, double-click on the Security Workbench program P00950. This takes you into the Work With User/Role Security window. When you click Find, the types of security that are set up for each user or profile are listed in the Security Type column in the grid, as shown in Figure 11-18. Not only can you see what type of security is set up for each user and role at a glance, but you can review the entries in detail by selecting the desired entry and clicking the Select button. This takes you into the appropriate screen, depending on the type of security set up for that user or role. For example, if the user you selected had row security set up, selecting the record takes you into the Row Security application, where you can modify the security profile. Just as you can copy environments and overrides, you can copy security records. You select the record or records that you want to copy and click the Copy button. This launches the Work With Security Revisions window, where you can specify the user to whom you want
FIGURE 11-18. Work With User/Role Security window
Chapter 11:
EnterpriseOne Security
419
to give a copy of the existing security records. However, this will prompt you for a user for each record you copy. So if you want to copy lots of security records from one user or profile instead, use the form exit Copy Security. This will allow you to copy all the records from one user or role to another. You can also specify whether you want to add these new security records to the user’s security profile or you want to replace the existing records in the user’s security profile. You cannot automatically overwrite any existing records unless you choose to.
Inclusive/Exclusive Row Security This application allows you to choose between inclusive and exclusive row security. This choice should be made at the start of your implementation, as it will affect the design of your row security solution. Inclusive row security will have the security application allow access to records of values identified by a Y value in the Inclusive/Exclusive Row Security application (see Figure 11-19). Exclusive row security will block access if there is an N value in the Inclusive/Exclusive Row Security application. This type of decision will help ensure that you can implement row security without negative impact on the performance of your system.
FIGURE 11-19. Inclusive/Exclusive Row Security window
420
JD Edwards EnterpriseOne: The Complete Reference
NOTE There is a new row selection with an 8.12 environment that is current on ESUs and 8.97 foundation code. This row selection is Secure Selected. Although it shows up on multiple forms, it is only enabled on push button, link, image, text block, and chart control security. See these sections for more details.
Application Security Now, let’s go over each type of security that you can set up through the security workbench program. We will start by going over Application Security, which is the first option listed under the form exit on the Work With User/Role Security window. The Application Security window (see Figure 11-20) enables you to lock users out of running applications and/or installing applications. This prevents your users who are
FIGURE 11-20. Application Security window
Chapter 11:
EnterpriseOne Security
using partial packages from installing the application through just-in-time installations (JITIs). The fields and the options on this window are the following: Field
Description
User/Role
The name of the user or group that you are applying application security to.
Application (Display Secured Item)
This is where you enter the name of a secured application, so that you can review and/or revise the type of security that is set up on that application.
Version (Display Secured Item)
This field is for the name of the version of the application. This will help you filter for the secured item.
Form Name (Display Secured Item)
This field enables you to search for a specific form of an application that is secured. This means that you can enable your users to run the application but not certain forms of that application.
Application (Display UnSecured Items)
This field is used to find applications that are not secured for the user/group specified in the User/Role field.
Version (Display UnSecured Items)
This option allows you to filter on your unsecured items by version.
Product Code (Display UnSecured Items)
This field enables you to search for unsecured items by product code. If you want to lock a user or group out of all applications in certain system code, you can easily do so.
Run Security
When this check box is checked, it indicates that you want to prevent people from running the application.
Install Security
This check box locks users out of installing the application.
Secured
This grid column shows two folders: Secured and UnSecured. When you enter a user and programs in the previously described fields, you see secured applications or unsecured applications by expanding these directory trees.
Application/Form
This grid column contains the application or form name, showing the secured and unsecured applications and forms.
Run
This grid column indicates whether the user or group specified has the ability to run the application. Valid values are Y and N.
Install
This grid column indicates whether the group or user has the authority to install the application. Valid values include Y and N.
421
422
JD Edwards EnterpriseOne: The Complete Reference
To secure a user from running or installing an application, you enter the username or group name in the User/Role field. For this example, let’s use the JDE user. Because we will also secure P01012, the Address Book Revisions application, you need to enter the application number, P01012, under the Application field in the Display UnSecured Items area. When you click Find, two directories are displayed in the grid: the Secured and UnSecured directories. When you expand the UnSecured directory, the P01012 application is displayed. Drag this application from the UnSecured folder to the Secured folder. The application is now secured. The user will not be able to run or install the application depending on whether the check boxes for Run and Install are checked. It is important to note that this application security setup is cached. To see it, you have to log the user out and back on to EnterpriseOne on a development workstation. If your user is an HTML user, then either you need to clear the cache on the web server, or you need to stop and start your Java Virtual Machine (JVM). After logging back on to EnterpriseOne, use the Fast Path to get to the G01 menu. Notice that you can’t see the P01012 application. This is because EnterpriseOne security is object based, so you cannot see the object on the menu either. Going back to P00950, the Security Revisions application, several row exits are on this form. The options available from these row exits can save you time and prevent frustration. The first option, All Objects, enables you to secure all the objects in the system from that user or role. This places an entry in the Secured folder for all objects, which means that the user cannot run any of the applications in the system. Many system administrators prefer to start setting up their application security in this manner and then grant permissions for specific applications as the need arises. This means that end users have less opportunity to get themselves into trouble. You may be wondering how any of the applications can be used if they are all locked down. You can grant the permissions back to the users by placing the application name in the Application field under Display UnSecured Items. Click Find, expand the UnSecured directory, and the application name is displayed there. Ensure that the Run and Install check boxes are unchecked and drag the application under the Secured directory to grant the user the ability to run and install this application. If you make a mistake, don’t panic. You can revise the security once it has been set. Suppose you accidentally left the Run and Install check boxes checked, locking the user out of the application. All you have to do is uncheck the Run and Install check boxes. Then expand the Secured directory and select the entry for the application. The Run and Install fields will be set to N; to change these settings, ensure the Run and Install check boxes are not selected and then click Revise Security on the row exit. This sets the Run and Install options to Y, granting your user permission to run and install the application. If only one box is checked, the user will be locked out of either installing or running the application, but not both. If you no longer need the entry, you can select the grid record and click Delete to eliminate the entry from the Security Workbench application.
Chapter 11:
EnterpriseOne Security
423
The Secure To All option, under the row exit on the Security Revisions window, creates an entry for the application specified. This moves the records from unsecured to secured without the need for dragging the objects up to the secured folder. The security record will obey the flags for run and install. So be sure you have them set the way you want prior to hitting the Secure To All options. This is different from all object security in that it is application specific. The Remove All option under the row exit removes all of the security that you have set up for the user in the User/Role field. In the next section, we discuss action security. If you are on the Application Security window, you click Close to take you back to the Work With User/Group Security window.
Action Security Action security gives you more flexibility. You can enable users to run an application that may be required for them to perform their job duties. However, you can limit the functions that users can perform in the application. Figure 11-21 shows the
FIGURE 11-21. Action Security window
424
JD Edwards EnterpriseOne: The Complete Reference
Action Security application window. The options and fields available on this window are the following: Field
Description
User/Role
Enter the name of your user or group.
Application Name (Display Secured Item)
Enter an application name in this field to see if it was secured for a specific user or group.
Version (Display Secured Item)
This field allows you to restrict your search to a specific version of an application that you are working on securing.
Form Name (Display Secured Item)
This field can be used to see if a specific form has security set up for the user or group in the User/Role field.
Application (Display UnSecured Items)
Enter the name of the application on which you want to place security in this field—for example, P01012.
Version (Display UnSecured Items)
This field allows you to restrict your search to a specific version of an application you are working on securing,
Product Code (Display UnSecured Items)
This field enables you to search for applications by product code. It is useful when you are attempting to lock down certain types of applications, like financial applications.
Change
This check box, when checked, tells EnterpriseOne to prevent users from changing records in the specified application.
OK/Select
This check box, when checked, prevents users from committing records through the OK button, or from selecting records with the Select button.
Add
This check box restricts users from being able to add records.
Copy
This check box restricts users from being able to copy records.
Delete
This check box restricts users from being able to delete records.
Scroll To End
This check box restricts users from being able to scroll to the end of the data selected in an application.
Chapter 11:
EnterpriseOne Security
425
The Action Security application is similar to the Application Security application. When you place a username in the User/Role field and the application name, product code, or menu in the fields under Display UnSecured Applications and click Find, two directories are displayed: Secured and UnSecured. When you want to secure an application, you check the Desired Restrictions Exchange check box and drag the application from the UnSecured to the Secured directory displayed in the left grid. This secures that application for that user or group. When this security is in effect, the OK, Add, Copy, and Delete buttons are grayed out based on which action security you’re implementing. If you restrict change functionality, users cannot change the existing records in the system. The exact exits that are on the Application Security window (discussed previously in the section “Application Security”) are also on the Action Security window. The following quick reference chart lists the row exits: Row Exit
Description
All Objects
This row exit enables you to secure all objects from the user or group specified in the User/Role field. This exit is useful when you want to lock everything down and then grant permissions back as needed to your users.
Revise Security
This exit enables you to revise existing security records. You find the record for the desired applications under the Secured directory, select it, click the appropriate check boxes, and take the Revise Security exit. This changes the security on the application for that user.
Secure to All
This exit enables you to create a security entry for the user/ group and application specified with all of the restrictions turned on.
Remove All
This exit enables you to remove all of the security set up for the user in the User/Role field.
Row and Column Security Row and column security are absolutely critical to most businesses. For many businesses to fully operate, their users must be able to run applications that contain data the company does not want them to see. Row and column security enables you to restrict your users from seeing records in the tables of your choice. For row and column security to make sense, think of database tables or an Excel spreadsheet. These examples have rows of data along a horizontal plane and columns of data along a vertical plane. The ability to hide entire rows of data or just certain columns enables your end users to do their jobs while still securing them from obtaining restricted data.
426
JD Edwards EnterpriseOne: The Complete Reference
Prior to setting up your row security, you need to make a decision on how you want the system to find the secured record. You have two choices for setting up your row security model and the decision needs to be made prior to setting up your row security. You can change at a later date, but that will be more work, as you will then need to reconfigure your security model. The choices for your configuration are as follows: ■
Exclusive Row Security This value will block database access for a secured range of values identified by an N in the Row Security application.
■
Inclusive Row Security This value will allow database access for a valid range of values identified by a Y in the Row Security application.
Row Security The Row Security exit is available from the Security Workbench program. The Row Security Revisions application (see Figure 11-22) enables you to hide entire rows of
FIGURE 11-22. Row Security Revisions window
Chapter 11:
EnterpriseOne Security
data from your end users. For example, you can hide all of your employees’ names and addresses in the address book. You can set up row security on F0101, the Address Book Master table, to accomplish this. You can also restrict users from seeing certain ranges of address book numbers. You can access the Row Security application by clicking the row exit for Row Security in the Work With User/Role Security application. The options and fields available in this application are the following: Field
Description
User/Role
The name of the user or group that you are setting up row security entries for.
Table
The table that you want to restrict users from seeing rows of data in.
Data Item
The data dictionary data item that enables you to secure rows in tables from users. The data dictionary is used to control the data displayed in EnterpriseOne applications.
From Value
This field is used to determine the lower range of the data item in the table.
Thru Value
This field is used to determine the upper range of the data item in the table.
Add
This field is used to restrict users from being able to add records in the From Value to Thru Value range. The acceptable values for this field are Y to allow users to add records and N to restrict users from adding records.
Change
This field enables you to restrict users from being able to change records in the From Value to Thru Value range. The acceptable values for this field are Y and N.
Delete
This field enables you restrict users from being able to delete records. The acceptable values for this field are Y to allow users to delete records and N to restrict users from deleting records in the defined range.
View
This field enables you to restrict users from being able to view records in the From Value to Thru Value range. The acceptable values for this field are Y to allow users to view records and N to restrict users from viewing records in this range.
427
428
JD Edwards EnterpriseOne: The Complete Reference
Field
Description
Alias
This is the alias of the data item.
BU Security
This field is used for business unit security. We will cover this type of security later in the chapter.
TIP When you enable your users to see records, but not change them, they will not receive a nice neat error. When they click Display Errors, they will see “error file cannot be accessed.” Keep this in mind when setting up row security so that you do not produce more calls from your end users than necessary. It is also important to note that when you secure users from seeing certain rows within a table, this security shows up in the Data Browser as well as in the EnterpriseOne interactive applications that access the table.
Column Security Column security enables you to secure entire columns in tables from your users. When you choose Column Security, the Column Security Revisions window is displayed (see Figure 11-23). The options and fields available from this window are the following: Field
Description
User/System Role
Enter the user or group that you want to set column security for.
Application
Lock down an application by specifying a data item for that application.
Version
This is the version of the application that you want to lock down. You can specify column security per version of the application if this is required.
Form Name
Specify a specific form to which you want to apply column security.
Data Item
Enter the data item from the EnterpriseOne data dictionary that is used to describe the column in the table, application, or form that you want to lock down.
Chapter 11:
EnterpriseOne Security
429
FIGURE 11-23. Column Security Revisions window
Field
Description
View
Specify Y to allow your users to see this column and N to hide the column from their view.
Add
Specify Y to allow users to add records to this column or N to restrict users from adding entries into this column.
Change
Specify Y to allow users to change records in the column specified or N to restrict users from changing data in this column.
Alias
This is the data dictionary alias.
Processing Option Security Application processing options can be locked down with the Security Workbench by using (you guessed it) Processing Option Security! When you take the Processing
430
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 11-24. Processing Option Security window
Options exit from the Work With User/Role Security window, you see the window shown in Figure 11-24. The options and fields are the following: Field
Description
User/Role
Specify the user or group that you want to set up processing option security for.
Application (Display Secured Item)
Enter the application or report name in this field for the secured application that you want to find. You can also specify the version of the application you want to restrict in the Application field.
Chapter 11:
EnterpriseOne Security
Field
Description
Application (Display UnSecured Items)
Specify the name of the report or application that you want to set up processing option security for. (Not all reports or applications have processing options attached to them.) You can also specify the version of the application you want to restrict in the application field.
Product Code (Display UnSecured Items)
Specify product codes to assist you in searching for specific applications.
Change
This check box restricts users from changing processing options for the specified report or application.
Prompt For Values
This check box restricts users from prompting an application or report for values. NOTE: When security is not set up, users normally can prompt for values by right-clicking on a program or report.
Prompt for Versions
This check box restricts users from prompting for versions on an application or report. NOTE: When security is not set up, users normally can prompt for versions by right-clicking on a program or report.
Prompt for Data Selection
This option allows you to secure users from seeing data selection on versions.
Secured
This grid column shows the applications or reports that have security set up on them.
Application/Form
This grid column shows the name of the application or report that security is set up on.
Change
This grid column takes a Y or N value for restricting a user’s ability to change the processing options on a report or application.
Prompt for Data Selection
This allows you to restrict users from prompting for data selection on a UBE.
Prompt for Versions
This grid column takes a Y or N value for restricting users from prompting for versions.
Prompt for Values
This column takes a Y or N value for restricting users from prompting applications or reports for values.
431
432
JD Edwards EnterpriseOne: The Complete Reference
NOTE You can also specify security on versions of applications and UBEs. This gives you quite a bit of flexibility. The Processing Option Security application is similar to the Action and Application Security applications in that when you want to set up security on a specific report or application, you enter the username or role in the User/Role field and the application or report name into the Application field under the Display UnSecured Items area. Click Find, and two directories are listed in the Secured column: UnSecured and Secured. Expand the Secured directory and drag the application from the UnSecured directory to the Secured directory. Ensure that the check boxes that you want are checked to restrict access to the application’s or report’s processing options. This secures the application or report from the user or role specified. Notice that the row exits from this application also match the row exits for the Application and Action Security programs. The following table has been provided for your convenience; it lists the row exits for the Processing Option Security application. Row Exit
Description
All Objects
This row exit enables you to secure all objects from the user or group specified in the User/Role field.
Revise Security
This exit enables you to revise existing security records. You can find the record for the desired application under the Secured directory. Select the record, check the appropriate check boxes, and take the Revise Security exit. This changes the security on the application for that user.
Secure To All
This exit enables you to create a security entry for the user/role and application specified with all of the restrictions turned on. This means that when you want to turn all the options on, you do not have to check all check boxes by hand.
Remove All
This exit enables you to remove all of the security set up for the user in the User/Role field.
Secure Selected
Although it shows up on multiple forms, it is only enabled on push button, link, image, text block, and chart control security. See these sections for more details.
Chapter 11:
EnterpriseOne Security
433
TIP You can perform a SELECT statement over the versions table, F983051, to determine what applications and reports are set to prompt the user for data selection and/or processing options. Once you have this information, you can lock down all other processing options and then grant back access only to the required reports and applications. This type of security is critical as a change to a processing option can change how your order-to-cash process functions and cause data issues.
Tab Security The next option with the Security Workbench is Tab Security. What this option allows you to do is set up security on tabs within your applications. You can restrict users from seeing these tabs or from changing the values on these tabs. Let’s take a look at the Tab Security window shown in Figure 11-25.
FIGURE 11-25. Tab Security window
434
JD Edwards EnterpriseOne: The Complete Reference
NOTE Not all applications have tabs to secure. Field
Description
User/Role
Enter a username or role that you want to set up tab exit security on.
Application (Display Secured Item)
Specify an application name to search for a secured application.
Application (Display UnSecured Items)
Enter the name of the application that you want to place tab exit security on.
Product Code (Display UnSecured Items)
Search for applications by product codes.
Change
This check box restricts users from changing items on an exit tab.
View
This check box restricts users from viewing exit tabs.
Hyper Exit Security Exit security enables you to secure the menu bar exits from your end users. These exits enable users to call applications that you may not want them to access. To run exit security, choose the Exit Security program from the Work With User/Role Security form. This takes you into the Hyper Exit Security program, shown in Figure 11-26. This type of security is nice to have, but if you implement a lockdown of all applications for *PUBLIC through application security, it is not really necessary. The end user will be able to click the form exit, but in the case of a *PUBLIC lockdown with application security, they will receive an error that they are not authorized to run the application. The authors highly recommend locking all applications down and granting back only what is needed. The options and fields available from the Hyper Exit Security window are the following: Field
Description
User/Role
Enter the user or role that you want to set security up for. *PUBLIC is allowed, but wildcards are not.
Application (Display Secured Item)
Enter the name of an application that is secured.
Application (Display UnSecured Items)
Enter the name of the application that you want to set security up for.
Chapter 11:
EnterpriseOne Security
Field
Description
Product Code (Display UnSecured Items)
Enter product codes to assist you in finding applications.
Run Security
This check box restricts users from running or using the exits.
435
Securing users from hyper exits is very similar to the other types of security. You place the application name in the Application field under the Display UnSecured Items area, click Find, expand the UnSecured directory, and you then see a directory with the application name. You can expand the application directory, and the exits for that application are displayed. To secure exits, you drag the desired one to the Secured directory with the Run Security check box checked. This secures the exits from your users. When the exits are grayed out, users know that they cannot run the application called by the exit.
FIGURE 11-26. Hyper Exit Security window
436
JD Edwards EnterpriseOne: The Complete Reference
The row exits available from the Hyper Exit Security form are the following: Row Exit
Description
All Objects
This row exit enables you to secure all objects from the user or group specified in the User/Role field.
Revise Security
This exit enables you to revise existing security records. You find the record for the desired applications under the Secured directory, select it, check the appropriate check boxes, and click the Revise Security exit. This changes the security on the application for that user.
Secure To All
This exit enables you to create a security entry for the user/role and application specified with all of the restrictions turned on. This means that when you want to turn all the options on, you do not have to check all the check boxes by hand.
Remove All
This exit enables you to remove all of the security set up for the user in the User/Role field.
Secure Selected
Although it shows up on multiple forms, it is only enabled on push button, link, image, text block, and chart control security. See these sections for more details.
Exclusive Application Security The Exclusive Application Security application is often misunderstood and underused. This application enables you to grant back privileges to users on specific applications. This means that you can accommodate business needs. For example, suppose you have a user who normally does not need to see social security numbers, but for a specific report they run, these numbers are required. In this case column security would be restricting them from viewing social security numbers through the applications and all other reports, but you can use exclusive application security to grant the user access to the information needed to run the report. To set up exclusive application security, you click the Exclusive Application exit on the Work With User/ Role Security form. This takes you to the Exclusive Application Security form (see Figure 11-27), which enables you to grant your users specific privileges for an application or report. The options available on this form are as follows: Option
Description
User/Role
Enter the name of the user or group that you want to set up security for. Wildcards are not allowed, but *PUBLIC is.
Object Name
Enter the name of the object to which you want to give the user rights.
Chapter 11:
EnterpriseOne Security
Option
Description
Object Description
The value for this field is the default; it contains a description of the application or report.
Run Application
Enter Y to grant the user or group the right to run the report or application. Enter N to restrict the user from running the application or report.
437
To add an application or report, you simply enter the name of the application or report in the Object Name field, tab through the Object Description field, and enter Y in the Run Application field. When you have completed entering all of the applications or reports that you want to allow your user to run, click OK to save the records. If you want to remove an entry for exclusive application security, enter the user or group in the User/Role field, click Find, select the desired record, click the Delete button, and then click OK to save the changes. This completes the setup of exclusive application security for your user or group.
FIGURE 11-27. Exclusive Application Security window
438
JD Edwards EnterpriseOne: The Complete Reference
External Calls Security The External Calls security is used to lock down applications that can be called externally—for example, any applications that can be launched by double-clicking on an executable from Windows Explorer. This type of security is necessary because some of EnterpriseOne’s applications are stand-alone executables, enabling users to call them externally from EnterpriseOne. You can use External Calls security to prevent users from calling these applications. With the new architecture of all users (except developers) being HTML users, this is a little less of a concern. An example of a stand-alone application that you probably want to restrict most of your users from using is the Forms Design Aid (FDA) application. This application enables users to modify EnterpriseOne applications. The application can be run from the Object Management Workbench or by double-clicking on the FDA.EXE file located under the workstation’s 812/System/bin32 directory. If you go through all the effort to lock the users out of using the program within EnterpriseOne, you probably don’t want them to be able to access the program outside of EnterpriseOne either. To lock users out of programs such as Forms Design Aid, you take the External Calls row exit from the Security Workbench program, located on the Security Maintenance menu GH9052. This takes you into the External Calls Security application, shown in Figure 11-28. This form enables you to secure your users from calling stand-alone EnterpriseOne programs outside of EnterpriseOne. The fields and options available from the External Calls Security application are the following: Field
Description
User/Role
Enter the name of the user or group that you are setting up external calls security for. This cannot be a wildcard, but it can be the group *PUBLIC.
Executable (Display Secured Item)
Enter the name of the executable that is secured from the user. Click Find, and you should see the application under the Secured directory.
Executable (Display UnSecured Items)
Enter the name of the executable that is secured from the user. Click Find, and you should see the application under the UnSecured directory.
Run Security
This check box allows you to restrict users from executing a stand-alone application. When it is checked it will restrict the access, so be sure to check this box prior to moving the executables to the secured folder.
To set up external calls security, you drag the name of the application (which you found by entering the name of the menu the application is on) from the UnSecured to the Secured directory in the grid. This locks down that application so that end users cannot run the application outside of EnterpriseOne. If you want to remove security from the user or group, you find the application by using the menu
Chapter 11:
EnterpriseOne Security
439
FIGURE 11-28. External Calls Security window or the Executable field. You then expand the Secured directory, select the application, and click Delete. This removes the security on this application for this user. The row exits on the External Calls Security application are similar to those of the other security applications: Row Exit
Description
All Objects
This exit enables you to secure the user or group specified from all of the applications that are stand-alone in EnterpriseOne. You may want to restrict the majority of your users and then grant the privileges back as necessary.
Secure To All
This exit enables you to secure any applications listed in the UnSecured directory.
Remove All
This exit enables you to remove all of the security that has been set up for that user.
Revise Security
This option allows you to change the settings of existing records.
440
JD Edwards EnterpriseOne: The Complete Reference
Solution Explorer Security As of release 8.9, task views are the new menus of EnterpriseOne. Just as with the older menu structure, there are applications that allow power users to create or change task views. This type of activity should only be conducted by trained and qualified power users. To ensure that these tools are restricted, you can use Solution Explorer Security. Solution Explorer Security can be accessed by taking the Solution Explorer form exit from the P00950 User/Role Security application. This will take you into the Solution Explorer Security window. This window is shown in Figure 11-29. Field
Description
Menu Design
You can set the radio buttons to Secured, View, or Change. Secured restricts the user or role from using Menu Design. View allows the user to view and add tasks, but not change or delete. Finally, you can give the user change ability, which gives them full rights to the menu design application.
Menu Filtering
Menu Filtering gives you the ability to hide menu options from users or roles. This can be very handy for limiting what a user sees on their menu. Secured Cannot use this function. View Can view and add, but not change or delete. Change Full rights to add, change, or delete.
Favorites
Favorites allows you to hide favorites from users or roles. Secured Cannot use this function. View Can view and add, but not change or delete. Change Full rights to add, change, or delete.
Fast Path
This setting allows you to secure Fast Path or allow users to have Fast Path. Fast Path allows users to call applications or other menus directly.
Documentation
You can add custom documentation for tasks, which can be visible at the bottom of the screen on thick clients. Secured Cannot use this function. View Can view and add, but not change or delete. Change Full rights to add, change, or delete.
OMW Logging
This is the ability to turn Object Management Workbench logging on or off. The authors recommend you leave logging on for all users and groups. You can reduce the level of the logging within the Object Management Workbench configuration.
Chapter 11:
EnterpriseOne Security
441
FIGURE 11-29. Solution Explorer Security window TIP There are three preset security settings under the form exit for this application. These presets go from one to three, with one being the most restrictive for new users and three being more open for advanced users.
Miscellaneous Security Revisions EnterpriseOne allows you to mark your reports as updated or read-only reports when they are created in Object Management Workbench. All reports out of Oracle are flagged either as read-only or update reports. The Miscellaneous Security Revisions window allows you to restrict users so that they can only run read-only reports. You can also restrict the workflow status monitoring. This is shown in Figure 11-30.
442
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 11-30. Miscellaneous Security Revisions window
Data Browser The Data Browser is the application that has replaced Universal Table Browser, since all end users are now using an HTML interface. The Data Browser allows users to directly open tables and perform SELECT statements using EnterpriseOne business views. The application also allows users to export data, which Universal Table Browser did not. The Data Browser will obey EnterpriseOne row and column security. You can grant access to this application through Data Browser Security Revisions. This is a simple window where you input the user or role and then select whether you want them to be able to access the Data Browser, and finally select whether you want them to be to able to search and select tables or business view queries. This is shown in Figure 11-31.
Chapter 11:
EnterpriseOne Security
443
FIGURE 11-31. Data Browser Security Revisions window
Push Button Security As of release 8.11 the end users all use an HTML interface. Thus there has been some additional security added to the EnterpriseOne system to help ensure a truly robust security model. One of these changes is push button security. This type of security allows you to secure users from using or viewing push buttons. The Push Button Security window, which is shown in Figure 11-32, is very similar to the others in Security Workbench. Once you find your application you would like to secure, ensure you have the check boxes you want set and drag the application or form up under the secured folder. The check boxes on this window, View and Enable, allow you to restrict users from seeing and/or using push buttons. You can also use a new row exit with push button security called Secure Selected. This option moves the highlighted object from the unsecured folder to the secured folder.
444
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 11-32. Push Button Security window
Link Security Link Security allows you to secure links on both embedded and reusable subforms in EnterpriseOne. This security application is shown in Figure 11-33. This application allows you to disable the link, but still have users view it or to hide the link as well. This is done through the Enable and View check boxes.
Image Security The Image Security window is the same as the Link and Push Button Security windows, so we will not show you another illustration of the same window with a different title. It works in the same manner. This window will allow you to disable an image control or to disable and restrict the user or role from viewing the control.
Media Object Security The next form exit from the Security Workbench application is Media Object Security. This application allows you to prevent EnterpriseOne users and roles from adding, changing, deleting, or viewing media objects within interactive applications. An example of why media object security would be useful is if you are using the
Chapter 11:
EnterpriseOne Security
445
FIGURE 11-33. Link Security window contract management functionality in EnterpriseOne and are attaching copies of your contracts as media objects. You do not want the contracts changed after they are added. So to handle this you can use media object security. Figure 11-34 shows media object security configured for the Address Book application. In this example the user can add and view media objects in this application, but cannot change or delete them. The following table lists the values of the options you can use to secure media objects. The search functionality works like the other security windows discussed in this chapter. Option
Description
Change
Allows you to restrict the ability to change a media object.
Delete
Allows you to restrict the deletion of a media object. If you select Change, the Delete option will automatically be checked.
Add
Restricts the ability to add a media object.
View
Allows you to restrict users from seeing the media objects. This can be handy if the media objects in a specific application are confidential information such as contracts.
446
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 11-34. Media Object Security window
Text Block Control This security allows you to restrict access to a text block control on an HTML page. This is a new security feature as of 8.12, with updated ESUs and foundation code 8.97. You can disable the text box control, but still allow the user to see it, or you can hide it from the user as well. This is done using the View and Enable check boxes on the Text Block Control Security window.
Chart Control This is a new security feature as of 8.12, with some ESUs and 8.97 foundation code. This security allows you to restrict the view to chart controls in HTML applications. This is done with the View and Enable check boxes. This allows you to restrict the user from working with the chart controls or even viewing them.
Chapter 11:
EnterpriseOne Security
447
These controls can contain links to other objects. Also there is a new Secure Selected row exit on this application. This allows you to move a selected application from the unsecured folder to the secured folder without dragging it.
Publish BSSV You can hardly pick up a trade magazine any more without hearing about web services. With the introduction of Fusion middleware to EnterpriseOne, the functionality has greatly advanced in this area. As of release 8.12 with foundation tools 8.97, you can publish web services from EnterpriseOne. These are called Business Services. These are new object types that are tied into the Object Management Workbench (OMW). So developers can now create web services and you can track them through your software development life cycle using OMW. This is a very powerful tool. With any tool like this you need security. This is where Publish BSSV comes in. From this application you can identify your business server where you want to place the security, the publish method, and then restrict or allow use based on a user or role. This allows you to control how your business services are used.
Business Unit Security
Business Unit security allows you to filter data by business unit for User-Defined Code (UDC) and transaction tables. With the user-defined codes you create subgroups of values that can be shared among various business units. This type of subgroup can also be unique to one particular business unit. The term to describe this is User-Defined Code or UDC sharing. When this filtering is set up on transaction tables, it is called transaction sharing. The first step that you want to take is to set up your UDC sharing. You can do this by going to the GH9052 menu. You will see a Business Unit Security folder. When you expand this folder you will see Set-up Business Unit Security, Maintain Business Unit Security, Set-up UDC Sharing, and Maintain UDC Sharing.
UDC Sharing The best way to start is to set up UDC sharing. To do this execute the Set-up UDC Sharing application on the menu. This will take you into the UDC Group Revisions window, shown in Figure 11-35. In our example you can see the UDC group is set up as BUSINESSGROUP10. This can be any logical name that makes sense to you; the group description is simply a description of the UDC group. In the grid you enter the product code and the user-defined code. You can then click the Next button. In the next window you simply set up a set-id value and description. You can set up multiple set-id values. When you click Next, the Maintain Set-ID window is shown.
448
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 11-35. UDC Group Revisions window
The Set-ID value allows you to further categorize the UDC values within a UDC group. An example would be to categorize the BUSINESSUNIT10 UDC group into subsets like Canada, Mexico, and Pacific Rim. When you click Next, you will finally be brought into the Maintain set-ID application. This application allows you to set UDC values to the set-IDs. You simply highlight the value you want and arrow it over into the set-IDs. This is shown in Figure 11-36. NOTE If you need to change your configuration for UDC sharing later, you can do this through the Maintain UDC Sharing application. From this application you can change your UDC groups, set-IDs, and UDC values for your set IDs.
Chapter 11:
EnterpriseOne Security
449
FIGURE 11-36. Maintain Set-ID window
Business Unit Security To complete setting up business unit security, you now need to access the Set-up Business Unit Security application. Once you double-click on this application you will be taken into the Business Unit Security Definition Revisions window, which is shown in Figure 11-37. On this window you need to enter some data. Option
Description
Business Unit Type
Enter the type of business unit, for example, Balance Sheet Business Unit (BS).
Business Unit Definition Table
Enter the table name that contains the individual business unit values, for example F0006.
Business Unit Definition Data Item
Enter the data item in the business unit definition table that contains the unique business unit name.
450
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 11-37. Business Unit Security Definition Revisions window
This will take you to the User/Role to Business Unit Relationships window. On this window you can assign the users or roles with the appropriate business units. After you have finished securing your users and roles, click the Next button to continue. You will then be taken to the Maintain Transaction Security Tables window. You can click the Skip button, as this is only for setting up transaction security. You will then be taken to the UDC Group/Set-ID/Business Unit Relationship window. Here you can assign set-IDs, if you have configured them in UDC Sharing, to business units.
Transaction Security Transaction security is really another piece of business unit security. This type of security allows control over specific transaction records. This means you can restrict
Chapter 11:
EnterpriseOne Security
451
your users so that they can view, access, or modify transactions for only the business unit they are associated with.
Menu Filtering
Menu filtering is a handy feature of EnterpriseOne. It allows you to restrict what the user can see on the menu based on role. First, you need enough security access to perform menu filtering. Once you have the proper access, you will see a Menu Filtering option on the left-hand pane of the JD Edwards Solution Explorer. This is shown in Figure 11-38. When you are in Menu Filtering mode, you will be able to restrict what items each role will be allowed to see on a menu. This will be shown by a green check box for Enable and a circle with a line through it for Disabled or Hidden. You need to set up your menu filtering for each of your roles. To switch roles you can right-click at the top of the menu structure, select view by role, and then select the role you are interested in. You must click the Save button to save your work, prior to selecting a new role.
FIGURE 11-38. Menu Filtering
452
JD Edwards EnterpriseOne: The Complete Reference
LDAP
What is LDAP? Why should you care? Well, LDAP is an industry standard protocol. This protocol is used by directory services, which allows you to manage user IDs and passwords across multiple systems. This type of functionality is very attractive to EnterpriseOne customers as it helps to reduce the cost of maintenance on the system and thus lowers the total cost of ownership. In this section we will discuss the concepts of implementing an LDAP with an EnterpriseOne installation. If you need detailed installation instructions, you can find these on Oracle’s web site. It would not be useful to repeat the installation process here.
EnterpriseOne User Profiles in an LDAP-Enabled Environment When you have LDAP enabled for your EnterpriseOne system, the User Profile application on the GH9011 menu is disabled. This is because you need to use a third-party LDAP-enabled application to manage the user profiles in the EnterpriseOne system. If you have used EnterpriseOne before, you may be asking what about role relationship? The answer is that you can not only configure user profiles through LDAP, but you can also manage user-role relationship data. However, this does not mean that all things are handled by LDAP. There are several things that still need to be managed within EnterpriseOne, including the following settings: ■
EnterpriseOne System User This is not handled through the LDAP server. This still needs to be configured in EnterpriseOne user security, P98OWSEC.
■
User Profile Although the user profile is handled through LDAP, the attributes of the user profile are not. These include: ■
Address Book Number
■
Decimal Separator
■
Time Zone
■
Currency
■
Date Format
Under the Hood of LDAP You may be thinking: this all sounds great, but how does the user really get validated? How does the system know what database user to pass under the covers? Well, in
Chapter 11:
EnterpriseOne Security
453
this section we are going to discuss this. The first thing you need to understand is the process flows. There are two important questions: How does the user get validated by the LDAP server? How does EnterpriseOne synchronize itself with the LDAP repository? Let’s discuss the first part of how the system validates users. The process is fairly simple. The user logs in either through a thick development client or a web client. 1. If a web client is used, the web browser connects to the web server. The web server will then connect to the EnterpriseOne application server. 2. The application server, which has the security kernel running on it, performs authentication against the LDAP server. This will only happen when LDAP is enabled in the security section. 3. Once the user is validated, then the user security file will be read and the correct system user will be passed to the EnterpriseOne database server. Now let’s briefly discuss how to keep the LDAP and the EnterpriseOne files synchronized. There are two methods that will synchronize the data from LDAP to the EnterpriseOne database. One is when a user signs onto the system, which is LDAP-enabled, and the security kernel will synchronize the data. The other method is to use the Bulk Synchronization Batch application, R9200040.
Single Sign-on
With single sign-on you can configure EnterpriseOne to trust specific nodes. This means that if a server is not defined as a node, then it will not be trusted. When the system is shipped, it is set up with a token lifetime configuration. In this configuration every machine is trusted and thus you could be exposing your system. You can also set up single sign-on for EnterpriseOne with Collaborative Portal. Another advantage of single sign-on is that you can enable users to sign in once and access both EnterpriseOne and Oracle single sign-on–enabled applications.
Third-Party Security Applications
This chapter has given you quite a bit of information on the options that you have when you configure EnterpriseOne security. As you may have gathered from the information in this chapter, configuring the security for your application can be quite a task. There is a third-party product that the authors have used successfully. This product is put out by QSoftware Global. The Sec-Qure software works with EnterpriseOne security, which allows you to configure a watertight security environment with less effort.
454
JD Edwards EnterpriseOne: The Complete Reference
The software provides lots of additional functionality. This includes analysis, security management, segregation of duties, compliance reporting, and auditing. This type of functionality is extremely valuable to companies that must meet Sarbanes-Oxley requirements.
Summary
In this chapter we have discussed a lot of different details of the types of security that can be configured. We have talked about the users and roles for the EnterpriseOne system. We covered how multiple roles can be assigned to a user and these users can then inherit privileges. We then moved on to how sign-on security can help to lower the cost of maintaining your system, through passing a database user under the covers. We then moved on to discuss the Security Workbench. This is one of the most powerful tools in EnterpriseOne. It allows you to configure many different types of security for your system. This gives you great flexibility in your security configuration. The next area discussed was how business unit security could help ensure that users could only see data that they were authorized to view. We then moved on to discuss the details of LDAP and single sign-on security. Finally. we discussed third-party software that can help you to configure and maintain your security with less effort. In today’s world of business you need to ensure your organization is protected. With all of the new legislation on publicly traded companies, the CEO and CFO can also end up in prison if their security procedures are not valid and in place. Thus it is critical that EnterpriseOne administrators are familiar with the functionality available to them in the system.
CHAPTER
12
EnterpriseOne Administrative Tasks 455
456
JD Edwards EnterpriseOne: The Complete Reference
A
sk a construction worker what really enables them to perform their job and they will say their tools. In this chapter we are going to talk about some of the tools that are at your disposal as a system administrator. We will also cover some of the common tasks that you perform and attempt to bring some real-world experience into play.
What are some of these tasks? We’re glad you asked. We will discuss the Server Manager and its capabilities, and we will talk about the server code and how it functions in an EnterpriseOne environment. Then we will move on to cover the user overrides functionality of the system and how you can use the built-in job scheduler to process Universal Batch Engine (UBE) load. All of this information will help to prepare you to face the one thing that scares administrators the world over: your users on the system with real-world issues. It is our hope that we can provide some time-saving and sanity-saving information.
Server Manager
Time marches on and so do the advancements in the EnterpriseOne technology. With the 8.97 foundation code a new architecture design was introduced. This new functionality changed how code is installed and maintained across an EnterpriseOne architecture as well as how you monitor your EnterpriseOne system. So what does this mean to you? Well, it means additional features and functionality. In addition to easier maintenance, this means that you can lower your total cost of ownership on the system. Let’s talk about all the cool new features. The Server Manager is replacing the Server Administration Workbench (SAW). It is a web-based application, so the administrator does not need to have special software installed on every system to see what is going on. There are also additional features that you did not have in prior releases. This one Server Manager console provides the following features: ■
Web management console
■
Configuration management
■
Audit trail for configuration changes
■
Central location for reviewing log files
■
Ability to install multiple software components from a single interface
■
Ability to start and stop different servers (E1, OAS/WS, and HTML)
■
Event notification
■
Instance comparisons
Chapter 12:
EnterpriseOne Administrative Tasks
■
User session tracking across all HTML instances
■
Ability to disable new user HTML logins for specific JVMs
■
Ability to send messages to users
■
Functionality to terminate user sessions
■
Call Object kernel recycling
■
Monitoring functionality above and beyond what SAW provided
457
Server Manager Architecture One of the first things to understand is that all you know about the old Server Administration Workbench (SAW) and Server Manager console (SMC) is out the door. The Server Administration Workbench gave you a lot of functionality. However, it had a lot of flaws. You had to run the software on a thick client and leave it up to keep monitoring alive. You could also run SAW on the enterprise server as well, but often this was hard to use and did not have all the functionality that people were looking for in the software. Next was the Server Manager Console (SMC). This solution allows you to leverage functionality through a web browser. Although this was a leap in the right direction, it was not everything that was needed. With the old SAW architecture, it was just a monitoring tool. It connected with the kernels on the enterprise server and also communicated with the web servers and XPI servers. You could review the log files and interact in certain ways with these servers, such as clearing cache, but you were limited in your interaction with the monitored servers. For instance, you could not do specific things such as starting and stopping the host services or web server, and you would never imagine being able to install software. All foundation code was installed by running a program on each of these servers. This was a lot of different code for Oracle to maintain. With the new Server Manager the architecture has changed. The Server Manager software is more than just a monitoring tool; you actually interact with the servers. In addition to its advanced monitoring abilities, it allows you to start and stop E1 services and OAS/WS Servers as well as install software components. It is installed on a specific machine, which becomes a code repository for you, and through the HTML interface can be accessible anywhere. We will discuss this a little more later in this chapter. How does Server Manager accomplish all of this? Well, you install the software on a main server, and then you also install agents on your different machines. It is through these agents that you can move software to the different machines and interact with them. You can almost think of this as a central code repository with spokes going out to your different machines.
458
JD Edwards EnterpriseOne: The Complete Reference
This is a very efficient architecture. Through these spokes, the Server Manager communicates with the agents, and you can push out code that you have on the Server Manager machine in your architecture. This means that you do not have to physically log on to your different servers, since you can maintain the code line through a web browser. This lowers your total cost of ownership and is an overall better approach.
Installing Server Manager Console The first thing you need to do with Server Manager is install your Server Manager console software. The authors normally recommend installing this software on the deployment server as it does not take up a lot of CPU or memory requirements, and is typically used for software repository. Also the deployment server is a required piece of hardware, and there is no reason to unnecessarily add another machine just for the Server Manager. NOTE Due to the design of the Server Manager console, you do not need to install an application server product such as WebSphere. This is all handled inside Management Console, which is a J2EE application. The installation process for the Server Manager console is very simple. You go through an InstallShield wizard that guides you through the setup. You will be asked where you want to place your JDE_HOME. This is simply the directory where you are going to install the Server Manager console software. You will also define a password for the administrative user jde_admin during the installation, as there is security built into the Server Manager. Don’t forget to note what you define for this password, because there is no admin password recovery mechanism. You will be allowed to set the port number used for the Server Manager console. This is important as a lot of organizations do not want applications installed on default ports. The only requirement is that the port entered is not already in use and is a valid port. When the install finishes, the final screen will be a summary screen. This summary screen will show you the JDE_HOME location, where your install logs are, and the management console URL with the port number you selected during the installation. Note the URL, because this is where you will be going next to access the Server Manager console. You enter the URL, for example http://SERVERNAME:PORT/manage, where SERVERNAME is the name of the server you installed the console on and PORT is the port number you specified during the installation of the Server Manager console. This will take you to the logon screen for the Server Manager console. Enter the admin user jde_admin and the password that you defined during the installation.
Chapter 12:
EnterpriseOne Administrative Tasks
459
When you log in to the Server Manager console for the first time, it will automatically launch a wizard to gather information about your EnterpriseOne installation. The first thing that the installation will have you confirm is the management server port. This is the port number that is used by the management agents to connect to the management console. You will also define the management agent starting point. When an agent connects to the server console, the console will dynamically assign a port number to communicate with the agent. This is very similar to the way the host code works where an initial connection comes in on a specific port and then a random port is assigned and used for communication. The wizard will also gather information about your database. This includes the database type and the name of your system data source. This is so that the console can connect to the system tables; it does this by using a JDBC driver. If the driver does not exist it will show an error message. You can then select the JDBC driver to use, that is, for Oracle, AS/400, or SQL Server. The final screen of the wizard allows you to import your EnterpriseOne users into the Server Manager console. You see, the console uses its own user repository. On the final screen the wizard tells you about some of the things you can do with the Server Manager console.
Server Manager Agent The Server Manager agent can be installed on all of the supported platforms for EnterpriseOne. To get the Server Manager agent, you simply open an Internet Explorer browser and go to the Server Manager page. Once you are logged in, you can use the quick links to go to the Management Agent dashboard (see Figure 12-1). From the Management Agent Installers section you can choose what platform you need the agent for, and this will create the needed agent software. You can then save this agent software on the machine you need. On Windows servers, an InstallShield wizard will walk you through the installation process. This wizard will ask you to define the agent home directory, where you are installing the Server Manager agent, the Server Manager console machine, and the port number for the Server Manager console. You defined these during the installation of the Server Manager. This allows the agent software to connect to your Server Manager console software. It is this architecture of agents connecting to the Server Manager console that gives this tool its power. This configuration is what allows you to deploy updates through a single interface, instead of multiple installers. The agent will be configured as a Windows service for Windows machines. NOTE It doesn’t matter what platform you are running the agent install wizard from; it will always walk you through the installation as described in the preceding paragraph. The only difference between platforms is how to launch the installer. For UNIX and AS/400 you need to run it in graphic/console mode.
460
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-1. Server Manager Management Agent
Configuring Server Manager for Your System So far we have covered what Server Manager is, how to install it, and how to install Server Manager agents. Now let’s move on to discuss how Server Manager can be configured to meet your company’s specific requirements. In order to keep up with the requirements of EnterpriseOne implementations today, you need to be able to roll out systems faster, less expensively, and with greater reliability. More and more companies are becoming global companies. This means less acceptance of downtime and maintenance windows as they become true 24/7 shops. Server Manager can help you as a system administrator stay ahead of these requirements. We discussed the centralized topology earlier in this chapter, which we compared to spokes coming off a central location. Before we dive into some of the details, let’s take a second to discuss the high-level benefits that Server Manager provides for your company.
Chapter 12:
EnterpriseOne Administrative Tasks
461
How often have you run into an issue only to find out that some minor INI file change has caused you a major problem? The really fun part is that a lot of the time you are not aware of the change or the change was made a while ago, but the services just recently cycled so that now you see the issue. Well, with Server Manager you also get some real-world help here. The INI files and the properties files are now contained within the metadata for the Server Manager. Not only is this information defined in the Server Manager, in different components or topics, but it can be easily changed from a web browser logged in to Server Manager. This means that you can manage your configuration changes from one location. There is also field-sensitive help beside these entries that will tell you what each setting’s function is. How does this help you track these changes? In the preceding example it is a change that caused the issue. Well, not only can you change your configuration files from within Server Manager, but there is also an audit ability. Yep, that’s right—no more big black box. You can now easily track the changes to your configuration files. This will help you to determine exactly what has happened and when with regard to changes to the configuration files. However, that is not all— you also now have the ability to see changes to the foundation code level of enterprise servers and HTML servers. You can perform remote troubleshooting and administration using the tool. Finally you can configure the Server Manager to record implemented notifications, such as a critical failure. We will discuss this in more detail later in the chapter.
Installing Software Using Server Manager As we mentioned earlier in this chapter, the Server Manager is now a central location for installing different types of servers. This means that as a CNC administrator you can load different server types from one easy-to-use interface, which is web based. First let’s talk about the different types of servers that you can install using Server Manager. You can install the following servers: ■
HTML Web Server
■
PIM Synch Server
■
Transaction Server
■
Collaborative Portal
■
Business Services Server
■
EnterpriseOne Enterprise Server
To install software you must first install the server agent on your target machine. If you want to install a web server, you must first install either WebSphere or Oracle
462
JD Edwards EnterpriseOne: The Complete Reference
Application Server on the EnterpriseOne HTML Server, and then through the Server Manager agent, the E1 HTML Web Server piece will be installed. This agent allows the Server Manager console to communicate with the server agent and thus install new software on the machine. To do this, you need to log in to the Server Manager console and select managed software from the quick links. This takes you to a window where you can upload software components, shown in Figure 12-2. What is a component and where can you get one? Software components are the files you download for your foundation code from the Update Center, for example, 8.97 foundation code for a web server using Oracle Application Server. When you download this from the Update Center on Oracle’s customer connection site, it will come down as a par file. This is the file you will select to upload from the Agent Downloads window. TIP It is often useful to download all of your foundation code to a single location on a server. This makes it much easier to find, keep organized, and upload using server manager.
FIGURE 12-2. Server Manager Agent Downloads window
Chapter 12:
EnterpriseOne Administrative Tasks
463
When you upload the software it will then show up as available in the Server Manager. This means that you can then distribute the software to your server through the server agent. This is a very powerful feature as you can upload the software once and then push it to as many machines as you need. TIP Alternatively, downloaded par files can be automatically uploaded to the Server Manager repository by copying into the <JDE_HOME> components directory. Now that you have uploaded the software, let’s talk about pushing it out to a server. To do this you need to select the software component that you want and click Distribute. This will take you into another screen where you can select the server to which you want to distribute the software. Once you select your machine, click the Distribute Software button. This will move the software to your server using the server agent to communicate with the Server Manager console. You will see a screen saying “processing.” Once the software is finished installing, you then can verify it by looking at the managed home for your server. This will show the new software on your server, such as an application server. We have talked about a web server using the Server Manager code. However, you upload the code for all the other supported server types in the same manner. That being said, there is specific functionality that helps you with your EnterpriseOne HTML servers. The authors cannot tell you how many times they have chased a vague, nagging, and just generally annoying issue down to a JDBC driver. With Server Manager you can put all your JDBC drivers in one spot and deploy them out in a similar fashion to moving software out from the Server Manager. To load the JDBC drivers you log in to the Server Manager console. At this point you want to take the quick link, in the upper-left corner of the screen, to JDBC Drivers. When you click this link you will be taken to a screen where you can select the type of JDBC driver you want to upload, as shown in Figure 12-3. You will click the Browse button, shown in Figure 12-3, and navigate to your JDBC driver files. You will then click Upload for each of these files that you want to load into the Server Manager. Once this is completed, you have simply uploaded the code. You have not installed the driver on any machines yet. When you are done uploading, the drivers refresh the JDBC driver page and you will now see them appear for you to work with. When you see the driver or drivers listed on the page, you will be able to select the application server you are interested in. You need to ensure that the check box next to the application server you are interested in is checked. Then you simply click the Install Driver button (see Figure 12-4). This will push the JDBC driver out to that application server whether it is an Oracle Application Server or a WebSphere server.
464
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-3. Uploading JDBC drivers The status on the line for the server will change from Not Installed to Installed when you refresh the page. It will then show that the JDBC driver has been installed to the server. If you ever need to uninstall a JDBC driver, it is as simple as the installation. Simply select the record you want to work with and click the Uninstall Driver button.
Registering a Server in Server Manager With the new Server Manager software you now approach some things differently. If you want to work with a specific server type, you must register the server. This registering of the server allows the Server Manager software to “hook up” with the agent that has been installed on the different servers. Once you register a server you can then perform remote troubleshooting and even bounce the instance on HTML and enterprise servers.
Chapter 12:
EnterpriseOne Administrative Tasks
465
FIGURE 12-4. JDBC driver installation In this section we are going to take some time to walk through registering the different types of servers. We will try to bring some real-world experience to light during this exercise. Registering an Oracle Application Server Let’s start by talking about how to register an Oracle Application Server. The first thing you need to do is get to where you can register the web server. To do this, log in to the Server Manager and you will see your managed homes, which includes managed home location and managed instances. Since you have already installed your agent, you can simply select the managed home location you want to deal with. This is shown in Figure 12-5. In our example we have selected the JDE812OAS managed home. This is an Oracle Application Server instance. This takes us into the managed home for this server. Here you can see the managed instances, or software installed on this server, as shown in Figure 12-6. You can also see the managed software components.
466
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-5. Managed Homes and Managed Instances window In this case you see the HTML code we talked about uploading earlier in this chapter when we discussed managing software. This is wonderful functionality because at a glance you can see what you have available to install on your server. TIP When you are in the Managed Homes window, you can see the managed home details on the left side of the window. These details tell you the version of foundation code installed, the location of the managed home, the operating system level, and the agent log level. You can even increase or decrease the logging of your server agent from this window.
Chapter 12:
EnterpriseOne Administrative Tasks
467
FIGURE 12-6. OAS managed instances Now to create a new instance you will simply click the Create New Managed Instance button. This will take you into the Create/Register A Managed Instance window (see Figure 12-7). This is where the work really starts. This is the window that allows you to tell Server Manager what type of machine you want to install or register, such as an Oracle Application Server. In this window we are going to select the Oracle Application Server button, because we have to register the OAS before we can install the E1 HTML Server to it, and click the Continue button at the bottom of the window. NOTE You do need to install the WebSphere and Oracle Application Server outside of Server Manager. You are simply registering the EnterpriseOne software here.
468
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-7. Create/Register A Managed Instance window (Oracle Application Server) This takes you to the next step in the process, which is defining the instance properties. This is where you tell the software about your specific instance (see Figure 12-8). You will also notice that on the little timeline in the window, the Instance Properties ball is now colored, where in the previous step the Instance Type was. When you go through this window, make sure you have made some of your standards decisions, such as naming conventions. This will not only help to ensure that you have a successful installation, but also help to reduce your cost of ownership by making maintaining the system easier. This sounds like a simple step, but the authors can attest that not keeping standards can cause lots of time to be needlessly spent doing troubleshooting and patching of the software.
Chapter 12:
EnterpriseOne Administrative Tasks
469
FIGURE 12-8. Defining instance properties (Oracle Application Server) On this window you have to fill in a variety of fields. These are shown in Table 12-1 with an explanation. When you click Next you will be taken to the confirmation screen. Verify the settings on this page. You can then click the Continue button to move to the next step.
Value
Description
Instance Name
The instance name is simply the name that identifies this as an HTML OAS Server.
Application Server Install Location
This is the installation location of the Oracle Application Server, yet another reason for standards. If you always install your OAS to the same drive letter and path, you won’t have to go hunt and peck to find it.
Application Server OC4J Admin User
This is the administrative user you created when you installed the Oracle Application Server.
Application Server OC4J Admin Password
This is the password for the OAS administrative user.
TABLE 12-1.
OAS Instance Properties
470
JD Edwards EnterpriseOne: The Complete Reference
This is simply a final screen that will allow you to finalize the registration of your Oracle Application Server. You can still cancel the installation at this point. Once you click Create Instance, you will have finished the registering of your OAS and can now manage the OAS from within the Server Manager. You will then be taken into the managed instance that you just created. On this window (see Figure 12-9), you will be able to see the application server name, version, status, log files, and other information on your instance. Now that you have registered the OAS Server, you are ready to use Server Manager to install the E1 HTML Server. The first step in installing the E1 HTML Server is to create a J2EE container. You see, each web server requires its own J2EE container. The good news is that all you have to do is scroll down on the page you are taken to after creating the new instance. You will see a section labeled J2EE Containers. You need to put a unique OC4J instance name in the OC4J Instance Name field, again using your good naming conventions, and select the appropriate group. You then click the Create button and the J2EE container will be created for you. Be sure that you install a JDBC driver to the container by selecting the container and using the Install Driver button.
FIGURE 12-9. OAS newly created managed instance
Chapter 12:
EnterpriseOne Administrative Tasks
471
TIP The screen will act as if it refreshes after you create the J2EE container, but you still need to manually refresh your browser screen or you will see “undetermined” in the state for your J2EE containers. The container is also not started by default. Although technically you do not need to start it, you should to ensure everything is configured correctly. At this point you are ready to install the EnterpriseOne HTML server. We will cover this after we briefly talk about the steps for registering a WebSphere Application Server. Registering a WebSphere Application Server Now that we have talked about registering an Oracle application server, let’s move on to the same activity with a WebSphere server. The process is actually quite similar. Again you log in to Server Manager and select the managed home you want to work with. You will then click the Create New Managed Instance button. This will take you into the Create/ Register A Managed Instance window. However, this time you will select the WebSphere Application Server. This is shown in Figure 12-10. When you click the Continue button, you will see the Instance Properties window, as shown in Figure 12-11. This window has a little different selection than the Oracle Application Server Instance Properties window. On this window you still need to provide an instance name. This is the name for your WebSphere install; something like “servername_WASversion” would be appropriate. Again we cannot stress enough the importance of using standards here. This will save you so much time later. The second field is the Application Server Install Location. This is the location where you have installed your WebSphere software. Once you click the Continue button, you will see a confirmation window. Click Continue here and you will be on the final window. Here is your last chance to cancel the operation. Once you click the Create Instance button, you will have finished the registering of your WebSphere Application Server and can now manage WebSphere from within the Server Manager. As you can see, except for minor differences this process is the same as creating an instance for the Oracle Application Server. This makes maintaining your system easier and thus less expensive. Once you create the WebSphere instance, you still need to create the J2EE container. This is done in the same manner as for the Oracle Application Server. To do this scroll down on the instance window, which you will be in once you create the instance. You will see the J2EE Servers section. You will see two fields to fill in to create the J2EE container for WebSphere. These are Node Name and Server Name. In the Node Name field, you can use the drop-down list to select an existing WebSphere node. In the Server Name field, you must enter a unique name for your J2EE server container. Not to sound like a broken record, but a naming standard works well here. Once the J2EE Server has been created, be sure to install the JDBC Drivers to it by selecting the container and using the Install Driver button.
472
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-10. WebSphere Create/Register A Managed Instance window Creating a New HTML Web Server Using Server Manager In the previous sections we talked about registering the Oracle Application Server and a WebSphere Application Server with the Server Manager application. We covered creating a J2EE container for each of these different server types. We also talked about checking to ensure you have a JDBC driver loaded. Now let’s cover the final step to create an EnterpriseOne HTML server. This is creating the new HTML Web server instance using Server Manager. To do this log in to Server Manager and get to the Managed Homes window. Once you are on this window, click on the managed home you are interested in working with. On this window you will click the Create New Managed Instance button. This will take you to our old friend the Create/Register A Managed Instance window (see Figure 12-12). This time you will select the EnterpriseOne HTML Server radio button.
Chapter 12:
EnterpriseOne Administrative Tasks
FIGURE 12-11. WebSphere Instance Properties window Once you have selected this radio button, you click the Continue button. This will take you to the Instance Properties window (see Figure 12-13) for creating a managed instance of an EnterpriseOne HTML Server. You need to fill in the values on the window, as shown in Table 12-2.
Value
Description
Server Group
This is a drop-down list that allows you to select the group you want to use when creating this EnterpriseOne HTML Server. The server group allows you to inherit some default configuration settings. If you have not set up additional Server Groups, this setting will be “default.”
Instance Name
This is a logical name for your HTML server. You should use a naming standard for this. Good information to incorporate in the name is the port number and environment.
J2EE Server
This will be a drop-down list showing your available J2EE Servers. Each J2EE container can only have one instance associated with it.
TABLE 12-2. Values for Instance Properties on Creating a Managed Instance for EnterpriseOne HTML Server
473
474
JD Edwards EnterpriseOne: The Complete Reference
Value
Description
HTTP Port
This is the port you want to have the EnterpriseOne HTML server use.
Software Component
This is the software that you are going to upload onto the OAS/WAS server; this is also a drop-down list. These values are taken from what you have uploaded to the machine using the Manage Software quick link in Server Manager. Also note that only valid software for this type of install is available for selection.
TABLE 12-2. Values for Instance Properties on Creating a Managed Instance for EnterpriseOne HTML Server (continued )
FIGURE 12-12. Create/Register an EnterpriseOne HTML Server
Chapter 12:
EnterpriseOne Administrative Tasks
FIGURE 12-13. EnterpriseOne HTML Server Instance Properties window When you click the Continue button you will be taken to the confirmation window for the EnterpriseOne HTML Server (see Figure 12-14). On this window there are several different fields that you must fill in. This is the window where you tell the system about the path code and environment that will be used by this E1 HTML Server. The available options are described in Table 12-3.
Value
Description
Bootstrap Environment
This is the environment that will be used when the system looks for the bootstrap tables, such as data sources and object configuration manager tables.
Path Codes
Here you specify the value for what path code will be used to display the HTML programs.
Default Environment
This entry will be shown as the environment upon login.
Default Role
This is the role that will be defaulted in during the logon process.
TABLE 12-3. Confirmation Window Values for Creating an EnterpriseOne HTML Server Managed Instance
475
476
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-14. Confirmation window of EnterpriseOne HTML Server TIP In the Path Codes field only put a single path code. Although the software will allow you to list multiple path codes, there still is a cache issue. This means that if you do this and a user logs in to prototyping, grabs an application, and then logs in to production, then the user is running the code from prototyping. For obvious reasons, this can cause lots of different fun troubleshooting issues. This is why you should always use only a single path code. NOTE In our example we have shown the screen for an Oracle Application Server. The screen for a WebSphere server is identical with the exception of one field. This is the HTTP server. You can select a different HTTP server if you want with WebSphere.
Chapter 12:
EnterpriseOne Administrative Tasks
477
FIGURE 12-15. EnterpriseOne HTML Managed Instances window When you click the Next button, you will be taken to the Finish window. Click the Create Instance button and the HTML server managed instance will be created. You will then be taken into the HTML Managed Instances window (see Figure 12-15). Registering an Enterprise Server Let’s move on now to installing or registering a EnterpriseOne enterprise server. To do this you need to already have installed the Server Manager agent on the server that will be your enterprise server, which we discussed earlier in this chapter. You will also need to have uploaded the enterprise server Tools Release software, through the Managed Software link, which was also discussed earlier in this chapter. This will ensure that you not only can communicate with the server, but you also have the software on hand to load onto your server. Okay, now that you have all your prerequisites met, you are ready to install or register your enterprise server. To do this you first log in to the Server Manager application. On the Managed Home window (see Figure 12-16), you select the managed home of the server that will become your enterprise server. This will take you into the Managed Home window for this machine.
478
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-16. Managed Home window for EnterpriseOne Enterprise Server On this window click the Create New Managed Instance button. This will take us to our old friend the Create/Register A Managed Instance window, where you will select Register Existing Enterprise Server. When you click Continue, you will be taken into the instance properties for an EnterpriseOne Enterprise Server. On this window, shown in Figure 12-17, there are several fields to fill in. The available options are described in Table 12-4. NOTE If you choose the Install New Enterprise Server option, only the system directory will be created. You will have no package or path code information and thus would need to perform additional steps to get the server functioning. This is why it is easier to install the host code using the platform pack and then simply register the server with Server Manager. Refer to Oracle’s installation guide for additional details.
Chapter 12:
EnterpriseOne Administrative Tasks
FIGURE 12-17. EnterpriseOne Enterprise Server Instance Properties window
Value
Description
Server Group
You can use the drop-down list to select your server group. This is the server group that you can define for Server Manager, by selecting the Server Groups quick link. These groups allow you to define a default configuration that will be inherited when you install a new server using this group. The authors recommend you create a development and testing group and a different production group. This will give you flexibility. Any groups that you have already defined will show up in this drop-down list for you to select.
Instance Name
This is a logical unique name. This should follow a naming standard such as PDENTUS, to indicate production enterprise server United States. You may also want to incorporate the server name if you have more than one EnterpriseOne enterprise server.
Install Location
This is a valid installation location for the enterprise server software. Ensure you have enough free disk space on this location.
TABLE 12-4.
Instance Properties for EnterpriseOne Enterprise Server
479
480
JD Edwards EnterpriseOne: The Complete Reference
TIP If you register an enterprise server on a lower Tools Release than 8.97, you cannot start or stop the services through Server Manager. If you attempt this it can cause issues with the agent. When you click the Continue button, you will be taken to the confirmation window (see Figure 12-18). On this window there is a bit of information to fill in, as listed in Table 12-5. This is where you tell the Server Manager software how you want to configure some of your settings for the enterprise server.
FIGURE 12-18. Install Enterprise Server confirmation window
Chapter 12:
EnterpriseOne Administrative Tasks
Value
Description
Database User
The name of a database user to connect to the server map data source, which holds the bootstrap tables for the host services.
Database Password
The database user’s password.
Default Role
This is a EnterpriseOne role that will be used by default. Use the *ALL wildcard value in this field.
Default Environment
The host services require OCM mappings to start correctly. This entry tells them what environment mappings to use during startup.
Default Pathcode
This tells the host services what specifications, that is, path code to use when to start the services and kernel processes.
Datasource Name
The name of the server map data source. This data source will hold your bootstrap tables for the host services, such as the F986101.
Object Owner
The schema owner of the tables in the server map data source.
Database Server Name
The name of the machine where your database resides.
Database Name
This is used for Oracle databases. It is the connect identifier (SID) for the database. If you are using SQL Server or an AS/400, this will be the name of the ODBC, which generally matches the EnterpriseOne data source name.
Database Type
The type of the database.
Database Name 2
This is used for SQL Server databases to specify the physical name of the database within the SQL Server. If you use an AS/400, this field needs to contain the library name where your server map tables are located.
Database TCP/IP Port
This specifies the port number to use when communicating with the database. If you change your database port number from the standard, you will need to put that port number in this field.
JDBNET Use
This tells the system whether it will use JDBNet, which is middleware provided by EnterpriseOne to communicate with unlike databases; for example, if your Enterprise Server was an AS/400, but your server map tables were in SQL Server.
TABLE 12-5. Confirmation Window Values for Enterprise Server Install in Server Manager
481
482
JD Edwards EnterpriseOne: The Complete Reference
Value
Description
Default Journal
This setting is for the AS400 or iSeries. It is the name of the default journal used.
Default Journal Library
The library name for your default journal if you are on the AS/400.
Default Journal Receiver
The name of your journal receiver on the AS/400.
Default Journal Receiver Library
The library that your journal receiver resides in.
SQL Package Library
Here you specify the library you want the SQL packages to be created in if you are running an AS/400.
Start IPC Key Value
The interprocess communication value. This is basically the memory location where the host services start. If you are running multiple sets of host code, such as multifoundation, you will need to be sure these values are different between the different sets of host code.
Service Name Listen
The port number that will be placed in the jde.ini file for the services to listen on.
Service Name Connect
The port number that will be placed in the jde.ini file for the services to communicate on.
TABLE 12-5. Confirmation Window Values for Enterprise Server Install in Server Manager (continued ) When you click the Continue button you will be taken to the Finish window. When you click the Create Instance button, it will register your enterprise server. You will then be able to manage your enterprise server from the managed home, in Server Manager for this enterprise server (see Figure 12-19). This includes starting and stopping of the host services. NOTE You will notice that on the Enterprise Server Managed Instance window, you can see the runtime metrics, which show you the uptime, kernel jobs, zombie processes, security kernel users, and call object users. Registering a Business Services Server The ERP market is a brave new world. Everything is going toward a standards-based approach. Generally a serviceoriented architecture (SOA) is used. EnterpriseOne is no exception. You see, as
Chapter 12:
EnterpriseOne Administrative Tasks
483
FIGURE 12-19. Enterprise Server Managed Instance window
of 8.97 foundation code, with 8.12 you can now use what is called business services. These business services are really web services in EnterpriseOne. This is the manner in which the software can consume and publish a web service. The really neat thing about this is that when you publish a business service you will produce a Web Services Definition Language (WSDL). This WSDL can be used by a variety of different middleware software, such as BizTalk, Tibco, WebMethods, and of course Oracle’s Fusion middleware. These business services are now built into the Object Management Workbench (OMW), so they are also incorporated into the standard promotion and build tools within EnterpriseOne. To help handle this new object type, business service, there is a new server type of a business services server. This server is what is used to handle business services code. This allows users of the EnterpriseOne software to construct best-of-breed systems. They can loosely couple different systems together with business processes by using business services to push out a web service.
484
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-20. Business Services Server instance properties for a managed instance This is very cutting-edge technology and does help to reduce your implementation costs. However, the authors always hate the word “seamless.” There will always be work to couple different systems. The difference is that business services make this work easier and less expensive. It is also easier to maintain, as it uses industry standards instead of all proprietary tools. With this being said, let’s briefly cover registering a managed instance of a business services server. To do this you start by logging in to the Server Manager and selecting the managed home of the machine you want to place the business services server on. Then create the J2EE Server for the application server you will be installing the Business Services Server to; this is the same process that was detailed in the previous section. Once the J2EE Server is created and the JDBC drivers loaded into it, you can begin the install. From the Managed Instances page you will click the Create New Managed Instance button. This will take you into the Create/ Register A Managed Instance window. Select the EnterpriseOne Business Services Server radio button and click the Continue button. You will now be on the Instance Properties window for a business services server (see Figure 12-20). On this window you need to fill in several fields to tell the system about the server you are setting up, as described in Table 12-6. After you have filled in this window with the basic information, click the Continue button. This will take you to the confirmation window for the business
Chapter 12:
EnterpriseOne Administrative Tasks
485
Value
Description
Server Group
The default group. You can select this value from a drop-down list. Server Manager allows you to inherit some configuration settings from groups you set up.
Instance Name
A logical name for your business services server.
J2EE Server
The name of the J2EE server. This will be a drop-down list allowing you to select an available J2EE container.
HTTP Port
The HTTP port you are defining for your business services server.
TABLE 12-6.
Instance Properties of Business Services Server Creating a Managed Instance
services server (see Figure 12-21). Here you need to enter some additional information. The fields and values are listed in Table 12-7.
FIGURE 12-21. Confirmation window—creation of a Managed Business Services Server Instance
486
JD Edwards EnterpriseOne: The Complete Reference
Value
Description
Bootstrap User
User ID to gain access to EnterpriseOne tables.
Bootstrap User Password
Password for Bootstrap User.
Bootstrap Environment
Environment to determine the location of the system tables.
Bootstrap Role
Valid role for Bootstrap User, usually *ALL.
Non Proxy Hosts
Non-proxy machines or domains. If an HTTP proxy is not required, do not enter a value.
Proxy Host
Host name of the proxy server. If an HTTP proxy is not required, do not enter a value.
Proxy User
User to connect to Proxy Host.
Proxy Password
Password for Proxy User.
Proxy Port Number
Port number for Proxy Host.
System Datasource Name
Name of the EnterpriseOne data source where the system tables reside.
Database Type
Type of database that system tables reside in.
Database Name
Name of the database, only applicable for Oracle and UDB.
Database Server Name
Name of the server the database resides on.
Database TCP/IP Port
Port used to communicate with the database.
Physical Database
The library or physical name of the database, only applicable for AS/400 and MS SQL Server.
Key Store File
For SSL, this is the path to the keystore file.
Key Store Password
For SSL, keystore password.
Key Store Alias
For SSL, keystore alias.
Key Store Certificate Password
For SSL, keystore certificate password.
Trust Store File
For SSL, path to the trust store file.
Trust Store Password
For SSL, password for the trust store file.
Glossary Text Server
Location for glossary text information; this is “EnterpriseOne Server Name:E1 Port.”
Incoming JDENET Port
Unique port on the BSSV Server, used for incoming communications.
TABLE 12-7. Confirmation Window Values for Creation of a Business Services Managed Instance
Chapter 12:
EnterpriseOne Administrative Tasks
Value
Description
Outgoing JDENET Port
EnterpriseOne JDENET communication port as defined in the EnterpriseOne server jde.ini file.
Object Owner
The object owner or schema for the system tables as defined in “System Data Source Name.”
Security Server Name
Name of the EnterpriseOne Security Server.
Security Server Port
Port used to communicate with the Security Server.
487
TABLE 12-7. Confirmation Window Values for Creation of a Business Services Managed Instance (continued) Once you have filled in the values on the confirmation window, click the Continue button. This will take you to the Finish window. When you click the Create Instance button, you will then have created the business services server managed instance. Before Business Services Server can be utilized, the Business Services components must be installed using the Business Services package build. Registering Other Server Types In this chapter we have covered registering a lot of different server types using the Server Manager application. However, there are a few additional server types that we will just mention at a high level due to time and page constraints. The additional servers that you can use Server Manager to register are ■
EnterpriseOne PIM Synch Server
■
EnterpriseOne Transaction Server
Server Manager Console Users We have been talking about a lot of different parts of the functionality of Server Manager. However, let’s stop and take a minute to step back and discuss the users and permission you can set up for Server Manager. You see, the Server Manager really has security and the ability to manage users for the software. In the early days of the old Server Manager workbench, this was one of the things that customers wanted to see. Oracle has responded with these capabilities in the Server Manager. Server Manager uses the EnterpriseOne security server to validate users. You can also configure Server Manager so that certain users have additional rights such as being able to bounce host services while other users may only be able to see log files.
488
JD Edwards EnterpriseOne: The Complete Reference
Configuring Server Manager Users To set up new Server Manager users, you need to log on to the Server Manager console as the shipped Server Manager administrative user, jde_admin; during the installation you specified the password for this user. TIP Even if a user is set up to sign into EnterpriseOne with sign-on security, they cannot log in to Server Manager until their user is specifically configured in Server Manager. Although Server Manager uses the security server, it also has its own list of authorized users. Once you sign in to the Server Manager as jde_admin, you then need to take the quick link Server Manager Users. This will take you to the Server Manager Users window (see Figure 12-22). This is the window that allows you to configure your users for Server Manager.
FIGURE 12-22. Server Manager Users window
Chapter 12:
EnterpriseOne Administrative Tasks
489
TIP On the lower-left side of the Server Manager Users window you can change your jde_admin user password. To configure your users, click the Management Console Users link at the top of the page or press PAGEDOWN. You will then see the Management Console Users section (see Figure 12-23). This is where we configure users for the Server Manager. To add a user, simply type the user name in the EnterpriseOne user name field and specify Add User. Once you have added the users, you will notice that the user name will appear, and under groups assigned to user, you will see the note No assigned user groups. We will discuss how to configure users groups in Server Manager next. If you want to assign a user to a group, you simply check the box next to the user’s name and click the Grant or Revoke User Groups button. This will bring up a drop-down list that allows you to select the user group you want to work with.
FIGURE 12-23. Server Manager adding a console user
490
JD Edwards EnterpriseOne: The Complete Reference
There are also Grant User Group, Revoke User Group, and Cancel buttons. To grant a group, you simply select the group from the drop-down list and click the Grant User Group button. To revoke the user group, you select the user group from the drop-down list and click the Revoke User Group button. Once you have done this, the window will refresh and you will see your changes under the Management Console Users section.
Configuring Server Manager User Groups Now that we have talked about configuring Server Manager console users, let’s move on and discuss configuring user groups for the Server Manager. This software gives you the ability to create custom user groups and assign them out to your Server Manager users. This allows you to grant access only to specific parts of the Server Manager application. To perform this task you select the Server Manager Users from the quick links in the Server Manager window. You then can click the User Groups hyperlink at the top of the window or simply scroll down to the User Groups section on this window (see Figure 12-24).
FIGURE 12-24. Server Manager User Groups window
Chapter 12:
EnterpriseOne Administrative Tasks
491
NOTE Three groups are shipped with the software for your use. These are the console user, development, and console admin group. The user group allows a user access to Server Manager, the development group gives a user the ability to view log files, and the admin group gives full permissions to the Server Manager. To create a custom group simply click the Create User Group button. This will generate a pop-up window that allows you to enter the user group name and description. The authors recommend that you create some sort of standard for your Server Manager user groups, such as developer, business analysts, or report writer. This will make configuring the access easier and also make troubleshooting easier to handle as well. Once you create your user group, the new group will show up under the User Groups section of the Server Manager Users window. However, you will notice that the record will show no users assigned to the group and no permissions assigned to the group. We covered how to assign groups in the “Configuring Server Manager Users” section of this chapter. To assign permissions you simply click on the group name. This will take you into the Modify A User Group window. On this window you have two areas where you can grant permissions to your user group. These are the global permissions and the permissions for server group. We will cover each of these areas. Let’s start by discussing the global permissions (see Table 12-8 and Figure 12-25). These permissions are global across the entire management domain of Server Manager. What this means is that these types of permissions allow actions that are not specific to a group but are administrative tasks, such as uploading software or JDBC drivers into Server Manager.
Global Permission
Description
Application Server Management – appServerConfig
This permission allows the group to perform management tasks on your Oracle Application Servers or WebSphere servers. This includes the ability to modify the configuration and bounce the application server.
Manage Software Components – managedComponents
This setting allows users in the group to upload software to the repository in Server Manager. This is the Managed Software quick link in Server Manager.
Monitor Configuration – monitorConfig
This setting allows the members of the group to use the monitoring features in Server Manager. They can start, stop, and configure monitors.
TABLE 12-8.
Global Permissions for Server Manager Groups
492
JD Edwards EnterpriseOne: The Complete Reference
Global Permission
Description
Server Manager Configuration and Administration – consoleConfig
This permission allows members of the group assigned the permission to actually change the configuration of Server Manager itself. This means they can update the agents, set up managed homes, remove managed homes, and other administrative options in Server Manager.
Server Manager User Management – userManagement
This allows the users of the group assigned the permission to administer the Server Manager console users and permissions.
TABLE 12-8.
Global Permissions for Server Manager Groups (continued )
FIGURE 12-25. Modify A User Group window, Global Permissions
Chapter 12:
EnterpriseOne Administrative Tasks
493
To assign any of these permissions, simply arrow them over in the global permissions section of the Server Manager Users window. Now that we have talked about the global permissions, let’s move on to the server group permissions. These permissions are more specific to individual groups; they are not global permissions. To assign these permissions, scroll down on the Modify A User Group window or click the hyperlink Permission for Server Group at the top of the window. This will take you to the Permissions for Server Group section of this window (see Figure 12-26), and you will have a section for each server group you have defined, such as default, Production, and so on. Just like with the global permissions, you arrow in the permissions you want to assign to the group. TIP From the Server Manager User Groups page you can run a user access report. This will show what access your users have. This is a handy report when reviewing your security configuration or when the auditors show up.
FIGURE 12-26. Modify A User Group window, Permissions for Server Group
494
JD Edwards EnterpriseOne: The Complete Reference
Server Group Permission
Description
Permit Clearing JDBj Caches – clearCache
This setting enables the user group to clear the caches for the EnterpriseOne HTML server.
Enterprise Server Instance Management – enterpriseServerInstance
As you may have deduced from the name, this permission allows the user group to manage the EnterpriseOne enterprise servers. This includes the ability to configure, start, stop, and change the tools release.
View Group Member – viewGroupMembers
This permission gives the user group the ability to see what servers belong to a server group.
Web Product Instance Management – webProductInstance
With this permission the user group can work with the web products, meaning that they can create new instances, change configurations, deregister servers, and other instance management tasks.
Web Product User Session Management – webSessions
This permission gives the user group the ability to manage user sessions through Server Manager. This means that they can terminate the sessions or send messages out to the users through the sessions.
TABLE 12-9. Server Group Permissions
Server Manager User Authentication We have stated in this section that the Server Manager uses the EnterpriseOne security server to validate user profiles and passwords. Now some of you may be wondering: Since Server Manager is installed on its own, how does it know about the security server? Well, the answer is that you tell it what security server to use in the Server Manager Users window, which you can access by taking the Server Manager Users quick link. At the top of this window is a section named Server Manager User Authentication. It is here that you list your security server and the outgoing JDENET port number for Server Manager to use. This is how the Server Manager knows not only which security server to use, but what port number to use when communicating with the security server.
Oracle Configuration Manager Almost everywhere the authors go they talk to CIOs who are trying to lower their cost of ownership through streamlined maintenance. Oracle has provided many tools to assist in the endeavor. One such tool was Support Assistant.
Chapter 12:
EnterpriseOne Administrative Tasks
495
This tool gathered information about a user’s system and packaged it up in a nice bow to send to Oracle customer support. Using canned scripts, the user could gather data specific to a type of issue they were seeing. Well, in the grand tradition of offering tools to help customers quickly resolve their issues, Oracle has created the Oracle Configuration Manager. This piece of software can be configured to send Oracle support, through a secure socket connection, information on your system. This will help Oracle support to resolve customers’ issues. Installing Oracle Configuration Manager To install and configure this functionality, you can click the Oracle Configuration Manager quick link in the Server Manager window. This will take you to the Oracle Configuration Manager window, shown in Figure 12-27. This window will show each instance of the Oracle Configuration Manager and the managed home where it is located. Click the Install button. You will be presented with a license agreement. You must accept this to continue.
FIGURE 12-27. Oracle Configuration Manager window
496
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-28. Oracle Configuration Manager Credentials window You will then be presented with a window asking you to provide credential information, as shown in Figure 12-28. You see, the Oracle Configuration Manager will connect to the Oracle web site. Any customers using this functionality must have a valid maintenance agreement and a user ID to the web site. The values that need to be entered in this window are described in Table 12-9. Once you have installed the Oracle Configuration Manager, it can collect data on a variety of servers in your system, as follows: ■
EnterpriseOne Server Manager Management Console
■
EnterpriseOne Server Manager Managed Home
■
EnterpriseOne Web Server
■
EnterpriseOne Enterprise Server
■
EnterpriseOne PIM Synch Server
■
EnterpriseOne Transaction Server
■
EnterpriseOne Collaborative Portal
Chapter 12:
EnterpriseOne Administrative Tasks
Value
Description
Customer Identification Number
Your customer number. This is provided by Oracle with your maintenance agreement.
MetaLink ID
The user ID for Oracle’s metalink.
Country Code
The country your company is located in. This helps to direct your issues to the correct support personnel.
Proxy Server Name
Name of your proxy server, if you are using one. This is a nonrequired field.
Proxy Server Port
Port of your proxy server. Again a nonrequired field.
Proxy Authen. User
The user to sign through your proxy server. Fill this field in only if you are using a proxy server and need an authentication user.
Proxy Authen. Password
The proxy user password. This is a nonrequired field.
497
TABLE 12-10. Oracle Configuration Manager Credentials Window Values
Administering Different Servers with Server Manager In this chapter we have discussed how to use Server Manager to install a variety of different servers. We have talked about how you can secure the Server Manager using console users and groups. Now let’s talk about how you can actually perform administration remotely through Server Manager on your different systems.
HTML EnterpriseOne Server The Server Manager gives you a great ability to control and administer your EnterpriseOne HTML servers. To start working with your HTML server, simply log on to Server Manager and click the Java Virtual Machine you are interested in, which will be listed under the Server Manager home. This will take you into the EnterpriseOne HTML Server page for that Java Virtual Machine (see Figure 12-29). It is from this window that you can perform remote administration on the EnterpriseOne HTML. We will cover the actual application server in a minute, such as Oracle Application Server. This window has a lot of great information for the administrator. At the top of the window you can see at a glance if the Java Virtual Machine is running and what foundation code level the JVM is using. You can also see the name of the virtual machine, the URL to the EnterpriseOne software, information on the application server instance, and the ability to click a link to the application server such as OAS.
498
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-29. EnterpriseOne HTML Server page
To the left-hand side of this window is the instance information, under the quick links section. This tells you the active Java Virtual Machine count, the instance uptime, how many users are online, and a new and very useful feature called user login status. This link enables you to disable additional users from logging on to the EnterpriseOne HTML Server, but it will not kick off the users that are already on the system. Thus you can restrict the logons, allow users to log off gracefully, and then take the system for maintenance. Under the user login status is a link labeled Audit History. This link provides you with audit information on the EnterpriseOne HTML Server (see Figure 12-30). Very often an administrator will spend days tracking down an issue only to realize that it was due to a small change no one remembered. Well, this audit history will allow
Chapter 12:
EnterpriseOne Administrative Tasks
499
FIGURE 12-30. Audit history for EnterpriseOne HTML Server
you to see any changes to the configuration. Also you can see when the system was stopped and started. Now some of you are probably saying, This is great, but I will get so much data that I won’t be able to use it easily. That is why there is a reporting ability to help you isolate exactly the area you are looking for. Under the report configuration, on this window you can search for a specific time and a specific metric, such as cache. This will help you to quickly isolate what you are looking for. Now back on the EnterpriseOne HTML window, shown in Figure 12-29, are the three additional sections we will cover, Available Log Files in the center of the window, Runtime Metrics in the middle of the left side, and Configuration in the bottom of the left side of the window. The Available Log Files section is pretty self-explanatory. This is where you can review your log files. You can also write a message to the log files in the instance. This is useful to put a “tag” in the log files right before a test. This helps you find the correct section of the log files easily.
500
JD Edwards EnterpriseOne: The Complete Reference
Now let’s talk about the runtime metrics. These are exactly what they sound like, metrics on your EnterpriseOne HTML server. The metrics you can review are ■
User Sessions
■
CallObject Stats
■
JDBj Database Caches
■
Database Connections
■
JDBj Runtime
■
JDENET Stats
■
Java Environment
Let’s start by talking about the user sessions. When you click this link, you will be taken into the User Sessions window (see Figure 12-31). Here you will find
FIGURE 12-31. User Sessions window for EnterpriseOne HTML Server
Chapter 12:
EnterpriseOne Administrative Tasks
501
a drop-down list for your instance name. This is a handy feature, since if you want to see information on another HTML server, you do not have to go navigating all around the Server Manager software. On this window you can see a lot of different information. This window shows ■
User Name
■
Client Address
■
Environment
■
Display Mode
■
Login Time
■
Idle Time
■
Remote Environments
■
Session Identifier
■
Open Applications
Most of these values are self-explanatory. However, the authors find the idle time and the remote environments information very handy. With the idle time you can see if the user really is doing anything or just left themselves signed in. The remote environments information tells you what enterprise server they are using, the port number, and the processor identification number (PID). This is very handy because if you are troubleshooting, you do not have to go hunting and pecking through the log files on the enterprise server. Simply find the log file with the matching PID and you will find the appropriate log file for that user. Two other neat features of this window are the Send Message button and the Terminate button. To send a message to your user, you must check the tick box next to the user name and then click Send Message. The next time the user performs any action, such as a find, a message box will pop up on their window. So you can inform users of outages or other important information. The Terminate button is pretty self-explanatory. Again you need to select the check box by the user. The next selection under the runtime metrics is the CallObject Stats. This window, shown in Figure 12-32, gives you the statistics on the call objects. It will list the enterprise server, the business function name, total invocations, first time, average time, shortest time, longest time, total time, timeout errors, application errors, and system errors. This window is handy when troubleshooting business function calls or tuning the system. You can see what business functions your users spend the most time on and easily determine whether there are any errors.
502
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-32. Call Object Stats window The next selection under the runtime metrics is the JDBj Database Caches. This window (see Figure 12-33) allows you to clear the memory or cache for your HTML server. Not only that, but you can clear specific cache. The caches you can clear are as follows: ■
Data Dictionary Glossary Text
■
Data Dictionary Alpha Cache
■
Row Column Cache
■
JDBj Security Cache
■
JDBj Service Cache
■
JDBj OCM Cache
Chapter 12:
EnterpriseOne Administrative Tasks
503
FIGURE 12-33. Cache Management window ■
Serialized Objects
■
Menu Cache
Also you will notice that you have a section of the window labeled JDBj Service Caches. This shows you the instance name of the E1 HTML Server, the cache name, the cache hit ratio, the cache size, cache accesses, cache hits, and cache misses. These metrics are very handy in determining how often your cached information is really being hit. The next selection under the runtime metrics is the Database Connections. When you click this link you will be taken into the JDBj Connection Caches window. This window can be handy as it will show you the number of pooled connections to your database. It will also show you the different databases there are connections to, for example ORCL_SY812. Finally, this window will show you any SQL prepared statements that are being cached on the HTML Server.
504
JD Edwards EnterpriseOne: The Complete Reference
NOTE With Oracle databases, Oracle’s built-in prepared statement catching will be used instead, so you will not see any prepared statement cache detail on the window for Oracle databases. The next selection under the runtime metrics is JDBj Runtime. This window, shown in Figure 12-34, allows you to change some runtime parameters. This can sometimes be useful when tuning or troubleshooting. One common property name that you may want to look at is E1 Menu Cache Purge. The next link in the Runtime Metrics section, JDENET Stats, brings you to the JDENET connections page. The JDENet is socket-based middleware that EnterpriseOne uses to communicate with its different servers. This window gives you information on your connection pools and socket connections. The final selection on the runtime metrics is the Java Environment link. This will take you to the Java Environment Runtime Detail window (see Figure 12-35).
FIGURE 12-34. JDBj Runtime window
Chapter 12:
EnterpriseOne Administrative Tasks
505
FIGURE 12-35. Java Environment Runtime Detail window
On this window you can find information on Java Threads, Java System Properties, and Java Memory Usage. The authors find the Java Memory Usage a very handy feature. Under this section you can see information on your heap, such as memory used, committed heap memory, and maximum allowed heap memory. You can also manually run a garbage collection. A garbage collection purges unused items out of the memory or heap for your HTML Server. Now that we have talked about the runtime metrics, let’s spend a moment talking about the different configuration settings you can access and change for your EnterpriseOne HTML Server. These are as follows: ■
Network Settings
■
JDBJ Database Configuration
506
JD Edwards EnterpriseOne: The Complete Reference
■
Web Runtime
■
Performance Monitor
■
Real Time Events
■
Jdelog.properties Logging
When you click on the Network Settings link in the Configuration section, you will be taken to a Network Settings window. On this window you can configure information about your security servers. You can easily set up multiple security servers for your EnterpriseOne HTML servers. You can also configure settings for your JDENET configuration, such as timeout, incoming port, and outgoing port. The next selection in the Configuration section is JDBJ Database Configuration. This window is where you tell the system about how to connect to your bootstrap data source, spec data source, bootstrap session, connection pools, your JDBC drivers, JDBj runtime properties, and Oracle database settings. You can also perform a JDBC trace from this window. If you are having connection issues with the database from your EnterpriseOne HTML server, this is the window you want to start looking at. Web Runtime is another selection for you in the Configuration section. The Web Runtime window allows you to configure multiple settings on how your HTML server runs. These include cache configurations, mail merge, Task Explorer configuration, web runtime, web runtime interactivity, grid disk cache settings. We will not run through all of these settings, as you can reference the Oracle documentation for full details. However, we do want to draw out a couple of useful settings on this window. These are the cache configurations where you can set the user session timeout, call object check interval, menu cache timeout, and glossary text cache expiration check. Another handy section of this window is the grid disk cache settings. This section allows you to configure disk-based caching to improve performance when a user uses the Scroll To End functionality or performs an import/ export from the grid in an application. In the past, this just ate up your heap memory and all other users simply suffered. If your users are going to be performing imports and exports, you should review these settings. As of release 8.11 Oracle has an application called Performance Monitor. This application does exactly what it implies; it monitors your system performance and helps you to quickly isolate where you are spending most of your time, whether business functions or a specific SQL statement. Now you can link the Performance Monitor application into your Server Manager through this window. The Real Time Events option will take you to the Real Time Events window. This window allows you to set configuration settings to let your Server Manager know about your real-time events. The values for these settings can be obtained from the jas.ini file of your transaction server.
Chapter 12:
EnterpriseOne Administrative Tasks
507
The final selection under the configuration section is the Jdelog.properties Logging selection. This selection takes you into the Log File Configuration window, shown in Figure 12-36. As some of the administrators from older releases can tell you, this is the window that shows you the values that were set in the jdelog.properties file. These values allow you to configure logging for your EnterpriseOne HTML server. Also in this section you have the ability to turn on logging for a specific user. This greatly helps with troubleshooting a specific user’s issue without affecting the whole user community. TIP At the bottom of the Configuration section you have a link called Compare Instances. This link allows you to compare your HTML configurations between two different instances of an HTML, enterprise, or transaction server.
FIGURE 12-36. Log File Configuration window
508
JD Edwards EnterpriseOne: The Complete Reference
Application Server (OAS and WebSphere) The Server Manager software allows you to review some of your configuration on your application servers. This includes both WebSphere and Oracle Application Server. To see this information, log on to the Server Manager application and click on the managed home of your application server. You will then see the Java Virtual Machines and an instance for your application server. For Oracle Application Server you will see an entry listed as OracleApplicationServer. Click on this instance name to take you to the Application Server window (see Figure 12-37). In our example it is an Oracle Application Server. At the top of this window you can see the version of the application server, the status of the Oracle Process Manager and Notification Server (OPMN), the instance name, the Oracle home, administrative user, and administrative password. Below this section you will see the HTTP servers. This is where you can start or stop your HTTP server. Then there is the J2EE Containers section. This section allows you to see all your J2EE containers and create new ones. Finally there is the Available Log Files section. This section allows you to see the log files for your application server.
FIGURE 12-37. Oracle Application Server window
Chapter 12:
EnterpriseOne Administrative Tasks
509
EnterpriseOne Enterprise Server Another important server that you can administer and monitor remotely is the EnterpriseOne enterprise server. To monitor an enterprise server, log in to Server Manager. You will see your enterprise server under your managed home. Click on this enterprise server name. This will take you into the EnterpriseOne Enterprise Server window (see Figure 12-38). This window has a lot of information for the system administrator. At the top of the window you will see the foundation code version, the status of the enterprise server, the install location, and the instance name. In the center of the window is an Available Log Files section. You can filter to display logs modified within 1 hour, 24 hours, 48 hours, 1 week, or no limit. These choices can be selected using the radio buttons. Below this are the actual log file names. You can simply click on the filename to bring up the log file. In the log file view you can limit the size of the log to bring down to view, meaning only 250 lines, for example. You can also add criteria to filter on the log files.
FIGURE 12-38. EnterpriseOne Enterprise Server window
510
JD Edwards EnterpriseOne: The Complete Reference
On the left side of the EnterpriseOne Enterprise Server window you will see a section called Runtime Metrics. These runtime metrics show the uptime of the server, number of network jobs, kernel jobs, zombie processes, security kernel users, and call object users. This is a handy spot to get some quick information on your enterprise server. Also in this section is the Process Detail link. When you click this link it will take you to the Enterprise Server Processes window, shown in Figure 12-39. This window shows you specific information about your kernel processes. You can see the process name, process type, process ID, process status, JDE.LOG file size, debug log file size, number of connected users to each kernel process, total requests, and outstanding requests. Knowing the PID can help you with troubleshooting. It is also very nice to be able to see the number of connected users and the number of outstanding requests. This information can help you determine whether you need to increase the number of kernel processes on your server.
FIGURE 12-39. Enterprise Server Processes window
Chapter 12:
EnterpriseOne Administrative Tasks
511
If you click on a specific kernel process, you will get detailed information on the process. You will be able to see the start time, last time active, messages received, connected users, and some other specific kernel process information. The environment variable is the next entry in the runtime metrics. This link will take you into the Environment Variables window. This window shows you values that are specific to the enterprise server. These values show you such items as the computer name, the number of processors, information on the processors, the domain name, and other server-specific information. The next link under the runtime metrics is the Disk Space Usage link. As you may have guessed, this window tells you about the disk space you are using on your enterprise server. It shows you the disk name, used space, free space, and the overall size of the disk. Below the Disk Space Usage link is the Kernel Ranges link. This is a window that controls how your kernels function (see Figure 12-40). You can set the number of JDENET listeners, which are the “mailmen” that open packets coming into the
FIGURE 12-40. Kernel Ranges window
512
JD Edwards EnterpriseOne: The Complete Reference
enterprise server, determine which kernel they are for, and then route them to the correct kernel process. You can also set a new maximum number of kernels for each different kernel type. This allows you to tune your enterprise server to meet your business needs. Under the Kernel Ranges link is an Audit History link. This functionality can be an absolute lifesaver. This link allows you to see the changes to your enterprise server’s configuration. So yes, you actually have an audit trail! The last section of the EnterpriseOne Enterprise Server window is the configuration section. The configuration section is really an area where you can modify JDE.INI file values. Also each of these values has an information link next to it. This will allow you to pull up information on specific JDE.INI values. All INI file values are now documented and you can see an explanation by clicking the Information Link next to the entry. Under this section you can modify the following. ■
Miscellaneous
■
Security
■
Interoperability
■
Kernel Definitions
■
Kernel Recycling
■
Build Settings
■
Logging
■
Batch Processing
■
Performance Monitor
■
Network and Queue Settings
■
Workflow
■
Database Configuration
■
General Settings
■
Jdelog.properties Logging
Most of these are self-explanatory when you get to the windows. Each is simply an HTML window allowing you to change the values to the JDE.INI entries. However, one thing in this list is kernel recycling. This is a very new and exciting feature, shown in Figure 12-41. More and more customers are 24/7 shops because of being global customers, and have limited times when EnterpriseOne services can be cycled.
Chapter 12:
EnterpriseOne Administrative Tasks
513
As many current users of the EnterpriseOne software know, sometimes you need to bounce your host services to clean up your memory. Most of these memory issues were in the call object kernels. This is why Oracle came up with the concept of kernel recycling. This functionality allows you to have your call object kernels restrict additional users from logging on to the kernel and then eventually killing and restarting the kernel. This will clean up the memory from your call object. This window has multiple sections. The first section is Time of Day Recycling. You can set this up for different days of the week or even every day. You can also configure the time of the day for kernel recycling. An example would be every Sunday at 3:30 A.M. The next section is Elapsed Time Since Kernel Starts. This setting means that after a set amount of time the kernel will recycle itself. The final setting is Recycling Timeouts. What this means is that once a kernel locks out new user logons, it allows you to set timeouts. The inactive user timeout will log the user out after so many minutes of inactivity. The next setting will force the user off the kernel even if they are active. This is the forced exit timeout.
FIGURE 12-41. Kernel Recycling window
514
JD Edwards EnterpriseOne: The Complete Reference
NOTE When the Elapsed Time Since Kernel Starts and the Recycling Timeouts are both set, whichever one happens first will cycle the kernel.
Configuration Monitoring The final area of Server Manager that we will discuss is monitoring. The Server Manager allows you to configure monitors to provide notification of certain events. To set this up, you simply log in to the Server Manager and click the Monitors quick link. This will take you into the Monitors window, shown in Figure 12-42. On this window you can create a new monitor, stop an existing monitor, start an existing monitor, or delete a monitor. You can also change the configuration of an existing monitor. To create a new monitor, type the monitor name in the Monitor Name field and click the Create button. This will take you into the Monitor Configuration window.
FIGURE 12-42 Monitors window
Chapter 12:
EnterpriseOne Administrative Tasks
515
On this window you have multiple sections. In the General Properties section, you can set the query interval in seconds. You can also set the monitor to start automatically. The next section is the Managed Instances section. In this section you can select what managed instance you want to monitor. This will show all of your managed instances configured in the Server Manager. The next section, Monitored Events, is where you tell the system what events you want to monitor and what the threshold of the events is set to. The next section is the notification hours. This section is where you specify the hours during which an e-mail notification will be sent. This is a very handy feature as you may not want e-mails to go out during certain times of the night. It also allows you to easily set up several monitors for different on-call times, notifying specific administrators of events instead of the whole team over weekends or other inconvenient times. The final section of the Monitors window is the e-mail subscriptions window. This window is where you specify the e-mail address(es) to which you want to send notifications. To add an e-mail address, simply type the address in and click the Add button.
How EnterpriseOne Server Code Really Works
In this section, we teach you how the EnterpriseOne host code functions. We will describe how the server communicates with other machines on the system and how work is accomplished on EnterpriseOne application and enterprise servers. Reports or Universal Batch Engines (UBEs) and some business functions usually run on an enterprise or application server. An interactive application never runs on an enterprise server or application server. Interactive applications run only on the client presentation layer of the architecture. Now that we have that straight, let’s go through how the host code functions. A UBE first is launched from a user using an HTML browser. This kicks off a request from the EnterpriseOne HTML server, which uses JDENet to tell the enterprise server about the job. This is how the users’ data selections and processing options are moved to the server when a report is run. NOTE JDENet is the middleware that was developed for EnterpriseOne. This middleware handles communication between different servers. Once this request gets to the server, a JDENET_n process (which we go into more depth on later) becomes aware of the job. It then determines what type of request is being made, for example, a request to run a UBE. It then hands this job off to the proper kernel process. A record is written to F986110, the Job Master Control file.
516
JD Edwards EnterpriseOne: The Complete Reference
The queue process then finds this record and launches a runbatch job, which actually runs the UBE. These JDENET_n processes can be thought of as the postman sorting mail. They look at each request and then ensure it gets to the proper kernel. So when tuning the system, remember you need enough mailmen to sort the mail! When runbatch starts, it finds the specification files that it needs to run, and these are held in a database table in an “XML spec” for the servers to share. Thus you no longer need to deploy a package to every enterprise or application server you are using. See Chapter 7 for more information. These package builds are a snapshot of your central objects at a point in time. So if you developed the report that you are running, checked this report in, and built and deployed a server package, then you would have the proper code specifications in the package table for the server to read and execute. This is why server packages are necessary. Reports run on the enterprise server do not look directly at your central object files to get the specification information they need to run. They use a package table with XML format records, as of the 8.12 release. All of the information about the report itself is contained in these files, and the DLLs for business functions are in the directory structure on your server. As mentioned previously, the runbatch process uses these package files to run UBEs. Specifically, runbatch looks at your path code on the enterprise server. It then determines what package is deployed for that path code and directs the host code to this database file. It uses the information in these files to execute all the code in your report. At this point, your UBE is running, but it needs to get data from the database. The system then calls upon JDEBASE, which is the functionality that enables EnterpriseOne to communicate with different types of databases. It is the foundation code that the applications coded in EnterpriseOne sit on. An application developer does not have to worry if his or her report gets data from an Oracle, SQL Server, or DB400 database because the JDEBASE code provides a means to call data on these platforms. All the developer has to do is use a standard call and not worry about the details. JDEBASE handles this process, which is contained in the foundation code. The system reads the OCM mappings for the table it is looking for and finds a data source for this table. The system then reads F98611, the Data Source Master table, which tells the system which machine and what type of database the data resides on, who the owner is, and how to get to the data. To determine how to get to the data, the system reads the DLL name from the data source. If the DLL refers it to Oracle, the system is coded to make calls directly to an Oracle database, using the standard Oracle calls, such as tnsnames configuration. If the DLL tells the system that the database is DB400, SQL Server, or Microsoft SQL Server Desktop Edition (MSDE), then the system looks for an ODBC data source and uses it to connect to the database (assuming you are on a Intel server running Windows). If you are running a job on AS/400, JDEBASE can make calls for data directly on AS/400 as well. Once the job is complete, the runbatch process updates F986110, the Job Master Control file, to show that the job is complete. This process also produces a PDF file,
Chapter 12:
EnterpriseOne Administrative Tasks
517
which contains the results of your report. When you view a completed job from an HTML browser, as of release 8.11 all EnterpriseOne clients are HTML browsers with the exception of the development client. The system copies this file to the client through JDENet. You can then view the results of your report. TIP You can also check for the report to produce a comma-separated value (CSV) file when running a UBE. This file can also be viewed when you go to view the job in the Submitted Jobs window. This can be very handy for users to pull information from the system and incorporate data into something they are working on or a presentation.
JDENet This piece of the system does a lot more than just make UBEs work. JDENet can be defined as middleware that uses TCP/IP sockets-based messaging, which enables the system to be highly configurable and distributed. With JDENet, you can run processes on several different platforms. Finally, this middleware supports both synchronous and asynchronous messages. JDENet enables the system to submit requests to the EnterpriseOne host code on many different platforms. It is basically the phone line the system uses to communicate. JDENet is used on the system in multiple places. It is used any time an EnterpriseOne HTML server sends a request to an enterprise or application server, which means if your user needs to be validated for sign-on security, it sends a request via JDENet. JDENet is also used for Lock Manager, running business functions on the server (call object), running UBEs, and package builds. Not only is JDENet used on EnterpriseOne HTML servers, but it also provides two-way communication. This means that the client workstations can communicate with the enterprise and application servers and vice versa. JDENet is used by every kernel process on the enterprise or application server. The security kernel uses JDENet to validate users and passwords when they sign on. The call object kernel uses JDENet to receive requests to run a business function on the enterprise server and return data. As you can see, JDENet is a key piece of the EnterpriseOne software.
Under the Covers of JDENet JDENet sends packets of data, each of which is identified by a number that is assigned by the caller. If a client workstation sends a message to an enterprise server or application server, it tags the message with a number so that it knows this message was sent by that workstation.
518
JD Edwards EnterpriseOne: The Complete Reference
This middleware contains two different types of logic: JDENET_n and JDENET_k. The JDENET_n processes handle the messages coming in from different machines, including other enterprise or application servers. These processes handle sending and receiving messages at the same time. This is where the responsibility of the JDENET_n processes ends, and the JDENET_k processes come into play. These processes determine where to send the message that was accepted by the JDENET_n process. The message is then dropped into a queue in front of the kernel process, such as a call object, which will appear as a JDENET_k process. The jobs are then picked up off the queue for the kernel and worked in order. Each call object has its own queue. This is why you can see an outstanding request for a kernel process. If this kernel process is not currently running, JDENET_k starts a new call object process. (We cover how this works in the section “Kernel Processes” later in this chapter.) Once this kernel process is finished with the work, it sends a message back to the requester, if needed, via JDENet. An example would be entering a sales order and the system calculating tax for you. You are waiting for it to complete and fill in the information, which is sent back to the web server via JDENet. Ports The software listens and communicates on a specific port that is specified in the JDE.INI file. The first JDENET_n process listens and communicates on the port specified in the JDE.INI file. This port is used only by the JDENET_n process, which defines an instance of EnterpriseOne host code, such as 6011. As other JDENET_n processes are started, they listen on system-allocated ports. If you are going to place your web servers behind a firewall, then you need to do some additional configuration to handle how JDENet functions with the ports. There is a JDE.INI file setting in the software. This setting enables you to specify a range of predefined ports, which will be used by the JDENET_n processes. An EnterpriseOne HTML server connects to the enterprise server using JDENet (connecting to the first JDENET_n process) and sends a request to an enterprise or application server. The request is received on the server. The JDENET_n process then decides which NET process should handle the request. After deciding which NET process will handle the connection, it sends the web server a message that contains an IP address and the port to connect to. Remember, only the first JDENET_ n process is listening on the port number specified in the JDE.INI file. So our client has now been given a new port number and NET process to communicate with. The client workstation then establishes a stream socket connection to the new NET process. Once this connection is established, the JDENET_n process determines which kernel process needs to be contacted. The JDENET_n process then contacts the JDENET_k process and places a request into a request queue. The JDENET_k processes then calls a dispatch function, which performs the necessary work. The information is then sent back to the JDENET_k processes, which in turn send this message to an out queue associated with the JDENET_n process. The JDENET_n
Chapter 12:
EnterpriseOne Administrative Tasks
519
process takes this message to the out queue and sends the information back to the client workstation.
NOTE Oracle offers a wide variety of integration options for its EnterpriseOne customers including API calls. Refer to the documentation on integration on Oracle’s web site.
Kernel Processes Kernel processes are the JDENET_k processes on your enterprise or application servers. They perform some of the work on the enterprise server. In this section, we are going to cover how these processes tie into the system. Each kernel type performs a specific function, which is listed in the JDE.INI file. The JDENET_n process hands off a request to the JDENET_k kernel process, and this process performs work, getting data from a database, using specifications to run a UBE, or calling a business function to perform work. The type of work that is performed depends on which type of kernel process is called. In our discussion of the Server Manager earlier in this chapter, we explained how to monitor your specific kernel processes. Let’s see how these processes are started and controlled by the JDE.INI file.
Tweaking Server Kernel Processes Suppose you have a lot of end users who are running business functions on the enterprise server. In this section, we will cover how to set up your server kernel processes to handle this work. As mentioned previously, each different type of kernel process performs a different function.
520
JD Edwards EnterpriseOne: The Complete Reference
Tweaking the Call Object Kernel Definition Let’s run through an example of how you set up the JDE.INI file to provide the correct number of kernel processes. We will describe setting up the call object kernel to handle users running business functions on enterprise or application servers. First open your JDE.INI file on your enterprise server; you can do this using Server Manager. This file controls how your server kernel process acts. Scroll down to the call object kernel definition, kernel definition number 6. A rule of thumb is to have one call object kernel process per six end users. The following is the kernel definition for the call object kernel: [JDENET_KERNEL_DEF6] krnlName=CALL OBJECT KERNEL dispatchDLLName=XMLCallObj.dll dispatchDLLFunction=_XMLCallObjectDispatch@28 maxNumberOfProcesses=12 numberOfAutoStartProcesses=7 ThreadPoolSize=20 ThreadPoolSizeIncrement=5 singleThreadedMode=Y
Suppose you have 120 users who are going to be on the system running business functions against the enterprise server. You may need to increase the maximum number of call object kernel processes that can be started on this server. In our example, we recommend setting the maximum number of kernel processes to 12. As stated previously, the number of autostart processes variable controls the number of processes that start up when you start your host services. This number can never be higher than the value for the max number of kernel processes setting in the JDE.INI file. Because kernel processes take up system resources when they are running, you also must consider the demand on the system when you are setting this variable. Ensure that you don’t start up too many kernel processes upon starting your host services. In our example, we set this number to 7, which means that seven kernel processes start up when you start your host processes. You may have noticed the ThreadPoolSize, ThreadPoolIncrement, and singleThreadedMode settings in this section of the INI file. You see, as of 8.11 Oracle has given the host code the ability to have multithreaded call object kernels. This means that these kernels can work on multiple pieces of a business function request at the same time. The code can tell what is dependent and what is not. If it is not dependent, the code runs at the same time in different threads. This is where these settings come into play. The ThreadPoolSize determines the initial size of the thread pool in memory. The ThreadPoolSizeIncrement is the number of new threads that will be created when all current threads are in use. Yes, you guessed it—the singleThreadedMode setting controls whether or not you use the multithreaded call object functionality. You do not need to use this if you do not want to.
Chapter 12:
EnterpriseOne Administrative Tasks
521
NOTE Overall the authors have noticed that you need fewer call object kernels per user than in older releases, like OneWorld Xe. However, you do need more memory for each call object kernel than in the past. At this point, you still need to modify the JDENet section of the JDE.INI file. The following is the JDENet section of the JDE.INI file: [JDENeT] maxNetProcesses= maxNetConnections= maxKernelProcesses= MaxKernelRanges
TIP It is a good idea to have a backup of your JDE.INI file before you make changes to it. The maxNetProcesses setting controls the number of JDENET_n processes that start. This variable should normally be set to 1 per every 40 users. Because we have 120 users in our example, we would set this variable to at least 3. The maxNetConnections setting controls the number of connections each NET process can handle. The shipped value with 8.12 is 400. This is a setting you should monitor, as depending upon what areas of the software you are using you may need to move this setting up. NOTE The authors do not recommend dropping these settings below shipped values. The maxKernelProcesses setting controls the number of kernel processes that can start on the server at one time, which means that this number cannot be less than all of the maximum kernel processes that you defined under each kernel definition. At this point, you are ready to cycle your host services, and your changes will not take effect until you do.
User Overrides
A user override can be any of several different events that make each user’s HTML interface a little different and tailored to their needs. For example, say a user wants to modify the column order in a grid format. The HTML client interface is designed to enable this customization with ease and efficiency by adding a new format.
522
JD Edwards EnterpriseOne: The Complete Reference
When the user goes back into the application after making this change, the format is automatically displayed with the columns in the order the user specified. User overrides are application definitions that modify the presentation of data to the end user. They don’t modify the table, the SELECT/UPDATE/INSERT/DELETE statements being generated by an application, or any actual code in the system. User overrides change the way data is presented at the level of applications, versions, and users. The F98950 table maintains user override data. It is part of the Central Objects data source (that is, it is different for each path code).
Types of User Overrides Now let’s talk about some specific user overrides that you can use. The most common user override by far is the grid format, where most users change some format on their grid. The second most popular is the saved query override, where a window, such as the P90CB010 Search for Leads window, has a drop-down query selection built into the window. When you customize a query, this is a user override. However, there are many others that can also be configured: ■
DG—Dialog Information
■
EA—Expand All
■
GD—Grid Format Detail
■
GF—Grid Format
■
HB—Hyper Button
■
HC—Hypertext Control
■
JC—Legacy Type
■
OL—OLE Object
■
PC—Portal Component
■
PP—Portlet Preferences
■
SQ—Saved Query
■
TA—Type Ahead
■
TT—Translation Tool Settings
How User Overrides Are Created For the most part, the entries in the F98950 table are automatically entered behind the scenes when a user configures a user override, without assistance from a system administrator. Because of this and because of the automatically shipped entries, the F98950 table can become large.
Chapter 12:
EnterpriseOne Administrative Tasks
523
Adding New Formats Customizing your formats enables you to speed up certain repetitive jobs and streamline what you are asking your users to do. In this section, we are going to modify the sales order entry window (P4210, W4210A – Sales Order Detail Revisions) to enter just the data needed prior to moving to the next detail line. This change will enable your users to speed up the sales order process, which your customers will appreciate. You can do similar modifications to any other process. 1. On your application just above the grid you will see the link Customize Grid. Right next to it is a drop-down list that allows you to select the override view you want to use. You may have multiple views configured. When you click the Customize Grid link, you will be taken into the Select Grid Format window. This window allows you to modify, delete, or create a new override. This is shown in Figure 12-43.
FIGURE 12-43. Select Grid Format window
524
JD Edwards EnterpriseOne: The Complete Reference
2. Click the Create button or the Modify button, and you will be taken into the Customize Grid window. This window allows you to change the display and order of columns, change column colors, change text colors, and change your data sequence. In our example we are changing the color of the Sold To Name and the Order Co fields. This is shown in Figure 12-44. 3. Once you have finished changing your grid, click the OK button. This will take you back to the Select Grid Format window. Click the Close button on this window and you will be back to your application, in our example the sales order window. You will now see the changes you have made, which are shown in Figure 12-45. TIP You will notice the Default Format for Mobile Device check box on this screen. This is used to help enable the screens to show up more easily on a mobile device.
FIGURE 12-44. Customize Grid window
Chapter 12:
EnterpriseOne Administrative Tasks
FIGURE 12-45. Customer Service Inquiry window with user overrides Here are some helpful hints that you should read prior to creating hundreds of new formats: ■
Assign one or two people in each functional group to create the formats that help streamline the work you do on a day-to-day process prior to training your personnel. It’s easier for you to teach a few people as part of the core team; they have the best understanding of what modifications will speed up their work the most. By doing this prior to training everyone else, you ensure that your trainees all use the same method, which decreases confusion and retraining.
■
When you are teaching these format masters, ensure the trainees know to research each form they want to change prior to making the change. This decreases your work in the next step (that is, you won’t have to work with multiple changes as they rethink how they are getting their work done).
525
526
JD Edwards EnterpriseOne: The Complete Reference
■
Use the P98950 application to push the newly created formats to the functional group or to everyone in the organization (see the User Override Administration section). This ensures a uniform look and feel across the enterprise.
■
Always test your new formats to ensure that they don’t adversely affect the performance of the users or the application.
NOTE In the past user overrides caused some issues when you went from a lower service pack or foundation code to a new level. Oracle has performed a bit of work on this and we now no longer see this issue as we used to in the past.
Deleting a Grid Format You can quickly and easily delete a single format through the normal application interface. Go to the application that has the associated format you want to delete. In this section, we are going to use the P4210 application as we did earlier. On this window click the Customize Grid link. Then in the Select Grid Format window, highlight the override you want to delete and click the Delete button. This will remove that override from the system.
User Override Administration One of the ways that you can make life easier for the user is to copy useful user overrides. The P98950 User Overrides application, accessible from the System Administration Tools menu, GH9011, is a relatively simple application that manipulates records in the F98950 table.
About the Application P98950, the User Overrides application, has two forms designed to assist the administrator with managing these records. One of these forms (W98950E – Work With User Overrides) is designed as a primary interface where you can display, copy, and delete records. The second form (W98950D – Copy Overrides) is used to actually copy the records themselves. W98950E – Work With User Overrides Form The W98950E form, Work With User Overrides, shown in Figure 12-46, is designed with a single entry field and a grid format. The User/Role field has a Visual Assist associated with it to help you find records associated with the specific user or group. When used, it adds a WHERE clause, limiting the returned records to the ones associated with the user or group. The information presented in the grid format can’t be modified.
Chapter 12:
EnterpriseOne Administrative Tasks
527
FIGURE 12-46. Work With User Overrides window
NOTE GD records are not displayed. Instead, the GF master record is displayable. There is a direct relationship between the GF and GD records. If you copy a GF record, all of the associated GD records are copied as well. W98950D – Copy Overrides Form The W98950D form, Copy Overrides (see Figure 12-47), has distinct sections displaying and allowing information to be added, but it contains no grid formats. It displays information regarding the record that you are copying, including user/role, application, form, version, and language. All of the fields in the upper half of this form are grayed out, indicating that you cannot modify this information. The lower half of the form displays information regarding the user you are copying the records for. There are four fields are in this section: User/Role,
528
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-47. Copy Overrides window Version, Language, and UO Description. Obviously, you can enter information into this part of the W98950D form. Finding a Specific Record To find a specific record using the P98950 application, start the application as described earlier. If you are looking for all records for a specific user or for a role, enter the username or role’s name in the User/Role field. You can enter the name in the stand-alone field on the W98950E form or in the QBE line entry. We usually use the QBE line because if we have to find other items, it must be done from the QBE line. Finding a Record for a Specific Application It is often useful to locate a record based on the application and version you want to copy or delete. This is done in a similar manner to the method described previously. The only difference is that the only choice you have is using the QBE find functionality. Enter the name of the application by itself, or the name of the application with the specific version, and click Find on P98950, the User Overrides application.
Chapter 12:
EnterpriseOne Administrative Tasks
529
You can mix and match your selection criteria to help in finding the exact record that you need to either copy or delete. The most useful combinations include User/Application and User/Application/Version. The QBE lines automatically force uppercase on letters, and they accept the asterisk (*) as a wildcard character when you’re not quite sure of the exact version. Deleting a Record Using the P98950 Application When you use the P98950 application to delete an entry, remember that you delete all of the associated records. This application does not lend itself to deleting a single format if there are multiple formats for the same form, application, and version. On W98950E, the Work With User Overrides form, find the record that you want to delete, highlight it, and click the Delete button. You are prompted to confirm the deletion. Click the OK button and all associated records are deleted from the F98950 table.
When a User Modifies a Format Pushed to a Group A user who modifies a format that is pushed to a group is always a concern when you are administering the system. When you push a format to everyone and you have no way of stopping users from modifying their local machines, what can you do to maintain the standard? The solution, although certainly not perfect, is simple. When users modify a format from the CNC administrator, they create new formats that are specific to them without modifying the base template created, tested, and copied to the user community. If you have written policies discouraging this particular activity, you can occasionally query the database and find those users who have violated these rules. You can then use the P98950 application to quickly delete these modifications, and the users can’t stop you. At some point in this type of game, they give up trying to create these new formats. On the other hand, if you don’t mind your users creating their own customized views that could cause other issues requiring you to spend time doing troubleshooting, you can still push out a recommended override as a base product and allow your user community to branch out from there. Most end users use the formats that they’ve been trained on and given as a standard.
The EnterpriseOne Scheduler
The EnterpriseOne Scheduler is actually P91300, the Schedule Jobs application found on the GH9015 menu. Components of this application are on the enterprise/ application server (a schedule service), and an interactive interface designed for adding, deleting, and modifying the job schedules and actual tables (F91300, F91310, and F91320) located in the System – 812 data source. (We’ll talk about these tables in more detail in a couple of paragraphs.) Based on versions, the Schedule Jobs product can accommodate your requirements from a local, national, and global organization based on your individual needs. When configuring your scheduler application, be sure to review the processing options on the scheduler, as this is where you obtain your time zones.
530
JD Edwards EnterpriseOne: The Complete Reference
F91300, the Schedule Job Master Table The F91300 is the master table for the job scheduling interactive application and services and is their starting point. This table is part of the System – 812 data source. You need a location to store the parameters associated with the jobs you want to schedule. To accommodate these parameters, the EnterpriseOne developers added F91310, the Scheduler Parameter table. This table holds the parameters for your jobs, such as the user to run the job.
Setting Up the Scheduler Now let’s move on to talk about how you would actually configure the scheduler to run your night jobs. In this section we will discuss how to configure and use the different functionality in the EnterpriseOne scheduler. This will include the processing option configuration, adding jobs to run, advanced options, and job recurrence. NOTE The EnterpriseOne scheduler is a lot of different things, but it really has not changed basic functionality since B7333. This means that there is no job stream dependency built into the application.
Processing Options Associated with P91300 P91300, the Schedule Jobs application, has an associated processing options template. This template contains a few primary pieces of information that are vital to the operation of the Scheduler itself. The first tab associated with the template is the Display tab. The options on the Display tab are shown in Table 12-11.
Value
Description
View Local Time
This processing option allows you to view time based on the local time zone or on universal coordinated time (UTC).
Local Time Zone
This option allows you to specify the local time zone.
Daylight Savings Time
This option allows you to either adjust or not adjust for daylight savings time.
Daylight Savings Time Rule
This option allows you to specify a rule for daylight savings time adjustments.
TABLE 12-11. Display Tab Scheduler Processing Options
Chapter 12:
EnterpriseOne Administrative Tasks
Value
Description
Maximum Number of Job Schedule Records
5
531
TABLE 12-12. Scheduler Processing Options Process Tab The second tab is dedicated to assisting with the overall processing of the Scheduler (see Table 12-12). When you’ve set a single job to recur at a specified rate, you can define the number of scheduler job records that are written in advance in the scheduler tables for recurring jobs that have no end date. The final (or third) tab relates to three defaults available for the application itself (see Table 12-13). These are relatively straightforward and easy to set.
Activating the Schedule Service Server You may notice in your application or enterprise server log files where the host code is trying to start the scheduler kernel. You may see an error where it cannot find the specified machine. Why do you think that you get this type of error? Is there something wrong with your installation on that server? Actually, the only thing wrong with the services is that the JDE.INI file on the server is specifying that a single scheduler kernel be started, and the F91300 table doesn’t contain an entry for a default schedule server. Because of this, when the server’s services are launched, they automatically try to start the schedule services and can’t validate the server’s name.
Value
Description
Default Job Type
Specifies whether the default job type will be a UBE or workflow.
Number of Job Occurrences
This is the number of occurrences that will be displayed on the recurrence schedule information revisions form.
Max Number of Job Re-submissions
Maximum number of times that a job can be resubmitted when there is an issue and the job has a resubmission policy configured.
TABLE 12-13. Scheduler Processing Options Default Tab
532
JD Edwards EnterpriseOne: The Complete Reference
Adding a Schedule Server The process is very straightforward and easy to accomplish. Just follow along with these step-by-step instructions: 1. Log on to a development machine as a user who is able to run and modify P91300, the Schedule Jobs application. 2. Fast-path (or menu-travel) to the Job Scheduler menu GH9015. 3. Start the P91300 application by double-clicking the application icon. If your menu has not been altered, it prompts you for a specific version to launch. If more than one version is listed, launch the version associated with the time zone your schedule server is running in. 4. Choose Schedule Server under the forms exit. This window is shown in Figure 12-48. If you do not have the scheduler defined yet, you can take the Change Server form exit from the Scheduler Server Control window. This will allow you to change the server and port.
FIGURE 12-48. Scheduler Server Control window
Chapter 12:
EnterpriseOne Administrative Tasks
533
NOTE You can either use the Visual Assist or enter the server’s name; however, you need to understand that the entry is actually the server’s associated SVM (or logic) data source. If you do decide to simply enter the entry, remember that it is case sensitive. If you don’t remember exactly how you entered the name for the data source, use the Visual Assist to avoid making a mistake. 5. You can see that there are quite a few more populated fields in the Scheduler Server Control (W91300G) form. These entries represent the information that you entered in step 4. You can update two fields on this form: Scheduler Sleep Time and Job Monitor Sleep Time. ■
Scheduler Server Name This field (JSSRVR) contains the logic data source associated with the server running the schedule services.
■
Port Number The Wins Socket port address (JSSAWPORTNUM) associated with EnterpriseOne network communication on your specific version. The port number is different for each version of EnterpriseOne to allow parallel release support.
■
Scheduler Sleep Time (JSSCHRSLEEP) The amount of time in seconds that the server waits between active searches of the F91320 table for new jobs to submit. The server queries the F91320 table at regular intervals looking for jobs that are scheduled to be submitted. This time indicates how long the server waits between queries.
■
Next Submit Date (JSNXTSBDT and JSNXTSBTMSTR) The time and date that the schedule server will query the database next.
■
Next Job Monitoring Date When the schedule server will next check the status of a submitted job (JSNXTJMDT and JSNXTJMTMSTR).
■
Job Monitor Sleep Time The amount of time in minutes (JSJMSLEEP) that the server will wait between checking on jobs submitted previously.
The default values for the Scheduler Sleep Time and the Job Monitor Sleep Time are automatically set to 60 seconds and 15 minutes, respectively. The Scheduler Sleep Time field tells the server how long to wait between queries. This is an essential function of the schedule service to decrease the overhead associated with continual queries against the database. This entry basically tells the server to look for jobs that need to be submitted once a minute. If you are administering this system, it may seem to you that the scheduler is off somewhat; we’ll explain why in just a moment.
534
JD Edwards EnterpriseOne: The Complete Reference
The Job Monitor Sleep Time field indicates the time interval between queries against F986110, the Job Control Status Master table. The job schedule server keeps track of each job it launches in order to determine if it needs to resubmit it, stop it, or update the status of the job itself (these statuses include scheduled, launched, and completed). Consequently, by setting this variable, you are telling the server how often it should validate the progress of the submitted jobs in their overall job process. 6. Click OK twice to get out of the P91300 schedule utility. Then stop and restart the services on your enterprise and/or application server. If you go back into the P91300 table, pick the version of the application that you’ve been working with, and then select Scheduler Server from the Form menu. At the top of the screen you will see if the scheduler is running or not. If the scheduler server is not running, you can click the form exit Start Scheduler.
Things to Know about Time If you are using the server’s system time, it might seem as if the server isn’t launching the jobs in a timely manner. You might see a discrepancy in the launch time because the scheduler job launch and job monitor sleep times are based on when the service first started and then every 60 seconds (for the scheduler job launch) and 15 minutes (for the job monitor sleep time) thereafter. If the service started at 4:35:35 P.M., the schedule server looks for new jobs to launch at 35 seconds after each minute—not at the turn of every minute. Although this is a minor concern to those who are used to administering the schedule services, it can be disconcerting to those who are first testing this system. In addition, time can be somewhat confusing. Remember, when you enter any time for submission of a job or sleep status, it is using the server’s time stamp in conjunction with the indicated job time zone (for example, Central Standard Time). If there is a disparity between the time on your computer and the server, the schedule server always uses its own time. This has been known to cause administrators to think that the schedule utility isn’t working properly. Not to worry. Synchronize your system times and the system will work the way you expect.
Scheduling Batch Applications Now let’s talk about the real meat of the scheduler: actually setting up the batch applications or reports to run through the EnterpriseOne scheduling application. This is where the rubber meets the road for your nightly job runs. As you will see, there are some special things you need to keep in mind with regard to the versions you use in the scheduler. Also it is important to keep in mind that there is no job stream dependency built into the EnterpriseOne scheduler. This means that if you schedule the sales order update job to run and want to place a dependency on its being successful prior to running your general ledger post, you cannot do this
Chapter 12:
EnterpriseOne Administrative Tasks
535
without custom coding or using a third-party scheduling software. There are multiple third-party products on the market today. However, you do get the scheduler included in your base EnterpriseOne license price, so if you don’t have advanced requirements it does a good job covering the basics.
Custom Batch Versions As you begin creating your own end-of-day/scheduler usage, keep in mind that the EnterpriseOne Scheduler does not submit UBEs to the server. Rather, it launches the UBE on the server. You may be wondering what the difference is. Simply put, during the UBE submission process, UBE specifications are packed and transferred from the EnterpriseOne HTML server to the application server. UBE specifications are things like processing options, data selections, and printer information. Consequently, if you were to change your data selection so that you saw only sales activity over the last 30 days, this information itself is generated by the end user on the workstation. When the user clicks the final OK to submit the UBE to the server, the information is transferred to the enterprise/application server and is then merged into the specifications. After this occurs, the server is then able to run your specific UBE and produce the results that you need. The Scheduler doesn’t have this submission process. When the Scheduler launches a UBE on a server, the server doesn’t merge data selection into the specification files. Rather, it uses the specifications that are already on the server to run the UBE. You may be wondering how this affects you. If someone were to change the data selection on a UBE version that you were launching nightly, the UBE launched by the scheduler would also reflect this change. Create Your Own Scheduled Batch Versions The way an administrator gets around this situation is by creating a custom version of the UBE for exclusive use with the scheduler. We usually recommend putting an “S” at the end of the version name so that you can quickly determine that it is a scheduler version. Then you can apply application security to the version to keep people from accidentally changing or submitting the UBE. In this section, we are not going to go over the how-to of adding or copying versions of UBEs.
Adding a Job Schedule Let’s talk about adding a job schedule to the system. This is where the rubber meets the road. In order to manage the scheduler server, you still need to log on to a workstation. Even with 8.12 at the time this book was published, you could not perform all of the administration from the HTML client. Once you log on to the workstation, the environment does not matter since the scheduler tables are contained in a shared data source, meaning all environments use this data source. Go to Task View GH9015 Job Scheduler. Once there, double-click on the Scheduler application. This will take you into the Work With Scheduled Jobs window (see Figure 12-49).
536
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-49. Work With Scheduled Jobs window
This window shows you the logical name of your scheduled jobs, the report name, version, job status, and other information on your job. To add a new job schedule, click the Add button on this window. This will take you into the Scheduling Information Add window, shown in Figure 12-50. On this window you will be defining the logical job schedule name, the status, or if it is active or inactive, the UBE, version, and the start date/time. Okay, so you have added a logical name for the schedule, the report, and the time. Now what if you want to have this job kick off multiple times and not just once? Well, this can be done by taking the Recurrence form exit. This will take you into the Recurring Scheduling Information Revisions window (see Figure 12-51). On this window you can configure the recurrence of your job. This can be by time: daily, weekly, monthly, a period, and even yearly. You can also specify a specific end date or end the job recurrence after a certain number of runs. Once you click OK on the Recurring Scheduling window, you will be taken back to the Scheduling Information Add window. Now you are not quite done setting up your job schedule. The thing you need to configure is the advanced options. When you click the Advanced Options form exit, you will be taken into the Scheduling Advanced Options window (see Figure 12-52). This window has four tabs. These are Launch Overrides, Job Expiration, Job Resubmission, and Batch Application Overrides. The options are described in Table 12-12.
Chapter 12:
EnterpriseOne Administrative Tasks
FIGURE 12-50. Scheduling Information Add window
Value
Description
Scheduled Environment
The environment that the scheduled job will run in.
Scheduled Logical Server
The application or enterprise server that the job will be run on.
Scheduled User
The EnterpriseOne user under which the scheduler will submit the job. The authors recommend that you create a user specifically for the scheduled jobs. Because you need to specify a password on this window, if a user changes their password, this can cause issues with the scheduled jobs.
Scheduled User Role
The role that will be used. You can use the *ALL wildcard to use all assigned role permissions for the user.
Scheduled Password
The EnterpriseOne password that will be used to run the UBE.
TABLE 12-14. Scheduling Advanced Options Launch Overrides Tab
537
538
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 12-51. Recurring Scheduling Information Revisions window The next tab you will look at is the Job Expiration tab. This tab contains two radio buttons to control the job expiration, as described in Table 12-15. The next tab is the Job Resubmission tab. This tab controls what the system does if the job runs past so many minutes and the actions if the job ends in error.
Value
Description
Job Never Expires
This means that the job will not expire no matter how long it has not run after the scheduled time.
Job Expires After
This is a setting in minutes where the job will expire if it does not launch after the specified number of minutes past the scheduled start time.
TABLE 12-15. Scheduling Advanced Options Job Expiration Tab
Chapter 12:
EnterpriseOne Administrative Tasks
539
FIGURE 12-52. Scheduling Advanced Options window Under the After section you can define the number of minutes you want the system to wait. After this elapsed time you can select a radio button to let the job continue, terminate the job, terminate the job and resubmit, or terminate the job and resubmit after a number of minutes that you define. On the right side of this tab are the settings to tell the system what to do if the job ends in error. You can select to do nothing, which is always an option, resubmit immediately, or resubmit after a number of minutes that you set. If you resubmit the job you can also check or uncheck two check boxes. These are Check Connection Errors and Check Runtime Errors. At the bottom of the window you can also set the maximum number of times the scheduler will resubmit a job, because you do not want to put the server into a loop! The final tab is Batch Application Overrides. This tab allows you to turn on logging for only the UBE you are scheduling. You can also specify the printer name you want to use, if you want to override the printer used. Next to the printer field is
540
JD Edwards EnterpriseOne: The Complete Reference
a print immediate check box. If this box is checked, when the UBE completes the results will immediately be sent to the printer. This is handy for certain jobs, such as pick slips. The final field on this tab is the job queue field. Here you can specify what job queue you want to use when the UBE is run. So if the job requires a single threaded job queue or if you have set up a special job queue for specific types of jobs, such as financial reports, you can ensure that the job will use this job queue.
The Trouble with Unattended UBEs You should keep in mind a couple of considerations to effectively utilize the EnterpriseOne Scheduler as a corporate solution. One of these considerations is the intrinsic nature of the UBEs themselves. Once you begin working with the product (or if you already have experience with UBEs), you quickly learn that some UBEs need to run before others. They feed information forward that is required to complete a process. Your business analysts will be very familiar with these UBEs. You can define several different batch queues for your application servers. To ensure that the sequential UBEs run sequentially, it is recommended that they be launched (one after the other) into what is commonly referred to as a singlethreaded queue. You can obtain a list of the jobs that need to be run in a singlethreaded queue from the Oracle web site. To ensure these UBEs run in this queue, you can specify a specific job queue for each version, in the Versions Details window, which is found in Batch Versions. This means that every time that UBE is run, it will always run in the job queue. TIP When you are looking at an implementation or upgrade, look closely at your business configuration. The reason for single-threaded jobs is so that you do not try to update records at the same time as another process and cause data issues. An example would be the sales order update job. If you design your configuration with this in mind, you can run some of these jobs multithreaded. This would mean that you would have different versions of the jobs that only find a specific range of data and thus would not overlap. This can increase your system throughput. If you are going to take this approach, be sure to work with someone who really knows the EnterpriseOne system and plan this out in advance.
Chapter 12:
EnterpriseOne Administrative Tasks
541
FIGURE 12-53. EnterpriseOne Job Scheduling Advanced Options window In the Version Detail form, you can specify what job queue to use. The version detail form can be accessed through the Batch Versions application. This can also be done using the Scheduler utility itself as part of its Advanced Functions—Batch Application Overrides (see Figure 12-53). When you are adding or revising a specifically scheduled job, click the Advanced Functions button located on the exit bar. Then select the Batch Application Overrides tab. The Job Queue is the last option on that form. It pulls up a User Assist button based on defined UDCs with the names of the queues.
Trouble Resolution Not many problems are associated with the Scheduler application once it is set up and working. In this section, we provide a series of situations and possible resolutions or appropriate troubleshooting methodologies. These questions have come from actual clients.
542
JD Edwards EnterpriseOne: The Complete Reference
Question: The Workstation and/or EnterpriseOne HTML Server Is Offline Once the schedule is set up, the workstation is no longer part of the schedule system. The three tables associated with the Scheduler traditionally reside on the enterprise server. Additionally, the schedule server is running the service that launches UBEs. Once the schedule is created, the schedule server automatically runs the appropriate jobs on the appropriate server. The workstation and HTML server no longer play a part except in normal schedule maintenance.
Question: The Server Always Launches Six Hours Late This is a time-related issue. The source of this problem is usually that the server is running based on UTC. You need to check the processing options associated with the version of the Scheduler program you are running (P91300). Verify that 2 is listed in the first Processing Option field. This defines the information as it is presented to you and scheduled with the Scheduler application itself.
Question: The Server Doesn’t Launch Any Jobs First, make sure that the server is set up correctly using the procedures outlined in the beginning of this section. Next, check the service’s logs generated on the server. Do these indicate an error? If a problem exists with the service itself, it should show up in the logs. If it doesn’t, enable tracing on the schedule and bounce services on that machine. Using the applicable logs, validate the SELECT statement in use by the Scheduler. This can be done easily by copying the SELECT statement from the log to a query window using the RDBMS toolset. If this doesn’t return any data, break down why. Does it call for information using the wrong table owner? If so, either the OCM or the data source definition is wrong. Do the tables exist? Is there data in all three associated with the Scheduler? If not, what is missing? These are the kinds of questions required to troubleshoot the data component of the Scheduler.
Question: The Reports Generated Aren’t Consistent This problem is usually a result of not having custom UBEs for the schedule server or not having them secured. If a user is accidentally launching these UBEs and modifying either the data selection or processing options, you can easily see issues surrounding the UBE output. Make sure that you have custom versions scheduled and the appropriate security for the version.
Chapter 12:
Summary
EnterpriseOne Administrative Tasks
543
Over the last seventy pages or so, we have detailed quite a few functions that you as the system administrator will need to know how to support. We have discussed how the Server Manager can lower your cost of maintenance and make your life easier as a system administrator. You can easily manage all of your different servers from one HTML interface. You can also monitor your users, log files, and even configure monitors to notify you of issues. The EnterpriseOne server host code was also discussed in detail as to how it affects your system and what services it provides. The chapter then went on to discuss how you can personalize the appearance of the grid format in your applications and how to maintain these changes with the User Overrides application. Finally, we told you how you can schedule your EnterpriseOne reports to run at night using the Scheduler application. With this knowledge in hand, your job as a system administrator just got a little easier.
This page intentionally left blank
CHAPTER
13
Printing in EnterpriseOne
545
546
JD Edwards EnterpriseOne: The Complete Reference
Y
ou’ve done all the work, entered all the data, even run the reports. Now it’s time to finally see the results of your efforts. All you have to do is print it all out, right? Sure, no problem. Of course, from a system process point of view, more difficult questions immediately pop up— for example, what type of printer do you have (line, PostScript, and so on)? Do you want to print to a Microsoft Excel file? What about a comma-delimited file that would allow you to do a whole series of different things, including importing it to different data manipulators? Do you want the form printed on legal or lettersized paper, or maybe your company uses an odd-sized paper that you need to custom define? Actually, these questions are only the tip of the iceberg. Printing in EnterpriseOne becomes even more complicated with centralized processing in a decentralized system. How do you print to different locations automatically? This chapter will help answer some of those questions and point to other options in your EnterpriseOne system. We will cover the following: ■
Basic EnterpriseOne printing
■
Troubleshooting
■
Third-party product integration
■
XML Publishing
In this chapter, we will address printing in EnterpriseOne and cover topics such as exporting data from EnterpriseOne into and out of the EnterpriseOne grids. You will often want to print certain data that is not in a report. When this occurs, you have the option of going to a third-party product or using a SQL statement to extract the data. You could also spend the time necessary to create a report in the EnterpriseOne system. Both of these often generate more work than a one-time request should muster. By contrast, exporting the data directly from the grid to one of the office suites is a fast method of creating and ultimately printing the data. While this method might not have the polish of a third-party product solution, it is a very powerful tool that allows users to create ad hoc reports on demand. It is important to note that for users to take advantage of the ability to export data out of EnterpriseOne, they will need the office suites installed on their local machines (for instance Word/Excel).
Chapter 13:
Printing in EnterpriseOne
547
The EnterpriseOne Printing Application
One of the first changes that most people noticed in EnterpriseOne printing from previous versions is that there is now a single menu entry point into the printing application (P98616), located on the GH9013 Printers menu. This is a significant change from the five menu entry points in the earlier versions of the product and even more significant over the largely INI-driven printer setup required prior to B732. When you actually start the P98616 Printers application, however, you will quickly see that it is designed to take much of the pain out of defining printers in the EnterpriseOne product and streamline the installation/modification process.
A Quick History Lesson In earlier releases of the product, printing various reports was a hit-or-miss proposition. UBEs generated output files in Portable Document Format (PDF). The only supported printers were those that supported PostScript. You could make a line printer work, but this required additional setup and JDE.INI modifications. If you really wanted to have your reports look great, you had to modify the UBE itself to ensure it looked right printed on whichever printer you usually printed it on. Then came the first of the printing applications. It represented a quantum leap from what was available before, particularly in functionality. There were its detractors; people claimed that it was difficult to set up and to use. However, most of these people missed what the printer application provided them. No longer did you have to redesign UBE output to accommodate the printer. You no longer had to worry that shipping your print job to a different printer would result in ugly output. NOTE Line printers are a possible exception. The number of different line printers and their associated drivers and specialty fonts can still cause issues with printer output. With this enhancement, you could define the printer (including remote printers), its conversion driver, and even set up specific printers for users, roles, or servers. This application used the F98616 series of tables (F98616, F986161, F986162, F986163, F986164, F986165, and F986167). It also added direct line-printer conversions without requiring JDE.INI changes and PCL support. Despite its drawbacks, it really made significant improvements to the overall printing solution.
548
JD Edwards EnterpriseOne: The Complete Reference
Finally, with the release of 8.97, we see yet another quantum leap in EnterpriseOne printing functionality with the release of the XML Publisher. We will provide an overview of printing in the EnterpriseOne product and review some of this exciting functionality that becomes available in 8.97. For those of you who are still on older versions of the product, this might provide an extra incentive to migrate to the latest version of EnterpriseOne.
P98616 – EnterpriseOne Printers So how does printing really work in the EnterpriseOne product? To fully understand printing in this product, it is good to know how it works under the covers. There are a number of printer tables in the F98616 series: ■
F98616
■
F986161
Default Printer Table
■
F986162
Paper Definition
■
F986163
Printer Capability
■
F986164
Output Conversions
■
F986165
Printer Security
■
F986166
Bar Code Font Support
■
F986167
New Default Printer Table
Printer Definition
Many of these are only being shipped for backward compatibility. The primary printer tables used in the EnterpriseOne product include the F986162, F986163, F986164, F986166, and F986167 tables. The printer application is wizard driven and walks the EnterpriseOne systems administrator through printer setup. All the tasks necessary to define printers, paper, and user defaults can be accessed through the same application, providing a common interface that is easy to use. We will quickly review each of these tasks in the remainder of this section.
Adding New Printer Definitions As you might guess, you have to add a printer definition to the system before it is available for use. The P98616 application wizard makes this easy and quick.
Chapter 13:
Printing in EnterpriseOne
549
FIGURE 13-1. Printers application You start by using Fast Path to go to the GH9013 Printers menu. Double-click on the P98616 Printers application, starting the printer director (shown in Figure 13-1). Notice that you have options for adding a printer, modifying an existing printer definition, and defining default printers. Let’s start by first reviewing how to add a printer in the EnterpriseOne application. Click the Add Printer button. This takes you to the Printer Setup Director (see Figure 13-2). Notice that this director is designed to do the following: ■
Define platform type and information necessary for the printer
■
Define the printer model and its location
550
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-2. Printer Setup Director
■
Define paper types supported by the printer and the default paper type for that printer
■
Choose the Printer Definition Language (PDL) supported by the printer and its default PDL
By clicking the Next button, you will see the window shown in Figure 13-3. On this form, you need to choose the platform of the server you’re defining to the system. The valid platform types are defined by UDCs (Product Code H93, Report Code PL) and include AS/400, HP9000, LINUX, LOCAL, NTSVR, RS6000, and SUN. Once you have entered a hardware/OS platform (see Figure 13-3), click the Next button.
Chapter 13:
Printing in EnterpriseOne
FIGURE 13-3. Platform Information window
NOTE If you choose LOCAL, it will automatically default to NTSVR. NTSVR is used for all NT hardware platform types. If you choose either SUN or RS6000, it will automatically default to HP9000. HP9000 is the default used for all UNIX platforms. You will be prompted to enter the print server name and the printer’s shared name if you are defining an NT platform (see Figure 13-4). When defining a UNIX platform, you will only be prompted for the printer name (in UNIX, the lpstat command is useful for determining the name of the printer as it is defined to the UNIX server). Defining an AS/400 platform prompts you for the library name and the output queue name. Once you have entered this information, click the Next button. You will need to enter the model of the printer and its location. There are three options for printer model: Laser, Line Printer, or EBCDIC Line Printer. The location
551
552
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-4. Printers – Platform Information
of the printer can be defined ad hoc by the user. (It is a good practice to define a naming convention for printers and locations. This will allow users to determine the location of a specific printer at a glance.) You can select the paper types supported by this printer by double-clicking the header grid of each supported paper type and indicating the default paper type and size for that specific printer (refer to Figure 13-5). Make sure the green check mark is visible. The types of paper predefined by Oracle include legal, letter, and A4. You will also need to define the default paper type by typing a 1 in the Default Type column in the paper grid. If you don’t, you will receive an error in the application.
Chapter 13:
Printing in EnterpriseOne
FIGURE 13-5. Printers – Printer Setup
Before clicking the End button, you will need to fill in the supported paper details. Select the Details tab on this form (shown in Figure 13-6). On this tab you will define the Printer Definition Language for the printer you are defining. In this section of the tab you can define PostScript, PCL, Line Printer, or a custom Printer Definition Language. If you define a PostScript printer, you can also define the maximum number of paper sources and the default paper source to be used. This can provide the ability to leverage different paper sources (for example, you might have one with a preprinted form and another with plain paper).
553
554
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-6. Printers – Details
NOTE If you are defining a line printer, you need to also indicate the paper dimensions. If you are defining a printer servicing an AS/400, you will need to choose EBCDIC Line Printer for non-AS/400 printers. Adding New Paper Types To define a custom paper type, select the New Paper Type form exit in the Printer Setup window. This will take you to the Work With Paper Types window (see Figure 13-7). From this window you can modify existing paper types or add new ones. To add a new paper type, click the Add button, which will take you to the Paper Type
Chapter 13:
Printing in EnterpriseOne
555
FIGURE 13-7. Work With Paper Types window Revisions window (see Figure 13-8). On this window, enter a name for your new paper type and define your custom paper height, paper width, and unit of measure. Once you are satisfied with the entries, click OK to save the custom paper type. This gives you the flexibility to add new paper types to meet business requirements (such as custom forms). Adding a Custom Printer Definition Language In certain situations you may find business requirements that force you to define a custom Printer Definition Language driver. From the P98616 application, from W98616AE, on the Details tab you can select Custom Printer Definition Language. You can then select any existing custom PDLs that have already been defined or click on the form exit Advanced. This will take you to the Work With Conversion Programs (W986161I) form. From here you can select an existing conversion program to modify, or select Add.
556
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-8. Paper Type Revisions window To modify an existing conversion program, locate the program name in the grid, highlight it, and click Select. This will take you to the Advanced Conversion Program (W98616J) form. On this form you will be able to update the conversion parameter string. This parameter string calls a conversion program to format the EnterpriseOne output. Three standard conversion programs are shipped with the EnterpriseOne product: ■
*JDE LINE
■
*JDE PCL
■
*JDE PS
Chapter 13:
Printing in EnterpriseOne
557
These standard conversion programs make a call to the jdekernel to format the EnterpriseOne output based on the type of printer that is being utilized (such as line printer, PCL printer, or PS printer). Although users are able to modify the conversion string for existing/shipped conversions, they are not able to update the Conversion Program name without using SQL or deleting and reading the conversion definition. To add a new conversion program, select the Add button on the Work With Conversion Programs (W986161I) form. What You Should Know If you are interested in what has happened underneath the application, you have just added multiple records to two of the F98616 series tables, including one into the F986162 table and nine into the F986163 table (see Figure 13-9).
FIGURE 13-9. UTB – under the covers
558
JD Edwards EnterpriseOne: The Complete Reference
Modifying Printer Definitions You may be wondering, with all of that information automatically generated, how are you going to successfully make changes without a serious understanding of the SQL language? Have no fear, the printer application is here. When the printer director was designed, this was taken into consideration. As you can see in several of the preceding figures, there is an option on the first form entry point on the P98616 Printers application to add printers, modify printers, and define default printers. Why would you need to modify a printer? First, modifying a printer is quicker than deleting and re-adding it. Second, you might have forgotten something when entering some of the printer information. Third, you may need to define new paper types for special forms created to fit specific business needs. Finally, although the application allows you to modify some of the printer definition data, you are not able to modify everything. Consequently, you probably want to know what can and can’t be modified. These items are shown in Figures 13-10 and 13-11.
FIGURE 13-10. Printer Setup – modifying a printer
Chapter 13:
FIGURE 13-11. Modifying a printer – Details window Items that can be changed include: ■
Printer Model
■
Printer Location
■
Paper Type
■
Supported Printer Definition Languages (PDLs)
■
Paper Type
■
AS/400 only: ■
ASCII Encoding
■
EBCDIC Encoding
Printing in EnterpriseOne
559
560
JD Edwards EnterpriseOne: The Complete Reference
■
Line Printer Values: ■
Characters Per Inch
■
Columns Per Page
■
Line Per Inch
■
Line Per Page
Items that cannot be changed include ■
Printer Name
■
Platform Type
So, what should you do if you need to change something that is on the “do not modify” list? The official Oracle answer is that you have to delete the printer entry and then re-add it. However, depending on what the item is, there may be another solution.
Modifying a Printer Modifying a printer is easy and straightforward. Start the P98616 Printers application located on the GH9013 menu. Click the Modify Printer button—this will launch the W98616Y (Work With Printers) form. This form provides a large amount of information to the user, which can be used to search and find any printer they are interested in (depending on your implementation, you could have a large number of printers to search through). On this form the user will find the following options: ■
Printer Name
■
Default Printer Definition Language
■
Platform Type
■
Printer Model
■
Printer Location
■
Default Paper Type
By using the available QBE (Query By Example) fields, a user can quickly locate any specific printer that they would like to modify in an implementation. Once the printer has been located you will need to select it by either double-clicking it or
Chapter 13:
Printing in EnterpriseOne
561
highlighting it and then clicking the Select button. This will launch the W98616AE (Printer Setup) form. On this form you can modify values for an existing printer definition. The grid on the (W98616A) form allows you to select additional paper types or modify your existing paper type selections. The grid will also allow you to change the default paper type for the printer. NOTE Each printer can only have one default paper type defined. On the General tab, you can modify the Printer Model and Printer Location fields. The Printer Model field is self-explanatory, but the Printer Location field bears some further discussion. This field allows 30 characters, to allow clients to define meaningful printer locations. This gives companies a way to easily identify where the printers defined are really located. An example of a potential naming convention might be CCXXXBBB##DD where CC might indicate the country the printer is in, XXX might be the office (for example CORP), BBB denotes the building that the printer is located in, ## represents the number of the printer, and DD represents the location of the printer on the floor (such as SW for Southwest). By leveraging standard naming conventions, companies can keep close track of the location of the printers in their implementations. As EnterpriseOne can handle distributed and centralized models, it can be leveraged to provide printing solutions to users in remote locations or at the main site of the implementation. Updating Printer Definitions Through SQL Almost any data in EnterpriseOne can be modified by directly changing it in the tables themselves using the host database tools and the SQL language. However, prior to making any changes to tables directly, we urge you to do the following. First, make sure that you fully understand the table(s) that contain the data you are going to modify. Does this data also have a direct correlation to data in other tables or is it a stand-alone table? Do you understand the application repercussions associated with directly modifying the data? Should you be making the changes you are about to make? Second, we highly recommend that you back up the tables containing the data you will be modifying. Although you may think you understand the data, there is nothing safer than having a readily available backup that does not require point-in-time recovery. With all of this in mind, you can modify the actual name and host type used by directly modifying the F986163 table. The key to this is that we’ve already provided
562
JD Edwards EnterpriseOne: The Complete Reference
you with the tables associated with the printer utilities. If the printer name is wrong, and it is the key to actually printing on the right printer, you can quickly change it with a simple update SQL statement like the following one. Don’t forget to commit the change if you are using Oracle. update sy812.f986163 set pcphyd='\\erpent\ntprnt1' where pcphyd='\\jdedep1\ntprnt1'
NOTE If you are changing the name of a printer, you should ensure that you do not have any default printer values defined. If you do, you will need to adjust these values as well. The following is an example of how you would also update the default printers to take into account the printer name change: update sy812.f986167 set dpphyd='\\erpent\ntprnt1' where dpphyd='\\jdedep1\ntprnt1'
Defining Default Printers To better administer which printers are used for what and to make life easier for users, you can define default printers for users based on user/role, report name, version name, environment, and logic host. If a user attempts to run a UBE without having a default printer, there will be an error indicating that no printer has been selected. If there are printers already defined in EnterpriseOne, the user can continue launching the UBE by clicking the Change Printer button on the Form menu. This will launch the Printer Search & Select form, shown in Figure 13-12, where the user can select any printers currently defined in EnterpriseOne. NOTE Default printers can be set up for EnterpriseOne users, roles, or *PUBLIC. You can use *PUBLIC to define a default printer for everyone for *ALL environments or specific environments and specific hosts. You can then make exceptions to the rules for specific user requirements.
Chapter 13:
Printing in EnterpriseOne
563
FIGURE 13-12. Selecting a printer
Default Printers On the P98616 Printers application (launched by going to the GH9013 menu and double-clicking the Printers application), click Define Default Printers. This will launch the W98616O form, which lists all the default printers currently defined on the system (see Figure 13-13). The grid form pulls data from the F986167 table in the system data source. This application will allow you add different default records based on User/Role, Report Name, Version Name, Environment, and Host. To add a new default printer, click the Add button. This will launch the W98616M form, where you can enter the following information: User/Role, Report
564
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-13. Work With Default Printers window Name, Version Name, Environment, Printer Name, Host Name, and Object Status, as shown in Figure 13-14. The User/Role field helps define a default printer record based on a single user’s name, a role, or *PUBLIC. This is a very powerful capability as it provides the ability to layer your default printer strategy. By leveraging the *PUBLIC capability, an implementation can configure a general printer for all users in a particular environment (you can also leverage specific report names and versions, which we will talk about a little later in the chapter). This *PUBLIC printer is generally a printer that all users can use or simply a placeholder record so that users do not receive an error when attempting to submit a UBE. With this type of “safety net” printer in place, a system administrator can look to the next layer of their default printer strategy. At this layer the system administrator should examine which printers particular roles (such as AP Clerk, G/L Manager) should utilize. By doing this system administrators can provide access to specific printers for users playing particular business roles. For example, you might have specific printers set up for Account Clerk users and different printers for users handling payroll functions. While this provides a high-level ability to control which printers a user playing a specific role uses, it does not allow for specific business processes. What if you have a user that needs to use a specific printer for one business process but a different one for another? EnterpriseOne provides the ability to further narrow your default printer settings by report and version name. This allows you to define a default printer
Chapter 13:
Printing in EnterpriseOne
565
FIGURE 13-14. Default Printer Revisions window based on the report or even the version that the user is utilizing. System administrators can even mix and match this functionality and set up default printer mappings for a specific report, version, and role. By doing this system administrators can automatically send output to a different printer for a specific business process. So what happens if a particular object has a number of records in the default printer table? How does EnterpriseOne know which one to use? Well, much like the OCM (Object Configuration Management) concept, the assignment of default printers follows a hierarchy. For example, assume that you have a default printer assigned to *PUBLIC for the R0010P report, another default printer assigned to a role (such as AccountClerk), and lastly one assigned to a specific user. Which of these active mappings will EnterpriseOne use when the R0010P report is executed? The answer is that it depends on who executes the report. EnterpriseOne will search for a default printer record first based on the user ID (like JSMITH), then the role,
566
JD Edwards EnterpriseOne: The Complete Reference
and finally the *PUBLIC. If you use this type of hierarchy, a user that is not JSMITH but is a member of the AccountClerk role would get the default mapping assigned to that role, whereas a user who is not JSMITH and not a member of the AccountClerk role would fall through to the *PUBLIC default printer. This capability allows administrators to tightly control where the output for a business process will be sent to and provide users with an effective printing solution. So what about the one-off and exception situations where normally a user would use the assigned default printer but in this case needs to send output to a different printer? Assuming that the system administrator gives them access to it, the user can use the Change Printers form exit. This form exit will take the user to the W98616F (Printer Search & Select) form, where the user can select a different printer. Now as this shows that user a full list of the printers available, we are always asked if there is any way to provide a user this type of access but limit what printers the user can see on this window. The only potential way to do this would be to utilize row security on the PHYD field in the printer tables. Depending on your implementation, this could have both application and performance impacts. Prior to using row security you should fully understand the costs/benefits associated with it (will this security force a full table scan? does the application require this information to complete what is being asked of it?). To continue our discussion of the Default Printer application and potential strategies, let us review the fields available to us when defining a default printer record. As we have discussed, the proper use of these fields can provide the system administrator the ability to develop a layered default printer strategy. This provides clients with a great deal of control over how to direct the printed output of an EnterpriseOne implementation. The Environment field on the Default Printer Revisions window further layers any potential printer strategy. You are very likely to have completely separate printers for your non-production/test environments. For this reason, you would use the Environment field to ensure that test printouts do not end up on your production floor. This can further isolate printing strategies for environments that serve specific purposes (conversions, training, and so on). This gives system administrators even more ability to effectively manage their systems/implementations. The Printer Name field enables the system administrator to set records for specific printers. This field, in combination with the fields already defined, helps to provide a scalable printing solution. The Host Name field defines which host a default printer has been defined for. While the EnterpriseOne solution will provide output, it depends on the hosts for spooling capabilities. This means that on each host that you define a printer for, you will need to define a print queue for that platform/host matching the EnterpriseOne printer name. For example, if we named a printer BOB, we would have to carry that name through to our print queue definition on the identified host. EnterpriseOne supports a number of different host platforms that each have different requirements
Chapter 13:
Printing in EnterpriseOne
567
for setting up printers/print queues. Our purpose here is not to review the individual platforms but to provide information about how the EnterpriseOne product interfaces with these platforms. The printer record can be defined in EnterpriseOne without a printer queue being defined on the host. This simply sets up a “fake” printer that does not produce any output. This is a standard trick to define a common printer, which users can utilize without producing output. Another trick is to define a host’s print queue to output to a file. This can provide additional functionality for EnterpriseOne implementations, who have third-party solutions that might use these file outputs. This provides another example of how configurable the EnterpriseOne product can truly be. The last field on the Default Printer Revisions window is the Status field. In this field, you enter either AV or NA. This is what allows multiple printer records for the same user/host/environment to exist in the database. This field also provides the ability to define default printer values but not to active them. This allows the system administrator to change default records quickly by simply activating or deactivating records. NOTE The F98616 (default printer table) can be cached. For this reason, to ensure that the users see the changes, it is a good idea to clear the cache on the enterprise/application servers via Submitted Jobs and the HTML servers via SAW or Server Manager. After entering the appropriate information, click OK and the information will be committed to the printer tables. The form stays open with the assumption that you will be adding additional default entries. What You Should Know Under the covers, this will add a single record to the F986167 table. This table is utilized to track default printer settings. For this reason, the table is stored in the shared system data source. To ensure the change is taken into account, it is a good practice to clear the cache both on the Application/Logic servers as well as the HTML servers (SAW/Server Manager can be utilized in 8.97).
Settings for Printing We have mentioned several times that in earlier versions of EnterpriseOne, much of the printer setup and definitions were completed in the JDE.INI. Indeed, some settings remain in today’s INI file for printing: [NETWORK QUEUE SETTINGS] PrintImmediate=FALSE
568
JD Edwards EnterpriseOne: The Complete Reference
These are settings that are put in the server’s JDE.INI file to override application settings in EnterpriseOne. Prior to making changes to this INI file, you should understand that these changes will affect all of the UBEs submitted to that server. Because this can cause quite a bit of overhead, this is not a setting that should be made on the fly. NOTE The JDE.INI file is cached, so it is a good idea to bounce the E1 services on the server once the change has been made. Print Immediate tells the server to automatically print the submitted UBE to the printer selected at launch time. Every time you launch a UBE, there is an associated printer. If PrintImmediate is set to TRUE, the UBE will automatically print the report output to that printer. EnterpriseOne ships with this setting set to FALSE. While this setting provides implementations with the ability to turn on print-immediate functionality at a server level, it is pretty rare that a company needs this high level of Print Immediate. Is there a way to adjust this to more effectively control the Print Immediate functionality? Yes; as with many things in EnterpriseOne this functionality is configurable. One of the easiest ways to do this is simply to provide users the ability to dynamically select the Print Immediate functionality. To do this the user simply needs to select the Document Setup tab on the Printer Selection window. On this window there is a check box for Print Immediate, which will submit that single run to the server as a print immediate job. This provides the user community the ability to manually choose which jobs they would like to print immediately out of EnterpriseOne. (The user always has the option of printing the job out of the Work With Server application.) This provides a great deal of flexibility to the user community at large but still requires manual intervention. So is there a way to set specific jobs in EnterpriseOne to print immediately without user intervention? To meet this need, Oracle has provided the ability to configure specific jobs submitted through the HTML/JAS user interface to print immediately. This gives clients the ability to configure individual reports to be printed immediately upon submission. To enable this functionality a system administrator would update the jas.ini file on each of the HTML/JAS servers with the following stanza: [PrintImmediate] userid1=Report1,Report2,Report3,Report4 userid2=Report1,Report2,Report3,Report4
This provides the ability to set specific reports for specific users to automatically print upon submission.
Chapter 13:
Printing in EnterpriseOne
569
NOTE These settings are for jobs submitted to a server. They are not for jobs run on a local workstation. The local workstation’s output is either immediately printed or not, based on the settings you pick when you launch the UBE. The file is not automatically printed or deleted based on these settings. See Figure 13-15 for local printing options.
Printing to a Comma-Delimited File This is an example of something that users have been asking for—the ability to create a comma-delimited file (CSV) as opposed to a PDF file. In the past, users were unable to manipulate data represented in a report unless they used Adobe Writer. A PDF is
FIGURE 13-15. Report Output Destination window
570
JD Edwards EnterpriseOne: The Complete Reference
presented as a picture to most office products, including word processors and spreadsheets. Because of this, users have been unable to do anything but print the information. If they wanted to directly manipulate data, they either created UBEs that generated flat files, exported from an application grid format, or were forced to rekey the data into the format of their choice. With the advances made in EnterpriseOne, this is a thing of the past. Users can now select CSV format upon submissions of a UBE to an enterprise/application servers. On the Printer Selection window the user can select the Document Setup tab. On this tab there is a check box for CSV (Comma Delimited), which will produce the CSV-formatted document in the PrintQueue directory on the enterprise server. See Figure 13-16. This functionality is also available to the limited fat-client users by selecting Export to CSV on the Report Output Destination window (refer to Figure 13-15). This will produce the CSV output in the local PrintQueue directory on the workstation. Now this does not mean that no PDF is generated and that EnterpriseOne only creates a comma-delimited file. First, the UBE engine creates the PDF-formatted output and then it exports the data to a comma-delimited file. On the local machine, EnterpriseOne even automatically launches Microsoft Excel to read and manipulate the data at the user’s discretion. To access the CSV format from a job submitted to the server, the user can utilize the Work With Server application. This will transfer the file locally to the workstation and open it in Excel. This enables the
FIGURE 13-16. HTML Printer Selection – Document Setup – CSV
Chapter 13:
Printing in EnterpriseOne
571
EnterpriseOne users to adjust the output to meet their business requirements. This becomes a very powerful tool to allow users to perform ad hoc changes to their output on the fly.
Importing and Exporting from EnterpriseOne Grid Forms
Although the ability to import and export data far outreaches mere printing capability in EnterpriseOne, it does provide another method of doing just that. Since it does significantly more, however, this next section deals with all of its aspects, not just printing. If you’re interested in the technology, application, and power of EnterpriseOne, we think you will find this section highly informative. The first set of questions you should be asking is what can and cannot be imported into and exported out of the EnterpriseOne suite of products. Luckily, you do not have to memorize a huge list of applications for either of these utilities. To verify whether something can be imported or exported out of EnterpriseOne, all you need to do is right-click the form (grid or otherwise) of the application itself. EnterpriseOne will automatically provide you with the option of exporting and importing if it is supported by the form type (HTML/JAS users would utilize the exits to export or import information). In general, most grid forms are compliant with exporting data.
Exporting from Grid—Ad Hoc Reporting EnterpriseOne exporting is a powerful tool, especially when you want to create ad hoc reports on the fly. You can export to different office products at will from almost any grid form in EnterpriseOne. Depending on what you have on your system and what you are trying to accomplish, you should choose the appropriate product and the range of information that you want to export. NOTE Just because you can export data from a grid format does not mean that you can import into the same format. If you want to modify EnterpriseOne data by exporting it, modifying it, and then importing it back into EnterpriseOne, be sure to verify that the application supports both prior to export. EnterpriseOne has the ability to export to the following applications: Microsoft Excel and Word, Lotus 1-2-3 and WordPro on the development clients, and Excel or Word for the HTML clients. Though both spreadsheets and word applications are
572
JD Edwards EnterpriseOne: The Complete Reference
supported, you should consider the reason you are exporting the data. The output varies based on what you are exporting. Products like Word and WordPro automatically wrap text that is too long. They also handle spacing differently than other applications. This can make the output extremely ugly. Spreadsheet applications, however, tend to maintain figures and associated spacing very well. If you are limiting the amount of data you are exporting, word processors can allow you to quickly put data into reports or documents that you are creating. However, products like Excel and Lotus 1-2-3 are generally used for export purposes. From there, the information is often brought into associated word processing applications. Exporting data out of the EnterpriseOne product provides the ability to modify it ad hoc, but are there costs associated with this? The short answer to this question is yes, there are costs associated with this type of action. As EnterpriseOne is primarily web based, users share the heap memory with each other. If users export overly large amounts of data from the grids, they can produce a situation where active users are forced out of memory to process the export request. This can cause potential performance issues in the HTML/JAS interface, resulting in what appears to be “white” screens or hanging applications. Does this mean you should not export data in EnterpriseOne? No, it simply means that some standards should be followed. Prior to 8.97, users should be encouraged to export only up to about 200 records in one pull. By controlling the amount of information being sorted in memory, you can limit the overhead that exporting causes on your HTML/JAS servers. Another option would be to provide a separate HTML server for users who require the ability to export large amounts of data from the EnterpriseOne application. NOTE With the release of 8.97 Oracle moves the effort of the export process out of the heap and onto the disk. This significantly reduces the overhead of performing exports in the EnterpriseOne application. Regardless, it is a good idea to use this functionality in moderation.
Exporting During both installation and upgrades, it is a very useful thing to be able to quickly document where you left the system. For the purpose of this demonstration, we are going to use the P01012 Address Book application. Start the P01012 application. Click Find and then right-click in the grid form. Choose Export from the menu (see Figure 13-17) and select the application of your choice. The Export Assistant will launch, providing you with choices based on your application selection. For a spreadsheet, you will have the opportunity to create a new spreadsheet or open an old one. If you choose to open an existing workbook, you will have to
Chapter 13:
Printing in EnterpriseOne
573
FIGURE 13-17. Exporting from the grid indicate the worksheet you want to export to (see Figure 13-18). If you choose to start a new workbook, the EnterpriseOne export utility will put the data on sheet 2. If you choose to export to a word processing application, the Export Assistant does not give you a choice of opening an existing document. Rather, it immediately requires you to select the range of data that you want to export prior to continuing. Once you have filled out the selections on the Export Assistant, you will need to select the actual range of data in the grid form that you want to export (in HTML you select the data prior to selecting Export Data Grid). You make this selection for both the worksheet or the word processor by clicking on the rows you want to export. (HTML provides three options for selecting the records to be exported—All, Selected, and Range.) The All selection will pull all of the row information, Selected will pull only the rows you have selected, and the Range selection allows you to select the range of cells you would like to export. After selecting how you want to export the information, click the Continue button on the Export Assistant and watch it work.
574
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-18. Export Assistant – HTML
Importing to Grid—An EnterpriseOne Powerhouse There are a small number of applications that allow you to import data directly into the grid form. Still, this is a powerful feature for the EnterpriseOne application suite. When importing, EnterpriseOne limits the number of applications that you can use to Microsoft Excel and Lotus 1-2-3 for fat/development clients (HTML clients can only import from Excel). Importing follows simple rules. The information in the spreadsheet obviously needs to be correct and in the proper format and layout. TIP You can quickly create documents to use as a template for import spreadsheets by exporting the data first. This method will create an example of exactly how your data should be formatted, the order of the data itself, what elements of data need to be included, and a good description of the data elements required.
Chapter 13:
Printing in EnterpriseOne
The Mechanics of Importing Data Directly into a Grid Form The first step in importing directly to the grid form is setting up a spreadsheet with the data you want to import and understanding the application you will be manipulating in this way. For this example, we will be using the P0004A UserDefined Codes application, but the principle will remain regardless of the application. We will be adding in several rows for the Job Queue user-defined code (98/JQ). Start by double-clicking on the application. This will bring you to the User Defined Codes window (see Figure 13-19). For the purpose of our example we will enter Product Code 98 and User Defined Codes JQ. Clicking Find will display the currently defined job queue values. (In some cases it is a good idea to start the import process by exporting information.) To start our example, we will export the information first by right-clicking on the grid and selecting the records that we want to export to Excel.
FIGURE 13-19. Exporting information to Excel – User Defined Codes
575
576
JD Edwards EnterpriseOne: The Complete Reference
This will open a new spreadsheet and populate the information selected to it. This information then can be updated to reflect the changes we would like to import into the EnterpriseOne application (see Figure 13-20). To continue our example, we will update the information in the spreadsheet to reflect some new job queues (BOB, BILL, JACK, and JIM). NOTE If you are using information that was exported originally, you will need to remove the column headings prior to importing the information to the EnterpriseOne application.
FIGURE 13-20. Example of an Excel export – User Defined Codes
Chapter 13:
Printing in EnterpriseOne
To import the information, click the Add button on the User Defined Codes window (see Figure 13-21). For a development/fat client you would right-click on the grid and select Import | Microsoft Excel. For the HTML client, choose Tools | Import Grid Data. The Open window will appear, as shown in Figure 13-22, and allow you to select the Excel worksheet you would like to import. Locate and click on the worksheet you would like to import. Enter the range of the cells you would like to import and specify a worksheet name to import from.
FIGURE 13-21. Selecting import from grid
577
578
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-22. Import to grid example – Selecting input
Click OK and the information you have defined will be imported to the EnterpriseOne application, as shown in Figure 13-23. Hot-Linked Data The Hot-Link option creates a link between the spreadsheet and the EnterpriseOne application. As data is modified in the spreadsheet, the EnterpriseOne application is automatically updated and vice versa. This allows a tremendous amount of flexibility in how the two products interact. Additionally, the Hot-Link option is available when you export data out of an EnterpriseOne grid form, but only on grid forms that support importing data and only if you choose a spreadsheet export. During a hot-link session, both the spreadsheet and the EnterpriseOne application remain open. If you close either of the applications, the link is temporarily broken. Starting up the spreadsheet will not re-establish the link.
Chapter 13:
Printing in EnterpriseOne
579
FIGURE 13-23. Example of imported data – UDC application
Other Printing Options in EnterpriseOne
Up to this point we have discussed many of the printing options in the EnterpriseOne application. Some of the options covered ranged from how to set up reports to print immediately out of the EnterpriseOne application to a solid strategy for configuring default printers. One option we have not yet discussed is printing out of Adobe. How would we print out of the Adobe Reader, you might ask? Well, this is simple; if a user views a PDF out of EnterpriseOne via the Submitted Jobs application, it will download the file to the local machine and display it with the Adobe Reader viewer (HTML clients will utilize the Adobe Reader plug-in). From here users can print the report by selecting File | Print. This will allow the user to print the file. So what is the difference between doing this and doing what has been described in this chapter up to this point? When reports are printed out of
580
JD Edwards EnterpriseOne: The Complete Reference
EnterpriseOne, they go through a PDF conversion program, which translates the information for printing. If the user prints the PDF locally, it will be run though the local driver to a local printer definition. Because this will run the output through a different conversion program, it can result in the output being slightly different between printing it locally or out of EnterpriseOne. So why would users want to print locally? This might be done to enable the user to use a personal printer without defining it in EnterpriseOne. Most EnterpriseOne implementations utilize a combination of the two solutions to provide them with the ability to meet their user’s business requirements. We will review some more regarding this printing capability in the troubleshooting section. NOTE When you are viewing PDFs in EnterpriseOne, the file is copied across the WAN. If you are dealing with remote sites, this should be taken into account when defining your printing strategy. There are a number of strategies that can assist an experienced CNC with designing this type of solution (such as software-based compression and hardware-based compression).
Troubleshooting Printing in EnterpriseOne
With the P98616 Printers application being run with a built-in printer director, what could go wrong with printing as it is defined in the EnterpriseOne product? In truth, we have had very little problem printing in EnterpriseOne when it is set up properly. Of course, we can’t guarantee that you or your CNC administrator will set it up correctly. Consequently, this section will cover some common mistakes and how you can fix them in EnterpriseOne. One of the topics we won’t cover, however, is how to set printers up on each of the hardware platforms. We are working under the assumption that your system administrator knows how to set up printers, verify that they are working with the servers, and perform basic troubleshooting for the printers themselves.
Printer Problems Some of the most common problems with printing in EnterpriseOne are really the easiest to fix. There are two types of printing in EnterpriseOne: printing from a workstation and printing from a server. Both of these machines have to have printers set up and working correctly in order to ensure that you can print from EnterpriseOne. If you can print from other applications, odds are that you can print from EnterpriseOne as well.
Chapter 13:
Printing in EnterpriseOne
581
Workstation Printing There are almost no EnterpriseOne-related problems associated with printing from a workstation. In order to print, be sure you set up Adobe Acrobat and a default printer. There are also two ways to print from EnterpriseOne on a workstation. First, if you launched a job on a server, you can view the output of the UBE on the workstation by clicking the View PDF Job button or View CSV Job button on the Work With Server Jobs application (P986110B). This will transfer the PDF or CSV file to your local workstation and then launch the appropriate application to view it. From these applications, you can print to any printer defined on the workstation. This type of printing is very straightforward and is not prone to error. The second way you can print on the workstation is also from the Work With Server Jobs application. On the Form menu, you will see an option to print. This will automatically launch the Printer Search & Select form. You can either keep the default printer or select a new printer. Click OK and the job will print directly from the server itself. It will not copy the output to your local machine and you will not be able to view the product first. NOTE If you pick a different printer type, the output may not look as good as it would have using the original printer type. This is especially true if you change the output printer to a line printer format. The most common issue when printing on the workstation is EnterpriseOne’s inability to correctly pull up the associated program for viewing the report output. If you attempt to view a PDF file, for example, EnterpriseOne will automatically attempt to launch the Adobe Acrobat Reader. If your workstation system environment variables do not have the location of the Adobe Reader, EnterpriseOne will prompt you with an error stating that it cannot find the Acrobat Reader and ask if you want to find it yourself. If you click Yes, a computer browser will launch and locate ACRORD32.EXE on your system. However, your system will not be updated with the proper location. The next time you attempt to view another job, you will have to go through this ritual again. The easiest way to fix this problem is to reinstall the Adobe Reader as a user with administrative rights on the workstation. This will ensure that the environment and registry variables are properly updated so EnterpriseOne can launch the reader. (The HTML/JAS clients will need to have the Adobe plug-in installed.) Another problem with printing from the workstation occurs if the user chooses to view the document prior to printing and receives an error stating that the PDF file does not start with %pdf. One of the possible causes of this is that the file is not correctly copying to the local workstation. We’ve seen instances of this when the workstation does not have enough free space on its hard drive to hold the PDF file.
582
JD Edwards EnterpriseOne: The Complete Reference
Creating additional room on the workstation will quickly solve this problem. There are two other reasons that the file might not copy correctly to the workstation. If there are network issues, this could cause problems. The other reason would be if the actual PDF file on the server is either corrupt or has been deleted. In either case, running the report again might be required to make sure you can access the file. Another problem with printing reports from the workstation occurs when the user specifies direct server printing to a printer that is not defined on the server. This rarely meets with good results; however, the user is almost powerless to determine why his or her job won’t print. The system administrator should be able to quickly identify this type of issue and resolve it by telling the user to select a different printer or by actually setting the printer up on the server itself.
Printing from the Server To remain consistent, we will still be working under the assumption that your system administrator knows how to set up printers, verify printing capabilities, and troubleshoot printing on the various platforms. There are several issues users can run into when trying to print directly from the server. (We described one of these issues in the preceding paragraph.) Other issues include the printer or the print queue being offline on the server itself. We’ve seen UNIX systems where a print queue will go offline and collect literally hundreds of print requests. Once the OS re-establishes communication with the printer, the print jobs will process. It is a good practice to set up some type of monitoring for your print queues to ensure that you do not have business-critical output stacking up needlessly. If you experience an issue, one of the first troubleshooting steps you should perform is verifying that the printer is set up correctly on the server and is online. When the printer is defined in EnterpriseOne, the printer conversion program(s) are automatically selected based on the printer definition. You should check the line printer settings to ensure that you have the correct information listed, including characters per inch, columns per page, lines per inch, and lines per page. In versions prior to this, however, you should also carefully verify that the conversion program is set correctly for the type of printer you are defining.
Printing with Third-Party Products
The EnterpriseOne product cannot meet all business requirements with regard to printing. One such situation might be if you want to print a particular form in multiple locations simultaneously (for example, in a retail operation). You use EnterpriseOne to enter a sales order. You have a pick slip automatically print for the customer, but you might also want one printed in a warehouse so that someone can actually get the product off the rack. You might want a third copy printed in the back room for your records. In the normal setup of EnterpriseOne, the only way to do this is to print the ticket and then reprint the ticket, selecting a different printer
Chapter 13:
Printing in EnterpriseOne
583
each time. To further complicate matters, what if you wanted to do this with centralized logic processing for hundreds of locations? As an organization, you would probably want to streamline this process. EnterpriseOne has the capability to use third-party products with excellent results that will allow you to perform a series of functions you would not be able to do using just EnterpriseOne native printing. The majority of these products take data directly from EnterpriseOne out queues and perform the printing job defined in their own systems. For a list of companies and products that have working partnerships with Oracle and their EnterpriseOne product, check the www.peoplesoft.com web site.
XML Publishing – 8.97 – The New Frontier
In previous releases of the EnterpriseOne product, companies had to utilize third-party products to deal with a number of printing requirements. While EnterpriseOne handled the basics, it did not address some of the other common requests. To tackle this issue, Oracle developed the concept of the XML Publisher. The XML Publisher was built on the open XSLFO standard and provides the ability to reduce the high cost of producing, customizing, and maintaining documents. This new product provides a variety of reporting functionality such as charts, formulas, watermarks, and graphics. To do this, the XML Publisher leverages a set of desktop tools that provide the ability to create and maintain report formats based on extracts from EnterpriseOne reports. While the XML Publisher will not meet every implementation’s requirements, this functionality is something that users have been clamoring for. One of the key components of the flexibility of XML Publisher is the result of the separation of the report layout from the data. The data collection is still handled by the base EnterpriseOne product, but users can control how the final output is presented through separate template file(s). (At the time this book was published, only a limited amount of XMLspecific content was delivered with the EnterpriseOne product. However, the standard EnterpriseOne reports can be adjusted to work with the XML Publisher application.) NOTE While the XML product was released with Tools Release 8.96, it was a basic product release that gave clients a chance to become familiar with the software. With the 8.97 Tools Release, Oracle provides much more functionality. For this reason we will focus our discussions on this release of the technology.
584
JD Edwards EnterpriseOne: The Complete Reference
XML Publishing – An Overview To gain a better understanding of the XML Publisher, we will first provide an overview of the product before taking a deeper look at some of its features. The XML Publisher product provides a range of features: Feature
Description
Report Features
Charting Conditional formatting Ability to filter, sort, or hide report columns Formulas Watermark support Rich text formatting
Design Tools
Design layout is supported in Microsoft Office Adobe Acrobat
Font Support
Subsetting and embedding External fonts Barcodes MICR
Document Generation
Output formats PDF RTF HTML EXCEL XML PPT
Language Support
No dependency on installed languages Not dependent on database character set Creates XLIFF file for each translation
Security
PDF security levels: Read Only Editable Copy Text Printable Password Protection
Delivery
Printer E-mail Can burst output to multiple destinations
Chapter 13:
Printing in EnterpriseOne
585
These features represent a great leap forward in printing and document management functionality for the EnterpriseOne product line. By splitting the data collection from the templates that control how the report output is presented, Oracle provides the XML Publisher with a great deal of flexibility. At run time, the designed template files are merged with the report data to allow for the creation of a number of different outputs to meet a variety of business needs.
XML Publishing – Process Overview Utilizing the combination of the templates and report definitions, users can publish output that can be leveraged throughout the EnterpriseOne implementation. The development of customized reports via the XML Publisher involves several steps: 1. Create a template file (via Oracle’s Template Builder or another desktop application). 2. Add reporting objects to the XML Publisher Object Repository (P95600). This would utilize the template name for the object name. 3. Develop a report definition (P95620) to link the batch application (UBE) and the template. 4. Generate an XML data file. 5. Load the XML data and design the template. 6. Update the report definition in the Report Definition application. 7. Upload the template to the XML Publisher Object Repository. 8. Submit the report definition. 9. Access the submission details via Work With Submitted Jobs (P986110B). 10. Leverage the Report Definition Output Repositories (P95630). a.
View detail of the output.
b. Output delivery. c.
The output itself.
XML Publishing – A Deeper Look If you are going to leverage the XML Publisher application, one of the first steps is to define a base template in the XMLP repository.
586
JD Edwards EnterpriseOne: The Complete Reference
NOTE If you have a global implementation, you would need to also add a localized template and translations objects into the XMLP repository (this would allow you to perform the translations you require). The P95600 (XML Publisher Object Repository) application, shown in Figure 13-24, is used to define a base template. Click the Add button on the XML Publisher Object Repository application. This will take you to the Add XML Publisher Object to Repository form (see Figure 13-25). On this form you will need to enter information for the following fields: ■
Object Name
■
Object Description Template USA).
Name of the template you are defining. Description for the template (such as Base
FIGURE 13-24. XML Publisher Object Repository
Chapter 13:
Printing in EnterpriseOne
FIGURE 13-25. Add XML Publisher Object to Repository
■
Object Type
■
Product Code It is a good idea to utilize the 55–59 protected client product codes.
■
Product System Code system codes.
■
Object Region
■
Object Language This field will hold the value representing the language defined for the object.
Type of object (such as TR for template).
It is a good idea to utilize the 55–59 protected
This field defines the region for the object such as U.S.
587
588
JD Edwards EnterpriseOne: The Complete Reference
From the File dialog box, navigate to the XMLP template file on the local workstation. (These templates can be created using Microsoft Word, Microsoft Excel, or Adobe Acrobat. We will not go into detail on how to generate the template file, as this is more of a development activity than a CNC activity. However, if you want more information on this topic you can refer to Oracle’s XML Publisher Report Designer’s Guide.) Once you have located and selected the template, click the Open button. This will take you to the Update XMLP Object Effective Dates window (see Figure 13-26). In the Effective Dates section of the form, you can select a start date and an end date for the template. These fields indicate a date range when the objects are available for use. This allows clients to maintain multiple, slightly different versions of the same object. If you want the object to be used indefinitely, do not specify an end date.
FIGURE 13-26. Update XMLP Object Effective Dates window
Chapter 13:
Printing in EnterpriseOne
589
NOTE If no start date is provided or the date is in the future, the object will be inactive and will not be used. If you happen to have a global implementation, you might need to add a localized template. In the XML Publisher Object Repository application (see Figure 13-27), find the template that you previously added. Select the line and click on the row exit Add Localization. This will give you access to the Add XML Localized Template to Repository form (see Figure 13-28). On this form the user will need to fill out the following fields: ■
Object Description localization is for.
■
Object Region Enter the region for your localization (such as RU for Russia).
Provide a description containing the country that the
FIGURE 13-27. XML Publisher Object Repository – Localization
590
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-28. Add XMLP Localized Template to Repository
From here click OK to accept the entry and select the template file when the File dialog box appears (this will be the template file generated by the developer). Just as with the standard template, you will be provided the opportunity to define start and end dates for the localization template. Once you have completed your selection, click OK. It is important to remember that localization is a different version of an existing template that translates static text from one language to another and also excludes specific data elements (when compared to the base template). If required, users can also add translations. Now that we have discussed how to add the template to the XML Publisher Object Repository, we will move on to reviewing report definitions. Report definitions denote the information that XML Publisher needs to process and deliver output in EnterpriseOne. A simple way to think of report definitions is recipes (they tell us what should go in the cake or, in this case, report output). Report definition
Chapter 13:
Printing in EnterpriseOne
591
details are identified through the XML Publisher Report Definitions (P95620) application. The following components would be included in a report definition: ■
UBE and option version
■
Associated templates (transformation and localizations could also be included)
■
Output types
■
Language options
■
Bursting options
■
Delivery options
To create a new report definition, we would need to open the P95620 (XML Publisher Report Definitions) application, as shown in Figure 13-29.
FIGURE 13-29. XML Publisher Report Definitions
592
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-30. Add Report Definition
NOTE Even though the XML Publisher Report Definitions (P95620) application is available on both the web client and the fat client, you must use the fat client to create new report definitions. Clicking Add on the XML Publisher Report Definitions window will take you to the Add Report Definition window (see Figure 13-30). On this window the user will need to fill in the following fields:
Chapter 13:
Printing in EnterpriseOne
593
■
Report Definition This is the name of the report definition object. It is a good practice to use a naming convention like RDXXXX where XXXX is the name of the report you are defining the definition for.
■
Description possible.
■
Product Code It is a good practice to use the 55–59 protected product codes. This will prevent you from running into issues should Oracle decide to ship additional XML objects later on.
■
Product System Code It is a good practice to use the 55–59 protected product system codes. This will help prevent you from running into issues should Oracle decide to ship additional XML objects later on.
■
Source UBE definition.
■
Source Version This is an optional field to define the version to be used for the report definition.
It is always a good idea to provide as detailed a description as
This will be the source batch application for the report
After clicking the Next button, you will be taken to the Add Report Definition – Languages and Output Types window (see Figure 13-31). On this window you can define the following factors: ■
■
Output types: ■
PDF
■
RTF
■
HTML
Default Languages: ■
All Active Languages If selected, all languages for the defined active templates, localized templates, and translations will process when the report definition is submitted to the XML Publisher.
■
User Preference Language If this option is selected, the XML Publisher will use the language preference for the signed-on user. A user’s language preference is defined in the user’s system profile.
594
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-31. Add Report Definition – Languages and Output Types
Clicking on the Next button will guide the user to the Add Report Definition – Bursting and Delivery form (see Figure 13-32). This form provides the user with a number of options: ■
Burst Report definition
■
Burst Field You can define any field for bursting within the UBE versions being used. Normally, when you burst a report you break on a level-break header section.
■
Printer
■
Address Book Number E-mail This option will send output to the e-mail address associated with an address book number.
Select this option if bursting will be performed for a report
This option can be used to direct output to a printer.
Chapter 13:
Printing in EnterpriseOne
595
FIGURE 13-32. Add Report Definition – Bursting and Delivery
■
Distribution List Type This option will send the output to all members of the distribution list associated with the provided Address Book number.
■
E-Mail Address This option will send the output to the e-mail address defined in the field.
■
Data Driven E-Mail This option e-mails the output based on the data generated by the source UBE.
■
Distribution List Type Sends output to all members of a distribution list and distribution list type associated with the data.
■
Data Driven Recipient This option can be used to send output to recipients based on data from a particular data item within the XML output.
596
JD Edwards EnterpriseOne: The Complete Reference
After configuring the bursting/delivery options required for a report definition, the user would click End, which would take them back to the XML Publisher Report Definitions (see Figure 13-33).
Configuring a Default Report Definition for a UBE Version EnterpriseOne provides the ability to define a default report definition for a UBE version. This is useful to clients if, as a default, they would need the report definition to execute when this UBE is submitted. A good example of a business process that might require this would be preparing checks. This type of output might need a default report definition to address the custom fonts required for checks. To associate a default report definition for a UBE version, a developer/user would need to check that version out on their fat client. (This will ensure that we have the local
FIGURE 13-33. XML Publisher Report Definitions
Chapter 13:
Printing in EnterpriseOne
597
specs and allow us to update the version information with the identified report definition.) Once the check-out has been completed, the user would highlight the version in the Batch Versions application and access the Version Detail setting from the row exit, which will take you to the Advanced Version Prompting window (see Figure 13-34). On the Version Detail window a report definition can be defined for the version by accessing the Report Definition form exit. See Figure 13-35. This form exit will bring up the Default Report Definition window. This window provides the ability to define a report definition for the version. Once the report definition has been selected, the version will need to be checked back into the patch code. This report version will now automatically call the defined report definition when submitted through batch versions.
FIGURE 13-34. Batch Versions – Advanced Version Prompting window
598
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 13-35. Version Detail – Report Definition Submission Search & Select window
RD Execution and Output/Delivery Management Now that we have added the templates to the repository, defined the report definition, and set our default definition for a report version, we can finally execute the definition. In EnterpriseOne a report definition can be submitted to the XML Publisher via the XML Publisher Report Definitions (P95620) application or (if a report definition has been associated with a batch version) through the Batch Versions application (P98305). Let us first discuss submitting the report definition through the XML Publisher Report Definitions application. Upon opening the application, the user would take advantage of the QBE fields to locate the report definition they would like to submit. Once the definition has been located, the user would highlight the definition and select the row exit Submit. In addition to being prompted for the standard data selection and processing options, the user will now also be prompted with the
Chapter 13:
Printing in EnterpriseOne
599
Submit Report Definitions form. This form allows the user to adjust the output and delivery options prior to submitting the report to the XML Publisher. Once the user is satisfied with their entries, they can click OK on this window to complete the submission. Users can also submit a report definition to the XML Publisher application through the Batch Versions application (which in most cases would be the most common way a general user would submit a report definition). When a user submits a report version with a report definition attached to it, the report definition will automatically be submitted to the XML Publisher application. Now as with standard batch applications, we have submitted the UBE to process on a Application/Enterprise server and produce results. So how can we tell if the report definition has finished processing? To meet this need Oracle has provided the Report Definition Job Control Search (P95630), shown in Figure 13-36. Once this
FIGURE 13-36. Report Definition Job Control Search
600
JD Edwards EnterpriseOne: The Complete Reference
application has been launched, the user can search on the UBE execution Host and the user ID. The user can also use the QBE lines on the grid to assist them in locating the report definition that they submitted. (You will note that this application has a very similar feel to the Submitted Jobs application.) Once the report definition has been located, the user would verify the job’s status. Just as with standard UBEs, report definitions use status to show the job progress. The available statuses for a report definition are as follows: ■
D
XML Publishing Done
■
E
Data Extraction Failure
■
P
Data Extraction
■
X
XML Publishing
■
FD
Delivery Error
■
FL
Language Unavailable
■
FO
Output Type Invalid
■
FR
Report Definition Invalid
■
FS
System Error
■
FT
Template or Transformation Unavailable
■
FX
XML Publishing Error
NOTE The Report Definitions Output Repositories application is also accessible from the row exits in the Work With Submitted Jobs (P986110B) application. Once the report definition completes processing, it can be viewed through the Report Definition Job Control Search window. This window provides the ability to view the created output, republish the report definition (much like reprinting a standard UBE), print the output, access the delivery details for the output, and redeliver the output.
Managing Report Definition Output Once a report definition has been submitted to the EnterpriseOne XML Publisher, the output details are stored in the Report Definition Output Repositories (P95630).
Chapter 13:
Printing in EnterpriseOne
601
As the report definition output is archived as an XML file, the output can be republished without rerunning the UBE. As you can see, this application closely resembles the Work With Submitted Jobs application. Just as with the Work With Submitted Jobs application, it is possible to secure users from access to any report definitions except their own. Much like the standard Work With Submitted Jobs application, this new application should be monitored for report definitions that are no longer required. (A little care and feeding in EnterpriseOne goes a long way.) NOTE The R9861101 UBE can be used to delete report definition jobs, and we would recommend adding this to standard maintenance practices. As you can see, by leveraging the concept of templates and report definitions, the XML Publisher can provide a great deal of functionality to the EnterpriseOne application. This tool provides a great deal of depth to the system and allows for the customization of enterprise-wide reports.
Summary
In this chapter, we have detailed multiple printing solutions in the EnterpriseOne suite of products, including how to set up printers in EnterpriseOne, print from both servers and workstations, troubleshoot various issues, integrate third-party products, and utilize the 8.97 XML Publisher. Printing in EnterpriseOne has undergone drastic changes—all for the better—and it represents a mature solution that is able to change to meet your company’s needs.
This page intentionally left blank
CHAPTER
14
Web Servers and Portals 603
604
JD Edwards EnterpriseOne: The Complete Reference
O
ver the years technology has advanced greatly. In the 1990s we would never have thought that we could move inventory to a different distribution center by using our cell phones, or even buy a car on the Internet. All of this technology progress has been driven by the engine of business requirements to serve their customers. This is also how JD Edwards EnterpriseOne has evolved. In the beginning EnterpriseOne was a client/server architecture. This has evolved and changed so that now all users access the system through an HTML interface, as of release 8.11. This allows the application to scale extremely well. When the application is configured correctly, you can have well over 100 users per Java Virtual Machine (JVM). This change in technology has also allowed EnterpriseOne to take advantage of portal technology. You can now use the software package to roll out several selfservice applications, such as vendor self-service, customer self-service, and even open enrollment. This has allowed EnterpriseOne customers to extend the reach of their system outside of their firewall with a very limited effort. As time continues to march on, this new architecture lends itself to taking advantage of Service-Oriented Architecture (SOA). Now web services can be published and used from the system. Since these are standards based, they can be called from within the HTML or portal user interface for the system.
E1 HTML Server, Formerly Java Application Server (JAS)
If you have been using EnterpriseOne for a while, you will know this machine as a Java Application Server (JAS). However, the only constant in life is change. With the newer releases of EnterpriseOne Oracle is now referring to this as the E1 HTML Server. This is the code for EnterpriseOne applications that allow you to use a web server. In other words, this is what allows you to present users with HTML screens in order to use the system. Now, this code line does not work alone. It simply handles how the system operates, finds the screens, and provides the presentation layer for users. How do these screens get presented to the user? Well, that is where the use of industry standards comes into play. A Java Enterprise Edition (J2EE) servlet loader is used to handle this; there are many on the market such as Tomcat, WebSphere, or Oracle Application Server. Does EnterpriseOne work with everything on the market? Currently it is only supported for use with WebSphere and Oracle Application Server (OAS). It is not supported with use of other products such as Tomcat.
Chapter 14:
Web Servers and Portals
605
This means that a new customer or even someone who is upgrading has a choice as to what software they use to serve their HTML pages for the system. They do not have to use Oracle’s solution and only Oracle’s solution. WebSphere has been around a long time and is a very valid software package.
Server Manager Overview
Server Manager is a wonderful new application that was introduced with foundation code 8.97. Oracle development used to have to maintain installation programs for each platform, one for Intel, one for HP9000, one for Linux, one for AIX, and one for the AS/400. As you can imagine, this was a lot of work. So they got the great idea of using a single tool to deploy the code for all platforms. Thus the concept of Server Manager was born. In addition to giving you the ability to install the EnterpriseOne HTML Server and other server types, this application replaces the existing Server Administration Workbench (SAW). In this section we are only going to discuss Server Manager with regard to what you need for installing the EnterpriseOne HTML Server. For details on the full functionality of Server Manager, refer to Chapter 12.
Architecture Overview Prior to getting into the details of installing the HTML Server, you need to first understand the basic overview of the architecture. You see, as of foundation code 8.97 and the introduction of Server Manager, there was a significant architecture change. You now can install different software components from one location. How is this possible? Magic? Well, not exactly. The Server Manager software is installed in a specific location. Oracle and the authors recommend using the deployment server. This location hosts Server Manager, which can be accessed from an HTML screen. This machine is also a software repository for loading code onto the different servers. You will now download software, such as a foundation code, to this repository. Once you get the code to the machine with Server Manager installed, you then need to get the software pushed out to your servers, such as an EnterpriseOne HTML Server. To do this you install an agent on these servers. This agent communicates with the Server Manager software. This allows you to move the software out to your web server and then deploy the code.
Installing EnterpriseOne HTML Code Using Server Manager Once you have the agent installed on your EnterpriseOne HTML Server, using either WebSphere or Oracle Application Server, then you need to get the software out to the server and distribute it. To do this you use Server Manager. We will cover
606
JD Edwards EnterpriseOne: The Complete Reference
this at a high level; if you require more details, Server Manager is covered in Chapter 12. NOTE WebSphere or Oracle Application Server must be installed with the appropriate patches along with the Server Manager agent. Also, you will need to have installed the Java Database Connectivity (JDBC) driver through Server Manager. See Chapter 12. To get started you will log in to the Server Manager window (see Figure 14-1). Once you are logged in you will need to take a Quick Links exit to get started. The first step is to get the software to your EnterpriseOne HTML Server. To do this you simply click the Managed Software quick link.
FIGURE 14-1. Server Manager quick links
Chapter 14:
Web Servers and Portals
607
This quick link takes you to the Upload Software Components window (see Figure 14-2), which allows you to find the software you want to push out and install. When you download foundation code updates from the Oracle Update Center, they will be in a par file format. It is recommended that you install Server Manager on your deployment server and also download the foundation code updates to this server as well. From the Upload Software Components window, you will click the Browse button to find the software you want to move to your EnterpriseOne HTML Server. When you click the Upload button, the software will then be moved from the deployment server to your EnterpriseOne HTML Server. Server Manager uses the agent to communicate and move the file between the machines. When you are uploading the software, you will see a window telling you the software is uploading. When the upload is complete, you will see the component on the Manage Software Components window. Now that you have the software on
FIGURE 14-2. Server Manager Upload Software Components window
608
JD Edwards EnterpriseOne: The Complete Reference
your server, you must distribute the software so you can use it. At this point you have only moved the software to the machine. To distribute the software, you will select the software component that you want to distribute. You then need to select the managed home; this is the agent on the server to which you want to distribute the software. Then you simply click the Distribute button. This will actually distribute the software to your server. These steps are the same for EnterpriseOne HTML Servers using WebSphere or Oracle Application Server (OAS). Refer to Chapter 12 for additional details on installing the HTML code using Server Manager.
WebSphere vs. Oracle Application Server Let’s get ready to rumble! In this corner you have a part of the blue stack, which has been a proven player in the market for years. It is IBM’s contender, WebSphere! In the other corner, wearing the red trunks, you have a real heavyweight contender, Oracle Application Server. So how do you decide which product to go with? This is a question that the authors are often asked. Which is better? Well, to answer the question, you need to ask the correct question. Which is better for your company? Both of these products have been proven in the market over years of use. WebSphere has been a supported choice for EnterpriseOne for over seven years. Oracle Application Server is newer to EnterpriseOne, but has been used for years with Oracle’s E-Business Suite (EBS) product. When evaluating both products, you need to see what is right for you. You do this by asking some simple questions. Do you have in-house knowledge of either product yet? Is platform a consideration? Do you already have a license agreement in place for one product? This should be a business decision. From a technical standpoint both products provide the same base functionality. Both have a loadbalancing software feature in them. Both can be configured for multiple Java Virtual Machines (JVMs). Both are installed and running live at EnterpriseOne customers. Both have shown that they can perform well with the software. So are there any real differences? Yes, there are some minor differences. If you are going to use Oracle’s identity management, BPEL, or BI Publisher application(s) in the future or for your implementation, you will need Oracle Application Server. If you want to maintain your J2EE products on the IBM iSeries platform, WebSphere is the only application server that runs on that platform. It does not make sense to maintain two different software packages in-house, so you should use this for EnterpriseOne as well. The other difference would be your comfort level with either package. If you do not already know WebSphere or Oracle Application Server, then you will be facing a learning curve, which will take time and money to move through. So take this into account. We like to think of this as an argument between which truck is better, a Chevy or a Ford. You will have diehard supporters on both sides who will always say their
Chapter 14:
Web Servers and Portals
609
selection is the best. Although there are minor differences, both are trucks and both accomplish the same base task.
Definition of Terms When you start working with web servers you will hear a lot of new terms that may be confusing at first. Since we will be using these terms throughout this chapter, we thought that we would take a minute to cover some of them and ensure you have a good understanding of these base concepts prior to diving into some of the more complex items. With an HTML architecture, you are now putting Java into your architecture. A lot of existing EnterpriseOne customers are jumping up saying, I don’t know Java and I run the web servers all the time. You do not have to know Java to install and maintain the EnterpriseOne web servers, but that does not mean it is not there. Oracle ships compiled Java class files for their EnterpriseOne HTML Server code. Although you do not need to know Java, an understanding of some basic terms will be very useful. The following list shows some of these critical terms: ■
J2EE This stands for Java Enterprise Edition. Widely considered to be a formal standard specification in which Java APIs are created.
■
OC4J
■
Java Multiplatform object-oriented programming language developed by Sun Microsystems.
■
Application server In the information systems industry this is thought of as a web server. EnterpriseOne uses the term “application server” for referencing a server with host code installed on it, but no database. To avoid confusion, we will use EnterpriseOne application server when referring to a server running host code.
■
Applet
■
Servlet A Java object that receives a request and generates a response based on that request.
■
Portlet portal.
■
Portal A web site that functions as a gateway to other common web interfaces.
■
Server Manager JD Edwards EnterpriseOne life cycle management tool to manage the entire architecture from installation, configuration, maintenance, and troubleshooting.
Oracle Container for Java.
A small stand-alone Java application.
A pluggable user interface that is managed and displayed in a web
610
JD Edwards EnterpriseOne: The Complete Reference
■
JAR file
■
HTTP Hypertext Transfer Protocol, a communication protocol to transfer information; typically for intranet and Internet consumption.
■
URL Universal Resource Locator, the address to locate information on the intranet and Internet.
■
Java Virtual Machine (JVM) A key piece of technology for the EnterpriseOne architecture. This is a platform-independent environment that converts Java code into language that the machine can understand. This is the technology that converts the EnterpriseOne code into presentable screens. You can have multiple Java Virtual Machines on one physical machine.
Java archive file, containing precompiled Java classes.
Oracle Application Server Let’s start our conversation on the installation, troubleshooting, and tuning of the web server using OAS. In this section we are going to cover how you should approach installing your web servers and ensuring their performance using OAS. NOTE Oracle Application Server is part of the red stack, which is Oracle’s technology stack including their database solution. You will sometimes hear installations using Oracle Application Server referred to as a red-stack installation.
Installation of EnterpriseOne Using OAS Prior to downloading a single byte of software, you must perform a key task— planning! Failure to plan your installation can cause you unnecessary pain and expense later on. The authors recommend a planning session to discuss and lay out your entire architecture prior to attempting to install the software. You will need to determine whether you are going to have a high-availability solution in the architecture. If so, how are you going to accomplish this with your web servers? Are you going to use software functionality provided with Oracle Application Server or a hardware solution? What is going to be your disaster recovery solution? How are you going to manage the user load on the different web servers? What will be your maintenance window to apply patches to the servers? These questions need to be answered up front prior to spinning a single CD. One of the authors heard a saying years ago that still holds true today. He calls it the “six Ps saying”: Poor Planning Probably Predicts Poor Performance. With something as critical as the user presentation layer for your ERP system, this saying
Chapter 14:
Web Servers and Portals
611
directly applies. If this layer is not planned and configured correctly, the users may develop a poor perception of the system. Even if their issue is resolved later, you will be fighting a perception issue, which is very hard for an IT organization to overcome. So do everything in your power to avoid the poor perception from the user community up front by doing your due diligence and planning. TIP Always verify the latest technical requirements prior to the installation of a new web server. From time to time different requirements, such as Java Developers Kit (JDK) or JDBC levels, change. The authors speak from experience: This will save you time and effort in troubleshooting odd errors.
Running the Setup for Oracle Application Server Prior to installing the EnterpriseOne HTML Server, you need to load OAS. To do this you first need the proper software. Oracle allows you to download this software from their e-delivery web site, http://edelivery.oracle.com/. NOTE You must be licensed to OAS in order to legally download it from the e-delivery site provided by Oracle. Now that you have the software, you must install it. Be sure that your machine meets the documented minimum technical requirements. Then run the setup.exe file. This will bring up a wizard to guide you through the installation process (see Figure 14-3). You will need to enter the installation directory for OAS, and then it is important to select the Advanced Install option. As you advance through the installation process, you will need to make some selections to ensure the success of your installation of OAS with EnterpriseOne. When you get to the window that asks you for the installation type, you will need to select J2EE Server and Web Server. This installation option will give you the container for the OC4J. It also includes HTTP Server, Oracle Enterprise Manager, Application Server Control, and Oracle Process Manager and Notification Server (OPMN). Further on in the installation process you will get to specify the port configurations. Most of the time you will want the installer to set this up for you automatically, unless you are very familiar with Oracle Application Server. In that case, you can specify the ports manually.
612
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 14-3. Defining the installation directory for Oracle Application Server
When you get to the window that is labeled Administration Settings (see Figure 14-4), you need to pay close attention to the selections you make. You will need to specify an instance name and the application server administrator password. Ensure you check the box below this saying “Configure this as an Administration OC4J Instance.” If you do not select this option, you will not be able to use the Enterprise Manager Console for this instance. NOTE If you forget to create the OC4J instance as administrative, it is possible to manually configure it. Reference the Oracle Metalink site for instructions on which files to manipulate.
Chapter 14:
Web Servers and Portals
613
FIGURE 14-4. OAS installation Administration Settings window
You will then be presented with a cluster topology configuration. Press the next button to move onto the next window. At the end of the installation wizard you will get a summary window. This will show you all the options you have selected. When you click the Install button, the software will be installed with these options. When the process finishes, you will need to be sure to apply the latest patches to the Oracle Application Server. These can be found on Oracle’s web site. Starting Oracle Application Server Now that you have the thing installed, it might be a good idea to actually start it up before you try to use it! This is very simple to do. On the Windows platform you simply go to the services in Control Panel and start the two services that were installed as part of the OAS software installation, if you install releases prior to 10.1.3.1. If you are installing OAS 10.1.3.1, there will only be the process management service. You can shut down the server in the same manner.
614
JD Edwards EnterpriseOne: The Complete Reference
The following services are shown, where instancename is the name you specified for the OAS instance during the installation process. ■
OracleinstancenameASControl
■
OracleinstancenameProcessManager
TIP You can also start and stop the Oracle Application Server from the DOS command line. Simply navigate to the directory where you installed the software, referred to as \opmn\bin. Once you are there, type opmnctl startall to start the server and opmnctl shutdown to shut down the server. Oracle Enterprise Manager One of the nice things about OAS is the number of tools you get when you install the software. The main tool you will use with OAS is Oracle Enterprise Manager. This tool allows you to work with your JVM. This is the main tool that you will use to change your configuration files for OAS and start and stop your instances. To access Oracle Enterprise Manager go to http://machinename:Port/em. The machinename is the name of your server where you installed OAS. The port is the port number that Enterprise Manager is running on. This is normally the 1810, 1811, or 1812 port. NOTE To find the exact URL, reference the file \install\readme.txt to access the Enterprise Manager. When you go to this URL you will be prompted for your OC4JADMIN user and password (see Figure 14-5). This is a user and password that you defined during the OAS installation. Once you are logged in to the Oracle Enterprise Manager, you will be able to see the number of hosts, application servers, OC4J instances, and HTTP server instances. You can perform maintenance, such as starting and stopping your OC4J instances, from this interface (see Figure 14-6). You can also see the amount of CPU and memory being used by each instance. This is very useful in seeing how much of your computing power is being taken up by what part of your web server.
Chapter 14:
Web Servers and Portals
615
FIGURE 14-5. Oracle Enterprise Manager sign-on
Server Manager In order to install the EnterpriseOne HTML Server on OAS, you will need to use Server Manager. See the “Server Manager Overview” section at the beginning of this chapter for information on moving code to your Oracle Application Server.
Troubleshooting Troubleshooting is a topic we probably could write an entire book on. There are always small things that will jump up and bite you. However, due to our limited time, we will just throw out some areas for you to look at. The first thing that you should always do when you get an error is check your log files. To help you with this, we are going to talk about some important log files. The first question would be, which log files are we going to be looking at? You will have log files for your EnterpriseOne HTML Server, your HTTP, and Oracle Application Server log files. Let’s start with the Oracle Application Server log files. These main log files will give you information on the OAS server in general. So if there is an issue with this software instead of EnterpriseOne, you would want to look in these logs. These can be found at X:\product\10.1.3.1\OracleAS_1\j2ee\home\log, where X is the drive letter you choose during the installation.
616
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 14-6. Enterprise Manager application server control
Another important set of log files is the HTTP log files. If the user cannot get through HTTP, they will never reach your EnterpriseOne HTML screens. To review these log files you can go to X:\product\10.1.3.1\OracleAS_1\Apache\logs. Under this directory you will find access and error logs. The access logs can be useful in determining what is happening on your web server. The EnterpriseOne HTML Server logs are in a new area as of foundation code 8.97. You see, these log files now reside under the JDE_HOME, which is set up during the Server Manager agent installation process. You can find your log files under X:\JDE_HOME\targets\NAMEOFE1HTMLSERVER\logs. Under this directory you can find your log files specific to your EnterpriseOne HTML Server. These log files are very helpful in troubleshooting issues on the client presentation layer.
Chapter 14:
Web Servers and Portals
617
Tuning OAS Let’s talk about something near and dear to all users’ hearts. Performance! The EnterpriseOne software scales very well and can perform very well. However, just like a race car engine, if configured incorrectly, the system can perform miserably. In professional racing the pit crew and mechanic really make or break a race team. When you are looking at your EnterpriseOne system you need to approach it in the same manner. You need to either have someone with experience come in and help guide you along the path or hire them outright. If not, you may not realize the full potential of your investment. Where should you start with tuning the system? Good question. The first thing to do is your homework. Oracle and the industry experts have all put a lot of good material together for you, so you don’t have to totally reinvent the wheel. You can find these documents on the customer connection site. There are different levels of tuning. You can tune the JVM, you can tune the server, and you can also ensure that your architecture is not causing a bottleneck. Multiple Java Virtual Machines Let’s start with utilizing the full potential of your architecture. To do this you need to look at how you are going to set up your architecture to support your users. You can scale the EnterpriseOne solution on OAS in two different ways. You can scale vertically or horizontally. When you scale vertically you are using all the resources of a large machine. So you are ensuring that all the CPUs and memory are being utilized. The other form of scaling is horizontal. This means that you are placing the user load across multiple machines. Let’s talk about setting up OAS to balance the load on a single large machine or vertical scaling first. To do this you need to first go to the Enterprise Manager, which is installed when you install OAS. Once you are logged in to the Enterprise Manager, go to your application server instance. Then you need to select the Administration tab and go into the server properties (see Figure 14-7). NOTE The look and feel of 10.1.3 is slightly different. Although you get to the server properties in the same manner, where you define your number of virtual machines is simply called number of VM processes instead of default_island. There is a concept with OAS of default_island for Java Virtual Machines. What this means is, how many JVMs are you going to configure to run on this application server instance? On the Properties tab to the right of the default_island, change the number of processes to equal the number of Java Virtual Machines you want to configure for your server.
618
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 14-7. Server properties in Enterprise Manager to configure multiple JVMs
TIP This setting can also be changed from the EnterpriseOne Server Manager. Now you are probably saying, wait a minute. I have only installed one OC4J instance of EnterpriseOne. Well, you are correct, but changing the default_island value enables two OC4Js instances based on your EnterpriseOne application. This means you do not have to manually create another instance or port definition. So if you come in on port 95 the OAS software will distribute the load across two OC4J instances. This allows you to better utilize your resources with an easy configuration change. However, you need to be sure that you have enough memory on the machine to handle multiple Java Virtual Machines. The OAS software will use your heap size setting to create the other instance of the OC4J. So if you do not have enough memory to support this, then you will have issues.
Chapter 14:
Web Servers and Portals
619
Now let’s move on and talk a little bit about horizontal scaling. There are advantages to both horizontal scaling and vertical. With horizontal scaling, if you lose a machine, your users will still have access to the EnterpriseOne system, as they will be redirected to a different machine. TIP You can do both horizontal and vertical scaling in your architecture at the same time. This allows you to build in machine redundancy and also optimize the resources used on each server. To set up horizontal load balancing you will need to plan ahead. You see, when you set up horizontal load balancing, you need to make this decision in advance. You will need to configure a farm for the cluster during the installation of OAS on the first server. You do not want to create another farm on the second server, as this server will join the first farm that you created. Once you have completed the Oracle Application Server installs on both machines, then you are ready to start configuring the load balancing. Now to do this you need to create a cluster. A cluster is a definition of OAS instances that are to be load-balanced. To create this cluster, log in to the Enterprise Manager, under the farm you created during the installation, and click the Create Cluster button. Name your cluster a logical name that makes sense to you, such as E1NorthAmericaProd, showing it is an EnterpriseOne production cluster for North American users. Okay, we have created the cluster, but we have not told the cluster about our instances of the EnterpriseOne HTML Server yet. To do this we need to join the cluster. Prior to moving on, let’s take a minute to discuss what the cluster really does for you, besides load balancing. This technology allows you to replicate a configuration across multiple instances. This means that your level of effort to maintain the system goes down because the same configuration is used for all the instances of EnterpriseOne HTML or Java Application Servers. However, this also means that all your machines should be installed in the same fashion. This means that if on the first machine the EnterpriseOne Java Virtual Machine is installed on the C drive in X directory, then the configuration needs to be the same on the second machine. If you follow the same configuration, you do not have to do additional editing and setup later. Having this standard makes it much easier to both maintain and administer the system. So you select the instance that has the configuration you want to push out. For example, suppose that the initial heap size is set to 512MB on this instance. Add this instance into the cluster. Then you can add the second instance into the cluster. The software will automatically replicate that configuration to the second instance, thus creating an OC4J for you. Pretty handy for rolling out another instance!
620
JD Edwards EnterpriseOne: The Complete Reference
Now that you have your farm set up and your instances defined in the cluster, let’s discuss how you balance the workload across the cluster. The first thing you need to do is decide which machine will be your main HTTP server. Once you decide this you need to configure the HTPP on this server. You do this by logging in to the Enterprise Manager and selecting your instance, HTTP server, administration, and advanced server properties. Once you are here, you will be changing the httpd.conf file to enable load balancing between two separate servers, each with their own EnterpriseOne Java Application Server installed on them. To do this you need to tell HTTP about your secondary server. In the httpd.conf file you will see several entries: ■
Listen
■
NameVirtualHost defining.
■
OC4JMount This is the name of your instance and OC4J server. This is how OAS knows about the instance as well as the OC4J.
This is the port that HTTP is listening on. This is the name and port number of the server you are
So to complete the load balancing, you will need to define the port, say 95. You will then need to enter your virtual host name and port. So say your second server is named E1NA2 and is using port 95. You would put 95 for the listen port and E1NA2:95 for the virtual host name. Finally you would put your OAS instance name on the second server followed by a colon and then the OC4J name. This defines the second machine to the HTPP. Thus OAS will be able to balance the load across the servers. Now within HTTP you can use several different forms of load balancing. These include round robin, random, and metric based. In the round robin form, the request goes through your servers one at a time. The random form is selfexplanatory and the metric-based form will actually make decisions on which OC4J, E1 Java Virtual Machine, to send the request to based on how busy they are. The authors see the round robin and metric-based load balancing the most often. Web Cache Up to this point in the chapter we have discussed how you would configure multiple Java Virtual Machines in OAS and how you would configure HTTP to recognize this. However, one thing we did not talk about is how to handle a single point of failure for the HTTP. In our examples in the preceding section, only one HTTP was defined. If you lose that machine you would lose connectivity to your EnterpriseOne system. The first rule in high availability is no single point of failure. So how do you resolve this? Well, you have several different choices. You can use a hardware solution to load-balance across different HTTP servers. You can also use a software solution that is shipped with OAS called Web Cache.
Chapter 14:
Web Servers and Portals
621
NOTE In this section we are discussing Web Cache with regard to OAS 10.1.2. As of version 10.1.3.1 Web Cache is not available. If you want this functionality, you can install OAS 10.1.3.1 and then go back and install the Web Cache for 10.1.2. However, if you are on foundation code 8.97, there is a compression feature. When this compression feature is turned on, you will not see a lot of impact from the Web Cache. So, for most customers it is not worth turning on. It slices, it dices, it is Web Cache. Well, maybe it doesn’t slice and dice, but it does allow you to create a very reliable high-availability model with your EnterpriseOne web servers running on Oracle Application Server. To do this, it addresses several things. The Oracle Web Cache can be set up in a cluster, just like the Oracle Application Server instances for OC4J. So you will not have a single point of failure for your Web Cache. If one node fails, the cluster senses this and moves the work to other nodes. With this in mind, let’s talk about what Web Cache really does for you. As we hinted at earlier, the Web Cache allows you to load-balance across multiple HTTP servers. In our section on multiple Java Virtual Machines across multiple machines or horizontal clustering, we talked about setting up the HTTPD.CONF file so that one HTTP server could see multiple machines. Take this a step further and you would set up two or more HTTP servers to be aware of your EnterpriseOne web servers. Now that you have done that, you would also set up Web Cache so that you can load-balance across these HTTP servers. Not only can you load-balance across the HTTP servers, but you can also use Web Cache to compress HTTP traffic. This helps reduce the footprint on your network. Finally, Web Cache is exactly what it sounds like—cache. This means that it can store items that are frequently requested in the memory on the server. This means that the system will not have to go all the way back to the EnterpriseOne web server to get everything all the time. An example would be the page for sales order or P4210. TIP In EnterpriseOne, when a PDF is viewed, the PDF file is transferred to the client’s browser. So ensuring that your compression handles PDF files will help to ensure performance for your end users viewing PDF files. Okay, we know that you can use Web Cache to help load-balance HTTP and your workload across multiple EnterpriseOne HTML or Java Virtual Machines. So how do you set it up? Well, we will cover this at a high level. For further details consult Oracle’s documentation.
622
JD Edwards EnterpriseOne: The Complete Reference
The first thing you need to do is to turn Web Cache on. The software is installed by default as part of the standard OAS installation. If you know during installation that you will be using this feature, you can select Web Cache on the Configuration Options window during the installation process. If you decide after you have finished the installation to use this feature, you can turn it on through Enterprise Manager by selecting Configure Component. NOTE Once you enable the Web Cache feature, it will appear in Enterprise Manager under System Components. This is where you can start Web Cache, as you must start the component for it to function. Now that the feature is turned on, let’s talk about using it with EnterpriseOne. So you have your EnterpriseOne web servers installed and functioning. Now you need to tell the Web Cache feature in OAS about them. The first thing to do for this is to define the port number that you want Web Cache to listen to. This, just like some many other web functions, defaults to port 80. The authors recommend that you change this from the default port for security considerations. To do this you go into Enterprise Manager and select Web Cache. This allows you to work with the Web Cache functions. Then select the Administration tab, then Ports, and click Add to add a port. You can also specify a specific port from a specific IP address if you want to get that granular. Unless you really have a valid security need, the authors do not recommend this. Now Web Cache is listening on your port, but it still does not know about your EnterpriseOne web server. So to tell it about the web server, go from your Web Cache ports to just the Web Cache Administration tab and select Create Origin Server. This is the term Oracle uses to define your OC4J or EnterpriseOne web server within Web Cache. In order to define your web server to Web Cache, you need to enter specific data on this window, as shown in Table 14-1. You can repeat, adding as many origin servers as you need. Now that Web Cache knows about your EnterpriseOne web servers, you need to set up a URL for the users to go to. You do not want them going around Web Cache by typing in the URL for a specific EnterpriseOne web server. TIP If you are adding Web Cache after you have been running EnterpriseOne web servers, be sure to have users clear out their favorites in these web servers or they will go around Web Cache.
Chapter 14:
Web Servers and Portals
Origin Server
Description
Host
The name of your EnterpriseOne web server.
Port
The port you have set up for the web server like 95.
Protocol
The protocol. Leave this as HTTP.
Capacity
The maximum number of concurrent connections. It is important that this is set correctly and should match the setting on the connections for the EnterpriseOne web server.
Routing Enabled
This check box determines whether Web Cache sends requests to this origin server, so make sure this box is checked.
623
Failover Failover Threshold
The number of ping failures prior to assuming the node is down.
Ping URL
The URL to the EnterpriseOne web server. This must contain host, port, and E1Menu.maf. An example would be server1:95/ jde/E1Menu.maf.
Ping Frequency
How often Web Cache will try to ping the cluster member. If you want to know how long before a node will drop from the Web Cache application, multiply this value times the failover threshold.
Proxy Web Server
This is only to be used for external sites protected by a firewall. An example would be a server providing self-service applications outside your firewall.
Proxy Web Server
Check this box if you need to use a proxy server. For defining an EnterpriseOne Server, check this box. Leave the password and user field blank.
User
User to pass to proxy server.
Password
Password.
Confirm Password
Confirm the password.
TABLE 14-1.
Enterprise Manager Origin Server Window Values
To create a URL for your users, you need to set up what Oracle calls a site server. This server will use the port number that you defined when you set up the Web Cache listen port. You will set up the site server from the Web Cache page in Enterprise Manager. Select Site from the Administration tab and then click Create to add the site server.
624
JD Edwards EnterpriseOne: The Complete Reference
This will take you into the Edit Named Site window. This is where you enter the data to configure your site server, as described in Table 14-2. Now that you have defined the origin servers to the site server, Web Cache will use a round robin method to balance the load. The failover functionality that you defined earlier will be used to monitor the EnterpriseOne servers, and then if a server fails, Web Cache will not route to the server anymore.
General
Description
Host
Name of site, for example, JDEPRODUCTION.
Port
Port number.
Origin Servers
The section where you select the EnterpriseOne web servers that will be hit from this site you are defining.
Proxy or Application Web Servers
Select Proxy.
Available Origin Servers
Shows the available origin servers.
Selected Origin Servers
Shows servers that have been selected from available origin servers using arrow buttons on the screen.
Aliases
This allows you to define aliases for this site, such as jdeproduction.
Host
Name of server.
Port
Port number.
Error PagesPrefix
If requested material cannot be returned, an error page will be displayed. Here is where you can define that page.
Network ErrorError Pages
Path to page for network error. You can set this as a custom page with your company contacts, such as help desk. If requested material cannot be returned an error page will be displayed. Here is where you can define that page.
Site Busy ErrorNetwork Error
Custom error page path. Path to page for network error. You can set this as a custom page with your company contacts, such as help desk.
ESI Default Fragment Severe Site Busy Error
Custom error page for this condition. Custom error page path.
TABLE 14-2.
Enterprise Manager Site Server Values
Chapter 14:
Web Servers and Portals
625
Now that you have set up Web Cache, how do you know that it is working correctly? Well, the way to do this is through monitoring Web Cache and if necessary tuning it. How you do this is to actually put some traffic on the URL you created for the Web Cache server. This is the URL that directs users to your different EnterpriseOne web servers. Once you have traffic on Web Cache, you can go into Enterprise Manager, select Web Cache, and then the Performance tab. On the Performance tab you will see the current status of what is happening with Web Cache. This is real-time data. If you want more details on what people are hitting the most, you can click on popular requests. This allows you to see what pages have been requested and whether they were found in cache or not in cache. Before leaving this section, we need to briefly cover the httpd.conf file. This file is used to control how your HTTP functions. Thus if you want to add a new port number on your web server you would need to update your HTTP file. This file is located under X:\product\10.1.3.1\OracleAS_1\Apache\Apache\conf, where X is the drive letter you have chosen during the installation process. We are going to cover some high points that can assist you with tuning your system in the httpd.conf file. The settings are shown in Table 14-3. We will not be covering the entire file, so if additional information is needed, you can refer to the documentation.
Setting
Description
Timeout
This setting controls the timeout for HTTP. Be sure this setting is set high enough so as not to time out a user session too soon.
KeepAlive
This setting is a toggle for persistent connections. For EnterpriseOne it should be set to on, allowing more than one request per connection.
KeepAliveTimeOut
This is the amount of time that HTTP will wait for another request from the same connection. Normally the default is adequate, but if you are tuning to special needs you should review this setting.
MaxClients
This setting is commented out by default, but can be useful. If you want or need to restrict the maximum number of clients connecting to your HTTP server, you would simply set this to the number of clients desired. Once that limit was reached, all new clients would be locked out.
Port
This is a port definition for use with the server. This defaults to 80.
Listen
This is the port number the server listens to. This defaults to 80.
TABLE 14-3.
Values for HTTPD.CONF
626
JD Edwards EnterpriseOne: The Complete Reference
Setting
Description
Virtual Host section of httpd.conf
This section of the file allows you to define custom ports for your servers. With EnterpriseOne this will be set up for you as you define the port during the installation process. This information will be held in a .conf file in the same location as your httpd.conf file. In our installation this file was scf_E1_jde812oas_95.conf. This file actually holds the values to configure the port, in this case 95, for your EnterpriseOne HTML Server.
TABLE 14-3.
Values for HTTPD.CONF (continued)
WebSphere In the current environment you almost wonder if you are watching a sporting event. Are you going with the Blue Stack or the Red Stack? Well, the Blue Stack is IBM’s technology stack. This includes the database as well as WebSphere for the servlet loader. In this section we are going to discuss WebSphere for use with your EnterpriseOne HTML servers. NOTE Just to make things interesting, you may hear the term “purple stack.” This is the use of WebSphere or Blue Stack with SQL Server. We are going to be talking about the latest and greatest release of WebSphere, certified with EnterpriseOne at the time of this publication. This is the WebSphere 6.1 release.
Installation of WebSphere 6.1 Let’s start by talking about how you would go about installing WebSphere 6.1 to support your EnterpriseOne web servers. The first thing to do is obtain the software from either IBM or Oracle’s e-delivery site, http://edelivery.com, based on your license. Double-check the minimum technical requirements (MTR) page for any changes or new patch level (which should be acquired from the IBM web site) requirements that will need to be met. Also you need to plan out your architecture. The authors recommend you hold a planning session to determine whether you will require high availability, disaster recovery plans, special monitoring, and/or the ability to handle a large number of users. Sometimes a plan fails, but failure to plan is a plan for failure. Okay, you have everything set. Let’s talk about installing a single server for right now. You can get more information on multiple servers and load balancing in the tuning section for WebSphere in this chapter. The very first thing you will need to
Chapter 14:
Web Servers and Portals
627
decide is whether you are ever going to use network deployment, as you need to install different CDs if you are. TIP If you are in doubt about network deployment, install the network deployment CDs. You can run this software in a stand-alone mode, but cannot run network deployment on the other CDs. Thus you would have to remove and completely reinstall the software if you changed your mind later. So we just click on the setup.exe and we are off to the races, right? Well, not quite. You see, you run what is called the Launchpad. This is an executable on the first CD. This Launch Pad shows you a guide where you can launch specific parts of the installation process as you need them, thus the name Launch Pad. When you click on the Launch Pad you will see a welcome window labeled Application Server Network Deployment, as shown in Figure 14-8. This is the window that will walk you through your installation process. On this window select the Launch Installation Wizard for WebSphere Application Server.
FIGURE 14-8. Launch Pad Window Network Deployment WebSphere 6.1
628
JD Edwards EnterpriseOne: The Complete Reference
After you promise all sorts of good legal things on the licensing window, you will get to a System Prerequisites Check window. This is a cool little feature that IBM provides to do a quick check on the system to ensure that your system meets the minimum requirements. If you fail a requirement it will tell you what you need. After this window you will be asked if you want to install the sample applications shipped from IBM. You do not need these for EnterpriseOne installations. You then get to select the directory and drive where you want to install the software. The authors recommend that you follow a standard for all of your web servers, meaning all web servers have the WebSphere software installed to C:\WebSphere6\ AppServer, for example, which is the default path. This is important for ease of maintenance and troubleshooting once the system is up and running. TIP The authors recommend that you keep spaces out of this path statement. This has sometimes caused us headaches in the past. When you get to the Application Server Environments window, you need to be sure to select Application Server from the list. This window allows you to determine the type of application server and environment. Other things you can create here are a Deployment Manager environment; this is used for network deployment. Don’t worry, you can create additional profiles later. Once you select the application server, click the Next button; this will create a default application server for you. You will be able to choose to enable or disable administration security. The authors recommend that you enable this either now or at a later date, so that only users with an ID and password can administer your WebSphere configuration. Be sure to note the user and password you create. You can add additional users and passwords after the installation is completed. TIP Although you can enable the administration security later, it is easier to do during the installation process. You will then see a summary window telling you what will be installed and how much space it will take up on your machine. When you click Next, the actual installation will occur. Congratulations! You have installed WebSphere 6.1.
Installation of IBM HTTP Those of you who work in Microsoft shops are saying, wait a minute—what about Internet Information Services (IIS) from Microsoft? Well, you can use IIS if you like. However, HTTP is the suggested route. We will cover the high points of installing IBM HTTP. If you need details, Oracle publishes a guide on this. From the Launch Pad,
Chapter 14:
Web Servers and Portals
629
which we discussed in the last section, select Install IBM HTTP. This will launch the installation wizard for IBM HTTP. Again, the authors recommend you set a standard for where you will install the IBM HTTP software, so that it is the same on all your servers. This makes maintaining and administering the system easier and thus lowers your total cost of ownership on the system. Once you have specified the installation location, you will be given an opportunity to define the port values. Depending on your security requirements you may want to change the default port values from 80 for the HTTP port and 8008 for the HTTP administration port. If you change the port numbers, ensure that you document what they were changed to. IBM HTTP will be installed as a Windows service. You can allow this service to be started as a system account. Be sure to set the service startup type as automatic. This will ensure that the service comes up automatically if the server is ever rebooted. During the installation you can also create a HTTP administration server user and password requirement to administer HTTP. If you turn this on, be sure to note the user and password you selected. You will be prompted to install the IBM HTTP plug-in for WebSphere. Uncheck this at this time. You perform the plug-in installation later. We will discuss that next. Once you are through the screens, the IBM HTTP software installs and tells you that you are successful.
Configuring HTTP Plug-in with WebSphere Application We have now installed WebSphere and IBM HTTP. However, we now need to configure the plug-in for IBM HTTP with WebSphere. To do this, the IBM HTTP servers should be stopped or you can get a “file in use” error. From the Launch Pad window again, select the Launch the Installation Wizard for IMB HTTP Server link. Once you go through the license window and the system prerequisite check, you will get to a window asking you what plug-in you want to use. This window allows you to choose from the following: ■
None
■
IBM HTTP Server V6 or V6.1
■
Apache Web Server V2
■
Lotus Domino Web Server V6 or V6.5
■
Lotus Domino Web Server V7
■
Sun ONE Server 6.0
■
Sun Java System Web Server V6.1
■
Microsoft Internet Information Services V6
■
Microsoft Internet Information Services V5
630
JD Edwards EnterpriseOne: The Complete Reference
All of these plug-ins are installed, but only the one selected is configured for WebSphere. If you are following the standard installation, you would select the IBM HTTP Server V6 or V6.1. The next window confuses people sometimes. This window is asking you where your WebSphere application server is installed. Most people will have this on the same machine or local. However, in some configurations with high availability, you may want the HTTP server running on a different machine for redundancy. If this is the case, then you would select the Web Server Machine Remote radio button. We will talk more about redundancy of the HTTP server in the “Tuning WebSphere” section of this chapter. You will be asked where you want to install the plug-ins and where your IBM WebSphere application server is installed. Finally you will need to tell the installation process about where your HTTPD.CONF file is and the web server port. The HTTPD.CONF file is your configuration file for HTTP. This is the file that you edit to add additional port numbers if needed. You will then be allowed to determine a web server definition name. Why is this important? Well, this is a unique name so that you can administer the IBM HTTP server. If you are going to change this, it is recommended that you use a standard, JDEWEB1 or JDEWEB2, for example. Prior to the end of the installation process, a window will show you where the web server plug-in-cfg.xml file is located. Do not change the location, but note it. If you have issues with your plug-in, this will be the file you will need to look at. After that you will get a summary window and then the install process will run through. Okay, now that you have the base code laid down, you can move on to patching the WebSphere application with whatever patches are required at that time. IBM now provides an updater application that you can download. This application walks you through applying patches. It also ensures that if there are prerequisites they are met. You can download this from the IBM web site along with the WebSphere patches. As updates to this program can come out and the required patch level for EnterpriseOne changes constantly, be sure to check the minimum technical requirements page for EnterpriseOne on Oracle’s web site.
Starting It All Up Okay, great—you have WebSphere, IBM HTTP, and the HTTP plug-in all installed and on your server. Now what? Well, you built the car so fire it up. How do you do this? It is actually very simple. For the IBM HTTP server, you simply start this service from the Control Panel Services application on your server. You can test to see if this is working by entering http://servername:port#, where the servername is the name of your server where you installed HTPP. The port number is the port you chose during the installation process; the default is 80. If everything is functioning correctly you will see an IBM HTTP page displayed in your browser. This shows that HTTP is working.
Chapter 14:
Web Servers and Portals
631
TIP If you need to add a new port number, you can modify the IBM HTTPD.CONF file. You can simply copy the existing entry and modify it as needed. Once you have changed your HTTPD.CONF file, stop and start the IBM HTTP service in the Control Panel. Now let’s start the WebSphere application server, which is a little different from IBM HTTP. You can do this in two ways. One is from a DOS command prompt. To do this choose Start | Run and enter cmd. This will bring up a DOS prompt. Navigate to the WebSphere\AppServer\profiles directory. Then select the directory that is your profile name; the default is AppSrv01\bin. You see, WebSphere allows you to create multiple profiles to perform different functions. In this section we discussed creating a profile for an application server, but as you move along you may have multiple profiles to perform different tasks. So be sure to select the correct profile. Once you are in this directory you simply issue a start command: startServer server1. This is the default server created during the installation, and this server will allow you to administer your WebSphere installation. The command is case sensitive. Later, after you have installed your EnterpriseOne web servers, you can start them from under your profile with a similar command: startServer WEBSERVERNAME, where WEBSERVERNAME is the name you define for your EnterpriseOne web server. For those of you who do not love DOS, you can use a simpler point-and-click command process to start WebSphere. Go to the Start button on your server, and choose All Programs | IBM WebSphere | Application Server | Profiles, and then select Start Server. This will launch the command in the background for you. There is also an option to launch the administrative console, shown in Figure 14-9. You will not be able to view this console until the default server is started in WebSphere. Once the command has been issued and the server is started, then you should be able to go to the administrative console and log in. This console allows you to maintain and alter your WebSphere configuration. TIP You can perform a quick test to ensure that your WebSphere application server is running correctly. Once you have started both WebSphere and IBM HTTP, you can run the command http://MACHINENAME:PORT/snoop, where the machinename is the name of your server and the port is the HTTP port you defined in your HTTP installation. If the command is successful, you will see a snoop servlet – request/client information window.
632
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 14-9. WebSphere administrative console
Installation of EnterpriseOne Web Server Using Server Manager In order to install the EnterpriseOne HTML Server code, you need to use the Server Manager software. This is described at a high level in the beginning of this chapter in the Server Manager section. You use the same tools to install this code whether you are using WebSphere or Oracle Application Server.
Troubleshooting Briefly we will touch on a couple of key points that will help you in troubleshooting issues within WebSphere. The first and easiest is where to find the logs for the WebSphere software. These will be located in a couple of different places. The location of the log file will depend upon what type of information you are looking for.
Chapter 14:
Web Servers and Portals
633
Let’s start by talking about where the majority of your WebSphere log files will be located. This is under the profile directory. This means that if you have five different profiles you will have five different log directories. The standard path for this is X:\WebSphere\AppServer\profiles\PROFILENAME\logs, where PROFILENAME is the name of the WebSphere profile you have created. Under this directory you will find lots of different log files. One of the log files under here is the activity log file. You will also find log files for your different nodes. So if you are starting a virtual machine, such as server1, then you will find a directory named server1 in the log directory. Under this directory you will have the start log as well as the error, trace, and native_stderr.log files. These log files help you to determine issues with your JVM. Now some of you are saying, what about the EnterpriseOne logs for the HTML server? Well, the locations of these are determined by some of your configuration files. You can set the location of the jas, jderoot, and jasdebug log files in the jdelog .properties file. Since logging does affect performance, you do not want to leave it all on. The jas log file is the first log you want to review when you have an issue. This will give you high-level error messages and usually give you a good idea of what the issue is. TIP You can review the EnterpriseOne HTML Server log files using the Server Manager application.
Tuning WebSphere This section would not be complete without talking a little bit about tuning your installation of WebSphere Application Server running your EnterpriseOne HTML Server. Although it is getting easier and easier, tuning is still somewhat of an art form. We are going to cover some high-level concepts for you so that you are prepared to start tackling the tuning challenge. How many times as administrators have we heard “The system is slow”? Well, the authors’ response to this is “The sky is blue.” When someone says the system is slow, they are not telling you anything. Whenever you discuss performance you have to agree on and discuss specific metrics. Otherwise, you are only talking about a matter of individual perception, which can vary widely from person to person. One user may see a record taking 5 seconds to commit as being very acceptable, but to another this may be way too slow. This is why a metric needs to be determined so that everyone is speaking the same language. Pick five to ten of your top applications in the system. Then take some timings on entering standard types of records, like a four-line sales order. This will show real data on timing. That way when we say something is slow we can quantify it.
634
JD Edwards EnterpriseOne: The Complete Reference
Okay, now we really have slowed down. Now what? The first question is, where in the technology stack did you slow down? Most of the time this will be in the application layer, but not always. Work with your infrastructure team closely so you know what the statistics of the network are and whether any major changes are planned. That being said, we will be talking about tuning in regard to EnterpriseOne on the WebSphere application server. One easy thing to check is your EnterpriseOne HTML Server INI settings. Some of the settings in your JAS.INI file can affect how the system performs. We will cover some of the high-level ones. These include the maxPoolSize setting. This setting controls the number of JDENET connections to your enterprise server. JDENet is the middleware for EnterpriseOne. If you have too few connections, then you will not see the type of performance that you might expect. Another common tuning area is how the WebSphere software connects to your database. One easy solution is to ensure you are on the proper JDBC driver for your EnterpriseOne foundation code level. The JDBC driver level you are on can greatly affect how quickly you can get data from the database into your screens. If this is running slow, you may be able to see this by running a jasdebug log and seeing how long the SELECTs are taking or running Performance Monitor, which is a builtin toolset in EnterpriseOne release 8.11 and higher that helps you to track down performance issues. TIP With the foundation code of 8.97 and beyond, there is a hook into Performance Monitor from Server Manager. The JDBC driver is not the only thing that can slow down your access to the database. There are specific settings for EnterpriseOne in the configuration files. There is a specific configuration file called the JDBJ.INI file. This file has settings that affect how the HTML server interacts with the database. One such setting is the maxConnections setting, under the JDBJ Connection Pool stanza. This setting controls the number of JDBC connections to the database. Another very common problem is with the memory of your Java Virtual Machine, which is called heap. In WebSphere you can control on initial and maximum heap size. You need to ensure that these settings are configured correctly or you could end up with a lot of garbage collection. This is a term for IBM WebSphere clearing out things that are not used or are aged from the memory. However, when garbage collection takes place, this slows down the JVM, as it is an intensive process. So you do not want garbage collection to take place too often. What do you set the minimum and maximum heap size to? Well, some of that depends on what you are doing on the machine and the size of the machine.
Chapter 14:
Web Servers and Portals
635
As a general rule the authors have found that it is best to start with at least 500MB for your minimum heap size and 1024MB for your maximum. If you are running multiple JVMs on the machine, ensure that you leave enough memory for the operating system. If the machine starts paging, your system will slow way down. TIP In EnterpriseOne you can use Data Browser on the HTML client and certain applications to export data. When you do this it uses your heap and thus you can strangle other applications due to large exports taking up most of your heap. Prior to 8.97 foundation code, which included enhancements on how memory was utilized by Data Browser, the authors recommended placing Data Browser on its own Java Virtual Machine. A final area of tuning that we want to cover is how your Java Virtual Machines are configured. If you are running more than 150 users or need high availability, the authors recommend using network deployment. Network deployment, when used with IBM Edge Server, can balance your user load across multiple Java Virtual Machines. This load balancing can be horizontal and/or vertical. In horizontal load balancing, the load is balanced across multiple servers each running one or more Java Virtual Machines. In vertical load balancing, the user load is balanced across a single physical machine running multiple Java Virtual Machines. With IBM Edge Server you can set up rules as to how your load is balanced, based on memory or processor utilization. This type of solution ensures that you are getting the most bang for your hardware buck. It also allows you to lose a server without users losing access to the system.
Portal Solutions
You cannot pick up an information technology magazine these days without hearing something about self-service applications and extending the solution outside the business’s walls. Well, the majority of these types of solutions use some form of portal technology. Most people have heard the term portal, but not all understand what it really means. A portal solution is a single opening or window to access multiple things. It is like the doorway to a wonderland of technology. In today’s economy businesses are being required to be more efficient and offer greater services to their customers. To handle this trend of doing more with less, technology has come along to assist with this effort. Portal technology is a proven
636
JD Edwards EnterpriseOne: The Complete Reference
method to assist businesses. Almost everyone has logged on to their bank web page or broker web page to transfer funds, check balances, or even pay bills. A lot of times this access is through some form of portal technology. You have all the features of the primary web site and can log in to different systems from one location. This is very powerful for businesses. They can have multiple systems in the background and the customer does not have to be aware of them. They can access them all from one place. This is critical for any type of customer self-service application. You need the solution to be very simple. You do not want customers to have to go to eight different places to do business with you or your competition will make it easier to do business with them. They may even charge more, but the typical consumer will pay for the convenience. What about your employees? In today’s cutthroat market businesses have to do more with fewer people. Well, a portal solution can help them to accomplish this. A very popular use of a portal solution for employees of a company is with Human Capital Management. Companies are trying to reduce physical paper as much as realistically possible. Yes, it is in to be “green,” but a large part of that green is to save some green. Most companies now offer employees the ability to view their paychecks online, change their benefits from a secure site, and even enter their time worked through an HTML screen on their intranet. Even though the concept of enterprise resource planning software is to handle all the customers’ needs in one package, it does not always happen that way. To offer these types of services, the company may be using multiple software solutions. Well, with the portal technology we can place all of these systems in one place for the users. Not only that, but if the company wants they can configure the system so the user only has to sign in once. This means they do not have to remember a different user ID and password for each different system. User customization is also very easy to offer with these solutions. You publish pieces of code called a portlet. A portlet offers some functionality; an easy example would be a stock ticker. The user, if authorized, can add the portlet to their portal page. They can also change the layout to meet their specific work requirements. So they might have a portlet showing a feed from the business intelligence system in the upper right of their screen, their e-mail in the center, a portlet to access the ERP financial system to the left, and the weather on the right. They can often also change the colors to their liking. This type of functionality often greatly helps influence user acceptance of a new system. In this section we are going to talk about the two portal solutions that you can choose between for EnterpriseOne. These are the IBM Collaborative Portal and the Oracle Portal. Both of these are very strong and robust solutions; see the “WebSphere vs. Oracle Application Server” section earlier in this chapter for more details on selecting between the IBM or Oracle technology stack.
Chapter 14:
Web Servers and Portals
637
Oracle Portal Oracle has offered a portal solution for years with their other software offerings. Now that they have purchased PeopleSoft and also obtained the JD Edwards product lines, they have extended this portal toolset to the EnterpriseOne product line. This gives the customer base more of a choice for portal solution selection. It also lets them shop for the right solution based not only on functionality, but on price. If you have familiarity with WebSphere or Oracle Application Server, now you do not have to spend the money to spin up on a new product because of a support issue. Okay, you have selected the Oracle Portal for your portal solution. Now what? Well, the first thing you need to do is plan, plan again, and then plan some more. When you are dealing with a portal solution you need to determine where the portal will sit, that is, inside your firewall or exposed to the Internet and thus outside of your firewall. Also with a portal, often businesses will put in one solution and add others in different phases. So you need to ensure that your portal server can handle the load for today and the future. Once you have determined your portal architecture, you then need to review the minimum technical requirements documents on the customer connection page for the Oracle Portal. These documents are updated regularly by the Oracle development organization. They will tell you what version of the Oracle Portal is supported with EnterpriseOne, what operating system is supported, and what patch levels are required. In order to install the Oracle Portal you need to go through several steps, as follows: ■
Install Oracle Application Server Infrastructure.
■
Install Oracle Application Server.
■
Install Oracle Application Server Portal.
NOTE This current set of steps only applies to the supported 10.1.2 Oracle Application Server. At the time this publication was written, 10.1.3.1 was not supported with Oracle Portal. When 10.1.3.1 is finally supported there will be some minor process changes.
Installing Oracle Application Server Infrastructure The first step is to install the Oracle Portal infrastructure. In this section we will discuss the installation process at a high level; refer to the Oracle Application Server Portal installation guide for more details. Once you have downloaded all of the software for your Oracle Application Server, which is required for the Oracle
638
JD Edwards EnterpriseOne: The Complete Reference
Application Server Portal install, you can start the installation by launching the Oracle Universal Installer. This installer will walk you through the installation process. We will discuss running the install on a Windows machine. NOTE If you are licensed from Oracle, you can download the Oracle Application Server software from their e-delivery site, http://edelivery.oracle.com. Once you click on the installer you will see a welcome page. Click the Next button and you will be taken to a page asking you where the source for the installation software will be (see Figure 14-10). This defaults in to the directory from which you ran the Universal Installer, so you will not need to change this. This window also asks you about your Oracle home. This is an important concept as you
FIGURE 14-10. Oracle Universal Installer specifying Oracle home and file locations
Chapter 14:
Web Servers and Portals
639
can have multiple Oracle homes. An Oracle home is the directory location for this particular installation of Oracle software. You can run different Oracle homes and thus separate some of your software installations. It is important to keep this in mind because when you apply a patch to the software, you need to be sure you select the proper Oracle home you want to patch. NOTE If the universal installer detects an existing Oracle home, it will automatically increment a number behind the directory to install to, for example, D:\ OraHome_2 where D:\OraHome_1 already exists. When you click the Next button, you will be taken to a window that allows you to select the product to install. You will see three options on this window (see Figure 14-11). They are Oracle Application Server, Oracle Application Server
FIGURE 14-11. Oracle Universal Installer product selection window
640
JD Edwards EnterpriseOne: The Complete Reference
Infrastructure, and Oracle Application Server Developer Kits. This is an important window as in order to run the portal you need to install different components in order. The first component you need to install is the Oracle Application Server infrastructure. Select this option and click the Next button. Now you have told the Universal Installer that you are installing the Oracle Application Server Infrastructure software. The next window will ask you what type of Oracle Infrastructure installation you want to perform (see Figure 14-12). You will have three options again. These will be Identity Management and Metadata Repository, Identity Management, and Metadata Repository. You will need to install the Metadata Repository to hold your configuration information. If you choose just the Metadata Repository, you can come back later and install identity management. In our example we are installing Identity Management and the Metadata Repository. Infrastructure Installation Type When you move to the next window, you will be prompted to ensure you meet the pre-installation requirements. This window will ask you to verify that your account has administrator privileges. Check the box next to this requirement and click the Next button. This will take you to the
FIGURE 14-12. Universal Installer OAS
Chapter 14:
Web Servers and Portals
641
FIGURE 14-13. Universal Installer OAS infrastructure Select Configuration Options window (see Figure 14-13). On this window you can select additional configurations, such as Oracle Application Server Certificate Authority. For most users the default selections will be sufficient. Configuration Options When you click the Next button, you will be taken to the Specify Port Configuration Options window. This window allows you to specify what ports will be used, through a text file, or you can let the software automatically select the ports. Unless you have security concerns or are putting this server outside your firewall, you can select the Automatic Port Configuration radio button and click the Next button to move forward with the installation. Now the Universal Installer will ask you questions about where you want to store information on your users and groups. Specifically, it will ask you what namespace you want to use (see Figure 14-14). Unless your DBA has a specific criteria he or she wants to standardize to, you can take the default and click the Next button.
642
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 14-14. Universal Installer Specify Namespace in Internet Directory window Okay, so you have now told the installer about your namespace selection. Now the installer will want to know specifics about the database that will hold some of your information on groups and users. This information is gathered through the Specify Database Configuration Options window, shown in Figure 14-15. On this window you specify your Oracle SID and database name. Often database administrators will have a naming standard, so check with your DBA to ensure you are not violating any standard. Then enter your database name and Oracle SID. You will also specify the character set for the database here. This will almost always be set to Unicode. Finally, you will specify the physical file location of the database. The installer now knows where to create the Oracle database and how to configure it. The next step is to configure the passwords for the shipped users in the database (see Figure 14-16). For security reasons the passwords on users are set to expire at the end of the installation. So you can set a password for each individual user or a single password for all of the users. It is more secure to specify different passwords for each user. However, be sure to document what you have set these
Chapter 14:
Web Servers and Portals
643
FIGURE 14-15. Universal Installer Specify Database Configuration Options window
passwords to and put this information in a secure location that more than one person has access to. That way if your DBA is on vacation and an issue comes up, you can obtain access. Click the Next button to move forward with the installation. The next window allows you to specify your Oracle Application Server Infrastructure instance and administrator password. The infrastructure instance needs to be unique on each machine. The authors recommend you use a naming standard if you are going to install multiple machines. The administrator user ID is IAS_ADMIN. On this window, specify the password, which must be at least five characters and contain one number. Be sure to document what you set this password to. The next window is a summary window showing all of the options you have selected to be installed. Verify your selections and click the Install button. The software will then be installed for you. Once the files are installed, the software will automatically go through a configuration assistant for components. If there is
644
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 14-16. Universal Installer Specify Database Schema Passwords window
an error in this process, you will be given an opportunity to correct the error and attempt to run the configuration for that piece of the installation again. Once the configuration assistants complete successfully, your installation of the Oracle Application Server Infrastructure will be complete.
Oracle Application Server Installation Now that you have completed the installation for the Oracle Application Server Infrastructure, you need to run the Universal Installer again to install the Oracle Portal Application Server. To do this, double-click on the Oracle Universal Installer executable again. You will see the Specify File Locations window again. Now the installer will detect that you already have an Oracle home, which was created during the infrastructure installation process. So it will automatically increment the number on the end of the Oracle home to make it unique. The source location for the software will default in, so you do not need to change that field.
Chapter 14:
Web Servers and Portals
645
The next window you will see is the Select Product window. We saw this same window when we went through the installation of the infrastructure software. This time select the Oracle Application Server radio button and click the Next button. This will take you into the specific windows used to install Oracle Application Server. The first window you see will ask you to select the installation type for your Oracle Application Server (see Figure 14-17). You will be shown two different options: J2EE and Web Cache and Portal and Wireless. Select the Portal and Wireless radio button. Click the Next button. The next window is the preinstallation requirements. This window will ask you if you have administrator privileges. Check the box next to this requirement and click the Next button, if you do have administrator privileges. If you do not, exit the installer, log out, log in as an administrator, and start the installation again. After the preinstallation requirements window you will be presented with the Select Configuration Options window, shown in Figure 14-18. This window allows you to select the components that you want to be automatically configured at the end of the installation.
FIGURE 14-17. Universal Installer OAS product selection
646
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 14-18. Universal Installer OAS Select Configuration Options window
TIP You can configure the components after the installation by manually performing the configuration steps in the documentation of each component. The next step is to tell the software about your port configuration. On this window, just as you did during the Oracle Application Infrastructure install, you will specify either automatic or manual port configuration options. If you need to, you can configure your ports through a text file or you can simply let the software automatically configure the ports.
Chapter 14:
Web Servers and Portals
647
TIP When it comes to your port configuration, you should plan and lay this out in advance. This will allow you to work with your infrastructure team, who normally handles the firewall maintenance, and your security team to ensure that the system is in compliance with your organization’s standards. At this point you need to register with Oracle Internet directory. On this window you will specify the host where the Oracle Internet directory is installed and the port to use (see Figure 14-19). You can also check the check box to use only secure socket layer connections with the Oracle Internet directory.
FIGURE 14-19. Universal Installer OAS Register with Oracle Internet Directory window
648
JD Edwards EnterpriseOne: The Complete Reference
TIP You may not know what the port number or host is off the top of your head. The host is where you installed the Identity Management during the infrastructure installation. To determine the port number on that machine go to Start | Programs, and choose Oracle Application Server Infrastructure | Integrated Management Tools | Directory and Provisioning Server Administration. This will bring up a sign-on window that will show you the port for your Internet Directory service. The next window allows you to specify the user to connect to the Oracle Internet Directory service. The user will be listed as orcladmin. The password will be the one you set during your infrastructure software install for Oracle Internet Directory. Enter this password and click the Next button. This will take you to a window to verify your metadata repository. This value defaults in for you, based on selections you made during the installations. Click the Next button to proceed with the installation. The next window is one you have seen before. It is the Specify Instance Name and Ias_admin Password window. We had to specify this information during the installation of the infrastructure software. Although you can set the password as the same value, the instance name needs to be unique. The next window will be the summary window. Click Install on this window and the software will install.
Accessing the Portal We are almost there! We have now covered installing the Oracle Application Server infrastructure and Oracle Application Server, which is also referred to as the middle tier. During the middle-tier installation of Oracle Application Server we selected to install and configure your Oracle Portal. Now you need to ensure that the portal is started prior to trying to access the portal. To do this go to the Oracle Enterprise Manager for your portal Oracle home. In our example this would be the second Oracle home. Once you have logged in to Enterprise Manager you will see your portal. Click on it and then you can start the components, such as HTTP and the portal. Check the boxes next to these components, and then click the Start button. Once your portal is up and running you can access the Oracle Application Server portal by entering http://SERVERNAME:PORT/portlal/pls/portal, where SERVERNAME is the name of the host machine where the portal is installed and PORT is the port number you installed the portal to.
Chapter 14:
Web Servers and Portals
649
Installing an EnterpriseOne Portlet You have the Oracle Application Server Portal installed and running. You are ready to go, right? Not quite yet. You also need to install specific portlets for EnterpriseOne. These portlets are the code that allows you to use specific functionality in EnterpriseOne, such as a employee self-service portlet. There are many different portlets that you can install. Which ones you want to install and configure will be based on your organization’s business requirements. The first thing you need to do is to get the base content for the EnterpriseOne HTML onto the portal application server. This is a two-step process. You see, you must first generate the portlets you want to install into a war file and then deploy that war file out. If you do not first generate the portlets, then you will only have a portlet for the EnterpriseOne menus. To do this you use the generator that is shipped with the software. You can get more information on this generator in the HTML installation guide. You will need to copy the jas.ini, jdbj.ini, TokenGen.ini, jdelog .properties, and database driver files into a single directory on your machine. You will also need to make some modifications to the JAS.INI file. This will allow you to generate portlets from the generator. To do this you pass a parameter to the generator to generate portlets. You will choose a destination war file. WebClient_Oracle_ Portal.war will be your target destination; we will discuss why in a moment. You then select the portlets you want to put into this war file. TIP If you go to generate additional portlets, you need to select all the portlets you originally selected as well. Otherwise you will only deploy what you generated, so you may be missing some things you expected. Okay, so now we have generated the WebClient_Oracle_Portal.war file. Now we need to deploy this out to the portal. To deploy this war file, connect to the Enterprise Manager where your portal is installed. You will be prompted for a user ID and password. Enter a user with authority such as ias_admin and the password. NOTE If the portal is going to be on a different machine than the provider, that is, the WebClient_Oracle_ Portal.war file, you will need the e1oracleportal.war file as well. This file is located in the same directory as the WebClient_Oracle_Portal.war file. After you have logged in to the Enterprise Manager, you will select your portal instance. You will then want to click the Deploy War File button. Here you will be
650
JD Edwards EnterpriseOne: The Complete Reference
allowed to browse for your war file. But where did this magical war file come from in the first place? This file will have been downloaded from the update center on Oracle’s customer connection site. You will also need to define the application to be called. This will be the name of the war file. Finally you will specify the URL mapping. This will be /jde to map this to your JD Edwards installation. You will then click Deploy. Now you will see a new selection on your application’s screen. This means that you can now work with the code from Oracle for the portal. The next step is to define the new instance as a portal provider in the portal administration. Once this is done, the Oracle Application Server Portal is now recognizing the war file it needs to be loaded with the information that is important to your organization. This is where we generate the portlets you choose for your organization to the war file. This is how the OAS Portal will recognize the portlet code you load. To do this you need to modify the OWWEB setting in your jas.ini file. This will synchronize the user IDs between the portal and EnterpriseOne. Not all of these settings are required. We have listed the main ones in Table 14-4, but you absolutely need to define the default role and default environment value. To do this you should add or change values for the following settings under OWWEB in the jas.ini.
IBM Collaborative Portal The other portal software solution that you can use with EnterpriseOne is the IBM Collaborative Portal. We have discussed the OAS Portal, so let’s now move on and discuss how you would work with the IBM Collaborative Portal. Before we dive into the details, the authors would like to note that they are very pleased by Oracle’s support of both the IBM and Oracle Application Server Portal technologies. This flexibility allows the customer base to not be required to relicense and retool their IT staff unless they want to. Many organizations have other software that requires either WebSphere or Oracle Application Server, and these organizations do not
Value
Description
ProxyTargetServer
The name of your portal server.
ProxyTargetPort
The port number for your portal.
ProxyTargetProtocol
The protocol to use. This will be HTTP.
DefaultRole
The default EnterpriseOne Role.
DefaultEnvironment
The default environment to be used.
TABLE 14-4 JAS.INI OWWEB Values
Chapter 14:
Web Servers and Portals
651
want to have to maintain two different solutions. This commitment from Oracle shows their dedication to the EnterpriseOne customer base. Again the first thing you do when you are looking at deploying a portal solution is to plan, plan, and plan some more. You will need to determine your architecture, naming conventions, and default installation paths up front. This organization will help to reduce complexity and lower your total cost of ownership. As you are planning your approach you will also need to verify the minimum technical requirements from Oracle on their customer connection web site. You can also obtain the software from Oracle’s e-delivery site if you are licensed through them. The e-delivery site is http://edelivery.oracle.com.
Installing IBM Collaborative Portal Software In order to install the portal you will need to first have the WebSphere application server installed on your machine. This is a requirement of the IBM Collaborative Portal. Ensure that the release of WebSphere Application Server that you use is supported with the IBM Collaborative Portal release you are installing, since most administrators are experienced with installing IBM WebSphere Application Server. Also we covered this in some detail under the WebSphere section of this chapter. To start the install, click on the install.bat file in the root directory of the first CD. The software will look for your WebSphere Application Server installation. Be sure that the path is correct to your WebSphere Application Server installation. It will then ask you to specify an administrative user; this is a temporary user. The Oracle installation guide recommends you use PADMIN and PADMIN for this user. After this the installation process kicks off. Configuring Portal with a Database Information on your portal configuration is stored in a database. So you need to tell the software about this database. If you are going to use UDB, you will configure the WPSConfig.bat file with information about your database. You will then execute the import of the portal information with the WPSConfig.bat database-transfer command. You can refer to Oracle’s installation guide for WebSphere Portal for additional information. You can also import the configuration into SQL Server or an Oracle database. For an Oracle database, you would first create a database using the Configuration Assistant. Be sure the database is set up with a Unicode character set. For WebSphere Collaborative Portal 5.1, you will want to create the database with a name of wps51. You will need to repeat this creation process for the WebSphere Portal Member Manager, Document Manager Personalization, Feedback, and Likeminds. These databases will need to be named wpsdb, jcrdb, fdbkdb, and lmdb respectively. You will also need to create users for the databases and grant privileges for the users. Finally you would import the configuration.
652
JD Edwards EnterpriseOne: The Complete Reference
SQL Server is very similar in that you have to create the different databases, users, and grand privileges. You would then import the configuration. See the Oracle IBM Portal installation guide for additional details. Once you have finished importing your configuration into your database, you can verify your portal by using the following URL, http://SERVERNAME:PORT/wps/ portal, where SERVERNAME is the name of your portal server and PORT is the port number you configured for the portal. Using IBM Tivoli Directory Server with Portal When we discussed the OAS Portal we talked about the Oracle Internet Directory. With IBM there is the Tivoli Directory Server solution. In this section we will talk about this at a high level. The Tivoli Directory Server is shipped with the IBM Tech Foundation package. To install this software go to the setup.exe on the first CD. You will go through the license agreement and language selection. You then get to choose the location for the LDAP directory. After this window you will be prompted for the features you want to install. Take the defaults, which is all of them. If you choose to install DB2, you will be prompted for a database user and password. Enter the administrator user and password. You will see the software install some files. It will then go through a couple more windows to obtain information about your web server administration tools. You will be asked to reboot your machine, so be sure that you can do a reboot when installing. After the reboot you will be able to configure the LDAP. NOTE As of EnterpriseOne release 8.12, LDAP configuration is required for the portal. The configuration assistant for LDAP will walk you through configuring Tivoli with LDAP. This will include importing your portal users. See the Oracle IBM Portal installation guide for additional information. NOTE You can also configure the system to use Active Directory for your LDAP store. This is another handy approach that provides flexibility for customers.
Summary
In this chapter we have covered a lot of ground. We have discussed how the architecture of EnterpriseOne is now web based. We talked about the different servlet loaders you can choose from, namely Oracle Application Server and IBM WebSphere.
Chapter 14:
Web Servers and Portals
653
During our discussion of Oracle Application Server we went through the details of how to install the software with EnterpriseOne. We talked about some of the concepts that are key to installing and configuring Oracle Application Server. We also covered what IBM WebSphere Application Server can do for you when used with EnterpriseOne. This software is also a very robust solution for customers to roll out and, like Oracle Application Server, has high-availability options incorporated into the software as well. This gives the EnterpriseOne customer base the ability to pick the solution that is correct for them. We also touched briefly on how the new Server Manager technology affects EnterpriseOne HTML Servers. This software has completely changed the architecture for EnterpriseOne. Customers can now install all of their EnterpriseOne servers from one easy-to-use interface. So instead of having to deal with multiple installers, they can simply learn one and use it for all their servers. Server Manager is covered in greater detail in Chapter 12. We then closed the chapter with a discussion of portal technology. We explained why you would be interested in any type of portal technology. We then moved on to discuss the Oracle Application Server Portal and IBM Collaborative Portal in detail. We covered some basic installation requirements and catches for each of these solutions. We also talked about each solution’s approach to LDAP with Oracle Internet Directory and IBM Tivoli Directory Server. It is our hope that this chapter has pulled back the fog on several items that face the EnterpriseOne administrator. We would like to see you expand your EnterpriseOne solution to offer even more functionality to your end users while also maintaining a reasonable total cost of ownership on the system.
This page intentionally left blank
CHAPTER
15
Upgrade Tools and Rules 655
656
JD Edwards EnterpriseOne: The Complete Reference
A
s with all things in life, the EnterpriseOne software package changes. Companies make new acquisitions; they adjust their systems to take advantage of expanded software functionality to keep their competitive edge. To meet these needs Oracle has built tools into their software to allow their clients great flexibility in upgrading and patching their software. This means that clients do not have to scrap all of their custom modifications to the software to take advantage of new functionality. In this chapter, we will review how the upgrade process flows and some of the rules that apply to this process. We will discuss the differences between upgrades and updates. We will also touch on some of the developments in the technology used to upgrade or patch/update the EnterpriseOne system. This includes Application Software Updates (ASUs) and Electronic Software Updates (ESUs). Finally, we will include some real-world experiences with upgrades that the authors have performed. This chapter will cover the following topics: ■
Differences between upgrades and updates
■
Upgrades
■
Updates
■
Application Software Updates (ASUs)
■
Electronic Software Updates (ESUs)
■
Retrofitting modifications
■
Running EnterpriseOne parallel
Differences Between Upgrades and Updates
To truly understand the upgrade process, you must first understand the difference between upgrades and updates. Oracle has produced a number of different releases of EnterpriseOne software (E810, E811, and E812 are examples of EnterpriseOne releases). An update does not contain as many objects as a full release. An example of an update would be B733.1. Currently both updates and upgrades can contain new functionality. One of the major differences between updates and upgrades is in how they are applied. While discussing the differences between upgrades and updates, we will talk about how these processes affect objects on your system. Some examples of these objects would be reports, tables, and applications. The EnterpriseOne software is
Chapter 15:
Upgrade Tools and Rules
657
designed to allow you to retain your modifications to these objects when you upgrade or update the software, as long as you follow Oracle’s rules when you develop your custom objects or modify existing EnterpriseOne objects.
JD Edwards Methodology for Updates and Upgrades Oracle assumes that certain things will always be done for updates and upgrades. Although this methodology is addressed in their manuals, we feel it is necessary to explain it here as well.
Standard Methodology for Updates and Upgrades When you perform an update or an upgrade, you should follow some standard guidelines. These guidelines are fairly straightforward and will help keep you out of trouble. They include applying the update/upgrade to an environment other than your production environment. For an upgrade, Oracle recommends that you consider using the prototype environment, as this environment was designed to configure and validate business processes. Before an upgrade is performed, it is a good practice to ensure that the prototype environment’s business data, control tables, and central objects match those of your production environment. Once this process has been started, all development work will need to be frozen in the production environment, including the addition of new interactive or batch versions. This is done so that once the upgrade has been performed on the prototype path code, the central objects can be copied from the prototype path code to the production path code. (This would also include copying the path code directory structure on the deployment server and enterprise servers.) This strategy provides clients with the ability to validate their production code set on the new release prior to upgrading their live production path code. By making the prototype path code a copy of the current production path code, clients can then validate not only their code set but their business data and control table information. This methodology provides the additional benefit of giving clients the ability to benchmark the amount of time required to convert a copy of their production business data and control tables from one release level to another. (Many clients use the copy of the upgraded prototype path code to create a development path code in the new EnterpriseOne release. This allows clients to start efforts on retrofits.) Once clients have completed a full integration test/validation processes, they are in a position to copy the central objects/code from prototype to production. This provides the ability to upgrade the production environment with minimal risk; by copying the central objects from the validated prototype path code you do not have to run the Specification merge for the production environment. When this methodology is used, production cutovers normally include only the conversion of the business data and control table information. This provides clients with the ability to utilize validated code and only convert their current data when they are ready to upgrade production.
658
JD Edwards EnterpriseOne: The Complete Reference
So should you follow the same strategy for applying an update to the system? The standard Oracle guides recommend that you promote all modifications to the prototype path code and apply the update to that path code first. The authors feel that it is a better idea to start the process of an update in the development path code. Why the development path code? Many clients will need to perform retrofits on objects after an update effort (assuming the client has modified objects included in the update). Code changes should start in the lowest-level environment in the software development life cycle (SDLC). So does that mean that a client should take the overhead of unfinished or discarded development that might exist in this path code? That depends on what the client is looking for. Clients have a number of options, for example, moving their latest code forward to the prototype path code and then copying the prototype path code back over the development path code, simply applying the update to development path code as is or any combination thereof. Regardless of how the client decides to proceed, they will need to ensure that the path code is ready to update. (It is the authors’ opinion that regardless of how the client proceeds, they should apply the update to the development path code first.) To do this, the application and CNC resources will need to coordinate with each other (much as they would need to do for an upgrade effort). The CNC staff will need to determine which objects should be merged. To do this, they will need to review the Specification Merge Selection application (P98401), shown in Figure 15-1. This application identifies what objects have been modified (checked out and back into the EnterpriseOne system) and how the Specification merge process will handle the objects. (We will discuss this application in more detail later in this chapter.) As you can see there is a slight difference in recommended methodologies for the upgrade versus an update process. As we continue our discussion of the upgrade and update processes, we will provide more detail on this topic. In EnterpriseOne, a little planning goes a long way in preparing to upgrade or update your implementation. As any good tech will tell you, a little paranoia is a good thing. To protect yourself from anything unexpected, it is a good idea to back up several of your relational database tables (before, during, and after your upgrade/ update efforts). We will touch on these relational database tables later in the chapter. You are probably thinking this is an awful lot of work to perform for an update. True, it is a lot of work, but if you follow this methodology you will be successful in your updates. If you do not follow this methodology, and try to apply an update/ upgrade directly into your production environment, you will most likely have problems. For these reasons, Oracle asks all of their clients to follow this type of methodology.
Updates Let’s start by talking about how the update process flows. With an update Oracle leaves your objects, which are stored in your central object data source, in place. Oracle stores the information that the applications and reports in EnterpriseOne use
Chapter 15:
Upgrade Tools and Rules
659
FIGURE 15-1. Specification Merge Selection application in relational database tables. These tables are contained in your central objects data sources. EnterpriseOne uses these tables to create the files that workstations use to run EnterpriseOne (in 8.12 this will be XML-formatted relational database tables and Table Access Manager [TAM] in previous releases). When you apply an update to the system, Oracle leaves your objects where they are and either adds or merges its changes into the central object tables (see Figure 15-2). So for example, if the update includes 25 new applications, the specifications for these applications will be added directly into your central object tables. So what happens if Oracle has added functionality to an existing application that you have customized? Let’s take the example of event rules (ER). If you and Oracle added new code in the same section as your modifications, the modifications are not brought over automatically. Instead clients use the Visual ER compare tool to manage the migration of ER during retrofit efforts. If the ER is in a section that has not had any new Oracle code added or on a custom button, it will
660
JD Edwards EnterpriseOne: The Complete Reference
Central objects
Specification merge moves objects into your central object tables.
The merge will take specifications from the planner relational database (XML format for 8.12) and merge them into your central objects.
FIGURE 15-2. How an update moves objects into your system be brought over automatically. The Visual ER tool is part of the retrofitting effort that programmers at your site would need to perform for modifications to the EnterpriseOne system. This tool provides the ability to compare the previous ER to the new ER and migrate parts or all of the changes into the ER delivered with the Update or upgrade. An important thing to remember is that you may not always want to keep your modifications, or your modifications may need to be changed to produce the functionality you want. DEFINITION Event rule: An event rule is a type of code that performs certain functions at specific points in an application or report’s execution. This code is set up through the EnterpriseOne design tools (that is, it is native to EnterpriseOne).
Upgrades When you perform an upgrade, you are actually moving to a newer release of the software. In a perfect world, a new release would mean new functionality and an update would mean bug fixes. However, this is not a perfect world. Currently, Oracle ships new functionality in both updates and upgrades. Although the company is moving toward shipping new functionality only in upgrades and concentrate on bug fixes in updates, saying you will receive new functionality only with upgrades would not currently be accurate. So what is the real story about upgrades? The real difference is that with an upgrade you basically install a new system first. That’s right, you install a brand new EnterpriseOne system. The only thing you do not reinstall is your business data tables. In Figure 15-3, you can see the types of tables that are loaded fresh with an upgrade.
Chapter 15:
Release-specific data sources (in this example, E811)
E811 Object Librarian
E811 System Tables
Upgrade Tools and Rules
Non-release-specific data sources
Business Data
Control Tables
E811 Data Dictionary
661
Release-specific data sources (in this example, E812)
E812 Central Objects
E812 Object Librarian
E812 System Tables
E812 Data Dictionary
FIGURE 15-3. Tables that are reloaded during an upgrade As you can see from Figure 15-3, the tables in the system, Object Librarian, data dictionary, and central objects data sources are reloaded with upgrades. This means they are totally independent of your earlier release. So, if you upgraded from E811 to E812, you would have two sets of the tables contained in these data sources. Your E812 system would look at the new tables, and your E811 system would look at the older tables. How do you get the modifications from one release level to the next? Remember, you have reloaded your Object Librarian and your central object tables. The central object tables contain your custom modifications to the EnterpriseOne applications and reports. The upgrade process, through the Specification merge report, moves your modifications from the older release level’s central objects to your new release level’s central object tables; this is shown in Figure 15-4. It also adds the entries into the new Object Librarian data source. This is important, as the Object Librarian is responsible for keeping track of the objects on the system, and the Object Librarian application provides the means for users to use the design tools. NOTE The merge report, which moves your objects, usually takes less time to run for an upgrade than for an update. The reason for this is that most clients will have fewer modifications than EnterpriseOne. In an update, you are merging Oracle’s changes into the central objects, and in an upgrade, you are merging your changes into the shipped central object tables.
662
JD Edwards EnterpriseOne: The Complete Reference
E811 Central Objects
E812 Central Objects
Deployment Server
FIGURE 15-4. Upgrade process at a high level That probably answers your general questions on the differences between upgrades and updates, but are you wondering what happens to your business data during an upgrade? When an upgrade is performed, sometimes the format of the existing relational database tables changes. An example of this would be if you upgrade from EnterpriseOne release E811 to E812 and several business data tables in the E812 release have changed—there are additional columns or the columns have changed size. This means the tables need to be changed, or the applications in the new release of EnterpriseOne will not function correctly. When the applications make calls to tables, they expect certain column sizes. If these do not match, the application will not be able to access the table. This is why the upgrade process converts your business data tables in place. Otherwise, you would need to reload all of your business data tables every time you wanted to perform an upgrade. This would not be acceptable, as some clients have more than a million records in some of their business data tables. This is why table conversions are run in place. If any new tables need to be added, they will be generated during the upgrade processes in the appropriate data source. NOTE Table conversions can be required for an update as well. However, Oracle tries to limit these conversions to only ones that are absolutely necessary.
Platforms The question may come up when setting up an upgrade or update: Will the process differ greatly from platform to platform? The general answer is, not very much. Most of your setup for an upgrade or an update is done on the deployment server.
Chapter 15:
Upgrade Tools and Rules
663
The only time the platform specifics come into play is when you execute the platform pack to set up the host code for your enterprise servers and/or load the new release’s central objects. The Specification merges, table conversions, and workbenches are all run from the deployment server, and no matter what platform your enterprise server is, your deployment server will be a Windows Intel machine. NOTE While the table conversion workbench is executed from the deployment server, table conversions themselves are submitted to the enterprise server (if you want to run them locally on the deployment server, you still can, but it is recommended to run them on the enterprise server). This allows the upgrade process to take advantage of the additional horsepower of an enterprise server.
Upgrades
As we have already discussed, upgrades are the process of moving your software from one release level to another. This procedure is normally done to take advantage of new functionality or to resolve problems with the software. In this book, we are not going to go over all of the points of an upgrade. However, after reading this chapter you should have a good idea of what happens during an upgrade, and when an object will be added, replaced, or merged. You will also learn the common problems encountered during an upgrade, and how to manually confirm that your upgrade was successful.
Basic Parts of an Upgrade The first part of any successful upgrade is planning, planning, and a little more planning. If there is anything you should fight to avoid in an upgrade, it is being surprised and running out of time. However, if you take the time to plan the upgrade up front, it will pay for itself many times over in the long run. There are several things you should look at when planning an upgrade: ■
Disk space requirements
■
Required software levels
■
Backup procedures
■
When to roll back
■
Impact on your end users
664
JD Edwards EnterpriseOne: The Complete Reference
Disk Space Requirements We cannot tell you how painful it is to have an expensive consultant fly out to your site only to sit and wait for you to install more hard drive space. Unfortunately, this does happen from time to time. This is why it is so important to ensure that your system has the necessary free disk space before that consultant even thinks about hopping on a plane or before you dedicate one of your people to the project. An upgrade is a project and should have an associated project plan. How do you ensure that you don’t get into this situation of not having enough disk space? Visiting the www.peoplesoft.com web site is good start. This web site contains information for upgrading the EnterpriseOne software and is updated as new releases come out. These documents have listings of what is called minimum disk space requirements. You need at least this much free drive space and possibly more, depending on the number of custom objects you have on your system. If you have developed 5,000 custom reports, Oracle’s minimum space requirements probably will not be enough for you. These requirements are based on a “standard” upgrade, and they are meant to be just that—a baseline. If you know that you have more custom objects, take that into account when you look at disk space requirements. You also do not really want to go with the bare minimum. When examining the disk space you require, it is a good practice to estimate for your growth. Your business does not stop, which means your disk requirements will continue to grow. Don’t leave yourself with little room for additional business data, new custom objects, new environments, or other changing business needs. NOTE The recommended upgrade procedure is to run two releases in parallel: your production environment running on the old release while you test the new release in another environment and path code. This means that you need the space required for your old production environment as well as additional space for the new release.
Required Software Levels Another factor that needs to be considered when you are looking to upgrade your system is what levels your third-party software should be for the new release of EnterpriseOne to function correctly. Again, this is listed on the www.peoplesoft.com web site. These minimum technical requirements (MTR) documents list the required levels for most of your third-party software. NOTE Some third-party requirements have to be verified with the individual vendors (such as Citrix and Vertex). These documents will tell you what release of the database, operating system, patch levels, and compiler to run.
Chapter 15:
Upgrade Tools and Rules
665
It may also turn out that you need to upgrade some of your third-party software— for example, a database or operating system—to perform the EnterpriseOne upgrade. This will need to be reflected in your upgrade’s timeline. If you do not plan this activity ahead of time, you will run into problems at the eleventh hour. The following section covers an example of Oracle’s minimum technical requirements, which will tell you if you need to upgrade your database or operating system for your new release of EnterpriseOne to function properly.
EnterpriseOne Minimum Technical Requirements for Windows NT Enterprise Servers This section will discuss minimum hardware and software technical requirements for EnterpriseOne Windows enterprise servers (MTRs). We discuss some of the information EnterpriseOne MTR documents will provide you. For current information on the requirements on all platforms, please refer to Oracle’s web site (www.peoplesoft.com).
Hardware Requirements It would be unusual for Oracle to detail anything but basic information about hardware requirements. Oracle instead relies on hardware vendors and business partners to assist clients with sizing exercises. The primary purpose of the hardware section of the minimum technical requirements page is to detail base items that are required for the software to properly function. The authors strongly recommend that when considering an upgrade you undertake a sizing exercise with a hardware vendor. NOTE The amount of hardware required for your implementation will be driven by your business requirements. For example, do you need seperate hardware for Production and Non-Production systems.
Printer Support The following section provides an example of some of the types of printer requirements that can be found on an MTR page: ■
Non-DoubleByte PostScript Language Level 2, PCL 5, or line printer. PCL 5 is only supported for non-DoubleByte customers.
■
DoubleByte Genuine Adobe Systems PostScript Language Level 2 Interpreter version 2015, or PostScript Language Level 3.
■
EnterpriseOne uses CID Font Technology Support starts at Language Level 2 Interpreter 2015. It has been discovered that some third-party interpreters of PostScript Language Level 2 will not properly print CID-font-based DoubleByte PostScript.
666
JD Edwards EnterpriseOne: The Complete Reference
Over time Oracle has found it more effective to encourage clients to deal with hardware vendors and sizing representatives directly (as noted earlier). Since the minimum technical requirements are in fact minimum, Oracle does not want clients to get into a situation where they are undersized. One way to verify that your implementation is running on hardware that can handle your projected load is to perform a stress test of the system. While this takes a bit of planning and effort, more and more customers are undertaking this as a standard part of their implementations (an ounce of prevention is worth a pound of cure).
Software Requirements This section of the chapter will discuss some of the types of information that the Oracle MTR page will provide clients. We will present some examples of the types of information you will find for a Windows enterprise server: ■
Operating System ■
The MTR page will provide information about the operating system and patch levels required for specific EnterpriseOne releases. ■
While the MTR page will detail minimum patch level for the operating system, Oracle does not generally recertify the operating system levels until large releases. Due to this, some judgment and testing is required when applying patch levels to your operating systems.
NOTE Some clients protect themselves from having issues with patch levels by having separate hardware for their production and non-production environments. This provides them with the ability to patch one set of servers and validate them prior to affecting their production environments. ■
Java Runtime ■
■
The web site will provide you with updated information on what level of java runtime is required for your EnterpriseOne implementation.
ANSI C Compiler ■
It is a good practice to have an up-to-date compiler installed on any workstation that will have packages deployed to it.
■
This section of the web site will also provide recommended patch levels for the compiler levels.
Chapter 15:
■
Upgrade Tools and Rules
667
Some previous EnterpriseOne release levels do not support compiler levels currently released by the vendors (for example Visual Studio). ■
Oracle and the vendor have provided ways to back-level the compiler to the previous release.
As we have indicated here, there are a number of components that EnterpriseOne depends on to operate successfully (operating system, C compiler, and so on). It is a good practice to monitor the MTR page to keep up on required changes/patches.
Additional Requirements (Database Systems) Depending on the database used, EnterpriseOne Windows enterprise servers may require additional database components. The Oracle web site will provide information on ■
■
Supported database levels ■
Oracle
■
Microsoft SQL
■
UDB
■
MSDE
■
And so on
Additional requirements ■
This would include client software that might be required. ■
■
For example, Oracle client software.
This section of the MTR page will also provide notes/information about the database release levels. ■
For instance, information about SQL Server Native Client and how EnterpriseOne now can connect through a single data source.
As this section details, Oracle provides the ability to use a variety of different software (databases, operating systems) to meet your business needs. You should carefully consider what platform/database combination suits your business needs. The great thing about EnterpriseOne is that it can handle these types of choices and even changes later on.
Informational Web Sites There are a number of informational web sites that can be very useful when working with your Oracle EnterpriseOne implementation. Table 15-1 provides some web sites that might be useful to clients when developing their implementation.
668
JD Edwards EnterpriseOne: The Complete Reference
Subject
Web Site
Microsoft
http://www.microsoft.com From Microsoft’s home page, select either the Downloads or the Search option, and then browse to the required product information.
IBM
IBM general information http://www.ibm.com/ iSeries 400 Toolbox for Java http://www.iseries.ibm.com/toolbox/ High Availability and Clusters for iSeries http://www-03.ibm.com/servers/eserver/iseries/ha/ha_clusttech.html
HP
HP-UX patches http://www.hp.com/support. From there, navigate to HP-UX using the appropriate geographic location and language preference. To see what patches are presently installed on your system, enter the following command: swlist -l fileset -a patch_state *.*,c=patch | grep -v superseded Systems that need support in other countries also need the patches obtainable through the following site: http://www.hp.com/country/us/eng/othercountrieswel.html
Sun Solaris
Solaris patches http://sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/patch-access
Oracle Corporation
Metalink https://metalink.oracle.com/ RAC, ASM, and Clusterware Technical Webcast Series http://ouweb.us.oracle.com/database/rac_asm_clusterware_tech.html Oracle Database 10g Release 2 (10.2) documentation http://www.oracle.com/technology/documentation/database10gr2.html Technical articles for DBAs and Sysadmins http://www.oracle.com/technology/pub/articles/tech_dba.html#linux Projects hosted on oss.oracle.com http://oss.oracle.com/projects/ Project: ASMLib Kernel Driver http://oss.oracle.com/projects/oracleasm/ Project documentation: ASMLib Kernel Driver http://oss.oracle.com/projects/oracleasm/documentation/ Project downloads: ASMLib Kernel Driver http://oss.oracle.com/projects/oracleasm/files/sources/
TABLE 15-1. Web Sites for Oracle EnterpriseOne Software Technical Requirements
Chapter 15:
Upgrade Tools and Rules
669
NOTE A current listing of informational web sites can be found on www.peoplesoft.com under the Minimum Technical Requirements.
Backup Procedures This planning step is one of the most critical for an upgrade. Your backup is your safety valve. This step ensures that if everything goes wrong, you will still be able to conduct business. If you do not perform this step, you run the possibility of losing business data or objects. After all, let’s be realistic—you could have the best installer in the world, but that will not do you much good if the disk drive crashes. Let’s take a moment to go over some of the important steps that should be taken before an upgrade starts.
Backing Up Your Database Although this sounds obvious, you would be amazed at how many companies do not have a disaster recovery plan. We are discussing backing up your database in the context of preparing for an upgrade; however, you should have a procedure to do this nightly for changes and weekly full backups. This is not something that should be left to chance, as you may be the one who has to tell your CEO that your luck has run out. With that in mind, the first thing to consider is what environments and path codes are going to be upgraded. This will help you determine what tables will need to be backed up. Let’s go through an example. Suppose you are going to upgrade your system from E811 to E812. Since you are following the recommended upgrade procedure, you will be upgrading the prototype and development environments, while leaving your production environment at the E811 release level. You will need to back up all your database tables. This means you will need to back up your database tables for all of your environments. The reason is that when you perform an upgrade you will be touching your business data tables, control tables, and, of course, your central objects tables. At a minimum, you will want to ensure that you have a good backup of these tables for the environments you are upgrading and that you have tested that backup. It is very important to test your tape backup periodically, so you do not receive any unpleasant surprises. Once you have backed up these tables, you will need to also back up the directory structure and registry of the deployment server.
Backing Up Your Deployment Server’s Directory Structure The next step is to back up your deployment server’s directory structure. With an upgrade, the old directory structure will be left in place and a new directory structure will be created for the new release of the software. So if you are upgrading from E811 to E812, you will have one folder for E811 and one for E812. This is
670
JD Edwards EnterpriseOne: The Complete Reference
because you are moving from one release to the next. However, the thing to keep in mind is that your deployment server will no longer be on E811. When you log in to the deployment server, the registry and your desktop shortcut will point to the new directory structure, E812. This means you will need to maintain your old system using a client workstation from the time you install the new release’s setup CD. NOTE Many clients needing to upgrade their deployment server hardware have used this opportunity to leave the original release on the original deployment server hardware and install the new release on new hardware. While this does take some knowledge and some modifications to the machine records, it allows clients to continue using their original deployment server to build packages and, if required, apply ESUs to the prior release. Another option would be to use the snapshot utility to save the previous release information prior to installing the new release on the deployment server. If this is not done correctly, you will have to restore your deployment server from tape. What do you need to back up on your directory structure? If you are doing an upgrade, you should back up the path codes’ directory structure that you are upgrading. This would mean backing up the PY811 and/or DV811 directory. The reason is when you upgrade to E812, the Specification merge (which we will discuss later in this chapter) copies files out of this directory into a path code directory under E812. This is done so that your source and header files are moved when you upgrade. During an update, backing up your directory structure becomes even more vital. This is because you will not have two different directories, as we’ve already described. You will be copying files directly into your existing structure—for example, E811. Again, you are going to want to back up the path code directory you are updating. So if you are updating the prototype environment and path code, you would back up the PY811 directory. However, an update affects more folders than just the path code directory on the deployment server that you are updating. An update will also place files under the planner directories (JDEdwards\ EnterpriseOne\E812\Planner\Data). It is a good practice to back up the planner directories prior to applying a full update. To ensure that your backup is successful, you will need to disconnect/stop the local Microsoft SQL Server Desktop Engine (MSDE) or SQL Server Express (SSE) databases (there are scripts in the planner directories to help you accomplish this). This will allow the MSDE or SSE databases to be backed up without producing an access error. The following directories are
Chapter 15:
Upgrade Tools and Rules
671
affected by an update and thus should be backed up. The purpose of this section was to take some of the mystery out of why these directories need to be backed up: ■
Planner\Data directory
■
Path code directories that are being updated
NOTE Many times when you apply an update, you will need to apply a new Tools Release as well. If this is the case, you should also back up the following directories: ■
Client Directory
■
OneWorld Client Install Directory
■
System Directory
■
The systemComp Directory
Placing an Up-to-Date Full Package on a Client Machine (Just in Case) The next step—building a full package on your old release and deploying it to a workstation that will not be used prior to the upgrade or update—should be considered a safety stop. If you have a problem with an object, you can then recover the object by checking it in from this client workstation, which is a lot easier than recovering a full set of central object tables from tape for one object! To do this, you would need to leverage your save location to restore an object. (If you do not have a save location, consider setting one up. Detailed instructions for configuring a save location can be found on the www.peoplesoft.com web site.) To do this, you would save the object to the save location from the workstation, check out the object onto the workstation (overlaying the local specs), restore the object from the save location (overlaying the local specs with the original objects), and then check the object back in. The object would now be back to the same state it was in before you started the update. Again, this last step is a valuable safety check, and we would not recommend skipping it. DEFINITION Restore from a save location: This is the process of using the save location to allow you to restore an object’s previous state and check it back into central objects. This procedure should only be used when necessary, as you are replacing what is in your central objects with what is on the client workstation.
Oracle-Regular / JD Edwards EnterpriseOne: The Complete Reference / Jacot / 873-1 / Chapter 15
672
JD Edwards EnterpriseOne: The Complete Reference
Restoring an Object from a Save Location We have been discussing how it might become necessary to restore an object into your EnterpriseOne system from information stored on a development workstation. Let’s briefly cover how this would be accomplished. Using the save location to restore an object to a previous state should only be done when necessary, because whatever is checked in last wins. To perform a restore, from your client workstation running the package you built prior to the update or upgrade, access the Object Management Workbench (OMW) application. Once you are in the Object Management Workbench application (see Figure 15-5), find the report, application, business function, business view, or data structure you are interested in. You can find this object by placing the object name in the Search field on the Search tab. Once you have found the object you are after, highlight the object, and select it. You can then use the arrows to add the object to a project so that you might work with the object. Once the object has been added to the project, you can highlight the object and click the Save button (which is shaped like a floppy disk). This will save the object from the local workstation to the save location. After that, you would highlight the object and check it out. Once the object had been checked out, you would restore the original object from the save location (see Figure 15-6). To do this you would highlight the object and click the Restore button (which looks like a red and blue arrow that forms a circle). This will overwrite the local specifications with the previous object that had been saved. Now all you have to do is check the object in. By checking the object in, you are having EnterpriseOne replace the records for this object, in the central object tables, with the records contained locally on the development client (this could be in TAM format or XML depending on your release level). This means that if you are on a client with the latest package, before the upgrade or update, you have just restored the object to its original state (prior to the upgrade or update).
When to Roll Back The question always comes up, what if everything goes wrong? Can we get back or will our end users be down the next day? The answer to that question will depend on you. If you plan correctly, you will be able to roll back to your previous release and not affect your users. However, if you do not plan for the possibility of rolling back and you run into problems, you will have a very painful time. Here are some things to keep in mind when you are planning your rollback strategy: ■
How long will it take you to load your tape backups?
■
When should you pull the plug?
Chapter 15:
Upgrade Tools and Rules
673
FIGURE 15-5. Saving an object to the save location
How Long Will It Take You to Load Your Backup Tapes? It will take a different amount of time to load your backup tapes depending on how much data you have to restore. When you are upgrading an EnterpriseOne system, you are affecting many different tables. True, you will be loading some new tables that will only be used by the release of the software—for example, a new set of system tables is loaded with each new release. So if you have to roll back, you will not need to worry about these tables right away. However, you will also be running table conversions over your business data. If you need to restore this data, you will need to estimate how long it will take you to restore these affected tables. You can get a list of the business data tables that will have a table conversion run over them from the EnterpriseOne upgrade guide. Another set of tables you will need to worry about are your central object tables. During an upgrade, you will only be reading from them to move your modifications into a new release’s central object tables.
674
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 15-6. Restoring an object from the save location Currently, an update is a little different. You will merge Oracle’s changes directly into your central object tables, so if something goes wrong you will need to restore these tables from tape. Some of these tables are quite large. You should have a good idea of what these tables are before you start your upgrade or update. The time it will take to restore these tables does not depend only on what tables you need to restore. It will also depend on how you backed up your data. With Oracle and SQL Server, you can back up the entire database at once. Many clients will adopt this type of backup strategy. If you follow this strategy, you will need to restore the entire database and then move the tables you need back into your system, so it is very difficult to restore just a single table. This is not a bad thing unless you need to restore one table to rerun a table conversion! The final point we will leave you with is this: If you roll back, do you roll your deployment server back as well? It would not really be necessary for upgrades since
Chapter 15:
Upgrade Tools and Rules
675
you would still be able to deploy the older release to workstations. You would just need to maintain the system from a workstation instead of the deployment server, since the deployment server is now on the next release. However, if you are performing an update prior to the upgraded release, you will need to roll your deployment server back. The reason is that there is no separate directory structure for an update at this level. That means your directory structure on the deployment server has been affected. So if you rolled back all your data but not this directory structure, you would have problems. At a minimum, you would be deploying a different Tools Release level and possibly a different set of specifications. You will also need to restore the registry of this machine or you will have problems running EnterpriseOne on the deployment server. Build this into your estimate of how long it will take you to roll the system back.
When Should You Pull the Plug? At this point, you should have an estimate of the amount of time it will take to roll your system back. When you are working on the production environment, this time estimate is critical. If you are working over a weekend and you think it will take you ten hours to roll the system back, you do not want to start the rollback at midnight on Sunday. This time estimate will give you a point where you know if you do not throw in the towel, you are risking bringing your end users down. We have seen people so desperate to get the system up that it costs them more money and frustration than if they had just rolled the system back and attempted the upgrade again the next weekend.
Impact on Your End Users If an upgrade or an update is planned and executed correctly, there will be minimal impact on your end users. This means you will have a controlled rollout to your end users. The only real impact on them should be the possibility of the need for training on new functionality contained in the new release or update (which should be part of your project plan). However, if the update or upgrade is not planned correctly and you do not have a good timeline, the impact on end users can be severe. We don’t want to scare you to death; we just want to drive the point home that an upgrade or an update is a technical project and needs to be planned as one. It is also a project that affects mission-critical applications, which means you should have contingency plans in place so that your upgrade or update is not even an event for your end users.
Nuts and Bolts of an Upgrade In this section, we will not give you step-by-step instructions on the upgrade process, since the Oracle manuals cover this. However, what we do hope to leave you with is a better understanding of what is happening when you run the major
676
JD Edwards EnterpriseOne: The Complete Reference
steps of the upgrade. This knowledge should assist you in performing successful upgrades and help you determine where to start troubleshooting. NOTE This section is written with the assumption that you have reviewed the EnterpriseOne upgrade manual. If you have not, please review it, as it will greatly enhance your understanding of this section.
Platform Pack In later releases of EnterpriseOne, the product code as well as the EnterpriseOne database files are installed via a process called the Platform Pack. This new process moves the database load process from the deployment server to the database/ enterprise server. This removes unnecessary network traffic and streamlines the process to combine the host’s installation and database file installation. This provides clients with the ability to load this information prior to or at the same time as executing the installation planner. When the Platform Pack is executed, you can determine whether you would like to install the host code information, the database information, or a combination of the two. This allows you to install host code on logic servers and database files on a database server or both on an enterprise server. NOTE In 8.12 you must first install/upgrade the pristine environment. This provides the ability to execute table conversions on the enterprise server.
Installation Planner Let’s start where everything is based, the EnterpriseOne installation planner. At this point you would have already backed up your system and prepared your environments for an upgrade—making the prototype environment and path code match the production environment and path code. One of the first steps in an upgrade, installation, or update is to set up your EnterpriseOne installation planner. This program assists you in planning your EnterpriseOne configuration. The program can be found on menu GH961 (System Installation Tools), shown in Figure 15-7. You will notice there are two different types of EnterpriseOne installation planners. These are the Typical Installation planner and the Custom Installation planner. The difference is that the Typical Installation planner assumes you are going to set up the standard Oracle environments and data sources. This planner will set up most of these for you almost automatically. All you will need to enter is a few values. The Custom Installation planner gives you the option of taking the standard defaults for environments and data sources, or you can customize the plan.
Chapter 15:
Upgrade Tools and Rules
FIGURE 15-7. System Installation Tools menu If you are new to EnterpriseOne, use the Typical Installation planner program. However, no matter which type of plan you choose, you will still go through the same major steps: ■
Copying information from the previous release
■
Locations planner
■
Hosts planner
■
Data source planner
■
Environments planner
■
Table conversions planner
■
Control tables planner
■
Specification merge planner
■
Package build planner
677
678
JD Edwards EnterpriseOne: The Complete Reference
Copying Information from the Previous Release One of the first actions that occurs when defining an upgrade installation plan is the copying of information to the release from the previous release. You will be prompted to provide a Previous System Data Source. This previous system data source will populate the new release level with information from the following sources: ■
Release Master
■
Locations
■
Machines
■
Environments
■
Path codes
■
Object configuration mappings
■
Data sources
This will provide required information for the upgrade process and allow you to select the existing information on your enterprise, deployment, HTML, and other servers. This helps to make planning the upgrade as easy as possible by saving you from having to retype this information. Location Planner The first step is to plan your install locations. This area of the planner allows you to plan which sites you are going to have. You can set up environments for each site or location. When you set up a location, you give it a location code if it is not your base or starting location. This location code will appear at the end of the environments you set up for your location. Say, for example, that you have a branch office in Chicago that you want to set up. If you set up a location for this office, you can also set up environments for this office, so they can view their own business data. These environments’ names would contain the location code you gave them, so if your location code was CHI, your Chicago production environment would appear as PD812CHI. This allows your administrators to keep track of your environments with greater ease. You will not need to worry about setting this up for an upgrade; your locations would already have been set up during the installation process. Hosts Planner This planner allows you to set up your enterprise, database, deployment, and JAS servers. When you add your plan, the software allows you to set up new hosts or you can just accept the old ones. So this area of the planner will normally be set up almost automatically for you.
Chapter 15:
Upgrade Tools and Rules
679
Data Source Planner Instead of using one screen to define all of the data source information, the planner prompts the administrator for data source information as each section of the installation plan is completed. Basically, this is asking you how you want to organize your data for each of your environments. During an upgrade, you will be prompted to verify the settings of your data sources. However, unless your tables for your new release are going to be on a new enterprise server, you should not need to change the data sources. Environment Planner This is the area of the planner that allows you to select the environment you want to upgrade. So, for example, if you are upgrading the prototype environment, you will want to select this environment. Since each environment is associated with a path code, this will tell the software that you are upgrading that path code. When you perform an upgrade, you will need to pay attention to planning your environments. The Environment Workbench, which we will discuss a little later, creates new tables during an upgrade, which are needed for the new release. This is why you want to ensure that you select the environment you’re upgrading. Upgrading a Custom Environment and Path Code Many companies use only the standard EnterpriseOne environments. As we have discussed in the preceding section, these environments are easy to select for upgrading. However, some clients have created their own custom environments and path codes. This means the software will not know about them unless you tell it they exist. So how do you tell the software that you want to upgrade a custom environment? Actually, it is not as difficult as you might think. What you can do is go through your upgrade plan and select all of the standard environments you want to upgrade (for example, PY811). Once you have selected your standard environments and completed defining the plan, you can then go back and add your custom environment to your plan. To do this, go to menu GH961 and run the installation planner. Once you are in this program, click Find and expand your upgrade plan. Highlight and select the Environments folder. This will take you to the Environment Planner window. On this window you should see the standard EnterpriseOne environment you selected to upgrade. In the case of our example, we are upgrading E811 to E812. However, we also want to upgrade our custom environment and path code. To do this, place your cursor in the blank line under the Environment Name column header. This will give you a Visual Assist button; click this button and select your custom environment. You will then need to set up the Load Data, Table Conversion, Control Table Merge, and Specification merge flags for your custom environment. These flags control whether a merge will be run for that environment. Since you have an existing example, you should copy the flags from your standard Oracle environment.
680
JD Edwards EnterpriseOne: The Complete Reference
In our example, the name of our previous environment was CS811. In the rest of the fields you would enter the same values as your standard JD Edwards environment, except for the parent environment field. In this field, you would enter the name of your custom environment—for our example, CS811. You have now told the software that you have a custom environment, which is to be upgraded. However, you are not done yet. Before you proceed, you will need to verify values in your planner environment for your custom environment and path code. If you do not, you will have issues with upgrading this environment and path code. You need to verify your environment information and verify your path code information. To verify your path code information, go to the Form Path Code exit from the Environment Revisions window. This will take you to the Path Code Master application. It will also show you the information for your custom path code. This information must be absolutely correct or you will have problems with your upgrade. The Specification merge reads this information and uses it during the merge process. Once you take the Form Path Code exit, you will be taken into the Path Code Revisions window for your environment’s path code. On this window you will need to verify some information. First, make sure the path code name is correct. Next, make sure the Location field shows the name of your deployment server. If this is not the correct name, you will have problems with the Specification merge, as this name tells EnterpriseOne to find source and header files on the specified machine. The next field you will need to ensure is correct is the Server Share Path field. This field will need to match your share name on the deployment server. The status code of your path code will normally be a 1, for in production. The Merge Option field must be a 1, for merge. The Release field should be the same as the release you specified for your environment. The Deployment Data Source field is a key field as well. It contains the EnterpriseOne data source name, which contains your central object tables. When the merge process reads this data source, it can determine where your central object tables reside (on what database and machine). The UNC flag must be set to Y. This allows EnterpriseOne to take advantage of the universal naming convention functionality. This is how some of the Control Table merges determine where your tables reside. The developers of EnterpriseOne know this, and thus they know they cannot trust this mapping, since they want to merge against the control tables in your relational database. Once you have done all this, you are now ready to continue upgrading or updating your custom environment and/or path code. Table Conversion Planner This area of the planner is set up behind the scenes. When you add your upgrade plan, you will be asked what release you are upgrading from and what release you are upgrading to. This and the table conversion flag that you set up on the environment planner control the Table Conversion merge. Figure 15-8 shows the window where you specify the To and
Chapter 15:
Upgrade Tools and Rules
681
FIGURE 15-8. To and From releases
From releases. It is very important that you specify the correct To and From releases, as this is what drives the control merges. We will discuss how the To and From release is used later in this section. If you are upgrading from E811 to E812, for example, you will need to specify this in the From Release and To Release fields. If you want to ensure that the control table planner is set up correctly, you can review it after the fact by running the installation planner program on menu GH961 (System Installation Tools). Once you are in the installation planner, click Find and expand your plan. Expand the Environments directory. Highlight and select the Control Table Merges directory. This will take you into the Control Table planner, where you can verify that your To and From release settings are set up correctly. The actual reports that run, which are listed in this window, are populated automatically when you set up your plan.
682
JD Edwards EnterpriseOne: The Complete Reference
Specification Merge Planner The next area of importance is the Specification Merge planner. This area, like the Control Table Merge planner, is set up for you automatically when you go through your upgrade plan. It also keys off a flag set in the environment planner. This flag is set by placing a 1 in the Spec Merge column on the Environment Planner window. This should be set to 1 to run the Specification merge. If you accept the defaults when setting up your upgrade plan, this will default in. This area of the plan controls what version of the Specification merge, R98700, is run. If the Specification merge stops with a status of 50 before it completes successfully, you can restart it from the point where it stopped. To restart the merge you will need to check the Specification Merge status (P98700). If the status is 50, you restart the Specification merge by clicking Merge or Merge All. The Specification merge restarts and processes all unprocessed objects. (Before restarting, review and correct any issues with any objects that failed.) NOTE During a Production cut-over the specification merge would not be run. The only information that would be converted would be Business Data and Control tables. Package Build Planner Again, EnterpriseOne sets this up for you behind the scenes. This planner sets up the records so that EnterpriseOne will know about the shipped packages. Installation Planner Summary We have now covered the high points of the installation planner. The next step in the processes is actually executing your plan through the Installation Workbench. However, before we move on to that section, it is important to cover a job the installation planner does: creating the system tables that most of your installation workbenches insert data into. These tables are created when you release your plan. These tables are owned by the SYXXX, where XXX is the release of EnterpriseOne you are running.
Installation Workbench You have set up your upgrade plan; now you have to execute it. To do this, you need to use the Installation Workbench, which is located on the GH961 menu (System Installation Tools). This program takes all the information you set up in the planner and runs the merges you planned. We will go through every screen on the Installation Workbench and touch on what really happens when you run each of these workbenches. Let’s start by going over the workbenches you will see: ■
Initial Tasks Workbench
■
Locations Workbench
■
Data Source Workbench
Chapter 15:
■
Environment Workbench
■
Machine Workbench
■
Table Conversion Workbench
■
Control Tables Workbench
■
Specification Merge Workbench
■
Package Workbench
Upgrade Tools and Rules
683
Initial Tasks Workbench This workbench runs Media Objects Conversion (only for Xe and ERP8.0), Release Master, Copy Data Dictionary, Copy System Tables, and Security Copy (applies to upgrades from XE and ERP 8.0). Locations Workbench This workbench lists all the deployment locations you set up in the planner. Remember, you can specify multiple locations within EnterpriseOne, which makes the system easier to maintain if you have multiple sites running EnterpriseOne, each with their own set of environments. When you execute this workbench, it takes the information in the F9654 deployment location definition tables from the planner database on the deployment server. It then populates the F9654 table in the System – xxx data source, where xxx is the release of EnterpriseOne you are running, since the system tables for EnterpriseOne are release specific. NOTE During an upgrade, key information is copied from your previous release’s system tables into your planner for the new release. This means you will be able to see the locations you set up in the prior release of EnterpriseOne when you upgrade, so you do not have to set them up again and again. When you execute the workbench, this information will then be written to your new release’s system tables. Data Source Workbench This workbench sets up your data sources for the new release, using the information you specified in the installation planner. Again, since new releases have their own set of system tables, you would run this workbench. When this workbench is executed, it populates the F98611 table (Data Source Master) in your system data source. It gets this information from the F98611 table in the planner database on your deployment server. This is where all your information is stored when you set up your plan. This process also copies information from the F986115 table and Data Source Sizing table. Again, it copies this information from the planner. This table contains information on your data sources. If you are running EnterpriseOne against an Oracle database, this table would contain the Oracle table
684
JD Edwards EnterpriseOne: The Complete Reference
space and index space that each data source would use. Normally each data source, except for the versions data source, would have its own table space and index space. This is so that your database administrator can administer the database with greater ease. Environment Workbench The Environment Workbench populates a set of tables, which we will go over in this section. Let’s start with the tables this workbench populates. These tables are all system tables: ■
F0094, Library List Master descriptions.
■
F00941, Environment Detail This table holds your environments’ names, release levels, and associated path codes, and shows whether just-in-time installation is enabled.
■
F00942, Path Code Master This table contains information on your path codes. It contains the name of the path code; your deployment server; your share path, if you are using Universal Naming Convention (UNC); and the data source that contains your path code’s central object tables.
■
F986101, Object Configuration Manager This table holds all of the object configuration mappings for your environments.
This file contains your environments and their
This workbench also kicks off a Universal Batch Engine (UBE), R98403, when necessary. This UBE is what creates and populates your business data tables during an installation. If you have selected to load production data, the UBE will create your business data tables empty. The R98403 engine is also smart enough to not do anything if the table already exists. The only tables it will create are ones required for EnterpriseOne to function. This is so that you can load your business data into the system. If you choose to load demonstration data, the business data tables would be loaded with example data shipped from Oracle. NOTE In EnterpriseOne 8.12 the pristine and development environments will automatically load demo data. When you are performing an upgrade, you will only load production data. This is because you do not want to overlay your existing business data tables. However, you do want to allow the workbench to create any new tables for your new release of EnterpriseOne.
Chapter 15:
Upgrade Tools and Rules
685
Hosts Workbench This workbench is now called the Machine Workbench. It populates the host configuration files from the planner database. These files are as follows: ■
F9650, Machine Master This table contains information on your deployment, enterprise, workstations, data servers, and JAS servers. This file contains a data source for the machine, when it is an enterprise server, the machine type, database type (if machine is an enterprise server), machine name, release level, and where the machine is located. This location is set up during the location workbench.
■
F9651, Machine Detail This table contains some details on the machines. It contains the names of the machines, the path codes for those machines, the share path (when appropriate), and the port that is used.
■
F98402, Host Plan Detail This table just holds the status of the machines for the planner. It will say their status is at 60, for complete, once the workbench is done executing.
This workbench also updates tables other than system tables. It creates your server map tables. These tables are used for your enterprise servers to run UBEs. The following tables are populated: ■
F986101, Object Configuration Manager This table stores the mappings for the enterprise server. These mappings are used when a UBE is run on the enterprise server.
■
F98611, Data Source Master This table contains the EnterpriseOne data sources that are used when a UBE is run on the enterprise server.
■
F986115, Table and Data Source Sizing This table is exactly like the system table and data source-sizing table. It contains information on what Oracle table spaces and index spaces your data sources use, if you are using Oracle.
Adding a New Environment to Your Server Map Not all environments will automatically be created in your server map. The Host/Machine Workbench will create server map entries for all environments listed in the Environment Workbench. However, if you want to add a new environment later, you will need to do so manually from the machine identification program, located on menu GH9611 (Advance Operations). Double-click on this program, click Find, expand the Enterprise Server directory, highlight your enterprise server, and click Select. This will take you to the Enterprise Server Revisions window (see Figure 15-10). It is from this window that you can add new environments into your enterprise server’s server map.
686
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 15-9. Adding environments for the server map To do this, go to Form Environments, which takes you to the Machine Environment Revisions screen (see Figure 15-9). You can add a new environment by placing your cursor in the blank line under the environments column header. You will be prompted with a visual assist, which will allow you to choose your environment. After you choose your environment, click OK; this will take you back to the Enterprise Server Revisions window. Now you will need to actually create the new mappings in your server map. To do this, go to Form Generate Server Map. This will connect to your server map data source, which is listed in the Enterprise Server Revisions window, and create the new entries in the server map F986101 table (Object Configuration Manager) and the F98611 table (Data Source Master). This procedure should be done when your users are off the system, since you are creating your mapping tables again. You should also start and stop your host services once you have generated the server map. This is because the object configuration mappings are cached by the host services upon startup. Package Workbench The Package Workbench is the process that sets up EnterpriseOne so that you can deploy the shipped packages from Oracle. These packages allow you to start testing without having to build a full package, which
Chapter 15:
Upgrade Tools and Rules
687
FIGURE 15-10. Enterprise Server Revisions window
can take up to eight hours. In the context of an upgrade, you would want to deploy the shipped Oracle package and then check out a few of your custom objects to ensure that all of your code is there. That being said, let’s go over exactly what this workbench does behind the scenes. The Package Workbench transfers the F9603 and F9631 tables from the Planner data source to the System – 812 data source and updates the F98404 table to indicate completion. Table Conversion Workbench As EnterpriseOne progresses from release to release, some tables change format. How does the software accomplish this since these are business data tables? The answer is table conversions! EnterpriseOne uses these conversions to change the format of tables during an upgrade. These table conversions will be supplied by Oracle. In this section, we are going to take away the mystery of the table conversion process, as it relates to an upgrade.
688
JD Edwards EnterpriseOne: The Complete Reference
Let’s start with how things flow when you go into the Table Conversion Workbench. The first thing the software does is read the change table and populate the Table Conversion Workbench window with the table conversion you need to run. The way this application finds the records to show you is not as complex as you might think. It reads the F9843 table (Table Conversion Scheduler), polling for the To release and From release you specified in your upgrade plan. Since Oracle ships this table with every upgrade, it will contain entries for the appropriate conversions to upgrade from different releases. In 8.12 it will update the F98405 table to indicate completion and write a conversion log record to the F984052 table for each conversion. In 8.12 the majority of table conversions will be executed on the enterprise server. This takes advantage of the larger hardware and allows for multiple table conversions to execute at the same time. However, any table conversions under sequence 100 (technical table conversions) will still execute locally on the deployment server. The Table Conversion Workbench runs with two loops. The outer one reads through until there are no more table conversions to run or in a running status. The inner loop goes through the F98405 table looking for table conversions at a status of less than 60. As it processes each record, the inner loop checks to see if any table conversions are waiting at status 35 for dependencies. It will try to run these table conversions first (it will verify that their dependencies are satisfied), before trying to run the new table conversion that it read. If you want to see how this works, there is an application that will tell you what table conversions are scheduled to run. This application also reads the F9843 Table Conversion Scheduler table. This application is located on the GH9611 menu (Advanced Operations). The program is named Table Conversion Scheduler P98430. When you run this program you can see what table conversions will be run. An example of what this application looks like is shown in Figure 15-11. Now that you have seen how the Table Conversion Workbench is populated, let’s move on to covering what information this window really gives you. By reading the information on this window (see Figure 15-12), you can determine the order in which the table conversions will run, and which table conversion must complete prior to the next one being launched. The fields on this window give you a vast amount of information: ■
Plan Name
■
New Status This is the status the workbench will set the table conversion to upon completion.
■
Synch This radio button tells EnterpriseOne to run the table conversions synchronously (one after the other).
■
Asynch This radio button, when selected, tells EnterpriseOne to run the table conversions asynchronously. This means if the conversions are not dependent on any other conversion they will run at the same time, by
This field will default in with your plan name.
Chapter 15:
Upgrade Tools and Rules
FIGURE 15-11. Table Conversion Scheduler running the table conversion asynchronously on the deployment server. However, you will see a gain when these table conversions are allowed to run on the enterprise server, which is why Oracle is offering asynchronous table conversions. ■
Target Environment upgrading to.
■
Previous Environment The previous release’s environment. If you are upgrading from E811, this will be a temporary environment.
■
Table Name
■
Detail Status This field lists the status of the table conversions. This will normally be 30 (validated), 50 (failed), or (60 complete). Any table conversion at a status of 30 or lower can be executed.
This field lists the name of the environment you are
This lists the name of the table that will be converted.
689
690
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 15-12. Table Conversion Workbench
■
Status Description This describes the status of the table conversion.
■
Program Name
■
Version
■
Conversion Sequence This field shows the order of sequence in which the table conversions will be run. Any conversion sequence under 100 is a technical table conversion.
■
Dependency Sequence This field shows you whether the table conversion is dependent upon the successful completion of another table conversion. If a table conversion is dependent upon another conversion and that conversion fails, the conversion will not execute.
■
Error Code This column will show you if the conversion has started, finished normally, or finished abnormally.
The name of the conversion that will be run.
The version of the table conversion that will be run.
Chapter 15:
Upgrade Tools and Rules
691
■
Process Type This will tell you the type of process that is being executed to convert your table. Normally, this will be a 3 for batch process.
■
Process Description
This is a text description of the process type.
These table conversions can run a while, so we recommend that you monitor your table conversions through the Table Conversion/Merge Log application, P984052 (see Figure 15-13). This application reads a logging table, F984052 (Table Conversion History). The application can then tell you what conversion is running, the start date, completed date, and the conversion status. Not only can you tell if your table conversions are running, but you can also see if the conversion finished normally or failed. This application is located on menu GH961 (System Installation Tools). When you go into the Table Conversion/Merge Log program, you will notice several things. The first is that this application allows you to search for conversions that were started and/or finished between certain dates and times. This functionality comes in handy when you are troubleshooting your table conversions and have run them multiple times. It allows you to filter out the garbage and concentrate on the records you need. The application will also show quite a bit of information on each conversion: ■
Plan Name
■
Target Environment
The name of the plan the conversion was run from. The environment the conversion was run against.
FIGURE 15-13. Table Conversion History
692
JD Edwards EnterpriseOne: The Complete Reference
■
Previous Environment The name of the existing environment, which will be used to create your new upgraded environment. An example would be PY812.
■
Object Name
■
Cnv Sts The status of the table conversion. This will be 1 for conversion started, 2 for conversion finished normally, or 3 for conversion finished abnormally.
■
Conversion Status This field is just a text description, keyed off the value of the Cnv Sts field, that will tell you if the conversion is running, finished normally, or finished abnormally.
■
Start Date
■
Beg Time The time the conversion started to run. This will allow you to see how long some of your conversions take. You should probably take note of this when you are upgrading the PY environment, so you will have an accurate time estimate on how long it will take to convert your production data.
■
Complete Date
■
End Time
■
Program Name
■
Version The version of the table conversion that was run. Remember, table conversions are basically reports.
■
Ran on Machine
■
Data Item The name of a data dictionary item that was used for the table conversion.
The name of the table that the table conversion affects.
The date the conversion started.
The date the table conversion finished on.
The time the table conversion ended. The name of the table conversion that was run.
The server that the table conversion executed on.
When your table conversions finish, you will have a series of reports in your PRINTQUEUE directory on the deployment server. These reports will tell you whether the table conversions completed successfully or not. However, you should not rely solely on these reports to determine if your table conversions ran successfully. So how do you determine if they ran successfully? Let’s start by going over how to turn your logging on for table conversions. This logging is what is really going to help you track down any issues you may have with a table conversion. To take advantage of this logging, have the following settings set up in your JDE.INI file on the deployment server, which will be located under the Windows directory, before you run your Table Conversion Workbench. The values you need to change are listed in the following example.
Chapter 15:
Upgrade Tools and Rules
693
NOTE Once you change these settings, you will need to log out and back in to EnterpriseOne as some of the settings are cached upon logon. You will also have to make these changes in the enterprise server INI file if you are executing table conversions on the server. [DEBUG] Output=FILE ServerLog=1 [TCENGINE] TraceLevel=1 ;(This setting can be 0-10, 10 providing the most information) [UBE] UbeSaveLogFile=1
This setting saves a log file under your PRINTQUEUE directory for some of your table conversions. Since each table conversion is basically a UBE, this setting will allow you to see the logs from that report running. The [TCENGINE] section may not be in your JDE.INI file. If this is the case, you will need to manually add this section. Remember that case matters in this file, so the section should be entered exactly as shown in this example. NOTE Not all of your table conversions will produce a PDF file or report. Refer to the Oracle upgrade manual for the ones that will generate a PDF file. Running an Upgrade After You Have Changed Database User Passwords You may have changed some of your table owner passwords in your database. Can EnterpriseOne handle this? The answer is yes, but this is handled in a different way than you might think. Most people will think this will be handled through sign-on security. However, this is incorrect. When you are performing any kind of upgrade or update, you can leave the sign-on security running for your client workstations, but since your deployment server is on a new release of EnterpriseOne, sign-on security will not be set up for that release of EnterpriseOne. This is because sign-on security requires host code to be running on an enterprise or application server for that release of EnterpriseOne, and you are not to the point where you would need this host code in your upgrade. To disable this functionality, open the JDE.INI file located under the Windows directory. Find the security sections and blank out the SecurityServer entry’s value. This will disable sign-on security for your deployment server. Don’t panic—this does not mean you need to change all your database users’ passwords to match the database user. EnterpriseOne handles changing these
694
JD Edwards EnterpriseOne: The Complete Reference
need to do is add a section to this file. The section is described here; remember that case matters in this file! [DSPWD] dsowner=dspassword
The dsowner will be the database table owner—for example, prddta—and dspassword will be the database password you set up for this owner. Once this is set up, EnterpriseOne will read these owners and passwords and pass them to your database when the table conversions or your merges are run. Remember to log off and back on to EnterpriseOne once you make this change, as it may be cached; if you have run your Table Conversion Workbench, you will need to go back to determine if your table conversion ran correctly or had a problem. We will then cover what to look for in your log files. In the upgrade/update manuals, there is a section named “Verifying Your Table Conversions.” You will want to look at this section, as it contains information on specific tables that were converted. However, we will go over the process here so that you are comfortable with confirming your table conversions. The first report that always gets launched in any workbench is R98405. This report really is just a driver report that launches each report or conversion listed in the workbench. The report will then tell you whether the workbench process ran to completion or had a catastrophic error. If your conversion report tells you that it completed normally, you still may have errors with that conversion, but looking at this report gives you a good cursory check to verify that your conversions at least ran to completion. When you review this report you should not see any failures or errors on it. If you do see errors, the next step would be to start checking your logs. Let’s say you have a failure on the R98405 report. What do you do? Even in the worst-case scenario, you would be able to restore that table from backup and run the conversion again. However, most of the time this is not necessary. The first thing to do is review your log files to see what may have caused the error. A good log file to start with is the JDE.LOG file. This file is generally located under the C root on your deployment server. Remember, in newer releases you can and should execute table conversions on the enterprise server. For this reason you should validate the logs on the enterprise server. These logs will show you if you lost connection to the database or if you do not have permissions to the table. If this is the case, you will see errors in this log such as “unable to connect to Business Data—Prod.” If you see this, start working backward, asking why can’t the table conversion connect to this data source? Did all of the conversions fail or just the ones that affect tables in this data source? You can also look at JDEDEBUG.LOG, which is located under the C root on your deployment server (or on the enterprise server), for more detail. This log shows you some of the SQL commands that are being passed to your database. What we recommend is to match the time stamp from the error you find in JDE.LOG. That way you can see what the software is doing at that moment. This will help you isolate the issue.
Chapter 15:
Upgrade Tools and Rules
695
What happens if the JDE.LOG and JDEDEBUG.LOG do not show you the error? You’re not out of luck. There is some additional logging that you turned on. Remember that [TCENGINE] section you added to your JDE.INI file? This provides you with logging that is very specific to the table conversion process (this debug option can also be turned on via a flag in the planner). These logs are located in the PRINTQUEUE directory on your deployment server or enterprise server. They will be named after the table conversion, but these logs will be a text file instead of a PDF report. Types of Table Conversions That Are Run During an Upgrade/Update To fully understand the log files you are looking at, you should understand the types of conversions that happen during an upgrade. These types are technical conversions, application conversions, and special conversions. Technical table conversions are run against technical tables, which are used to run EnterpriseOne. This type of table conversion is written using the Report Design Aid tool in EnterpriseOne. These conversions do not have input and output. This type of conversion is typically used to change a BLOB field in a table; it cannot change the format of a relational database table. An example of this is that table conversions are run against central object tables during an upgrade from B732 to B733. This would be considered a technical table conversion, which is a process type of 1. You can see what kind of process type a table conversion is by going into the Table Conversion Scheduler program on menu GH9611 and selecting the table conversion. This type of table conversion will produce a PDF report for each conversion run and log files in the PRINTQUEUE, if you have table conversion logging turned on. Application table conversions are written using the Table Conversion Design tool. This type of conversion does have table input and output (I/O). This type of conversion can change the format of a relational database table. Application table conversion can be run in place or across data sources. An in-place conversion means the table is not moved; it is converted right where it is. This is done by the conversion program creating a temporary table. The data is then copied from the original table into this temporary table, which has been created in the new format. The conversion re-creates the original table in the new format, copies the data from the temporary table into this new table, and drops the temporary table. A cross–data source table conversion means the table is going to move from one EnterpriseOne data source to another. For this type of conversion to take place, the input table has to exist in the source data source in the old format and the target table has to exist in the target data source in the new format. After all, this conversion is really just moving the data from the input table to the output table. How does the target table get there? When you perform an upgrade, the Environment Workbench will create any new tables for that release. This is how the table is created with a new format, or a cross-table conversion will create the table. The table conversion uses the specifications of the new path code to create the table.
696
JD Edwards EnterpriseOne: The Complete Reference
A special table conversion is the first type of technical table conversion that runs. In releases prior to OneWorld Xe, the R98402 report is the special table conversion that is run. This table conversion will regenerate indices and table formats for new tables and for worktables. In the release OneWorld Xe and beyond, a different report will run. This is R98407, which will handle all database changes that do not require a table conversion, so new tables and worktables will be generated here. This conversion will generate a PDF report. DEFINITION Worktable: A table used as a temporary workspace for applications. This allows them to manipulate data in an area outside of the production table. Keep this information in mind as we cover how to read these log files and how to verify your table conversions using these log files. TIP Not all table conversions will produce a PDF report. Application table conversions will only produce log files, even when they are successful. This is by design, so don’t panic if you see conversion programs in your workbench, but do not have a matching PDF report for that conversion. The table conversion log files contain a lot of information on the table conversions. These files are actually what you need to use to verify that the conversions completed successfully. We are going to go over several samples of table conversion logs in this section. The things to look for are the conversion type, data sources, number of columns in the table before and after conversion, environments, and the records read/ inserted. You will also notice that there are several different types of table conversions that will take place—technical, ALTER, MERGE, cross–data source, and in-place table conversion logs. Let’s start with an example of a technical table conversion log. This type of table conversion is normally used to change BLOB (Binary Large Object) fields in tables. These conversions will have a conversion sequence of 100 or less. Following is an example of a technical table conversion. NOTE All technical table conversions must finish before any application table conversions having a conversion sequence of greater than 100 will run.
Chapter 15:
Upgrade Tools and Rules
697
Opening UBE Log for Report R8998743, version XJDE0001 --UBE--[0]-- 136/216 Start Time : 22:03:42 --UBE--[0]-- 136/216 Entering K2ResetObjectHeight. --UBE--[0]-- 136/216 Leaving K2ResetObjectHeight. --UBE--[0]-- 136/216 Beginning expansion of VarLen in F98743: user JDE --UBE--[0]-- 136/216 F98743 opened: data source Central Objects CRPTEMP, environment CRPTEMP --UBE--[0]-- 136/216 Ending DSTMPL expansion in F98743: --UBE--[0]-- 136/216 6975 F98743 Records processed. --UBE--[0]-- 136/216 6975 F98743 Records were successfully expanded. --UBE--[0]-- 136/216 0 F98743 VarLen expansions failed. --UBE--[0]-- 136/216 End Time : 8:53:23 UBE job finished successfully.
If you know how to read this log, it shows you a lot of vital information. The first thing it shows you is the table conversion report name, R8998743, and the version that was executed, XJDE0001. This log also tells you what the conversion was attempting to do—in this case, it is expanding the VarLen column in the F98743 table. Moving down this log, you will also notice that the environment and the data source that is being used are listed. This is very useful in troubleshooting, since sometimes the table is mapped to the wrong place. You would notice this in the log because a data source you did not expect would appear. This line also tells you the conversion opened the table; if the conversion was unable to open the table, you would see that as well. At the bottom of the log are the real meat and potatoes. This area tells you how many records were read and how many were successfully converted. If this number does not match, you may have a problem. NOTE You will almost always see a message at the end of these logs saying “UBE job finished successfully.” This does not necessarily mean your conversion actually ran successfully. This only means the batch process ended successfully; the work it was attempting to do may or may not have been done. This is why you need to read each one of the table conversion logs to verify your table conversions. Yes, it is a pain, but much less of one than finding out three months later that you have a data corruption problem because you did not check the logs. Let’s now move on to look at a table conversion log that runs across data sources. Remember, a cross–data source table conversion moves data from a table
698
JD Edwards EnterpriseOne: The Complete Reference
in one EnterpriseOne data source to a new table in another EnterpriseOne data source. The following example shows what one of these logs would look like. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1669) : VersionFromEnv property CRPTEMP TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1672) : VersionToEnv property CRP733 TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(319) : Initializing environments and user handles TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(383) : Done initializing environments and user handles TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(976) : Opening table F98306, for input. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1150) : Input F98306 is using data source Versions - CRPB732. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(976) : Opening table F98306, for output. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1069) : Output F98306 is using data source Central Objects – CRPTEMP. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(214) : Inside TCDetermineConvMode TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(244) : Data sources aren't the same, check if we can use Insert from Select. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(247) : Insert from Select is ok. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(301) : ForceRowByRow option is set. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(308) : Conversion method is Row by Row. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1331) : Inside TCInitJDBConvBuffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(976) : Opening table F98306, for input. TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(764) : Inside TCInitTableColBuffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(764) : Inside TCInitTableColBuffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1171) : Inside TCSetupBufferSharing TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) : Column OBNM and OBNM will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) : Column POTP and POTP will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) : Column ITNUM and ITNUM will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) : Column SQNUM and SQNUM will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) : Column LNGP and
Chapter 15:
Upgrade Tools and Rules
LNGP will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) CRTU will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) UPMJ will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) TDAY will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) POTX will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1252) PGTX will share buffers TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1372) TCInitLevelBreaks TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1377) table F98306 TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1498) TCInitFormatChecks TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1537) eTCOnFormatFetched event found for format F98306 TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) R8998306 version XJDE0001, Spec Version 1.1 TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) output tables before conversion TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) environment CRPTEMP to CRP733 TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) a OneWorld Table TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) 1 format(s) 'F98306' TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) is a OneWorld table and will be cleared TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) 1 format(s) 'F98306' TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) contains the following 13 properties: TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) put-Env=P733CLA TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) put-Env=A733CLA TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762)
699
: Column CRTU and : Column UPMJ and : Column TDAY and : Column POTX and : Column PGTX and : Inside : Checking input : Inside : No : Conversion : Will clear : Conversion from : Input F98306 is : F98306 contains : Output F98306 : F98306 contains : The conversion : DesignTimeIn: DesignTimeOut: : : : : : : : :
TCType=0 LogAllErrors=1 LogInputRecs=0 LogOutputs=0 LogDeletes=0 LogUpdates=0 LogCTActions=0 LogCTDetails=0 ForceRowByRow=0
700
JD Edwards EnterpriseOne: The Complete Reference
TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) : ProofMode=0 TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) : CurrencyTriggers=0 TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) : Format F98306 contains 10 column(s) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) : Format F98306 contains 13 column(s) TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) : There is ER logic associated with the event Row Fetched from F98306 TCEngine Level 1 D:\B7\system\TCEngine\tcinit.c(1762) : System function Insert Row into format F98306 TCEngine Level 1 D:\B7\system\TCEngine\tcrun.c(747) : Conversion R8998306 XJDE0001 done successfully. Elapsed time – 329.343000 seconds. TCEngine Level 1 D:\B7\system\TCEngine\tcrun.c(755) : Fetched 10689 rows from F98306 TCEngine Level 1 D:\B7\system\TCEngine\tcrun.c(763) : Inserted 10689 rows, failed to insert 0 rows into F98306
You will notice several things about this log. The first is that the conversion initializes the environments used. It then attempts to open the input table and target tables. If it cannot open one of these tables, you will see the error at this point in the log. You can also see what EnterpriseOne data source the conversion is attempting to use to find the input and output tables. This is very useful in troubleshooting; if the conversion cannot open the table, you can start by looking at the data source to ensure it is set up correctly. Since the conversion is a cross–data source conversion, it will be done row by row; you can see this stated in the log file. The log file then continues on to show you all the columns that are being used. After this is done the conversion moves on to checking the input table. The log tells you what conversion program and version are being run—in this case, R8998306 is being run as well as the environments being used for the conversion. Remember, we are going across data sources so we have two different environments mapped to different data sources. The log checks the formats of the input and output tables before showing you if the output table will be cleared (in this case, it will be). You will see the number of columns that were in the input and output tables. In this case, the number changed from 10 to 13. Finally, the log will show you the number of rows inserted and the number of rows that failed to be inserted. This information can be used to verify that your table conversion did run successfully. In this case, you would look at your new table to ensure that it has 13 columns and that it contains 10,689 rows of data. This is called verifying a table conversion. We know it is very tedious, but sometimes the report will be fooled into thinking that the conversion finished successfully when the log shows that it actually failed on a number of rows. An in-place table conversion log will look very similar to a cross–data source table conversion log. However, with an in-place table conversion, the log files would show the input and output data sources as the same. The only other differences
Chapter 15:
Upgrade Tools and Rules
701
would be that the conversion would check to see if it could alter the table. The log will tell you this is an in-place conversion and assign the table a temporary name. The fact that this temporary name is shown in the log file is very important. If the table conversion fails, it will normally not have overlaid your current table, and you have a temporary table hanging out there in your database. You need to manually drop this table before running the table conversion again, so it is important to note the temporary table name. If there is a table format change, you will see the number of old columns and the number of new columns listed. This is an easy way to verify your table conversion. Finally, you will see the number of records or rows copied, which again can be used to verify your table conversion. In this section, we have discussed the ins and outs of what really happens when you run the Table Conversion Workbench. We have discussed the different types of table conversions: technical table conversions, in-place table conversions, and cross–data source table conversions. We have also covered how to verify your table conversions so you are not surprised later! It is our hope that this information, although a little dry, will keep your system out of trouble. Control Table Workbench The next workbench you will be presented with during an upgrade is the Control Table Workbench. This workbench is what moves EnterpriseOne changes into the system’s control tables. The Control Table Workbench affects the data dictionary, user-defined codes, task views, and user overrides tables. These tables are ones that you as a client can modify or customize. Let’s start by briefly defining each of these items. The data dictionary is what tells EnterpriseOne about all of the table formats for the columns used in the relational database tables and how to display column descriptions for all applications. The user-defined codes are codes the applications use, which your users can define. An example of a user-defined code is a search type in the Address Book application. In this application, you can limit your search by telling the application to look only for employees or vendors, for example. This is a userdefined code, so you could add a code to keep track of contractors. The task view tables contain information on the task views for EnterpriseOne. The software allows you to modify existing task views or add your own custom task views. The user overrides table contains information on how your users’ EnterpriseOne interface is set up. An example would be a specific column order or data sequencing in applications. Users can set up the address book, for example, to show them the records in descending order. All of these changes take time, and you do not want to lose them when you upgrade the software. This is why the Control Table Workbench exists. It handles adding the new entries for your new EnterpriseOne release. This workbench will be executed for both updates and upgrades. In this section, we are going to dig into what really happens when this workbench is executed. This information should assist you in isolating and solving problems you may encounter during an upgrade. We will
702
JD Edwards EnterpriseOne: The Complete Reference
cover all of the merges that are kicked off from this workbench. These are the Data Dictionary, User-Defined Code, and Task View merges. The Data Dictionary merge moves the new data dictionary changes from EnterpriseOne into your system. This merge is automatically kicked off when you run the Control Table Workbench. We will take a look at what happens “under the covers” when this merge is run. The first thing you must grasp when you look at this merge is that you will have two data dictionary data sources after an upgrade. So if you are upgrading from E811 to E812, you will have a Data Dictionary – E811 and a Data Dictionary – E812 data source. When you perform the upgrade, your E811 data dictionary files are copied into the E812 data dictionary data source; this is a process performed during the Initial Tasks Workbench during the upgrade. After this is done, the changes for the E812 release are merged into the data dictionary tables. These tables are as follows: ■
F9200
Data Item Master
■
F9202
Data Field Display Text
■
F9203
Data Item Alpha Descriptions
■
F9207
Data Dictionary—Error Message Information
■
F9210
Data Field Specifications
■
F9211
Smart Fields
■
F00165
Media Objects
These are what you can consider the target tables or the tables that will be updated. The way EnterpriseOne knows what to add into these tables is by reading the change tables. These change tables contain all the changes between releases and update levels. The merge reads these tables looking for the To release and From release you specified in your upgrade plan. So if your plan had From release E811 and To release E812, the merge would poll the change tables for these values to determine what changes took place between those two releases for the data dictionary. These change tables are shipped on the upgrade or update disk from Oracle. Once the merge finds the records that have changed between the two releases, it merges these records into your new release’s data dictionary tables. The change tables that are used during this process are as follows: ■
F9755
Data Item Master Changes by Release
■
F9757
Data Item Alpha Description Changes by Release
■
F9759
Error Message Pgm Call Changes by Release
■
F9760
OneWorld Data Field Specification Changes
Chapter 15:
Upgrade Tools and Rules
703
The next merge that is executed during the Control Table Workbench is the User-Defined Code merge. This merge adds new user-defined codes into your system. Again, this process uses a change table to determine what has changed between releases. The merge will read the F9746 table (UDC Merge). It reads this table looking for what has changed from your To release and From release, which you specified in the planner. It then moves these changes into your user-defined code tables. The user-defined code tables are as follows: ■
F0004
■
F0004D
■
F0005
■
F0005D
UDC Type Alternate Language User-Defined Codes Alternate Language
TIP You may want to spot-check a few records listed in the User-Defined Code and Data Dictionary merge reports to ensure that the changes were added to all of the affected tables. The Task View merge moves the changes from Oracle into your current task view tables. This merge, like the others we have discussed, also uses change tables to determine what to merge into the task view tables. Let’s start by going over the task view tables. These are as follows: ■
F9000
Task Master
■
F9001
Task Relationships
■
F9002
Task Alternate Descriptions
■
F90021
Task Master Language Status
■
F91014
Task Word Search Table
The Task View merge will update these tables after polling the task view change tables to determine what has changed between your releases. Again, these change tables are shipped from Oracle and will reside in the planner database located under the planner\data directory on your deployment server. The change tables that are read during this merge are as follows: ■
F969000
■
F969001
704
JD Edwards EnterpriseOne: The Complete Reference
■
F969002
■
F98810
■
F98810D
■
F98810DN
■
F98810N
■
F98811
■
F98811N
■
F98830
■
F98830N
Specification Merge The Specification merge is very important to an upgrade or an update, as this is the process that actually moves or updates the specification files for your EnterpriseOne objects. So if you created a custom report in release E811 and you are upgrading to release E812, this is the process that moves your custom report into the new release of EnterpriseOne. If you understand the logic behind the Specification merge, it takes a lot of the mystery out of the process. In this section, we will go over the following: ■
The files involved
■
What happens when the Specification merge is run
The best place to start when trying to understand the Specification merge is what files are affected. When you know what the Specification merge is touching, the merge process makes a lot more sense. There are data sources that contain files the merge updates. These are as follows: ■
Object Librarian
■
Versions List
■
Central Objects
The Object Librarian tables are responsible for keeping track of what objects are contained in the EnterpriseOne implementation and which path codes those objects exist in. This is a shared data source, meaning that every environment uses the same tables. This is how EnterpriseOne ensures that you do not add two reports with the exact same name. It is also how it keeps track of what objects actually exist and in
Chapter 15:
Upgrade Tools and Rules
what path codes they exist. These tables are used for check-in/check-out, object transfer, package builds, and, of course, during the Specification merge. When you are performing an upgrade, you will have two Object Librarian data sources. You may be thinking, if this data source is shared by all environments, how can I have two of them? The tables in this data source are shared by all EnterpriseOne environments, but the data source is also release specific. That means that you will have an Object Librarian—E811, which your system on the E812 release will use, and you will have a new Object Librarian data source for E812. The planner has asked you repeatedly for a previous environment. This is so that the merges can find the required data from the previous release to perform their functions. In the case of the Specification merge, it will need to find the names of the new objects you added into the EnterpriseOne system. It can then move them into the new release of EnterpriseOne. The Specification merge will also move any objects you have modified into your new release. The tables that are read from the previous release and updated in the new release during this merge are as follows: ■
F9860
Object Librarian Master Table
■
F9861
Object Librarian Status Detail
■
F9862
Object Librarian Function Detail
■
F9863
Object Librarian—Object Relationships
■
F9865
Form Information File
The next data source that is hit during the Specification merge is the Versions List data source. This data source contains the header records for all of your report and application versions. A version of an EnterpriseOne report allows you to have different data selection or processing options without having to create a new report to do this. So you can give Fred in accounting his own version of the report and Sally in sales her own version. They then see only the data that is relevant to their needs. With applications, the versions allow you to set up different processing options. This data source also contains your processing options text. This file shows you the text descriptions on all of your processing options. The tables that are read and updated in this data source are as follows: ■
F983051
■
F98306
Versions List Processing Option Text
The Specification merge will move versions from one release to the other. This is so your users do not have to set up their data selection and processing options all over again, which can take a great deal of time.
705
706
JD Edwards EnterpriseOne: The Complete Reference
TIP Before you run the Specification merge, you should verify that your versions are checked in. If the versions are not checked in, the Specification merge will not move them to the new release of EnterpriseOne. Produce a list of versions that are not checked in by executing the following SELECT statement over the F983051. You should also verify your merge selection in the Specification Merge Selection application. Select * from XXX.F983051 where vrvrsavail='N'; Where XXX is the owner for the table, PY811, for example.
The final data source that is hit during the Specification merge is your central objects data source. You will have a specific central objects data source for each path code. These tables contain the specifications for all of your objects in that path code. So if you wrote a custom report, the specifications for that report will be held in these central object tables. These tables are also related directly to the TAM files (or XML information stored in the local database if you are on E812) on your workstations. Each of these tables stores information on a specific type of EnterpriseOne object and are read during a package build. During an upgrade, you need to keep in mind for troubleshooting what kind of information these tables store, so if a report does not come across, you will be able to investigate why. We will cover this in detail a little later. The tables in your central object data sources are shown in the following list: ■
F98710
Table Header
■
F98711
Table Columns
■
F98712
Primary Index Header
■
F98713
Primary Index Detail
■
F98720
Business View Specifications
■
F98740
Event Rules—Link table
■
F98741
Event Rules—Specification table
■
F98743
Data Structure Templates
■
F98750
Forms Design Aid Text Information
■
F98751
Forms Design Aid Specification Information
Chapter 15:
Upgrade Tools and Rules
■
F98752
Forms Design Aid/Software Versions Repository Header
■
F98753
Forms Design Aid/Software Versions Repository Detail Info
■
F98760
Report Design Aid Text Information
■
F98761
Report Design Aid Specifications Info
■
F98762
JDBLC—Behavior Information
707
As you can see, the central object tables contain a lot of information. Keep this in mind as we go over exactly what happens when the Specification merge is run. Now that we have covered the tables that are updated during the Specification merge, we will go over what the merge does. Reading this chapter, you probably feel like you are drinking from a fire hose, but you will be prepared to troubleshoot an upgrade, including the Specification merge process. When you kick off the Specification merge from the workbench, this process entails the tables the Specification merge uses to run, the Object Librarian merge, the Versions List merge, and the spec merge processes. We will cover each of these topics in this section. The Specification merge follows a logical process to move your objects from one release to the next, using some very specific tables. These tables allow the merge to keep a log file and to keep track of what objects have been merged. These tables are as follows: ■
F98881
■
F988810
Specification Merge Logging File SpecMerge Tracking File
When the Specification merge is kicked off, the first thing that the merge does is read the old release’s Object Librarian F9860 table (Object Librarian Master) and the F9861 table (Object Librarian Detail) for objects that have been marked as modified and have a merge option set to 1. The merge takes this information and then populates the F988810 table, setting all the objects to a not-processed status. As you will see, this is a very important part of the Specification merge. Merge Modification Flag Let’s take a minute to go over how the objects in your system get their modification flag set to C and the merge option set to 1. This is an actual step in the upgrade process. This is where you choose what objects you are going to bring forward into the new release of EnterpriseOne. This step is accomplished through the Specification Merge Selection program (P98401) on menu GH9611. This application is shown in Figure 15-14. You can see that several objects shown in this window have a modification flag of C. When you create a new object in EnterpriseOne, it will tag that object as changed. EnterpriseOne does this by setting the modification flag, in the F9861 table, to C. It will also set this flag to C if you check an object in.
708
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 15-14. Work with Merge Selections window Just because a report was checked in does not mean it should be merged across. You should review this window carefully and ensure that you only mark the correct items to merge across. You do this by highlighting the item and clicking Select. This will set the merge option to 1, which tells EnterpriseOne to merge the item. If the merge option is blank or 2, this tells EnterpriseOne not to merge the item. This process is how you tell EnterpriseOne what objects you want to merge across. However, you will also need to make sure, during this process, that all of your objects are checked in. You can do this by running a SQL query over your database. Remember, this query will be run over your older release of EnterpriseOne’s Object Librarian table; in our example, our old release is E811. select * from ol811.f9861 where SIMKEY != "YOURDEPLOYMENT SERVER'S NAME";
This query will show all objects, except for UBE and interactive versions, that are still checked out to a client workstation. Verify that the most current changes, which you want to move, are checked in. You now know what objects are checked in,
Chapter 15:
Upgrade Tools and Rules
709
but remember, we mentioned earlier that versions are merged as well. So you will need to ensure that the versions your users want to move into the new system are also checked in. If a version is not checked in, the merge cannot move the version, since the specifications for that version only exist on the client machine where it was created. To be sure your versions are checked in, you can run this SQL statement. You will have to run the statement once for each path code you are upgrading. select * from PY811.F983051 where VRVRSAVAIL = 'N';
This SELECT statement will show you the names of the versions that have never been checked in. The Specification merge will look for this flag to ensure that it is set to Y. If you have checked a version in and then back out again, this flag will be Y. If you changed anything since you checked the version out, those changes will not be moved into the new release. During an upgrade, one of the most common mistakes is not having versions checked in. This is why it is so important to understand the logic of how the Specification merge works. CAUTION Currently, there is no way to check in interactive versions. If you have added interactive versions, you will need to change the VRVERSAVAIL value for these versions to Y. Otherwise these versions will not be moved into your new release. You can do this through a SQL statement: update PY811.F983051 set VRVERSAVAIL='Y' where VRPID ='NAME OF YOUR APPLICATION' and VRVERS = 'NAME OF YOUR CUSTOM VERISON';
This will tell EnterpriseOne to move your interactive versions from the old release to your new release. Remember to use a COMMIT statement if you are using Oracle; otherwise, your changes will not be committed to the database. Now that you know why the Specification merge looks at the Object Librarian F9860 and F9861, and how the modification flag gets set, let’s move on to what it does with this information. Once the merge reads all the records that have a modification flag of C and a merge option of 1, it populates the F988810 file (SpecMerge Tracking) with this information. This file is what gives you the capability to restart your merge if it fails, as of release B733. Before B733, if your merge failed, you needed to completely restore your central object tables and start the merge all over again. Considering that some of these merges ran up to 16 hours, this was a major rollback. Many installers would run the merge only to have a database connectivity issue at hour 15. This is why the merge now has a restart capability, provided by F988810, which keeps track of the object being merged. The process also now checks all the data sources used first to ensure it can connect to them.
710
JD Edwards EnterpriseOne: The Complete Reference
The merge will populate the F988810 table with entries for each object that had a modification flag of C and a merge option of 1. You can see the contents of this table through an interactive application: the Specification Merge Status application. This application truly is the window that shows you what the merge is doing. We are going to go over this application very carefully, explaining how the merge uses this table to complete its work. Before we go into details on the Specification Merge Status application, it is important to note that in early releases of EnterpriseOne, there used to be a separate Object Librarian and Versions List merge. This caused some problems. The Specification merge is dependent upon the successful completion of the Object Librarian and Versions List merge. What used to happen is that people would not realize that their Object Librarian or Versions List merge had failed, when these were separate processes. They would then move on to the Specification merge, which would attempt to use the records these merges were supposed to place in the new release’s files. However, since these failed, the Specification merge would not find the records it needed. Thus, this merge would fall over. Oracle reacted to this situation by incorporating the Object Librarian merge and the Specification merge into one report. Now, if one of these merges fails, the report will know and will not attempt the specification merge. With all of this information in mind, if that’s possible, let’s continue our discussion of how the Specification merge works. The merge has read the Object Librarian from your old release and populated the F988810 table with the objects that have a modification flag of C and a merge option of 1. This is where things start to get interesting. The merge will read this table and execute several steps based on what it finds in the table. We will go over how this table is used for the merge during “normal” merge and what happens if you have to restart your merge. How are you going to be able to tell if you need to restart the merge? How are you going to track the merge’s progress? Take heart—there is an easy-to-use application, the Specification Merge Status program (P98700), that is designed to do nothing but assist you in tracking your Specification merge’s progress. This application reads F988810, which is the table the merge just populated. This application is located on menu GH9611 (Advanced Operations). When you doubleclick on this application, you will be taken into the SpecMerge Status window. This window will tell you exactly what the Specification or Spec merge is doing. We are going to go over this application from top to bottom. We realize this will be a little tedious, but this is the heart of the Specification merge process. This is what controls the merge. The following list describes each of the important fields in this application and what each does. NOTE If you are merging a lot of objects, you can use the Query By Example (QBE) line to help you find the object you are looking for faster. This is helpful when you are troubleshooting a specific object.
Chapter 15:
Upgrade Tools and Rules
711
■
Package Name During upgrades, this will be the name of your plan. This is what the merge uses as a key when it populates F988810.
■
Source Environment
The name of the environment you are upgrading.
■
Target Environment
The name of the environment you are upgrading to.
■
Object Name
■
Version This field will contain the name of a version for a report or interactive application. You may see multiple instances of the report name, but the version column will list different versions to move across.
■
Object Type The type of the object that is being merged. This could be a UBE, APPL, BSFN, and so on.
■
Product Code for client use.
■
Merge Status This description field tells what the merge status is. This field will contain one of several descriptions:
The name of the object you are merging.
The EnterpriseOne system code. Codes 55–59 are reserved
■
Not Processed
■
In Process
■
No Action
■
Success
■
Error
■
Warning
■
Warning SY88
■
PO Changed
■
OL Merge Status This description field shows whether the Object Librarian merge result was successful, not processed, warning, warning SY88, or error.
■
Version Merge Status This description field shows whether the Version merge was successful, not processed, or encountered an error.
■
Merge Action This description field tells whether the object was added, replaced, or merged.
■
Time Updated
■
Date Completed
This field shows the time when the object was updated. This field shows the day the object was merged.
712
JD Edwards EnterpriseOne: The Complete Reference
■
OL Merge Status This description field tells what the merge status is. This field will contain one of several descriptions: ■
0 Not Processed
■
1 In Process
■
2 No Action
■
3 Success
■
4 Error
■
5 Warning
■
6 Warning SY88
■
7 PO Changed
■
VL Merge Status This field shows the status of the Versions List merge using numbers. The QBE line can be used to quickly find errors or objects that have not merged yet. This column uses the same values as the OL Merge Status column.
■
Merge Status This column shows the status of your Spec merge. This is the merge that moves the specifications from one release to the next. It uses the same values as the OL Merge Status column. However, you really will only see Success, Not Processed, Warning, No Action, or Error in this column.
■
Package Name
■
Source Environment
The environment you are upgrading from.
■
Target Environment
The environment you are upgrading to.
This will be the name of your upgrade plan.
This list has given you an idea of the kind of information that is stored in the F988810. Now let’s walk through how a record would be processed by the Specification merge when it reads this table. If you remember, we stated that when the merge is run for the first time, F988810 is populated with all the records that were marked in the previous release’s Object Librarian with a modification flag of C and a merge option of 1. When this table is populated, it sets the records in the following columns to Not Processed for each object in the tables. These columns are ■
OL Merge Status
■
VL Merge Status
■
Merge Status
Chapter 15:
Upgrade Tools and Rules
713
The reason these columns are all set to Not Processed is so that the merge can start working on them one by one. It will run through the Object Librarian and Version List merge first and pick up every record set to Not Processed. If the record encounters an error, the merge will either stop or mark the record as errored. Once these merges are complete, the report then attempts to merge your specifications from your previous release’s central objects to your new release’s central objects. This merge will update the central object tables for each type of object that is merged. We went over these tables earlier, and we will touch on them again when we go through auditing the merge. So what happens if you lose your database connectivity right in the middle of the merge or you run out of disk space? Well, in the past you would probably use some extreme language, since prior to B733 this would have meant restoring to all of your central object tables and running the merge over again. Because of the F988810 table, this is no longer necessary. Remember that everything in this table is originally set to being Not Processed. If your merge falls over, you can find the records that are marked as Error and In Process. These are the ones you would need to troubleshoot. Let’s say you ran out of disk space so you couldn’t add any more records to your database. We now know why the merge failed, but how do you get it going again? Actually, this process is very simple. If the Specification merge is in status 50, you can restart the Specification merge by clicking Merge or Merge All in the Specification Merge Workbench. The Merge will restart and processes all unprocessed objects. NOTE Before restarting you need to review all objects with a merge status of Error and fix the issue. Once the issue is fixed, you would reset the merge status of an object using the P98700 application. Modifying the Merge Status of an Object This release contains a new application (P98700) for an interactive view of the progress during merges. The F988810 is a new table used to control and track the merge process. As the merge processes, the records are time-stamped. Before a merge restart operation it is possible to change the merge status to Not Processed. We have covered a lot of ground on how the Specification merge runs. We have talked about what tables it uses to run and what tables it updates. However, for this section to be complete, we need to explain what the different merge actions are and why they are used. These merge actions are as follows: ■
Add
■
Replace
■
Merge
714
JD Edwards EnterpriseOne: The Complete Reference
If the merge is going to add an item, this means the item does not exist in the new release. In the context of an upgrade, this would be your custom objects. Remember, during an upgrade you load the new release’s central objects out of the box, so the only objects that are in these tables are objects that were shipped by Oracle with the software. When you run the Specification merge, it finds your custom object in the old release, and when it moves the object to the new release, it looks to see if the object exists. If it does not, the merge will add it. The replace is more for updates than upgrades. If you are moving an object into the system during an update and it is not marked as a modification of C and a merge option of 1, the object will be replaced. It is deleted and then added back into the system by the Specification merge. So in the case of an update, Oracle is merging changes into your existing central objects. If the R0006P was included in the update or ESU (as they follow the same standard), for example, and this object was not marked to merge, it would be replaced with the specifications of the object that were included in the update or ESU. The final merge action you will see is Merge. This is an important action. What this tells you is that the object exists on both the old release and the new release. However, since you marked this object to come across, you have told EnterpriseOne this is an object you have customized and you want to save your customizations. Your changes will be brought across and added to the object in the new release; however, your changes will be disabled. This is so that you can go back into the program and see if you want the changes from Oracle, which could include new functionality, or your changes. It also forces you to review your code to ensure that it will work with the changes Oracle has made to the object. This process is called retrofitting, and you should allow time in your upgrade plan to perform this activity. How the Specification Merge Affects Source and Header Files Before we move on, it’s important to note how some other objects move during the Specification merge. Not all of your objects are stored in the central objects data source. This is because EnterpriseOne uses C code for its business functions. It also uses header records for its tables. How do these files move from one release to the next? When you run the Specification merge, it reads the path code master record for your path code. These records tell EnterpriseOne what central objects data source to use. However, they also tell EnterpriseOne where your source and header files are stored. This is because the path code master records contain the name of your deployment server and the share path that you have set up (for example, E812). With this information, the merge actually finds these files by using the deployment server’s name and the E812 share. It is then hard-coded to look for the source directory and the include directory under the path code directory you are running the merge against. We have been using the example of the PY812 environment and path code. These folders comprise the check-in location for the PY path code. The merge then copies these files into your new environment’s path code. In our example, this would be PY812. If your merge tells you “unable to copy file” for business functions or tables, this could be an indication that one of your
Chapter 15:
Upgrade Tools and Rules
715
path codes is set up incorrectly in the Path Code Master program. (You can locate the Path Code Master program on the GH9053 task view. This can be used to validate any path code you might be having problems merging against.) When the Specification merge completes, the really good installers don’t stop there. They look under the covers to audit the Specification merge process (checking all of the PDF files, the path code master, the path code directories and so on).
Updates
You have already learned most of what is involved in an update by reading the “Upgrades” section. In this section, we will cover the differences and how these will affect you during an update. Let’s start by reviewing how the process of an update is different from the process of an upgrade. In an upgrade, you load the central objects out of the box for your new release. In an update, you add objects to your existing central objects by merging them from the specifications sent by Oracle.
Table Conversions As of release B733, table conversions can be included in an update (or even an ESU). In the past, table conversions were not allowed during updates; only worktables were allowed to be changed, which was accomplished through the Environment Workbench. So what does this mean for you? It means you will need to go through the same table conversion verification process that we covered in the “Upgrades” section of this chapter, only you will have fewer table conversions to verify. It also means that once you convert a table, only a client machine on the correct update or cumulative level can access that data. The reason is that the format of the table has now changed, so if you attempt to access the table with a lower cumulative level of the software, you could corrupt the data in this table.
Control Table Merges The Control Table merges for an update run in exactly the same manner as the upgrade Control Table merges. They use the exact same control tables to merge the changes, shipped by Oracle, to the user-defined codes, task views, and data dictionary.
Environment Workbench The Environment Workbench also does the same thing during an update as during an upgrade. It will add only new tables into the system. The report you get after the Environment Workbench, R98403, will show “existing table no action” for any tables that already existed in your system.
Specification Merge Workbench This is where some of the differences between an upgrade and an update really start to show. During an upgrade, you are merging from one set of central objects to another.
716
JD Edwards EnterpriseOne: The Complete Reference
During an update, you are merging from a package into your relational database. This package is located under the planner\package directory. To execute an update, you would execute the setup.exe for the Update to install the package mentioned earlier and then use the P96470 (Work with Software Updates) application (see Figure 15-15) to install the objects to your implementation. You would then double-click on the update you would like to execute. This will build an installation plan under the covers for you. This will then walk you through the installation workbenches required for the update process.
What Happens When You Run an Update Specification Merge When you run the Specification merge for an update, it follows almost exactly the same logic as an Upgrade Specification merge. In this section, we will cover what differences there are and why. This will help you understand the update procedure. F988810 and F98881 During an upgrade, the Specification merge will read the previous release’s Object Librarian tables for objects with a modification flag of C
FIGURE 15-15. Work with Software Updates window
Chapter 15:
Upgrade Tools and Rules
717
and a merge flag of 1. In an update, you do not have two separate Object Librarian data sources. So how does the merge process know what to merge? It reads the specifications of the update package, under planner\packages on your deployment server. The merge will then find the header records for that object in the planner, under planner\data, on your deployment server. It will then add entries into the F988810 table for each object it found. The Update merge follows the same process as the Upgrade merge. It will poll this table selecting the objects that are set to Not Processed. It will first perform the Object Librarian and Versions List merges. Remember, the records for the Object Librarian and Versions List merge will be in the planner database shipped from Oracle. The merge will then move on to merging the specifications for the objects into your central objects. This process uses the path code master records in your planner, just like the Upgrade merge. These records tell the merge what central object data source to update and where to copy the source and include files from and to. If you encounter errors in the merge, restart the Update merge in the exact same manner that we just covered for the Upgrade merge. Merge Flags for an Update An important fact to keep in mind here is how the modification and merge option flags are used during an update. During an upgrade, they tell the merge what to bring across into your new release. During an update, they are used in a slightly different manner. During an update, only Oracle’s objects will be merged into your system. You really only have to worry about the modification and merge option flags if you have modified a standard Oracle object. If you have, you will want to mark these objects as changed and set their merge option to 1. Do this in the exact same manner as you would for an upgrade, through the specification merge selection program on menu GH9611. The only difference here is that you are telling EnterpriseOne not to replace these objects. If the object is not marked with a modification flag of C and a merge option of 1, the update process will drop this object out of your system and add the object from the update back in. This is what happens when the Specification merge shows a merge action of replace. If the object is a new object, it will just add it into your system. However, if the object already exists and you have marked this object with a modification flag of C and merge option of 1, your changes will be preserved. You will then have to retrofit these modifications. TIP Once the Specification merge is finished, you will need to build a package and deploy it to your client workstations. Otherwise, they will not be able to use any of the new objects or see the modifications to objects without checking those objects out.
718
JD Edwards EnterpriseOne: The Complete Reference
Electronic Software Updates (ESUs)
If you have worked with EnterpriseOne for a while, you probably know what a code change is. A code change is a set of instructions Oracle sends to clients to resolve specific issues addressed in software action requests (SARs). These code changes basically tell you what code to change in the EnterpriseOne objects in order for them to work correctly. This process requires someone skilled in using the EnterpriseOne toolset. It also can be a fairly long and difficult process; we have seen code changes as long as 100 pages! Fortunately, Oracle has responded by developing an automated process for applying code changes. This is what is called an Electronic Software Update (ESU). An ESU really is a very small update. Instead of having you manually change everything in EnterpriseOne, you would apply an ESU. This functionality is included in the EnterpriseOne software as of B733.2. These ESUs can be downloaded from the update center on the www.peoplesoft .com web page. They are applied to the system in the exact same way as an application software update or a cumulative update. The difference is that because an ESU is so small that it only affects certain objects, it can be applied quickly. However, as with any other update, you first want to apply the ESU into a non-production environment and test it. Sounds great, right? Well, like all things in life, there is a trade-off. The trade-off comes when you have modified an object that is included in an ESU. What this means is that you would mark your object as being changed and set the merge option to 1. This would tell the Specification merge to merge your changes into the object shipped from Oracle. However, this means the exact same thing as it did for an update. So don’t take an ESU just to take it, or you could be in store for more work than you counted on. NOTE Performance-related ESUs are the only ESUs we recommend keeping as up-to-date as possible. (These ESUs address known performance-related issues.)
Retrofitting Modifications
We have briefly referred to retrofitting modifications many times in this chapter. In this section, we will try to give you an idea of what this means and why you must include some time for retrofitting your modifications into your upgrade plan. If you don’t, you will not make it through your upgrade in the time you have allotted. Retrofitting modifications is really not that horrible. It just takes some time and a specific skill set. This is why you need to plan for retrofitting your modifications. The first thing to do is get a rough idea of how many objects you will need to retrofit.
Chapter 15:
Upgrade Tools and Rules
719
During an update, upgrade, Application Software Update, or Electronic Software Update, the only time you will need to retrofit an object is if both you and Oracle have changed the object. Therefore, this will not affect any of your custom objects, only the shipped objects you modify. With this in mind, when you prepare to upgrade you should collect a list of all the EnterpriseOne objects you have changed. You will also want to find out if the reason these objects were changed was only for code change. If it was, do not bring these changes forward. Unless this problem was discovered right before the update was released, the fix for that object should be included in the update. You can verify this by looking at the software action requests numbers included in each update, or you can look at the specific SAR and it will tell you the release and update that the issue is fixed in. Once you have a list of the objects changed and what was changed for these objects, you can then determine what type of resources you will need to dedicate. Normally, whenever possible, the programmer who made the change should retrofit the modification. If this is not possible, the person who is retrofitting the modification needs to understand what the modification was trying to accomplish and the importance of the modification. This will help him or her incorporate your changes into the EnterpriseOne objects without losing your functionality or the added functionality from Oracle.
Running in Parallel
This is a topic that really throws a lot of people for a loop. What it means is the ability to run two different releases or update levels of EnterpriseOne at the same time. This is so that you can thoroughly test the new release or update before bringing it into your production environment.
Running Two Separate Releases of EnterpriseOne in Parallel Let’s start by describing how you would run two separate releases of EnterpriseOne in parallel. The first thing you would do is follow the standard upgrade procedure. This is where you should first make your prototype environment match the production environment as closely as possible. You will want to move some production data so you can test against it, your user-defined codes, and menus. You will also need to ensure that the specifications for the PY path code match those of your production path code. After all, it would not really be an accurate test if you upgraded different objects. To do this, Oracle has shipped several versions of the R98403 to assist you in copying this data from your production environment into your PY environment. Details on how this is accomplished can be found in every Oracle upgrade manual. Once the production environment and path code match the PY environment and path code, you are ready to start your upgrade. However, the second you start
720
JD Edwards EnterpriseOne: The Complete Reference
to upgrade the PY environment, that environment belongs to the person performing the upgrade. You also should freeze your development in the production path code. This means you will not add any new objects, including versions, or they will not be brought forward. This occurs because when you upgrade your production environment, you do not run a Specification merge. All you do is copy the PY path code into your production path code, and run your Control Table merges and your table conversions. This upgrades your production environment with less risk and in a lot less time. You can generally upgrade the production environment over a weekend. However, before you upgrade the production environment, you will want to test your applications in the PY environment. Since you cannot shut down your business while you are doing this, you will need to run in parallel. In the example we have been using throughout this chapter, we are upgrading the PY environment from E811 to E812. Once we have run through the upgrade procedures, which were touched upon earlier in this chapter, we are ready to run in parallel.
Deployment Server For an upgrade, you will have two different directory structures on your deployment server: one for the old release and one for the new release of EnterpriseOne (in our example, E811 and E812). Then what release is your deployment server really running? It is going to be running the newest release of EnterpriseOne, so in our example this would be E812. This does not mean you can no longer build packages in your old release or you cannot add users or other administrative functions. What it does mean is that these processes will need to be done from a client workstation on the old release (in our example, E811). You can also still deploy packages to workstations running the old release. You will just need to ensure either that you assign the package to the workstation from a client running the old release of EnterpriseOne, or that you use the installation programs under the old release’s directory structure on the deployment server. In our example, this would be the setup program located in the Client directory under the E811 share on your deployment server. NOTE If you upgrade your deployment server to the new release, you will not be able to apply ESUs to the previous release. To address this some client’s use snapshot on the deployment server to switch between releases or have two completely separate deployment servers (one for each software release).
Enterprise Server If you want to run in parallel, you will need to address some specific setup issues. We have already touched on the setup issues for the deployment server, so let’s talk about the ones on the enterprise server. When you install your host code, you will be
Chapter 15:
Upgrade Tools and Rules
721
able to create two different instances of EnterpriseOne on your enterprise server. This is really only a different directory structure for all platforms except the AS/400. When you run in parallel with the AS/400, you will specify different library names. The libraries used for your AS/400 enterprise server to run EnterpriseOne are as follows: ■
SY812 (network and kernel code).
■
Path code libraries, for example, PD812. These libraries contain modules necessary to recompile and execute business functions.
■
Integrated file structure (IFS); this will have your path code names as well. These are contained in the structure path code/specfile, which contain your specification files. Also in the IFS is the logging information.
On all of the other platforms, the host code will install a new directory structure. So if you were running E811 and E812, you would have an E811 and an E812 directory on the enterprise server. This means you will need enough disk space on your enterprise server to hold the host code for both of your release levels. However, this is not the only thing you will need to watch out for. There are specific settings in the JDE .INI file that you will need to ensure are correct so you can run two releases in parallel. These settings control the port number EnterpriseOne uses to communicate. You cannot have two different releases of EnterpriseOne attempting to use the same port. What happens is much like two people trying to talk at the same time on a telephone line; all they do is drown each other out and you hear only gibberish. To avoid this, you simply tell EnterpriseOne what port to use in the JDE.INI file. This information is contained under the [JDENET] section. An example of this section follows. You would need to ensure that your E811 release’s INI file and your E812 release’s INI file specify different port numbers or they will talk over each other. NOTE Each new release or update level of EnterpriseOne host code will have its own INI file. This is so that it is truly separate from your old release. It is also because INI settings may change from release to release. [JDENET] serviceNameListen=6012 serviceNameConnect=6012
There is one other section of the INI file that will need to be modified if you are going to run in parallel. This is under the [JDEIPC] section of the INI file. The abbreviation IPC stands for interprocess communication. This is how processes running in the background share information. If you have two releases of EnterpriseOne, you will need to ensure that they both do not try to communicate using the same area of
722
JD Edwards EnterpriseOne: The Complete Reference
memory for their interprocess communication. To do this, you simply need to modify the [JDEIPC] section of the INI file for each release. The following is an example of this section from an INI file: [JDEIPC] ipcTrace=0 maxNumberOfSemaphores=200 startIPCKeyValue=
The ipcTrace value is a logging feature. Do not turn this on unless instructed by Oracle’s support, as it will affect your system’s performance. The real value you will need to worry about here is the startIPCKeyValue. This value cannot match between the two releases of the software, running on the same enterprise server. This starting value will need to be different by at least 1000 between your releases. So if your E811 release’s INI file had a starting value of 6000, your E812 release’s INI file should have a minimum starting value of 7000. This will stop the two releases from using the same area of memory. Running in Parallel on an Intel/Windows Platform Oracle has done a pretty good job of allowing you to run two different releases in parallel. However, there are a few places where you might run into a snag. Two of the current known snags are that any release or update level prior to B733.1 uses the Visual C compiler level of 5.0, and that release B733.1 and beyond uses the Visual C compiler level of 6.0. What does this mean to you? Some users have had issues when running these two compilers on the same machine. So that means that you would not be able to have a development machine run both B732 and B733.1 releases. It also means you cannot have Visual C 5.0 and 6.0 on the same enterprise server. Why is this important? Because the EnterpriseOne host code requires you to have a compiler loaded. What will probably be recommended to get around this problem is that you load an application server to run your newer release. Yes, that means you now have two servers running EnterpriseOne. This really is the safest solution. NOTE Database software, such as the Oracle client level or ODBC, is another area where you might find different requirements per release. There are generally ways around this, but it is something to take into account when running in parallel.
Client Workstations You only have one more step before you are done. You need to ensure that your client machine INI files are using the correct port number as well. These settings are held in the [JDENET] section of the INI file, just like on the enterprise server. If you have already deployed your client workstation, you can just go to the Windows
Chapter 15:
Upgrade Tools and Rules
723
directory for Windows clients, or the Windows directory. In this directory, you will find your INI file. Open the INI file and ensure that the port numbers under the [JDENET] section match those you set up for your enterprise server. In our example, these would be 6009 for the serviceNameListen and serviceNameConnect. Since your old release is already running, if you have not deployed any client workstations, you will just need to ensure that when they are deployed the correct port number is placed in the JDE.INI file. To do this, you would confirm the port number in the JDE .INI file located in the OneWorld Client Installs\Misc directory on your deployment server. Once you find this file, search for the [JDENET] section and ensure that your serviceNameListen and serviceNameConnect are set to the correct port number. TIP Although it is always a good idea to ensure the two releases you are running are using different ports, you really will not have to worry about this if you did not change the port number after your initial installation of EnterpriseOne. This is because Oracle ships each release and update level of their software coded to use a different port. However, checking to make sure they are different will not hurt either! CAUTION Although you can run a system in parallel, this does not mean you can have clients on two different releases running in the same environment. In this chapter, we have discussed how an upgrade can change the format of a table. Once you change the format of the table, only a client on the correct release can access the table. If you attempt to access a table on a client on a different release, EnterpriseOne will experience problems. It is also possible for you to corrupt the table. So the moral of the story is, once an environment is upgraded, only access that environment with client workstations on the correct release.
Summary
Congratulations, you made it through one of the most difficult parts of EnterpriseOne to understand! We wanted to ensure you had the information needed to not only survive, but to excel at an upgrade. After all, whenever you are upgrading a live system, it affects mission-critical applications. So the more information you have, the better!
724
JD Edwards EnterpriseOne: The Complete Reference
In this chapter, we have covered the differences between upgrades and updates. We stressed that currently the difference is that an upgrade will merge from one set of central object tables to another. The important thing to remember is that the Upgrade merge is moving objects from one set of relational database tables to another. During an update, prior to OneWorld Xe, the Specification merge will read TAM files on your deployment server and merge the specifications in these files into your central object tables. We covered the pieces of the Installation Planner program. This chapter showed you how the planner sets up your workbench. We provided some insight on how the pieces of EnterpriseOne tie together. This information should assist you in planning an upgrade, update, or an electronic software update. It will also help you troubleshoot any problems with these processes. This chapter also covered the upgrade process and how to troubleshoot the upgrade. It is nice to know how to perform an upgrade, but to have the skill set to troubleshoot an upgrade is even more valuable. When things go right, life is good, but when things go badly, a person with the ability to troubleshoot an upgrade will really show his or her worth. That is why we included a section in this chapter on how to troubleshoot table conversions, as well as the Specification merge process. These skills are vital to the upgrade process. It is our hope that this chapter has helped equip you with the skill set needed to troubleshoot any update, upgrade, or electronic software update. This chapter went on to tell you about Application Software Updates and Electronic Software Updates. An Application Software Update is how EnterpriseOne delivers things like updates for you to run your 1099s or W-2s from within EnterpriseOne. Since the government changes tax rules every year, the timing probably will not match up to Oracle’s release schedule. So Oracle delivers Application Software Updates, which are just very small updates. These small updates merge objects from TAM files into your central objects database. The Electronic Software Updates replaced code changes (SARs) as of B733.2. Updates are applied by downloading an Electronic Software Update and merging the fixes into your system. However, you will need to go back and retrofit any modifications you made to affected Oracle objects. Finally, we covered what retrofitting your modifications entailed. This is where the merge process used for updates and upgrades will disable your changes. You then need to go into these objects and enable your changes. This forces you to see what changes Oracle has added and to ensure that your changes will work with what has been added by the merge. It is our hope that this chapter, although long, was informative. Our experience has shown that the problems you cannot figure out until 3 A.M. are often small ones that could have been avoided if you had only known about them. The entire purpose of this chapter was to give you enough information so you do not get tripped up—or if you do, you can quickly get back on your feet.
CHAPTER
16
Optimizing EnterpriseOne for Your Business 725
726
JD Edwards EnterpriseOne: The Complete Reference
O
ptimization is one of our favorite topics. The EnterpriseOne product, by definition, treats every company and every platform the same. Yet anyone who knows anything about AS/400, UNIX, Windows, Oracle, or Microsoft SQL Server will tell you that these products are definitely not created equal. Further, we can tell you from personal experience that no two companies are the same. So, how do you create a product that is universally right for each platform and each client? The answer is that you don’t! Instead, you create a software suite that generates a best-of-breed solution for various industries. The question that you must now ask yourself is how you can tune the product to work the best in your specific environment doing what you do as opposed to being a general all-purpose product. Tuning EnterpriseOne is what this chapter is dedicated to discussing. We will talk about the following: ■
How do you know when to optimize EnterpriseOne?
■
A five-step method of optimizing the product
■
Adding multiple queues to an application server
When to Optimize
There is nothing more ambiguous than a user calling and complaining that their system is slow. This could mean anything from them having to go get coffee between transactions to just enough time to check the dirt under their nails. Or you might have the rare situation where the user’s typing is so fast and furious that their fingers blur; even the best optimized systems have trouble keeping up with these folks. Determining exactly where the system needs to be optimized is an art. And just when you think you have the problem resolved, it moves. Let’s start with a full understanding of what optimizing EnterpriseOne actually means. When we talk about optimizing this product, we are talking about making changes to the products, the processes, or even the entire system in order to realize a performance gain in the system itself. Notice I said products, plural. Life was simpler back in the day when we only had to worry about one product. Now an EnterpriseOne implementation means more than just EnterpriseOne; it means EnterpriseOne and HTTP and web application and development workstations and administration workstations. All these pieces need to work together, seamlessly and efficiently. We’re not in Kansas anymore, Toto.
Understanding the Jigsaw Puzzle So how do all these pieces work together? That is the question you should fully understand in order to effectively and efficiently optimize your system. Starting from the bottom up, there is still a need for full clients in the latest release. Administration, development, and serialized object generation, if you choose to do them, still need
Chapter 16:
Optimizing EnterpriseOne for Your Business
727
full clients to perform their functions. These workstations install and communicate as they have in previous releases. What they cannot do is run the full client versions of the interactive programs anymore. For this you need the web development feature, which installs a trimmed-down version of Oracle Application Server or WebSphere Application Server. What you may also do with these workstations is generate serialized objects. However, this function is now optional with 8.12 Tools Release 8.96; as of this release serialized objects are now generated on demand. There are differing opinions on whether or not pregenerating the serialized object helps performance. We are of the opinion that the initial performance gain you might see on the generation of the object the first time around is negligible compared to the hassle and administration overhead to generate these objects manually. We will not go into much detail on these bottom layers; this chapter will mainly concentrate on the servers. One thing to note, however, is that these workstations work more efficiently if you turn off the Windows System Restore function and do not have your antivirus software scanning the EnterpriseOne release directory. The web server is next in the chain, which consists of two pieces, the HTTP server and the web application server. Its function, of course, is to present the application to the client. The client will connect the HTTP layer via the URL and from there, via a plug-in, connects to the appropriate web application instance. The web application instance is the specific EnterpriseOne installation you are trying to connect, that is, the EnterpriseOne environment. The HTTP is the transport layer of the web server which, to put it simply, directs the traffic to and from the web application. The web application instance reads from the database via a JDBC connection, reading the serialized objects tables to render the screens and reading from the business data tables to populate the data. The metadata kernel on the application servers manages the XML to platform-dependent objects for run time. Simply put, the metadata kernel is now the key kernel in the runtime process; refer to Figure 16-1. We will talk about this primary kernel in depth later in this chapter.
Web Server
Database Server
Application Server
HTTP Central Objects Plug-in Web Application
E1 Kernel
XML Package Specs
E1 Programs
Serialized Objects
EnterpriseOne JAS Instance
FIGURE 16-1. Understanding the jigsaw puzzle
System PD
PY
DV
PS
728
JD Edwards EnterpriseOne: The Complete Reference
You should not wait until you’re confronted with extreme circumstances before you optimize EnterpriseOne. Once your company has completed its initial setup, you should begin evaluating EnterpriseOne optimization opportunities. The EnterpriseOne system will respond only as well as it’s configured. Even though most projects don’t include a phase of their technology implementation methodology for optimizing the product, we think that this step is so important that you shouldn’t hesitate to perform it. We have seen several implementations suffer because both end-of-day processing and optimization were left until after go-live. You shouldn’t let your organization run into a similar situation.
The Five-Step Optimization Methodology The five-step optimization methodology we present in this chapter is not patented, but it should be. After all, if you follow these five steps, your EnterpriseOne system is guaranteed to run faster and more efficiently. And we’ve never had a client complain when we’ve increased system performance. The real goal behind this process is to look at what you’re trying to do from an application’s perspective and then apply the technology to get the job done.
Step 1: Optimize the OS In truth, we want to go beyond just the operating system to the enterprise server(s) as a whole. This includes the hardware, its configuration, and the software (the OS). Think about what you can do with your particular server that will increase its performance. First, you’ll want to evaluate several system parameters. Although these parameters differ according to your platform, there are quite a few options in each. If you do not have the in-house skill sets necessary to make this evaluation, it is worth the money to hire someone who does. Our usual recommendation is that you enter into a service agreement with an organization that has specific experience working with the EnterpriseOne suite of products. This is advantageous for two reasons. First, these firms already know the product and have experience tuning the hardware and software. Few things are worse than paying an expensive consultant to learn your software and system. Second, because these professionals have already done the exact same task multiple times at other companies, they are able to transfer this knowledge to your in-house IT staff more expediently. This is always advantageous unless you have entered into a long-term services outsourcing agreement with the consulting firm.
Chapter 16:
Optimizing EnterpriseOne for Your Business
729
OS Factors of Performance On any platform, you need to identify whether you are suffering a performance bottleneck and, if so, where it is located. Some of the platform-independent parameters that should be watched during peak and valley times include disk I/O, memory use, processor use, virtual memory use, and NIC card use and performance. Additionally, you should pay close attention to nice and negative nice on the UNIX platform. During these evaluations, you should also pay close attention to which processes are requiring the majority of the systems’ resources and which resources in particular they are depleting. With this information, you can begin creating a plan to optimize the hardware and OS. Let’s take an example of a company suffering slow performance during peak sales times. They are using the HP9000 and feel that their system should be able to handle the workload of the subsystem. Following the first step of optimization, they evaluated their system and determined a disk I/O bottleneck. What options do they have (without spending more money) to decrease the disk I/O on this specific drive? A couple of things were done to decrease this system’s requirements. The company was running with logging on the enterprise server. However, when we suggested turning logging off, they were adamant that it should stay on. So, by using basic EnterpriseOne CNC, we moved the logs to a different logical drive located on a different disk controller. Notice in the JDE.INI settings that follow how the EnterpriseOne install location is on /u17 and the logs are on /u20: [DEBUG] Output=FILE DebugFile=/u20/jdedwards/e812/log/jdedebug.log JobFile=/u20/jdedwards/e812/log/jde.log JDETSFile=/u20/jdedwards/e812/log/JDETS.log LogErrors=1 ClientLog=0 KeepLogs=1 TAMTraceLevel=0 [INSTALL] DefaultSystem=system ClientPath=client PackagePath=package DataPath=data B9=/u17/jdedwards/e812 Double_Byte=0 LocalCodeSet=WE_ISO88591
This got us part of the way there, but the performance was still unacceptable, and the disk I/O was still too high. We continued looking at the problem and thought our way through the issue. Although the company was live (in a production mode), they were also still in a prototype mode for some functionality and development (this was the reason behind their wanting to keep the logging on). Consequently, the disks had
730
JD Edwards EnterpriseOne: The Complete Reference
to service all three environments and were having difficulty because of the high volume. We recommended setting up another enterprise server to satisfy their nonproduction environments. But remember the limitation set earlier: They didn’t want to spend more money. This time, the OS itself came to the rescue. Using HPUX, we moved the server code for all nonproduction environments to different drives available on the server. We then linked the path codes back to the e812 directory. As far as EnterpriseOne was concerned, those directories were still in the same directory structure provided by EnterpriseOne. However, disk I/O was reduced substantially because of this system optimization.
Other OS Considerations Sometimes you simply won’t get by with what you’ve got. OS tuning can certainly go a long way toward fixing many of the problems you may be experiencing. It may even be the ultimate solution, but you might have to increase what you have to get there. Let’s consider another company as an example of what to look for. This company decided on an AS/400 solution with two processors and 1GB of RAM. They implemented financials and began preparations for bringing manufacturing online, but their systems were too slow. Using the first step of optimization, they determined that AS/400 was the fault line. They didn’t have enough RAM or enough processing power to run EnterpriseOne with their existing workload. We recommended that they offload some of their system requirements to another server, and they accepted this solution. They purchased a four-processor server with 4GB of RAM, moved production to the new box, and kept their first box as a development machine and a backup of the production box. This wasn’t a cheap solution, but it did alleviate the issue and provided business-critical redundancy.
Is Step 1 the Solution? Step 1 (optimize the OS) isn’t necessarily the entire solution. Through proper maintenance and careful evaluation, however, it can be a vital part of the solution. But before you spend another half million on hardware, you need to carefully evaluate the other steps in optimizing EnterpriseOne to fit your business needs.
Step 2: Optimize the Database Once your hardware is optimally configured, the next step is to ensure that the back end of the EnterpriseOne product, the database, is optimized. In other chapters, we’ve indicated that the data is the single most important component in this (or any) ERP product; without proper maintenance and planning (both up front and during periodic reviews), your relational database management system (RDBMS) can cost your company valuable time and system performance. A finely tuned database is one of the requirements for optimizing EnterpriseOne.
Chapter 16:
Optimizing EnterpriseOne for Your Business
731
Optimizing Databases Some of the steps for optimizing your database should be performed before you install the EnterpriseOne product. First, we highly recommend you search the EnterpriseOne knowledge web sites, where you can find many tips-and-techniques documents to help you tune your particular database. One of these recommendations includes separating your indexes, logs, and data files and putting them on different physical drives. Let’s think about why you would want to do this. When you write data to the database, you actually write to several locations at the same time. If the data files, logging files, and indexes are located on the same drive, you write the data multiple times and can run into a disk constraint. If you separate these files, you will not only speed up the actual processing, but also decrease potential disk contention.
Distributing Your Data Files In the beginning, there was one disk and that disk was deemed lacking, so another disk was added. These two disks ran happily for a while, but they too were found lacking. So others were added, and so on and so on, until there was the SAN. SAN is short for storage area network. Over the years the SAN technology has improved greatly and there is no longer a need to manually separate your data files, placing them on different disks to increase the number of spindles, thereby improving the I/O throughput. As long as your SAN is configured properly, it will manage the placement of the files and spread them across all the spindles in your SAN. Notice we said, “as long as your SAN is configured properly.” Accurate management and monitoring of the I/O of the SAN is critical in properly configuring an optimized SAN.
Periodic Maintenance An experienced database administrator (DBA) will take care of most of this optimization, but even after your database is optimized, you should do additional tasks regularly to ensure that the database is not the weak link in your project. Indexes and tables can become fragmented, which is especially true for tables that are highly transactional in nature. Databases like Oracle and MS SQL Server assign a certain amount of space to a table or index. As data is entered by employees, the table will reach its limit and request additional space from the RDBMS. Although the table will automatically expand to the required space if configured to do so, it usually won’t be contiguous space. Because of this, the database will have to work harder, searching for data. We’ve seen some databases with up to 3,000 extents on a single table. Needless to say, this is not effective. Although you can ask different DBAs and get different answers as to how many extents you should have before you begin losing performance, we say you should begin evaluating a table when it reaches ten or more extents. This doesn’t necessarily mean you should fix it if your
732
JD Edwards EnterpriseOne: The Complete Reference
table has that many extents, but you should start watching it closely. Some of the tables prone to fragmentation include F0911, F4201, F4211, F4101, F4111, F4301, and F4311. So, how do you fix a fragmented table or index? If you dump the data via export, you can drop the indexes and table. Then you can re-create the table with a large single extent and increase its next extent size. We recommend looking at this data as part of your weekly database maintenance.
Step 3: Optimize the Process One of the fastest methods of optimizing an EnterpriseOne process is evaluating the SQL statements being produced by the application itself. Luckily, EnterpriseOne gives you a perfect tool for doing this—the JDEDEBUG.LOG. Unless your RDBMS has a built-in SQL analyzer with the ability to look at SQL statements from specific machines or a specific process, or unless you have purchased a third-party application with the ability to evaluate SQL statements (and a slew of applications are able to do this), the JDEDEBUG.LOG will quickly become your best friend. Even if you do have the ability to analyze your SQL database traffic, you might still find the JDEDEBUG.LOG simpler to work with and understand. Every direct SQL call made by a specific process is captured in this log. It also captures every BSFN (business function) called by the system. (These BSFNs may also have specific database calls that have hidden potential.) Using the JDEDEBUG.LOG, you can make an evaluation of the statement itself. These statements have three different points of opportunity. It is up to your DBA and custom developer to determine which of the three you have (if any) and what the best methods of solving the issues are.
Performance Workbench A free tool downloadable via the Customer Connection web site is the Performance Workbench. This is an extremely useful tool in helping you determine where the process is spending most of its time. It summarizes the debug logs in a clear and concise manner. However, even summarized and laid out as logically as it does, there is still a lot of information to understand and digest. Where do you start? Because it is so useful, we will be spending a little time here walking through the basics of how to use this tool, but not right now. That, my friend, we will leave for another section. Please refer to Chapter 17 for a more detailed explanation of the Performance Workbench tool.
SQL Opportunities First, run the R9698711 report to verify that all indexes defined to EnterpriseOne exist in the database. Once all indexes have been verified, check the SQL statement to identify whether it is performing a full table scan. Do you see code like SELECT * FROM PRODDTA.F4211? That statement means: select all rows and all columns
Chapter 16:
Optimizing EnterpriseOne for Your Business
733
from a specific table. If the table has 205 columns and several hundred thousand records, you can imagine how long it will take to return the results. This issue is generally resolved by educating the end user to use the QBE line (this will add a WHERE statement to the SQL statement generated) or through application redesign. Do you really need all of the columns and all of the rows of the table you are hitting? If you need only 25 of the columns, you could substantially decrease your database activity. Another potential at this juncture occurs if the statement reads SELECT SDDOCO, SDLINID, SDAN8, SDNXTR FROM PRODDTA.F4211. Your DBA, EnterpriseOne developer, or CNC administrator can verify whether the PRODDTA .F4211 has an index with the same columns. If it doesn’t, you might be able to increase your application performance by adding a new index that corresponds to the statement. Second, if the SQL statement contains a WHERE clause, check the columns in the clause itself. Do these columns have a corresponding index? If not, you can often substantially increase the performance of this statement by adding an appropriate index to the database. Danger, danger, Will Robinson; adding indexes willy-nilly like that is a two-edged blade. Adding indexes increases the number of writes to a file. So, if you think adding an index for every SELECT statement combination you can imagine will help, it probably will for reads, but it will kill your writes. To validate the addition of a specific index, add it to the database directly before modifying the EnterpriseOne table definition. If it increases your overall performance, go ahead and modify the EnterpriseOne table definition itself. This will ensure that you are able to regenerate this change and migrate it to future releases of the product. We often refer to this type of optimization as low-hanging fruit. It is easy to identify, test, and implement.
Step 4: Apply Process Redesign We can best illustrate the meaning of “applying process redesigns” with another example. Let’s take the end-of-day processing requirements of the sales update UBE (R42800). The more records you have to process in this particular UBE, the slower it will go. To decrease the number of records, you could sell less, but we don’t think management would approve of that solution. However, if you apply data selections based on the sales order type and location, you can quickly break it into multiple processes. Each of them will run faster than the single UBE. Even their combined time will be significantly less than that of the one UBE. But wait, there’s more. Some reports like the R42800 have a corresponding little-known new report that does all the work for you. The R42820 will break up the R42800 into smaller chunks and run multiple R42800s simultaneously. So do a little investigating before you start slicing and dicing on your own—someone may already have done it for you. Certain batch jobs, primarily posting jobs, can’t be run simultaneously. However, many jobs may run concurrently; they just require you to configure the appropriate version. If your batch engine server can run multiple processes simultaneously (seven, eight, or more), you can see significant time savings, and if it
734
JD Edwards EnterpriseOne: The Complete Reference
can’t, you need to get another server. You can also schedule these UBEs using the EnterpriseOne scheduler. This will automate much of the overall process and will decrease the additional burdens associated with splitting up the process in the first place. You can redesign the process to be easy to administer and time-efficient. One more note: if and when you do start splitting up your reports to run concurrently, try to use a common key value to drive the splitting process. This does a couple of things; it standardizes the way you run concurrent reports, and if you separate using the same column, you can index that column and possibly get another bump in performance. This way, you only have to create or change one index to affect a gain on multiple reports.
Are There Other Process Redesigns? Some of the other opportunities provided by the EnterpriseOne suite include processing various application functions asynchronously or in batch. Let’s take the example of the P4210 table (Sales Order Entry application). As you add rows of detail to this application, BSFNs populate information throughout the grid form including item cost, description, and unit of measure, in addition to other columns. If you add multiple lines (5 doohickeys, 3 thingamabobs, and 25 whatchmacallits), you can decide whether the BSFN should immediately begin processing the line upon exit or wait until all items have been entered to process. Several applications allow this and other modifications to data selections and processing options. We recommend that you closely evaluate what process (batch or interactive) is considered too slow and then evaluate the options provided by the product itself. Other items of consideration are a little more ambiguous. Let’s take the example of nightly processing. Exactly when you process some functions will either adversely or positively affect the overall process design—for example, running a large report during your peak sales time or doing end-of-month processing during the middle of the day. Depending on your business requirements, you need to intelligently balance system resources with time and business requirements. This balance completely depends on your company’s requirements for reporting, their type and volume of work, and the ability of their architectural design. Don’t forget that one of the goals behind optimization is improving performance without the requirement of adding hardware. If your organization doesn’t care about effectively using what they have and they have large sums of money at their disposal, you can always scale up the EnterpriseOne product to fit their needs. Let’s provide one more example of the process redesign. The process for performing an EDI outbound 850 transaction has three steps. Step 1 is a batch version submission of R43500 (see Figure 16-2). When submitted, this batch automatically extracts records from the F4301 and F4311 tables and populates the designated F47 series tables. It also advances the record statuses in the F43 series tables so that the UBE will not grab the same record twice. Step 2 is a batch version submission of the R47012C application (see Figure 16-3). This batch extracts unprocessed records from the F47 series tables and creates a flat file in a specific location (this is determined by processing options).
Chapter 16:
Optimizing EnterpriseOne for Your Business
FIGURE 16-2. Processing options associated with the R43500
FIGURE 16-3. R47012C application
735
736
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 16-4. R47017 application
Step 3 is a batch version submission of R47017 (see Figure 16-4). This UBE updates a column in the F47 series tables to Y for the Update As Sent flag. This flag is used when extracting records from the F47 series tables for the flat file. The R47012C specifically queries for records that don’t have a Y in this field. This step ensures that the next flat file won’t contain the same records as the previous one. If you want to automate this process, you can launch these UBEs using the batch scheduler in EnterpriseOne. But what happens when one of the processes takes longer than normal? If you’ve scheduled the processes to occur many times a day, UBEs running into other scheduled jobs would be an issue. Even if all of the UBEs are launched into a single instance queue, they would back up, causing consternation if not an actual problem.
Redesigning This Process Using the RDA (Report Design Aid), you can link each UBE to automatically call the next one before exiting. This will allow you to launch a single UBE, which won’t stop until all of it is completed. It is an easy redesign that makes scheduling this overall process much easier. Notice in Figure 16-5, the second to the last line of code calls another UBE prior to the final End If.
Step 5: Apply CNC Concepts Where Available When possible, you should apply whatever CNC options are available. If you can segment certain people or processes to separate application servers, do it. It will not increase your systems complexity by much, and it may streamline your system’s resource requirements. It might even be the difference between having a solution that works and one that doesn’t. Let’s take the first example and see how applying CNC concepts could have helped that organization. We know they didn’t want to add additional hardware to
Chapter 16:
Optimizing EnterpriseOne for Your Business
FIGURE 16-5. UBE calling another UBE
the mix, but what if, because of the number of salespeople they had, their system simply couldn’t process all of the pick slips necessary? They would first optimize the hardware and OS and then optimize the database, followed by optimizing the EnterpriseOne process. After that, they would attempt to redesign the process. Finally, they would be forced to apply CNC solutions. Many organizations start with this solution; however, we feel that the other options should be tried first.
737
738
JD Edwards EnterpriseOne: The Complete Reference
In the previously described situation, they could add several small application servers or another larger one. We’ll start with adding several small ones because the normal PC today (with processing speeds over 2GHz and available RAM up to 4GB) could make reasonable (albeit small) application servers. If this company had 100 retail sites, they could add 25 to 100 small servers (depending on the sales volume) to their CNC design. These machines would be located wherever the database or enterprise server was located. Their CNC administrator would then remap specific users or groups to the other servers, which would allow the power of the EnterpriseOne design to accomplish their specific business requirements.
Summarizing the Five-Step Optimization Process The following is a summary of the five-step optimization process. We thought that it might be handy to have a single, quick list for reference purposes. 1. Optimize the OS (and don’t forget the hardware). 2. Optimize the RDBMS. 3. Optimize the process (you might have development associated with this step). 4. Apply process redesign (think outside of the box for clever solutions). 5. Apply CNC techniques (this step could include additional hardware but doesn’t have to).
Creating Multiple Queues on a Server
Previously, we have referred to having more than one UBE running at a time, so in this section, we will describe setting up multiple queues. Using queues enables you to manage your batch processing requirements. To accommodate UBEs that must be run sequentially, you can create a single queue and then run these UBEs through this queue. Launching these UBEs one by one will simply enter them in a queue where they will be run in the order launched. To facilitate UBEs that can be run simultaneously, you create multiple queues with the same name. The only real limit to the number of queues you create is the number your server can handle. We’ve seen one server handle over 25 queues (albeit it was a big server). We often hear people refer to “multithreaded queues.” In truth, the UBE queue is single-threaded. A multithreaded queue is a queue that uses multiple processors simultaneously to perform work. In place of this, EnterpriseOne can be configured to have multiple queues with the same name, allowing multiple UBEs to be run simultaneously. This is different from multithreaded queues. Consequently, when someone asks you if you can make the UBE queues multithreaded, you now know
Chapter 16:
Optimizing EnterpriseOne for Your Business
739
enough to further qualify what the person really means before you undertake a multimillion-dollar rewrite of the EnterpriseOne foundation code—code that, by the way, you can’t even access.
Multiple Queues There are several reasons for creating multiple queues. Multiple queues are, after all, a simple optimization that rapidly returns the investment of time and effort. We will go into some detail on the UBE process itself.
UBE Process The batch process is relatively straightforward. A UBE is submitted to a server through the P98305 table (Batch Version application). Most users access this by simply doubleclicking on the appropriate menu icon. They rarely realize that by doing so, they have actually launched the P98305 application. The second most common way UBEs are launched is by clicking a button in an application—for example, the sales order process. When the sales order is completed, a batch job is automatically launched to print a pick slip. These batches are often launched against a subsystem. (A subsystem is a specially configured UBE that runs continually, checking for certain conditions to occur. When these predefined conditions do occur, the subsystem automatically performs another step. In the preceding example, a particular version of the R42520 Pick Slip batch version, when launched, looks for other specific versions of R42520 populating the F986113 table, Subsystem Job Master, with a W status [“W” stands for waiting]. When this occurs, the subsystem automatically grabs the record, processes it, and then deletes it from the F986113 table.) Another way that batch versions are submitted is through a linked process. Many batch versions call other batch versions during their execution—for example, printing checks. The R07231 Print Checks UBE is called by another process within the AP process. It does not have to be launched separately. There are many other examples of these types of processing dependencies. UBE Submission UBEs are processed through the EnterpriseOne system in a couple of different ways; however, we’ll provide a quick overview of just one of them. A user submits a UBE to an application server (this could also be an enterprise server), which populates the F986110 table with a record including a BLOB (binary large object) containing information specific to the submitted version (including processing options, data selection, and printer definitions). When the application server’s batch queue services start, each JDEQUEUE service begins continually querying the F986110 table for records that are in a waiting status for that particular server. When the new record is inserted into that table, the JDEQUEUE process initiates a call reading the record and processing it with the RUNUBE application.
740
JD Edwards EnterpriseOne: The Complete Reference
Part of the process includes merging the UBE specifications (information contained in the BLOB) into the existing server files (RDASPEC, RDATEXT, GBRSPEC, GBRTEXT, and POTEXT). Once merged, the job is performed, and the results are generated in PDF format (and, optionally, a comma-delimited format). The F986110 table is updated with an “S,” then a “P,” and ultimately a “D” (which stand for In Queue, Processing, and Done, respectively).
Why Add Queues? Going into that much detail when explaining UBEs in the previous section was necessary to show the area of weakness in the process and why you might want to optimize your system by adding additional batch queues. If your organization launches multiple batch jobs of varying lengths, you can see (through the process) that your server could easily fall behind. By adding additional queues, you are able to perform more work in the same amount of time. As mentioned earlier, you can run as many of these queues as your server can handle. CAUTION If you set up the queues, they can be run simultaneously. If you set up too many, you can slow down your system instead of speeding it up. Setting up multiple queues will allow you to speed up your overall processing by two, five, or nine times, or more. This is also particularly helpful when you have users who insist on running large UBEs during the middle of the day. These UBEs won’t stop the rest of your business.
The Required Steps Let’s get down to how we add batch queues to servers. In previous releases, each of the supported platforms had its own method. Now the setup is the same, except for the AS/400, which requires an additional setup. In this section, however, we will cover only the part that all platforms have in common.
Increasing the Number of JDEQUEUE Processes Increasing the number of JDEQUEUE processes is not the same as increasing the number of queues. In the previously described UBE process, remember that the JDEQUEUE simply looks at the F986110 table and identifies when an unprocessed record is in a waiting status. Once identified, it passes the UBE to the actual queue. Although there is often a one-to-one relationship between the JDEQUEUE and the queue itself, this is not a requirement. As you increase the number of available queues, you will be more likely to see a difference in these numbers.
Chapter 16:
Optimizing EnterpriseOne for Your Business
741
Adding more of the JDEQUEUE services is almost as easy as pointing and clicking. Each of the servers’ Defines contains a dispatch UBE function _2 that defines the number of JDEQUEUE services. [JDENET_KERNEL_DEF2] krnlName=UBE KERNEL dispatchDLLName= jdekrnl.dll dispatchDLLFunction=JDEK_DispatchUBEMessage maxNumberOfProcesses=1 numberOfAutoStartProcesses=0
There is a relationship between all of the kernel services and the maximum number of kernels. When you increase the dispatch UBE kernels, be sure to increase the maximum number of kernels as well. See Chapter 9 for more detail. NOTE You don’t have a one-to-one ratio of JDEQUEUEs to queues; consider setting the maxNumberofProcesses, in the JDE_KERNEL_DEF2, to 1 per every processor to start. Once you’ve made the change to the server’s JDE.INI, save the change and restart the EnterpriseOne services, following whatever steps are necessary for stopping and starting EnterpriseOne processes. The JDE.INI file changes shown in the preceding example are the only ones you need be concerned with when expanding the capacity of your job queues. Unlike previous releases, increasing the queue depth to your job queues no longer requires modifying the JDE.INI, woo hoo!
Increasing the Number of Queues The process of adding a job queue is now as simple as running the P986130 program and clicking the Add button. From the example in Figure 16-6 you can see the process is pretty self-explanatory. But wait, there’s more. The changes made to the P986130 take effect immediately without restarting the services. Woo hoo! Now comes the hard part—deciding how many job queues you need and how many UBEs each should run concurrently is still as difficult as ever. One thing you don’t want to do is overload your server. Just because you can configure a job queue to run 100 jobs concurrently doesn’t mean you should. Also, don’t forget to consider the combined processing requirements of all the job queues on your server; 10 job queues running 10 concurrent jobs is just as bad as running the 100 in the previous example.
742
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 16-6. P986130 application There will be a lot of trial-and-error testing to determine the best configuration for your job queues. Each client is as different in their business process as each UBE is in how much processing they require. For example, an EDI UBE is more than likely to consume more server resources than, say, a simple inquiry report. You may find that you not only have to segregate these large consumers into their own job queue, but also onto their own server. CAUTION If you run too many UBEs simultaneously, you may see your server resources decrease and the processing time increase. This is happening because you have just overloaded your database and the application server is now waiting on the database server. Start with about six concurrent UBEs per processor and configure up or down from there. Again, don’t forget to add the total of all your concurrent UBEs per server—be aware of what UBEs are running and very aware of when and where they are running.
Changing Your UBE Version to Take Advantage of New Queues Now that you have defined the job queue to EnterpriseOne, you can immediately start to use it, right? Well, kind of. In order to submit your UBE to your new job queue, you need to add the queue name to the UDC table (see Figure 16-7). If you add the new queue to system code 98 and type JQ, this will present your new queue for selection when overriding the default queue at the version level.
Chapter 16:
Optimizing EnterpriseOne for Your Business
743
FIGURE 16-7. User Defined Override for job queues
NOTE Overriding the job queue in an INI file does not require the queue to have an entry in the UDC table. Why would this be useful, you ask? Well, to us sneaky administrators, who like to have their own private everything, this allows us to have administrative queues that are inaccessible to the users. The good news is that there is nothing you need to do to enable batch applications to use the new multiple queues. When adding either new job queues or just increasing the number of concurrent jobs a queue may run, these changes no longer need the EnterpriseOne services to be restarted. When you add queues with different names, you must direct the batch application to use these new queues instead of the default queues. To push certain UBEs to certain queues, you make a change to the UBE itself with the P98305 table (Batch Versions application). If you highlight a specific version, you can check the version out to a fat client. Once you’ve checked the version out (doesn’t the power to modify objects feel good?), you can click the Detail button on the W98305A form to view the version details form (W98305E). Notice that the following example shows that the Job Queue (alias jobque) field is blank (see Figure 16-8). This tells the system to use the default job queue. If, however, you put the specific name of a batch queue in this field, save it, and then check the version back into the server, you will have changed where the batch is submitted by default.
744
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 16-8. Version Detail form (W98305E) Under the Covers The reason that the previously described process works is that the queue will process records in the F986110 only for a specific server in a W status with a specific queue name. If you change the batch version queue submission previously listed but do not add the queue name, the version goes into the F986110 but never actually processes.
Tuning the JDE.INI Kernels
There are two major differences in tuning this latest release and previous ones: metadata and multithreaded call objects. We will not go into depth on these kernels; you can read all about them in Chapter 9. But we will discuss the ramifications and recommendations of the settings in these two definitions.
Chapter 16:
Optimizing EnterpriseOne for Your Business
745
Multithreaded Processing The multithreaded kernels can improve throughput by allowing the kernel to process more user requests simultaneously. Specifically, business functions are able to run in multiple threads within the kernel processes on the enterprise server. This reduces processing bottlenecks within kernel processes and results in more consistent response times for end users. The thing to note is the memory consumption when using multithreaded kernels to ensure optimum utilization of resources. Expect more memory consumption when executing multithreaded kernels. The following is the Call Object kernel stanza. Not all entries may be displayed, for example, singleThreadMode, which is on by default for Tools Releases 8.96 and above. [JDENET_KERNEL_DEF6] krnlName=CALL OBJECT KERNEL dispatchDLLName=XMLCallObj.dll dispatchDLLFunction=_XMLCallObjectDispatch@28 maxNumberOfProcesses=10 numberOfAutoStartProcesses=10 useBufferLogging=N singleThreadedMode=Y ThreadPoolSize=20 ThreadPoolSizeIncrement=5
The maximum number of processes you define depends on how much memory you have allocated to your EnterpriseOne logic processing. If you’ve configured your settings to be about ten users per call object, I would start my memory calculations at about 200M per call object kernel process. Obviously, this is just an initial swag and you will have to monitor the kernel memory consumption once you have users on the system. The amount of memory each call object kernel consumes is dependent on what your users are doing; and this varies greatly from client to client.
Optimizing the Kernels Since there are no more TAM files, the metadata kernel was developed to manage the shared XML packages. The call object, runbatch, ube kernel, and runube processes use the metadata kernel for deserialization. So what does this mean for performance? Well, instead of accessing specification files from a fat client or server file system, this information is now shared by all in a common database. The following is the Call Object kernel stanza. [JDENET_KERNEL_DEF30] krnlName=METADATA KERNEL dispatchDLLName=mdserializer.dll
746
JD Edwards EnterpriseOne: The Complete Reference
dispatchDLLFunction=_MetadataDispatch@28 maxNumberOfProcesses=1 numberOfAutoStartProcesses=1 ThreadPoolSize=100 MaxNumberOfConcurrentThreads=100
The parameters you should take note of are maxNumberOfProcesses, ThreadPoolSize, and MaxNumberOfConcurrentThreads. The ThreadPoolSize default is 50 and the MaxNumberOfConcurrentThreads default is 50, typically equal to the ThreadPoolSize. The maximum number of metadata kernels JDENET can create is based on the maximum number of CallObject kernels and maximum number of Runbatch processes allowed. You might try increasing your maximum number of metadata kernels if you start seeing messages like the following one. METADATA - Attempted to send Metadata Kernel a message 3 times and did not receive a reply. Returning failure to the caller. The Metadata Kernel is Kernel #30 in the jde.ini and the message ID being sent to the kernel is 15751.
But you also need to look at the number of JDENETs you have configured. If there are not enough JDENET processes to service the metadata request, you may get the same error. You can accomplish the same things as increasing the maxNumberOfProcesses by increasing the ThreadPoolSize and MaxNumberOf ConcurrentThreads.
Tuning the Web Servers
As you know, web servers have a few configurable parts. There’s the Apache server (HTTP), the application server (OAS or WAS), the EnterpriseOne JAS instance, and, of course, the hardware. TIP My starting point for configuring the hardware for a web server is the following: One CPU and 2G RAM per JVM Heap Size min = max, no less than 1G and no more than 1.5G 100–150 users per JVM There is a 2G limit on the size of the heap in 32-bit architecture, but we’ll discuss that later. Now, let’s dive a little deeper into the configurations of each part.
Chapter 16:
Optimizing EnterpriseOne for Your Business
The Apache Server The Apache server handles the requests from the end user to the web application server. This is where you will configure the efficiencies in the network traffic. Network inefficiencies will magnify themselves as the user moves further and further away from the server. Therefore, you want to try and minimize the amount of data that is being consistently fetched across the wire. Setting the expiration headers in the HTTPD.CONF file will help to alleviate this constant fetching of the same data over and over again. LoadModule expires_module modules/ApacheModuleExpires.dll ExpiresActive on ExpiresByType image/gif "access plus 30 days" ExpiresByType text/css "access plus 30 days" ExpiresByType application/x-javascript "access plus 30 days"
Oracle Application Server’s Web Cache also performs a similar function in conjunction with the expiration headers, by keeping frequently used content in cache. HTTP compression will also improve bandwidth bottlenecks. This requires HTTP 2.0 and is configured in the HTTPD.CONF files as follows: LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE application/ms* AddOutputFilterByType DEFLATE application/postscript DeflateCompressionLevel 5 SetEnvIfNoCase Request_URI \.(gif|jpe?g|png|js)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.(exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.(pdf|ube)$ no-gzip dont-vary
The higher the level of compression, 9 being the highest, the more CPU usages will increase. Start at 5 and configure up if needed. Watch your CPU usage and configure this value down if your server becomes CPU bound.
The Web Application Server The Oracle Application Server’s Web Cache is a server acceleration and webbalancing solution. It is positioned in front of one or more web servers and caches and compresses content generated by the web servers. This, like the expiration headers, will help to reduce network traffic, thereby increasing performance. The web application server’s primary configuration is the generic JVM arguments. Changing these parameters in the slightest way may have dire effects.
747
748
JD Edwards EnterpriseOne: The Complete Reference
Be cautious and be careful when modifying these arguments. With that said, let’s make some changes. The major problem you will have with the web application servers is the heap. The use of the heap has been greatly improved with 8.97 and above, but if you are on a lesser release, you will most likely experience heap dumps and java core dumps frequently. First of all, what is heap? Think of heap as the allocated web memory. When the web server can no longer load the allocated object into its heap, it will trigger a heap dump. The major thing to note here is that the when the web server requests memory from the heap, it expects it to be contiguous. So it is possible that the heap has enough free memory, but it’s just not contiguous. Prior to 8.97, the Scroll To End and Data Browser functions were the main culprits that caused heap dumping. This is because of the very large amounts of data these functions were requesting. Either the heap was just not large enough to handle the request, or it did not have enough contiguous memory available. The easiest way to get around this was to disable these functions. But after a lot of screaming and gnashing of teeth, mostly from the financial people, you finally have to turn it back on for a select few. Unfortunately, it only takes one person to crash a server, so to mitigate the problem you have to give these people their own server so they, at least, don’t affect everyone else when they do crash the server. When you configure the web server for those “special” people who need Scroll To End and the like, we are going to draw outside the lines here a little bit. We mentioned before that you should set your min and max heap to the same value. Well, in this situation, that will not be the case. In this scenario you should set the minimum value to something low, like 32M or 128M and the maximum value to 2G. This may cause some performance issues overall for this instance, but that’s the trade-off for requiring Scroll To End and Data Browser. NOTE Be sure to enable the /3GB or /PAE in Windows prior to setting the maximum heap value to greater than 1.8G. One more argument that may help mitigate heap dumps in releases prior to 8.97 is the –Xloratio. This argument reserves a segment of memory specifically for large objects. It will not prevent this segment from being used if needed by smaller objects. However, it will try to use it only for larger objects. Here’s how it works: The value –Xloratio=0.2 will reserve 20 percent of your defined heap for larger objects. It first tries to allocate the requested memory space from the first 80 percent of the heap; it only goes into the upper 20 percent if it cannot allocate the requested contiguous memory. If you do use this parameter, you should also adjust your maximum heap an additional 20 percent, equal to your large object ratio allocation.
Chapter 16:
Optimizing EnterpriseOne for Your Business
749
With the release of 8.97, the efficiency in which EnterpriseOne retrieves data for the Scroll To End and Data Browser has been improved dramatically. For the most part, you should no longer have to worry as much about heap dumps. What you should concentrate on here is garbage collection. Garbage collection reclaims allocated heap space no longer being used. Depending on the amount of heap being reclaimed, this process can stall your web application server. Basically, users will experience a pause or clock on their screen while garbage collection is occurring. Therefore, it is imperative that the garbage collection process be very efficient and timely. How you determine whether your garbage collection is happening efficiently is by adding the following to your generic JVM arguments: -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gclog_PD812.txt
These arguments will generate the appropriate logging so you may evaluate the amount of time it is taking to do garbage collection. The following is an example of the garbage collection log. The first three lines are with just the –verbose:gc argument. [GC 325407K->83000K(776768K), 0.2300771 secs] [GC 325816K->83372K(776768K), 0.2454258 secs] [Full GC 267628K->83769K(776768K), 1.8479984 secs]
What you are seeing in this example are two partials and one full garbage collection. The first three numbers, that is, 325407K->83000K(776768K), refer to the amount of memory used before and after the garbage collection and the total memory configured. The last number is obviously the time in which it took to perform the garbage collection. It’s not unusual for full garbage collections to take over a second, but the more frequent partial collections should be well under a second. Typically you should not have to configure more than what’s listed for this example, but should your users start to experience intermittent pauses in their response time, look to optimizing the garbage collection. Finally, there is inefficiency in the way Internet Explorer handles expiration headers. The following JVM argument can help mitigate this problem: -Dcom.peoplesoft.e1menu.ie.timeout="30"
This introduces a brief delay, in milliseconds, so that Internet Explorer can verify whether an image is cached or not.
750
JD Edwards EnterpriseOne: The Complete Reference
The EnterpriseOne JAS Instance There are many options in the JAS and JDBC INI files that affect performance, but they also directly affect the user’s front-end experience. For instance, by lowering the SectionSize parameter in the [OWWEB] stanza to 70, the CPU processing required will be reduced. However, when a user pulls back 500 rows, they get very tired of having to page through their data 70 rows at a time; again, you’ll get this mostly from your financial people. You’ll have to find your happy medium and balance the benefit with the cost. Luckily, with 8.97, this is not so much an issue anymore. The following are sample values you may want to start with in tuning your JAS configuration. Note that reducing the values in the [JDBj-RUNTIME PROPERTIES] from the defaults will reduce JVM heap footprint while increasing web server CPU usage. [OWWEB] MaxUsers= 150 TimeWaitBeforeAutoResume=0 FetchAllPageSize=500 SectionSize=70 TimeWaitBeforeAutoResume=0 GlobalPageSize=20 SectionSize=70
The MaxUsers should equal the maximum concurrent users you want per JVM; a good number is 150. However, you may want to set this to 250, but configure for 150. This way, user connections will not get rejected if for some reason the user count exceeds 150, like when a server goes down and the others have to pick up the load. Valid values for GlobalPageSize for grids are between 0 and 100, with 20 being the recommended starting value. And as mentioned before, the SectionSize is optimal at 70, but you will likely set this to something higher. [JDBj-CONNECTION POOL] jdbcPooling=false minConnection=0 maxConnection= initialConnection=5 poolGrowth=5 connectionTimeout=1800000 cleanPoolInterval=600000 maxSize=35 purgeCacheSize=5
The minConnection parameter should be set to 0 so that all the connections are released after use; maxConnection should equal the maxUsers. The connectionTimeout value should be no more than 1800000; you can go less but try not to go anymore
Chapter 16:
Optimizing EnterpriseOne for Your Business
751
than that. The maxSize decreases the prepared statements cache; a good starting point for this value is 35. [JDBj-RUNTIME PROPERTIES] resultSetTimeout=60000 ocmCachePurge=1800000 securityCachePurge=1800000 serviceCachePurge=1800000 specCachePurge=1800000 E1MenuCachePurge=1800000
An often misconfigured value, also in the [JDBj-RUNTIME PROPERTIES], is the resultSetTimeout. This parameter is the timeout value before grid data becomes stale. Setting this to -1 will turn off this feature and never invalidate the grid data. By doing this the data will stay in the heap until the user exits the grid. Let’s say it together, class: “heap dump!” Now, you definitely want to keep this value as low as possible. Keep the default of 1 minute until someone complains about receiving errors about their grid data timing out. Then don’t increase it beyond 4 to 5 minutes if possible.
Summary
This chapter has been dedicated to optimizing the EnterpriseOne product to best suit your organization’s needs. Most of this optimization or tuning can be done without requiring additional hardware or software. Our recommendation is that you identify each potential bottleneck in your system and run it through the unpatented five-step process outlined in the preceding pages. The odds are that you will be pleasantly surprised by the outcome.
This page intentionally left blank
CHAPTER
17
Troubleshooting EnterpriseOne 753
754
JD Edwards EnterpriseOne: The Complete Reference
A
truth of physics is that the natural tendency in the universe is toward disorder. This theory definitely holds true for any ERP system. In order to troubleshoot EnterpriseOne, a CNC administrator must be the sort of person who enjoys methodically searching for a needle in a haystack. This person must temper the thrill of the hunt with a scientific approach to eliminating hay until the needle is found. This person must also know the difference between the needle and the hay and have quite a bit of experience working with needles and hay. Such people are not easy to find, but then, neither is the needle. One typo, one misplaced byte, can send a portion of an ERP system awry. Troubleshooting is as much about preventative maintenance and best practices as it is about resolving issues that arise. As soon as users enter the system, or system changes are made, problems can arise. Identifying and resolving those issues can be one of the most challenging and “fun” activities related to EnterpriseOne CNC. Back in the day when we all had to walk uphill, both ways, to school, we also had to wade through volumes of logs to debug an EnterpriseOne issue. We’re not here to tell you that all that’s over, but it is better; now we only have to walk uphill in one direction. Performance Workbench is a tool that has been around for a while now, but it just hasn’t had the popularity it should. The authors think that, at first glance, people are a little intimidated and confused by its design, but once you have a good working knowledge of how to read the output, it is a lifesaver (and we’re calculating that in dog years). In this chapter, we will look at the Performance Workbench and the different types of logging information that you can generate and use to troubleshoot.
Performance Workbench
The Performance Workbench is a free tool downloadable via the Oracle Customer Connection web site. This is an extremely useful tool in helping you determine where the most time is being spent in the process. Because it is so useful, we will be spending a lot of time here walking through how to use this tool. There are three parsing sections to the Performance Workbench we will be looking at in this chapter, but first let’s walk through the required setup.
Setting Up to Use the Performance Workbench Before you can use the Performance Workbench, you must first configure the JDE.INI file with the proper debugging options. First, turn on debug logging and configure KERNEL DEF6 to create threaded call object kernel logs. These settings will enable
Chapter 17:
Troubleshooting EnterpriseOne
755
logging to be generated in a summarized format, which is more suitable for the Performance Workbench to evaluate. [DEBUG] Output = FILE Level = BSFN, EVENTS DumpLPDS=0 TamTrace=0 [JDENET] NetTrace=0 [JDEIPC] ipcTrace=0 [JDENET_KERNEL_DEF6] useBufferLogging = N [UBE] UBEDebugLevel=0
Also, you will note that it is best to disable all other tracing like TamTrace, NetTrace, and ipcTrace because when these parameters are enabled, they produce enormous amounts of data and it would be much more difficult to wade through these logs. Similarly, UBEdebugLevel should be set to one. Only set these parameters differently if development instructs you to do so.
Analyzing Logs Let’s get started by understanding the different analyzing sections of the Performance Workbench tool. The LogParse section will help you decipher basic jdedebug.log files, breaking them down into a logical hierarchy for you to trace through. The SQLLogParse section will help you identify performance issues with tables that are being called. And the JASLogParse section will help in evaluating the JAS debug logs.
LogParse The LogParse section (see Figure 17-1) evaluates the jdedebug.log file and produces a summarized HTML output file for analysis. Overview In the LogParse section of the Performance Workbench you are able to configure the level of logging based on what you are trying to debug. For the most part, you will be using level 5 to evaluate the debug logs. This will give you the following information in a summarized HTML format: 1. BSFN counts 2. Open/Close table counts
756
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 17-1. LogParse section of the Performance Workbench utility 3. Select/Insert/Update/Delete counts 4. BSFN call levels, BSFN return values, tables from BSFNs, BSFNs from tables, debug strings from BSFNs 5. Hierarchical BSFN data and BSFN servers 6. BSFN applications and BSFN threads Next, you’ll want to set the option to generate timing gaps. In the latest version of Performance Workbench this setting is in milliseconds, not seconds; 200 milliseconds
Chapter 17:
Troubleshooting EnterpriseOne
757
is a good starting point. The timing level is commonly set to 3, which will generate the following timing gaps to a test file: 1. Total Time and Percent BSFN 2. BSFN Timing Data 3. Detailed SQL Statistics The remaining option, Generate Callstack File, will create a text file that will show the BSFN call stack program flow in a more readable format. Understanding the HTML Summarized Output File Even summarized and laid out as logically as the output file is, there is still a lot of information to understand and digest. If we break it down into the basic parts, you will be looking for where the process is waiting. Your four basic bottleneck areas are CPU, I/O, network, and shared resources. The first part of the summarized HTML file will give you a high-level breakdown of your log. Analysis of file: D:\PW\DebugFiles\R5542565_TEST005_2584_PDF.jdedebug.log ---------------PW Version: Sept 2007 - #1 Parse Level=5, LogAPIs=Y, TimingParseLevel=3, TimingGap=1ms, ShowTableOwners=Y, B9=Y, CallStackFile=Y ** NOTE: For truncated or client log files, these timings may not be accurate. ** BSFN logging data may be incomplete in truncated logs. ** Total time in log file: 420.048 seconds ** Total time in level 1 BSFNs: 72.892 seconds (14.4 % of total) ** Total < .001 sec level 1 BSFNs: 5558 ** Total BSFN calls: 1317 ** There were 1 THREADS: 1. 7848/7084 '#' - indicates this BSFN has calls at level 1
This first section gives you your reference points. For instance, this sample indicates the entire log took 420.048 seconds to generate. By itself, this is not much information, but if you find in the summary file that a table access or BSFN is using a large percentage of that time, then that’s where you should focus. So, where’s the time being spent, or is some process being called too many times? The cool thing about the summarized file is that it’s in HTML format and it allows you to drill down into the file using links, which makes it very easy to logically follow the flow of the program. For business functions, you drill down to the top-level Business Function section link and evaluate all the first-level BSFNs.
758
JD Edwards EnterpriseOne: The Complete Reference
A first-level business function is merely the parent business function, which can potentially call many other business functions. This will give you a listing of all the tables accessed and the number of times each table was opened, closed, selected, inserted into, deleted from, or updated. Scrolling down a little from there, you will get a listing of all the first-level business function calls, the total number of times they were called, the average time spent in each call, the number of times each call was less than 0.001 seconds, and the minimum and maximum time spent calling that business function. 94. TOP LEVEL called 0 times -CALL LEVELS: 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 -TIMING: max:0.000 sec min:0.000 sec total(ALL calls):0.000 avg(ALL calls):-1.#IO < .001-sec calls: 0 -TABLES ACCESSED: 1.F983051 O: 4 C: 4 S: 4 I: 0 D: 0 U: 2 2.F98740 and SQLTable=F98740PD812FA O: 27 C: 0 S: 0 I: 0 D: 0 U: 0 3.F98740DRF080101 O: 0 C: 0 S: 27 I: 0 D: 0 U: 0 4.F98740 O: 0 C: 27 S: 0 I: 0 D: 0 U: 0 5.F0010 O: 3 C: 4 S: 6 I: 0 D: 0 U: 0 BSFN name count TOTAL(s) AVG(s) <.001s max(s) min(s) ================================================================================== -CALLED BY: -CALLS: 1.GetNextUniqueKeyID 1 0.000 0.000 1 0.000 0.000 2.GetAuditInfo 5 0.000 0.000 5 0.000 0.000 3.DecimalsTriggerGetbyCOCRCD 79 0.000 0.000 79 0.000 0.000 4.ParseString 48 0.000 0.000 48 0.000 0.000 5.DetermineIfVertexIsActive 1 0.000 0.000 1 0.000 0.000
From here you can determine where the most time is being spent, or whether the process is being called too many times, and drill down the child processes until you determine which process is consuming the most time.
SQLLogParse The SQLLogParse section (see Figure 17-2) extracts all the SQL statements from the debug log for the tables listed and presents their statistical data. It creates two output files that first list all the tables identified and the number of times a unique command was issued to that table. It also creates four files for every table, detailing the specific SQL command that was executed. The following is a sample of what is generated. SQL Statistics File for: D:\PW\DebugFiles\R5847011_TEST001_4979_PDF .jdedebug.log ----------------------.F42565 :
Chapter 17:
Troubleshooting EnterpriseOne
759
========= 42 SELECTs 20 Unique SELECTs 0 UPDATEs 0 Unique UPDATEs 14 INSERTs 14 Unique INSERTs 1 DELETEs 1 Unique DELETEs **DELETE statements for F42565 in D:\PW\DebugFiles\R5847011_TEST001_4979_ PDF.jdedebug.log: ========================================================================= (UNIQUE DELETES & counts) UNIQUE statements ================= 1 TOTAL Statements ================ 1 COUNT SQL ======== === 1 DELETE FROM JDE_PRODPOC.TRDTA.F42565 WHERE ( IWCTID = 'PDSRV' AND IWJOBS = 789889.000000 )
If you believe the problem to be at the database, you can see that the output of this section, which gives you the exact SQL statements used during the execution of the program, will allow you to take these commands and run them through your database analyzer.
FIGURE 17-2. SQLLogParse section of the Performance Workbench utility
760
JD Edwards EnterpriseOne: The Complete Reference
FIGURE 17-3. JASLogParse section of the Performance Workbench utility
JASLogParse As the LogParse section is used for the Enterprise Server log files, the JASLogParse section (see Figure 17-3) is used to analyze the JAS Server log files. You will get the same basic information from these output files as you would from the LogParse output files.
Performance Workbench Dos and Don’ts The Performance Workbench is just like any other program: garbage in, garbage out. Make sure you have all the necessary configurations in place before you generate your debug logs. More is not necessarily better in this case; turn on only the logging you need. 1. Make sure you have all the appropriate JDE.INI file parameters configured. 2. Make sure you capture enough logs to have a true representation of the problem. Don’t shorten the capture time because you’re afraid of how big the log will be. The Performance Workbench is there to handle that problem. 3. Once the summary file is generated, drill down into the path of the code to determine the problem area.
Chapter 17:
Troubleshooting EnterpriseOne
761
4. Avoid e-mailing large files to the support center; use WinZip or the FTP site. Contact Oracle Support for the FTP site and instructions on uploading your logs. Traverse to the \support\incoming directory and place your log files there. Make sure your case number is part of the filename. 5. Perform the following tasks to make sure your logs are relevant: a.
Shut down EnterpriseOne services.
b. In the [DEBUG] stanza of the server JDE.INI: Set Output = FILE Add this setting, if not present: DumpLPDS = 0 c.
Restart the EnterpriseOne services.
d. Immediately log in to an EnterpriseOne HTML client and run the problem scenarios. Note that with logging on, they will run more slowly. e.
Immediately shut down the EnterpriseOne services.
f.
In the [DEBUG] stanza of the server JDE.INI: Set Output = NONE Leave this setting: DumpLPDS=0
g.
Copy the debug logs from the server log directory to your workstation for Performance Workbench analysis.
Following these rules and procedures will increase your efficiency in problem analysis. It may be a little intimidating at first, but the more you use this product, the better off you will be.
Log Files
Now let’s take a minute and step back to look at the log file in detail. The Performance Workbench takes a lot of the work out of analyzing the log files. But to develop an understanding of the process, you must also be able to fend for yourself and do your own analysis. This is what truly defines a good EnterpriseOne system administrator. One of the first things you need to know is where to look for errors. We will start by covering the more common log files first and then move on to more advanced log files.
Server Log Files Let’s start with the JDE.LOG file on the enterprise server, one of the simplest log files to read. This log file contains the high-level errors that have occurred on a system and is a good place to start when troubleshooting problems on your enterprise server.
762
JD Edwards EnterpriseOne: The Complete Reference
Understanding how these files are created and named will help you read them. When you look at your enterprise server, you will notice that you have more than one JDE.LOG file that is generated. This is another reason why you need to understand how logging works.
Reading the Log File The JDE.LOG file on your enterprise server and application server is named JDE_ .LOG. The process ID number is assigned by the operating system for each kernel process that is started on your EnterpriseOne server. When you open a JDE.LOG file on your enterprise server, you will see a statement at the beginning of the log file. This statement tells you what kernel process this log file is logging for; for example, the security kernel. 328/3200 Thu Sep 20 22:36:21.637 ipcmisc.c294 process 328 <JDENET_k> registered in entry 1 328/3200 Thu Sep 20 22:36:21.653 Netcfg.c262 Starting Kernel of Type:SECURITY KERNEL 328/3200 Thu Sep 20 22:36:21.825 jdeksec.c755 INITIALIZING SECURITY SERVER KERNEL
You will find log files for every kernel process started, such as the scheduler, call objects, metadata, and JDENET kernel processes. When you start up your host services for the first time, you should check these log files to be sure the kernel processes initialized correctly. The Queue kernel log file will show you the process ID, the thread, the user who submitted the UBE, the name of the UBE, and the version submitted. This log entry can be useful in troubleshooting problems while running UBEs on your enterprise server. 4812/5208 Thu Sep 20 22:43:19.325 ipcmisc.c294 process 4812 <jdenet_k> registered in entry 64 4812/5208 Thu Sep 20 22:43:19.340 Netcfg.c262 Starting Kernel of Type:QUEUE KERNEL 4812/5208 Thu Sep 20 22:43:20.090 queueknl.c462 INITIALIZING QUEUE KERNEL 4812/5208 Mon Sep 24 08:58:13.646 ipcmisc.c294 State information for process 1340, User=CHERYLW, Role=*ALL, Environment=JPD811, Profile=NONE, Application=P554201D, Client Machine=dipstweb2, Version=TEST001. 4812/5208 Mon Sep 24 08:58:13.646 ipcmisc.c294 Call stack for process 1340: CSALES.dll/UNKNOWN/F4211FSEditLine
As we mentioned before, the JDE.LOG delivers some of the high-level error messages. For example, if the server could not connect to the database, a connection error would show up in the JDE.LOG file. However, this connection error would not
Chapter 17:
Troubleshooting EnterpriseOne
763
show you the exact statement that was passed to the database. You would need the JDEDEBUG.LOG to find this statement. This can be done by matching up the time of the error in the JDE.LOG to the JDEDEBUG.LOG. When you read a log file, it is important to understand all the information it is giving you. Starting from the left side, the first thing shown is the process ID and thread number. When a developer is designing a process, he or she can tell the process to run either single- or multithreaded. When a process is run in a singlethreaded fashion, only one request to the CPU is placed at a time. Say the process needs to have three different pieces of work completed. The first request will have to finish processing before the second request can be processed. Multithreaded processes can take better advantage of the CPU by placing simultaneous, independent requests for CPU processing time. This is generally more efficient. Moving to the right on the log file, you will see a time stamp—in our queue kernel example, Thu Sep 20 22:43:19.325. This time stamp can help you by matching the time of the error you find in a JDE.LOG file with a JDEDEBUG.LOG file, which can provide you with additional information. However, if you go a little further to the right in an error line, you will see the name of the source file and on what line this error message is located. Unfortunately, most of the errors you find in the JDE.LOG will refer to a system or foundation source file. Oracle does not ship the foundation source code for EnterpriseOne. So normally, all this will give you is what member is failing. However, if an error is ever escalated to Oracle development, this information allows them to easily find the line of code that is returning the error. This is why it is so important that you provide Oracle with the log files when they are attempting to assist you in troubleshooting an error. The log file may not give you much information, but it will help them as they step through the C code to determine what is causing your problem.
Error Messages An error message provides a brief text description of the problem. In the following example, the text tells us that the metadata kernel returned a failure to receive a reply. Some error messages are very useful and specific. However, others, like this one, are generic since several different things could have caused the error message to be invoked. We recommend that you keep track of the issues and resolutions seen at your site. That way, when you encounter an error, you may not have to reinvent the wheel to solve the error. 6940/4968 MAIN_THREAD Thu Feb 07 20:51:59.704000 Jdb_exef.c3913 JDB3300020 - Fetch not allowed. Prior successful Select operation required for this request. 6940/4968 WRK:Starting jdeCallObject Thu Feb 07 21:55:59.014000 SpecCnvrt.c2002 METADATA – Attempted to send Metadata Kernel a message 3 times and did not receive a reply. Returning failure to the caller. The Metadata Kernel is Kernel #30 in the jde.ini and the message ID being sent to the kernel is 15751.
764
JD Edwards EnterpriseOne: The Complete Reference
This unique error message is not of as much use to you as it could be. But what you can do is take the message ID, JDB3300020 in this example, and search for it on the customer support site. NOTE What commonly happens in EnterpriseOne is that the first error encountered causes others to compound after it.
Server Debug Log Files The first time you look at the JDEDEBUG.LOG file, you will probably think, “Dang it, I knew I should have taken cryptology in school.” Don’t worry; we are going to help you decipher this log file, which can appear intimidating. When you know what you are looking for, this file can be your best ally in debugging an EnterpriseOne issue. Figure 17-4 shows an example of a JDEDEBUG.LOG file.
FIGURE 17-4. Example of a JDEDEBUG.LOG file
Chapter 17:
Troubleshooting EnterpriseOne
765
When you look at a JDEDEBUG.LOG, the first thing to determine is what you are looking for. Do you know from the JDE.LOG that you have encountered an error at some point in time? That time frame on the JDEDEBUG.LOG file is where you should start looking. As experienced EnterpriseOne system administrators can tell you, if you are having a low-level problem you may or may not receive an error in the JDE.LOG. So knowing how to read the JDEDEBUG.LOG is a very valuable skill. The JDEDEBUG.LOG has some similarities to the JDE.LOG. It will start with a date and time stamp. Then moving to the left, you will see a process ID and task number. Remember when we discussed the JDE.LOG, we mentioned that some processes will have multiple threads? You can track these processes and threads through the JDEDEBUG.LOG as well. Moving further to the right, you will now see a message, such as Entering JDB_GetKernelType or a SELECT statement. Tracking the exact SELECT statements passed to the database when you are experiencing a problem can be very helpful in troubleshooting. We cannot tell you how many times a SELECT statement from the JDEDEBUG.LOG has shown us what is causing the problem. An easy example would be if you were connecting to an Oracle database, but the SELECT statement was not passing an owner or was passing the wrong owner. The EnterpriseOne data source, which is contained in the F98611 Data Source Master table, tells EnterpriseOne what user to pass to the database. If this field is blank or if the Use Table Owner flag is not set in the EnterpriseOne data source, the system would not pass a table owner to the database. Another trick that will assist you in debugging is to use your database administrator when necessary. If you think you are failing on a SELECT statement being passed through EnterpriseOne, pass the exact same SELECT statement outside EnterpriseOne. It might be a database setup issue instead of an EnterpriseOne issue. What this log file will also tell you is the tables you are hitting for a process. The software will tell you when it opens a table or closes a table. An example would be the JDEDEBUG.LOG statement: Dec 03 16:02:41.449008 - 4116/5232 MAIN_THREAD OpenTable(Table = F983051) with Success
Exiting JDB_
This statement tells you that the F983051 table was opened. You will also see statements like JDB_FetchKeyed. This tells you that EnterpriseOne is fetching information from a table. You will need to page up in the log file to determine what table the system is getting this information from. The next area a JDEDEBUG.LOG gives you information on, with standard tracing set up, is business function calls. This log file shows you when it calls a business function. It will also show you if this business function returned success, failure, or a warning. An example of the system calling a business function would be: Dec 03 16:02:50.152146 - 4116/5232 WRK:Starting jdeCallObject Return value is 0 for F4211EditDoc. (BSFNLevel = 2)
766
JD Edwards EnterpriseOne: The Complete Reference
This statement tells you that the business function returned success (a return value of 0 means success). If this return value is a 1, the business function has returned a warning. If the return value is anything other than a 0 or 1, you have an error. So if you are troubleshooting an issue on your enterprise server or on your development workstations, you can verify that the business functions finished correctly. This troubleshooting technique comes in handy when you have master business functions running on the enterprise server. Say, for example, you have mapped all of your sales order master business functions to the enterprise server. If you are having a problem, you can turn on your logging, re-create the error, and determine whether a business function is failing. Up to this point, we have only covered basic logging information. We are now going to move on to describe a few different log files and the types of tracing available to you when you use EnterpriseOne.
UBEDEBUG.LOG When you have used EnterpriseOne for a while, you will notice that JDEDEBUG.LOG and JDE.LOG don’t log very much information on a UBE while it is running. They will show you when the UBE started and if it finished, but these logs will not give you any real detail on what the UBE is doing as it runs. Unfortunately, just because a UBE finishes does not mean that it did what you wanted. So how do you troubleshoot a UBE that is not performing as it should? You will need to log what that UBE is doing as it runs. To do this, you can turn on UBEDEBUG logging. This type of logging produces a special log file that will tell you what the report was doing as it ran. To turn this type of logging on, open your JDE.INI file and find the UBE section. Under this section, find the UBEDebugLevel setting. This setting controls whether you will log what happens when a UBE runs. The valid values for this setting are 0 through 6. Zero means the logging is turned off, and 6 is the highest level of logging available. Now that you have set this value to 6, you are ready to go, right? Not quite. You have told EnterpriseOne to log the activities of your UBEs, but you have not told the system to keep these logs. The system will only keep the log files if it thinks that the UBE process itself has failed. As we mentioned, this may not be the case. So what you will want to do is find the UBE section of your JDE.INI file and set the UBESaveLogFile setting to 1. This value tells the system to keep the UBEDEBUG log files. If this is set to 0, the log file will only be kept if the UBE process itself fails. You may also set the debug level at run time. This is accomplished via the Advanced form exit. Now you are ready to save your JDE.INI file and run your UBE. Once you have run your UBE, you will want to look in the PRINTQUEUE directory on the machine you ran the report on. If you ran the report locally, look in the PRINTQUEUE directory on your workstation, and if you ran the report on the enterprise server, look in the PRINTQUEUE directory on that server. The log file will be the same
Chapter 17:
Troubleshooting EnterpriseOne
767
name as your report followed by an underscore and the version of the report that you ran. Basically, it will match the name of your PDF file, but it will be a text file. TIP When you change an entry under the UBE section in your JDE.INI file, you will not need to log out of EnterpriseOne and back in to have the change take effect. This section of the JDE.INI file is read each time you run a UBE job. As you can see in Figure 17-5, this log file can give you critical information on your UBE. This file is similar to JDEDEBUG.LOG, except that it shows you specifically what your UBE is doing. This means you can see the SELECT statements that are performed.
FIGURE 17-5. Example UBE debug log
768
JD Edwards EnterpriseOne: The Complete Reference
If you are seeing a performance problem when a certain report is run, you can actually go through this log file to see if the report is doing something it shouldn’t, such as passing open SELECT statements across a large table when it doesn’t have to. This log file will also show you what business functions are being called by your report, so if one is failing, this is where you would find the error. Again, you can search for the return code of a business function. Not all reports use a lot of business functions; however, this is still a very handy debugging technique. This log file will also tell you what columns are being used or hit when a report is run. You will see statements similar to UBE--[3]-- 289/249 Constants Detail
Processing Do Object CCARFJ in Section Company
This tells you the report has looked at the column CCARFJ. What this really shows is a data dictionary item, ARFJ, but these data dictionary items are used to specify columns for tables. This is why the value has a CC table prefix on it. If you look above this statement, you can determine what table this report was looking at. In this example the table is F0010 Company Constants. If you combine this information with the SELECT statements in the log file, you can look for areas where the report is causing performance problems. Say the report was doing an open SELECT statement over a table when it only needed to perform a SELECT statement over a single column that had an index on it. If you catch something like this, you can reduce the time it takes to run your reports. If you are creating custom reports, we recommend that you design and test them for performance as well as functionality.
Platform-Specific Troubleshooting
AS/400, UNIX, and Intel are the three supported platforms for EnterpriseOne. The AS/400 platform is a very popular platform within the JD Edwards EnterpriseOne community. Many clients migrating from World to EnterpriseOne choose to stay on the AS/400 platform because they already have the platform maintenance and troubleshooting skill set in-house. World, the predecessor to OneWorld and eventually EnterpriseOne, is an AS/400-dedicated application. In fact, you can even see the influence of the AS/400 within certain EnterpriseOne naming conventions and administration applications. Another common reason for the AS/400’s popularity is the stability of the platform. EnterpriseOne users want to make sure that their ERP system (the central nervous system of their business) will be consistently and constantly available and, clearly, the AS/400 has proven itself strong on both points. Like the AS/400, UNIX is also very stable, reliable, and configurable. It is truly a world-class system that runs EnterpriseOne better than some platforms. And not to be slighted, Intel and the Windows operating system have come a long way. There are now many very large clients successfully using Intel as their platform of choice.
Chapter 17:
Troubleshooting EnterpriseOne
769
In this section, we will talk briefly about the unique troubleshooting techniques of each of these platforms.
AS/400 AS/400 has a multitude of utilities that can be used to effectively support CNC troubleshooting efforts. Joblogs and database tools are the foremost.
Joblogs As the name implies, joblogs are logs that track actions, events, and errors related to processes on AS/400. EnterpriseOne processes on AS/400 are controlled via services: Network, JDENET_K, and Sentinel. Network is controlled by JDENET_N in the E812SYS library. This EnterpriseOne service is responsible for handling network calls. All client requests for EnterpriseOne logic are filtered through this service. Other dedicated processes are managed via the JDENET_K processes. On service startup, the JDE member of the INI file is read from the E812SYS library. The JDE member sections should contain 12 sections defining various EnterpriseOne dedicated server-side processes managed by the Network, JDENET_K, and Sentinel processes. Following an EnterpriseOne installation, you start EnterpriseOne services by issuing the STRNET command. You can monitor startup processes by doing a WRKACTJOB. As these services start, they run through a series of statuses, which are listed in Table 17-1. To help troubleshoot problems with service startups, you can review the associated joblogs with WRKUSRJOB for EnterpriseOne. You will then see the joblogs for the associated service jobs as follows: 1. Type WRKUSRJOB ONEWORLD and then press ENTER. 2. Identify the job, as in JDENET_K, SENTINEL, or NETWORK. 3. Choose the 8=WORK WITH SPOOLED FILE option. 4. Choose the 5=DISPLAY option.
Service
Begin Status
Ready Status
Sentinel
SIGW (Signal Wait—initial thread of job waiting for signal)
SIGW
Network
SIGW
SELW (Select Wait—initial thread of job in select wait status)
JDENET_K
RUN
DEQW (Initial thread waiting for completion of a dequeue operation)
TABLE 17-1.
EnterpriseOne Services and Status on the AS/400
770
JD Edwards EnterpriseOne: The Complete Reference
If you need to send this spool file to somebody such as the Oracle Support Line ([800] 289-2999), you can do the following: 1. Create a data file using CRTPF. 2. Run the CPYSPLF command with the output target pointing to the new data file. 3. FTP the file to your workstation. We recommend that whenever you start services, you review any associated logs. Even though the services might appear to be running without problems based on their status, the logs can reveal problems beneath the surface. In addition to service logging, joblogs are excellent tools to help troubleshoot the compilation of the EnterpriseOne business functions on AS/400. Business functions are ANSI C programs compiled on AS/400. These C programs are translated from Microsoft C++ on the deployment server to ANSI C, which is then compiled by the ILE/C engine. Problems commonly associated with the business function build process include the following: ■
System Openness Includes (QSYSINC) not installed
■
ILE/C not installed
■
Erroneous characters in the C++ base code
■
Missing headers or source
The first two issues should be addressed via the preinstallation audit, but installation of System Openness Includes is often overlooked. In order to determine whether System Openness Includes is installed, you can run WRKLIB QSYSINC. If the QSYSINC library is not there, then ILE/C is not installed properly. Furthermore, if the H file does not exist within the QSYSINC library, EnterpriseOne business function builds will not operate. To install the QSYSINC library, your organization must be licensed for it. If you are, you can run WRKLICPGM and, with the appropriate CD, choose option 13 to install the library and necessary programs. If the QSYSINC library is not installed, you will get errors such as the following in the joblog: CZM0504 Unable to find #include file *LIBL/SYS(TYPES.h CZM0504 Unable to find #include file *LIBL/H(MILIB). CZM0504 Unable to find #include file *LIBL/H(QCAPCMD).
QZDASOINIT Processes In addition to AS/400-based EnterpriseOne services, AS/400 network management services, called QZDASOINIT processes, can also lock objects and become locked in the process. QZDASOINIT processes manage ODBC connections from the
Chapter 17:
Troubleshooting EnterpriseOne
771
networked EnterpriseOne clients. If you are having problems with EnterpriseOne services and with network connections, we recommend verifying whether any QZDASOINITs are hung. Admittedly, this occurrence is rare, but we have visited clients who were down due to such an issue. We recommend the following steps in such a situation: 1. End EnterpriseOne services with ENDNET. 2. Enter CLRIPC on the command line. 3. Enter WRKACTJOB on the command line. 4. Scroll down to verify whether any QZDASOINITs are available. 5. Manually try to force any remaining QZDASOINITs to end. 6. If manual shutdown fails, an Initial Program Load, IPL, is in order. In addition to object locks, you can verify tables that EnterpriseOne processes are accessing by choosing Work with Open Files rather than Work with Object Locks. This information can be useful for troubleshooting at the data level.
Display Object Description (DSPOBJD) AS/400 treats files as objects. Display Object Description (DSPOBJD) is a useful tool for displaying object size, creation date, last used date, and owner. This tool can also be helpful in comparing changes in objects. For instance, if you apply an EnterpriseOne Tools Release and begin to have issues, you can do a DSPOBJD against the JDEKRNL in E812SYS library versus the saved system library to see if there is a noticeable difference in object size. If the new object is significantly smaller, you might want to consider investigating whether the service pack was applied correctly.
QBATCH AS/400 presents a series of utilities that make batch processing extremely accessible from an administration and troubleshooting standpoint. With the initial installation of EnterpriseOne, you will find a single-threaded job queue called QE812 within the Qbatch subsystem. Perform the following steps to verify: 1. Type WRKSBSD SBSD(QBATCH) and press ENTER. 2. Choose the 5=DISPLAY option. 3. Choose the “6. Job queue entries” option.
772
JD Edwards EnterpriseOne: The Complete Reference
At this point, you can review whether the job queue is single-threaded (that is, whether it allows only one job at a time to process). Many administrators notice that because only one job queue is defined for EnterpriseOne and because the job queue is single-threaded, EnterpriseOne batch jobs begin to pile up. Depending on the nature and number of jobs, it can literally be hours for the jobs to process through. So the AS/400-savvy administrator changes the job queue setting to make it multithreaded. You can troubleshoot batch jobs by reviewing the associated joblogs. For instance, let’s say that user JSMITH is having some problem with the R0010P report. Using either WRKACTJOB or WRKUSRJOB, you can drill down to the joblog review as follows: 1. Enter the command WRKUSRJOB KStern and press ENTER. 2. Identify the job, for instance R0010P. 3. Choose selection 8=WORK WITH SPOOLED FILE. 4. Choose selection 5=DISPLAY. Then you can review the log to discover any errors as in the following example: *..+..1..+..2..+..3..+..4..+..5..+..6..+..7..+..8..+..9..+..0..+..1..+..2..+..3 5769SS1 V4R3M0 980729 Job Log ENTERPRISE 8/16/07 18:48:11 Page 1 Job name . . . : R0010P User . . . : JSIMITH Number . . .: 138775 Job description . . . . . . : JDE Library . . . . . : QGPL
This joblog header indicates that you have the correct joblog. The correct server (Enterprise), date and time, job name (R0010P), and user (JSMITH) are listed. Scan to the bottom of the log to see if any error descriptions are included. In this case, we have used bold to emphasize the error message: MCH1001 Escape 40 8/16/07 18:48:10 #auexcpt 000B24 DBDR E812SYS *STMT To module . . . . . . . . . : DBDRV_CP To procedure . . . . . . . : CallAGConnectPgm Statement . . . . . . . . . : 27 Message . . . . : Attempt to use permanent system object DB_ROUTER without authority. Cause . . . . . : You tried to use the permanent system object DB_ ROUTER without having the correct authority
At this point, the job ended with a status of 40 (see Table 17-2), which means that the job ended without becoming active. The reason is provided in the message, and the Cause section provides further explanation. Clearly the next step is to
Chapter 17:
Troubleshooting EnterpriseOne
Code
Meaning
0
The job completed normally.
10
The job completed normally during controlled ending or controlled subsystem ending.
20
The job exceeded end severity (ENDSEV job attribute).
30
The job ended abnormally.
40
The job ended before becoming active.
50
The job ended while the job was active.
60
The subsystem ended abnormally while the job was active.
70
The system ended abnormally while the job was active.
80
The job ended (ENDJOBABN command).
90
The job was forced to end after the time limit ended (ENDJOBABN command).
773
TABLE 17-2. AS/400 Job Ending Codes review DB_ROUTER object authorities for user KStern. In this case, authority on the DB_ROUTER object was set to *EXCLUDE for all users. In other words, all users would have had issues submitting jobs on AS/400. Correcting this exclusion allowed JSMITH and others to successfully submit and run jobs.
Displaying Open Files As a bridge from EnterpriseOne services to data, the AS/400 Display Open File utility is helpful in revealing files accessed by EnterpriseOne processes. You can access this utility by doing the following: 1. Enter WRKACTJOB on the command line. 2. Select Work with Process. 3. Select Display Open Files. Working with this utility after an issue arises is helpful in that you can pinpoint which files are being accessed. You can then use database tools to examine the content of these files, as well as OS tools to examine the structure and description of the files. However, if your organization has the bandwidth, we recommend documenting open files for key processes before issues arise. You can then determine whether any changes have occurred within OCM or in overall file availability, which might cause some issues.
774
JD Edwards EnterpriseOne: The Complete Reference
As we mentioned, object locks can prevent data copies from occurring in a clean manner. When you refresh the EnterpriseOne prototype or development environments with production business data, some files might not carry over to the library. Or even if the files carry over, the data might not. By displaying open files you will quickly be able to identify the files in question. Using a host of tools and methods, you can then compare these files to files of the same name in the other EnterpriseOne environments and/or in restored backup data.
Comparing Files After tracing object locks and open files, a prime technique for troubleshooting EnterpriseOne on AS/400 is to compare the same files between environments. Typically, EnterpriseOne has four main data sets to review when troubleshooting. Some key AS/400 tools to use in comparing files are Display File Description, Interactive SQL, Program Development Manager, and Display Database Relations. Let’s look at each one of these tools in turn. Display File Description (DSPFD) This utility enables you to determine some of the following key information: ■
Whether the file is SQL-defined or based on data description specification (DDS)
■
Coded character set identifier (important for multilanguage implementations)
■
Data space size
■
Physical file open/close access counts
■
Write, update, and delete operations
■
Logical and physical reads
■
Records rejected by key selection
■
Last changed, saved, and restored date/time
■
Last used date
■
Format
■
Total records (including the total deleted records)
Clearly this utility is powerful and informative. You can use this information to determine if a file is getting hit and how often, and whether it is the original or a restored file.
Chapter 17:
Troubleshooting EnterpriseOne
775
Reorganizing Physical Files The AS/400 deleted records remain in file storage even though the data has been removed. File sizes grow with each addition and deletion. If you are experiencing performance issues, you should reorganize the physical files (RGZPFM). This command cleans up deleted record space for faster file parsing.
Interactive SQL (STRSQL) AS/400 has numerous database utilities, and one of our favorites is Interactive SQL, which you initiate with the STRSQL command. This utility enables you to do the following: 1. Manually enter SQL statements as found in JDEDEBUG logs. 2. Review data within files. 3. Review file structure for column headings and tuple length. STRSQL is a highly versatile data manipulation tool. With this utility, you can perform SELECTs, INSERTs, UPDATEs, and DELETEs. You can perform complex joins as well. Prior to actually performing INSERTs, UPDATEs, or DELETEs, we recommend that you back up the data files to a save library. The Interactive SQL tool even enables you to create the save file by simply changing the output parameters to be output to a file rather than displayed on a screen. NOTE For coexistence clients, we do not recommend that you use Interactive SQL to back up files prior to performing data manipulation queries because the files will be created with type *SQL rather than DDS. CRTDUPOBJ is a better method for maintaining the proper file type.
Program Development Manager (PDM) The Program Development Manager is an excellent tool for manipulating EnterpriseOne AS/400 physical files and the content of members, especially the INI member of the JDE file. In fact, the PDM tool is called when you select Edit INI from the A98OWMNU menu found within JDEOW. To start this tool, you execute STRPDM. The screen that results enables you to work with object, file, or member-level objects.
Editing the INI File Prior to editing the INI member to enable logging, make changes in kernel services for performance, or enable/disable other functions such as security or transaction processing, we strongly recommend that you make a copy of the file in a save library. We also strongly recommend that you bring down EnterpriseOne services prior to
776
JD Edwards EnterpriseOne: The Complete Reference
editing the member. In some cases, certain edits can confuse the AS/400 IPC functions, forcing you to bring down communication services. Error messages on CLRIPC following ENDNET are a clear indicator that you must bring down communication services or even possibly IPL the system. At any rate, to edit the INI file, perform the following: 1. Enter the command STRPDM. 2. For member, type in INI. 3. For file, type in JDE. 4. For library, type in E812SYS. You are then presented with a screen that enables you to copy, view, or edit the member. We recommend you choose to edit it only if you truly need to edit the member. If you are digging for information, viewing the member is preferable. After opening the INI file to make changes, you can enter F Keyword to perform a find for a section or keyword. Pressing ENTER moves the cursor to that section of the INI, where you can easily enter your changes. Pressing F3 takes you out of the edit mode and into a prompt screen for either saving your changes or discarding and closing the member. When you start services, any changes you have made to the INI file are read by EnterpriseOne. You can then go through the process of verifying whether the changes you have made are valid and desired. NOTE You can FTP the INI file to your workstation for safekeeping. However, we do not recommend that you FTP the INI back to AS/400. Even if the INI is FTPed to the server during the installation process, it is far better to make your edits using STRPDM on AS/400 to avoid entering erroneous characters with a PC-based editor. NOTE The WRKLIBPDM command, related to STRPDM, can be used in cases where you are having trouble with backups or data refreshes. For instance, using WRKLIBPDM, you can attempt to change a particular library name. If you cannot do so, then you possibly have journaling within the library, or a process has a lock on an open table. If you can change the name of the library successfully, it is highly likely that the backup or data refresh will be successful.
Chapter 17:
Troubleshooting EnterpriseOne
777
Database Relations Using DSPDBDR, you can validate the logicals defined on AS/400 for a data file and then compare that definition against the definition found in EnterpriseOne’s Object Librarian. Any discrepancies can be dealt with by backing up the file, then deleting the logicals and regenerating them. If the regeneration of logicals fails, the most likely reason is that duplicate records entered into the file during the period in which the discrepancy arose between actual logicals and defined database relations. The index generation then fails because the definitions maintain a unique constraint and so cannot be generated over a file that has duplicate records. At this point, you can delete the file altogether, regenerate it, and then do a CPYF with drop duplicate/ignore error parameters from the backed-up file to the new file. The records are copied, and the unique constraint maintained by the logicals forces any duplicate records to drop.
UNIX Like the AS/400 the UNIX servers typically run themselves without much intervention. In this section we will discuss some basic tasks unique to UNIX that might be helpful in maintaining a trouble-free system.
Cleaning Up the UNIX Environment When you stop and start the EnterpriseOne services using the EndOneWorld.sh and RunOneWorld.sh commands, it is not uncommon for there to be a few “hanging chads” still left out there. You can run a couple of UNIX commands to ensure that all of the associated EnterpriseOne processes have stopped. First, enter the following command: ps –ef|grep jde812
where “jde812” is the user that started the EnterpriseOne services. This command will return a list of every process currently running for that specific user. If a jdeque, jdenet, jdequeue, jdenet_n, jdenet_k, or killque process is in the resulting list, you must manually clean it up by entering the following command: kill –2 yyyyy
where yyyyy represents the process ID for the specific process you want to stop. If this command does not stop the offending EnterpriseOne process (you can determine this by rerunning the previously listed ps –ef|grep command), you can enter the following command that will: kill –9 yyyyy
where yyyyy represents the process ID for the specific process you want to stop.
778
JD Edwards EnterpriseOne: The Complete Reference
NOTE The -9 option in the kill command is irreversible. This is a hard kill, which does not care about dependent or existing processing. Only use this option as a last resort and triple-check your process ID to make sure you are killing the right process. After validating that all of the user ID–associated EnterpriseOne processes have stopped (by rerunning the previously listed ps –ef | grep command), you need to run rmics.sh, an EnterpriseOne utility. This command is found in the $system/bin32 directory. Like the startup procedure, this command should be used after stopping services.
General Troubleshooting Tools One of the tools you are most likely to use on the UNIX platform (or any other for that matter) is the jde_processid.log (where processid represents the actual process ID assigned by UNIX to the particular kernel and/or process) and jdedebug_processid .log (where the processid represents the actual process ID assigned by UNIX to the specific kernel and/or process). The server’s JDE.INI, located in the INI directory on the UNIX server, controls these logs. Security Server Issues Not being able to find the security server is one of the more annoying server-based errors that have several different causes. Some of the causes are self-explanatory (for example, the server does not have network connectivity), and some are related to EnterpriseOne. Let’s quickly review the process of determining the cause and what you need to do to fix the problem. Users will report that when they attempted to log in to EnterpriseOne, they received a message box that specified, “Unable to connect to security server.” This problem can be the result of several possible causes. Here is a list of reasons why users may be experiencing this problem: ■
It is possible that the security services are not running on the security server. They either have not been started or have abnormally aborted. Check the services on the server itself by running the command ps –ef|grep xxx (where xxx represents the user who starts the OneWorld services). If no EnterpriseOne services are returned, the services need to be started using the RunOneWorld.sh script. If services are present, you probably have a situation where the kernel is either too busy to respond (see the following bullet) or it has ended abnormally. If the kernel has ended abnormally, you should stop the EnterpriseOne services using the EndOneWorld.sh script, ensure that all of the processes ended correctly by using the ps –ef|grep xxx command, clean up the UNIX environment using the EnterpriseOne utility
Chapter 17:
Troubleshooting EnterpriseOne
779
rmics.sh, and then start the services again by using RunOneWorld.sh. If the services ended abnormally, there is the possibility that a core dump file was created. Dump files can be found in the $SYSTEM/bin32 directory under the name core.dmp. ■
If a lot of security-related activities are on the system (a lot of users are initially logging on to EnterpriseOne), it is possible that the security kernel(s) are simply too busy to service the security request and that request timed out. When this happens, you need to increase the number of security service kernels launched by the EnterpriseOne security server by modifying the security server’s JDE.INI as follows: [JDENET_KERNEL_DEF4] krnlName=SECURITY KERNEL dispatchDLLName=libjdeknet.so dispatchDLLFunction=JDEK_DispatchSecurity maxNumberOfProcesses=1 #(increase this number as appropriate) numberOfAutoStartProcesses=1
■
It is possible that the server is actually offline or is having network difficulties and the workstation legitimately can’t connect with it. To test network connectivity, enter the following command at a command prompt on the workstation: ping servername (where servername is the name of the server). Because UNIX is case sensitive, ensure that you use uppercase or lowercase letters where appropriate.
UBE Issues At times, users will attempt to launch UBEs on the server and will not be able to. Not a lot of information is available from their machines, and although they might be able to override the location to a different location (that is, another application server or locally) additional application servers may not be available. The causes of this problem are similar to the causes of the “Can’t connect to the security server” problem described earlier. Do the following to possibly resolve this particular problem: ■
Validate that there is room in the svm812t and svm812i table spaces. These table spaces are used by the server map, and they often have a 1GB growth restriction. Validate that there is room to add to the F986110 table. In the case of a runaway UBE process, the submission process may have launched several hundred UBEs and filled up the allocated database space.
■
Validate that there is free disk space on the EnterpriseOne mount point and on the PrintQueue mount point, if it is different.
■
Validate that you can launch a UBE on the server using the previously described method.
780
JD Edwards EnterpriseOne: The Complete Reference
Another problem that could be experienced by most users is that their UBE goes into a Wait state and never processes. They will go to the Work with Servers application by using either the batch submission entry or the User Options entry. If you change the selection criteria to * for user and today’s date, users will often check to see why their UBE hasn’t processed yet. Many other users, not seeing the output they expect, will launch additional UBEs exacerbating the problem. There are several reasons that UBEs might be in a Wait status. UBEs begin backing up for any of several reasons, and your CNC administrator should be able to quickly identify why this problem is occurring. First, because UBEs are entered into the F986110 table, there is a record of each UBE. The W or Wait status indicates that the UBE has not been picked up by the jdequeue services on the UNIX server. If you have thousands of UBEs in a Wait status, you might have a runaway UBE process that submitted the same UBE over and over. If you are seeing an abnormally high volume of UBE activity, it is distinctly possible that the server is simply not servicing all of the UBE requests in a timely manner. You should validate that services are running and that UBE queues are actively running UBEs. You should also look at Chapter 16 to optimize your instance of EnterpriseOne. If you have run into a scenario in which, for one reason or another, you simply have an abnormally high UBE volume on the server, the CNC administrator can start additional UBE queues on the fly if the server is able to handle the additional processing requirements. You should look at your overall server resource management prior to adding additional queues to ensure that you will not be creating more work than is worthwhile. If you do determine that your server has enough system resources (including memory, processor, and a disk I/O situation that is not too high), simply run the P986130 application and increase the number of concurrent UBEs (see Figure 17-6). EnterpriseOne Services Issues You usually encounter this problem during the installation process and not during implementation or after go-live. If you do encounter this problem during installation, make sure that you’ve updated all of the correct fields in JDE.INI. Also ensure that your UNIX user can perform a tnsping (an Oracle utility
FIGURE 17-6. P986130 application
Chapter 17:
Troubleshooting EnterpriseOne
781
ensuring you have database connectivity). If those both prove okay (you know that Oracle isn’t an issue, and you have permissions on the TNSNAMES.ORA file), check the file permissions to the directories and files for EnterpriseOne on the UNIX server. Make sure that your EnterpriseOne user ID has full read, write, and execute permissions on these files (this is a step during the installation of the UNIX server itself where you use the chmod 777 command on the associated files and file structures). Verify that you’ve made the appropriate changes to the .profile and enterpriseone.sh files. If this also proves okay, you need to run the rmics.sh script, modify JDE.INI so that full logging is on as described previously, and restart the EnterpriseOne services. Odds are that one of the JDE logs will contain enough information that you will be able to determine what the problem is. The best method of learning how to troubleshoot the UNIX/EnterpriseOne system is by doing it, and learning the peculiarities of your system. One of the hints we like to use is the tail command on some of the logs, and in particular, a tail –f is useful when troubleshooting because it will provide a real-time end of the log. As the log continues to build, you will continue to see the screen presentation of the real-time end of the file. If you have chosen to grow a UNIX administrator instead of already having the skill sets in-house or purchasing the skill sets, be sure that you provide that administrator with the appropriate classes for the flavor of UNIX you are supporting. In addition, as we suggested earlier, be sure that you bring in an experienced consultant who can decrease the overall learning curve for your administrator. Overall, the EnterpriseOne/UNIX/Oracle combination is relatively straightforward and trouble free. Once properly configured, this system will provide a robust platform with the ability to grow.
Intel This chapter would not be complete if we did not go over some of the issues that have been seen with the Windows operating system. The good news is that there are not many of these issues and they are fairly easy to work with, so this will be a relatively short section. What’s discussed in this section can mostly be applied to both server and workstations. Since release 8.11 and above only uses workstations for administrative and development tasks, these machines tend to be very similar to the actual enterprise servers. Some of the most common problems with EnterpriseOne and the Windows operating system boil down to file permissions. In order for package builds, checking objects in, and client installations to work correctly, the permissions on the file directory structure must be sufficient for your users. You will not have as many issues with permissions on the enterprise servers as with the development server, since users do not access the enterprise server directly. However, when setting up the EnterpriseOne services, take caution to ensure the account used to start the services
782
JD Edwards EnterpriseOne: The Complete Reference
has the appropriate permissions to not only access the EnterpriseOne installed directory, but also other network servers that EnterpriseOne may use for things such as file import and export and printing. Users typically have problems with the deployment server when file-level security is enabled and developers are not granted all the access they require. For instance, not only should developers have access to the DV812 pathcode directory, but they also need to access the OneWorld Client Install, client, system, and systemcomp directories if they are to install client packages. Another common problem with the development client is starting the web development feature. First of all, ensure the web development feature was attached to the last full development client build. If it was not, you can run the feature manually from the OneWorld Client Install\ThirdParty\WebDevFeature directory. Once you have the feature installed, you still may have to modify the gen.bat file in the client WEB-INF directory. It is essential that the directory identifying the location of the java.exe file is correct. If the web development client cannot find the java command or calls the wrong command, when you try to start the web feature in EnterpriseOne you will get a “cannot log on” message. First, go to a command prompt and type the command java –version. C:\>java –version 'java' is not recognized as an internal or external command, operable program or batch file. C:\>java –version java version "1.6.0_03" Java(TM) SE Runtime Environment (build 1.6.0_03-b05) Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)
You will get one of two results. One is that the command cannot be found. Even though it is not necessary to have the java command in your system path, we prefer to do so because it is very common for a workstation to have multiple versions of java installed. The other result is to return the version information. If the version is not correct for the EnterpriseOne release you are running, the web development client may not function.
Summary
In this chapter, we have covered the options available to you when you are setting up and evaluating logging. As you learn more about EnterpriseOne, your skill at setting up and reading log files will increase. As you have learned, platform-to-platform troubleshooting is basically the same; you just have to use different commands to accomplish the same thing.
APPENDIX
A
The EnterpriseOne Implementation 783
784
JD Edwards EnterpriseOne: The Complete Reference
A
lthough this is one of the more important topics of this book, many of you may be wondering why we haven’t gone into more detail about how you implement the EnterpriseOne product and why this information is in an appendix instead of in several chapters. The reason is that this topic could quite easily fill a book on its own. It is a huge topic that deserves its own forum. Although we can’t dedicate 900 pages to it, we still felt it was necessary to hit on many of the points you need to know when preparing to implement this product. In this appendix, we’re going to cover the topics in the following list in varying degrees of scrutiny—and none of them as well as we’d like or they deserve. As a final note, if this is a subject you want to see a book dedicated to, let your voice be heard. Contact the publishers and tell them you want more. ■
The software selection process
■
Things to know about the contract
■
Phases of the technology implementation
■
The EnterpriseOne installation
■
Modeling your solution (phases of the application implementation)
■
Training
■
Development and version control methodology
■
Go-live activities
■
What now? (Maintaining the value of your system)
■
Globalization
■
Interoperability and EnterpriseOne
■
In conclusion
The Software Selection Process
We’ve been asked more than once why we needed to write about how you select your organization’s package in a book about a specific suite of products. Our answer may seem unusually short, direct, and even somewhat glib. It is our firm belief that all software packages were not created equal. When compared side by side with other packages, the EnterpriseOne product will fare significantly better. Additionally, although the hard-core market value of this book is with clients who have either purchased, implemented, or will soon implement the product, we also
Appendix A:
The EnterpriseOne Implementation
785
feel that this guide will serve those organizations that are as yet undecided as to what to implement. This is not required reading. Feel free to skip around as necessary to glean the information you are looking for.
Preparing to Make the Move of a Lifetime Are we being overly dramatic? Not really. Regardless of the size of your organization, when you choose to implement an enterprise resource planning (ERP) product, you have just decided to turn your entire world upside down. In so many ways, however, this can be a very positive thing. So much so, in fact, that you will survive it and come out substantially better—or be crushed by it and leave (by choice or not) bitter and angry. It all comes back to a basic premise, a premise that dramatically changes everything taught in business school. Regardless of whether you call it information technology (IT), information systems (IS), or data processing (DP), this function has moved beyond the nicety, the necessary evil, or the business advantage. It is the business (period). Information technology is the reason you have a product to sell. Information systems are the reason you’re able to anticipate your customer’s requirements. Data processing is the reason you beat your competition to market, gained the required momentum and name recognition, and ultimately own 70 percent of the market share. But it goes beyond a single software package that manages your manufacturing, shop floor control, inventory, sales processing, purchasing, accounts receivable, accounts payable, general ledger, human resources, payroll, data warehousing, and all your reporting. For many companies that create first-class IS operations, there are market openings to farm out that talent and truly make IT a profit center. And companies are making that move. Let’s get back to the basics of what you need to keep in mind when choosing your new software package. These questions are generic in nature and can lead you to many different solutions including (but not limited to) the EnterpriseOne product. One of the first questions that must be asked when looking at new software is, why? It’s a simple question and yet most organizations have problems answering it. If you want to implement a new product because of a perceived return on investment (ROI), okay. If it is because you need this new system to gain or maintain market share, fine. If it is because your current system is on its last leg and needs to be replaced before you are, all right. If it is because you read about it in a magazine and the ad used industry catchwords like GUI, Web Services, SOA, ERP, interoperability, portal, or e-anything—hold on, stop! You see, unless you have a good reason that has solid foundations in tried business practices, you really need to think about it. You’d better do your research and all signs should point to yes. A small organization will spend 1 to 3 million dollars implementing an ERP product. The middle tier will spend 2 to 5 million. Large companies can easily spend in excess of 10 million dollars over a two- or three-year implementation. Before you commit your organization to this type of
786
JD Edwards EnterpriseOne: The Complete Reference
capital expenditure, you’d better understand why you’re doing it and what you expect to gain from it.
Do You Understand Your System Requirements? This question isn’t being directed to the system administrators who’ll quickly stand up and spout out the fact that you have 26 UNIX servers seamlessly integrated with 150 Windows NT servers. Rather, this is more a question for your business or systems analysts. In fact, a better question to ask might be: Can you break down your business processes and identify the key components of your business? If so, can your people work in such a way as to think beyond what is, ignore what could be, and arrive at what should be? Business processes can be redesigned and streamlined, and technology can be used to your advantage. Understanding what your organization truly needs versus what they want or already have is key to understanding your system requirements or, better yet, your business process requirements.
Are There Any Existing Products That Already Fit the Bill? What software products are on the market today that address even 50 percent of the functionality you’re looking for? Write these down and create a long list of potential options. Now, look closer. How many of these products fit 70 percent of your system’s requirements? Create the short list. You might be wondering how you know what your company’s needs are. Is there any one person who knows enough to make a decision of this nature? This is probably related to the size of your organization. The larger the company, the less likely that any one person will know enough to make an intelligent decision in this matter. Instead, your organization would be wise to invest in a group of people (specialists from each functional group) who not only understand their area, but are also open to looking beyond the procedures currently in place, discerning where the business is going, and what will be needed in the future, and whom you have empowered to make these decisions for your organization. You should either create a flowchart of your current procedures and a list of requirements for each functional area or hire a professional consulting organization to assist you in this endeavor. The reason that we highly recommend this initial effort is that most organizations cannot provide a comprehensive list of current (much less future) requirements. The forward-thinking organization will create this group of functional specialists as a group responsible for identifying requirements, as well as selecting and ultimately implementing the software. This group, with the appropriate IS assistance, will be able to intelligently create long and short lists of requirements. Do not select the people for this team on the basis of which staff members you can free up at the time. Select those people whom you can’t live without, as this is one of the most important endeavors your company will ever undertake.
Appendix A:
The EnterpriseOne Implementation
787
Create the Request for Proposal As you begin researching the long and short lists of software packages, you should use the list created from your functional business process requirements and as many foreseeable requirements as possible. Take these requirements and format a request for proposal (RFP). But don’t stop with just functional business process requirements. Add questions about the company’s history; the number of industry-specific implementations pending, in progress, and completed; the availability of consulting and troubleshooting support; and the business partnerships and interfaces. Don’t stop with just the product, however. Also ask about how the product is implemented and by whom. Many vendors, such as Oracle, have consulting organizations that implement the product with the client. There are also many system integrators or implementation partners who are excellent options for you. Be sure to fully explore your options during the selection process since the implementation can cost as much or more than the product itself. Ask about their implementation success ratio compared to failed implementations and ask for client references that can provide you insight into the implementation experience. Be sure you are comfortable with your implementation partner before making your final decision. You should also find out the number of failed implementations, the number of pending lawsuits or forced arbitrations, and what their actual licensing looks like. Have your IS personnel put forth very specific questions concerning security, hardware and software support, application support, vision of the technology supporting the product, and its future trends. Also make sure your IS staff includes people who are familiar with upgradeability, customization, architecture, scalability, and true technology. Word these questions to glean past, present, and future technology trends. As you create the RFP, ensure that your questions are both detailed enough to provide each vendor with an objective set of questions, and specific enough to ensure that the returned answers address the questions themselves and aren’t redirected by the sales and marketing people actually answering the RFP. Use the information derived from the RFP process to research the potential vendors list. You can never do too much research on these vendors. Remember, whichever organization you ultimately choose, their software is going to redefine your current and future ability to create and distribute your products and services. What do industry leaders think about the particular software and software company? What about financial analysts? How long has the company been in business—and will they still be in business tomorrow?
Reviewing the RFP Responses While the RFP is out for response, have your team determine, as a company, which are the most important business process requirements. Figure out which questions in your RFP will carry the most weight. Another way of putting it would be how you
788
JD Edwards EnterpriseOne: The Complete Reference
will evaluate the responses and arrive at a score. It is not always the product that can address 90 percent of your business process requirements that you should choose. If the 10 percent that isn’t addressed represents the most important part of your business, then this could easily change what could be the best choice for your company. From a product perspective, try to be as logical as possible and not let personalities get in the way. On the other hand, when you start looking at your implementation partner or system integrator, personality becomes a much more important factor as you must be comfortable with the folks who will be working with you for your ERP implementation to be a success.
What Are Your Current Technology Skill Sets? We would never suggest that something as trivial as IT skill sets drive a decision of this nature. But it is one of the factors that should be taken into consideration when looking at new software packages. As you choose a new software package, difficult questions must be answered. Can your current IS team support the new software at the same time they’re supporting the existing systems? Do they have the appropriate skill sets for the new hardware, software, and infrastructure? If not, are you going to hire experienced people, retrain existing personnel, or hire new personnel and train them? As discussed in some of the chapters in this book, hiring experienced personnel with unique skill sets can be a costly undertaking.
Can You Afford the Move at This Time or Can You Afford Not To? There is a huge question looming here that we really can’t answer for you. Remember, the cost of implementing an ERP program in actual money and in human effort, disruptions, and quality of life is staggering when done on a large scale. It is important to factor this information into your overall decision. You must also weigh the wisdom of implementing a large-scale software package at this particular time in your company’s business cycle and what the consequences of not doing it would be. In many situations, now is the right time to make new foundations that will enable your company’s future growth. This also relates to how easy the software is to upgrade. Because a full ERP implementation can easily last three to five years, you can often begin the implementation factoring in future development. If you do pick this route and the vendor is responsible for this future development, be sure you get the software/functional deliverable in writing prior to signing a contract. It should include a date of completion, the functionality description (for example, CRP interface with company X’s ABC product), and (especially if this is critical to your business) appropriate penalties for failure to perform.
Appendix A:
The EnterpriseOne Implementation
789
Things to Know About the Contract
If you are reading this book, your organization is in one of two scenarios with regard to a software contract with Oracle—you either have one or you don’t. This next section is dedicated to providing insight into the software contract (some clauses that are common to almost every one of them) and will hopefully point out some features you already know if your organization has a contract and things for you to look for if it does not. Ultimately, our goal is to provide a clear explanation to what you either have agreed to or will agree to.
It’s a License—You Didn’t Purchase It Oracle does not sell you the JD Edwards EnterpriseOne suite of applications. Rather, they license the right to use the software to your organization. What does that mean to you? First, there are parts of the code they won’t provide to you. In particular, Oracle will not provide their foundation code (the architectural code that controls processes like communications and the batch engine). Another way of looking at it is that Oracle will allow you to decorate the JD Edwards EnterpriseOne software however you want but will not let you look at the frame of the structure. Second, Oracle does have the right to take their software back (especially if they find violations to the contract). This happens more often, however, when the client and Oracle find that they have reached an impasse on some functionality or relationship issue. In this situation, there are a series of different steps that can occur. Although these issues are often worked out, when they aren’t, Oracle has the right to take their software back. Oracle has recently taken a different approach with software licensing. When you obtain an EnterpriseOne license code, it used to be for only one year. Now Oracle will give you a code for many years. However, Oracle always has the right to perform an audit to ensure you are in compliance with your license. If you owned the software, you would be able to use it indefinitely without having to maintain contact with the vendor. Do you have to call Sears every year to continue using your refrigerator? Microsoft also licenses their software. They don’t sell it. In fact, if you begin reading the licenses of the software you “purchase,” you will see that there are actually very few you really bought. This is a change that occurred early in the software consumption cycle to help save the intellectual property of the software authors themselves.
Hiring Consultants Several times in this book we’ve talked about the requirement of staffing the right people to ensure that your project is a success. We’ve also mentioned that you can hire experience, grow experience, or die by the experience. On the other hand,
790
JD Edwards EnterpriseOne: The Complete Reference
many clients have slyly approached the issue by making statements like the following to consultants on-site: “How much would someone like you cost this company?” or “But we probably couldn’t afford you” or “You probably wouldn’t be interested in a job like this.” Well, we are here to tell you that almost anyone is for hire at the right price, job, and performance package. However, Oracle as well as most system integrators have intentionally placed several clauses into their contract to discourage this practice. In the contract itself, you will find language specifying that neither they nor you will hire or contract through a third party a current or previous employee for a period of, for example, six months after termination from the company. It also states that if they or you violate this clause, the offending party will owe the other party the equivalent of six months’ salary (calculated from the annual salary) of said employee. Although it is certainly not the rule, we have seen the cross-pollination of employees going in both directions, though our personal experience has a 3:1 ratio going to the client.
Quick Calculations Let’s use a quick example. Company X decides to hire one of the EnterpriseOne application developers. This developer’s salary is $75,000 per year with the opportunity of another $75,000 in bonus. Company X agrees to hire this employee at $150,000 per year with a three-year minimum contract protecting the consultant and their investment in them. Company X approaches the consulting firm’s management about the arrangement and they decide to hold Company X to its contractual obligations instead of releasing them. (Not holding the company would of course be a great gesture toward ensuring good relations; however, a significant percentage of the time, the firm will charge the client anyway.) Company X would owe the consulting firm $37,500 for hiring the developer. The reason is that the developer’s salary was $75,000. The bonus potential (though certainly a factor in the salary that Company X had to pay the consultant) doesn’t factor into the equation. The only way that Company X would get by without paying anything is if they decided not to hire the developer after all—and this is exactly what the consulting firms are hoping will occur. Of course, the contract the consultant cleverly had signed prior to Company X approaching the consulting firm protects the consultant in this scenario. NOTE This practice is standard across the consulting industry. After all, the real product that consulting firms sell is their consultants’ knowledge.
Appendix A:
The EnterpriseOne Implementation
791
System Audits The actual licensing of the EnterpriseOne product is relatively lax compared with strict IS standards. There are multiple methods of cheating the software itself and getting more people on the system than you should, as we’ve pointed out earlier. However, you should also be aware of Oracle’s right to audit your computer system. If they find that you are in violation of the software agreement signed earlier, it could cost you licensing fees, penalties, or a loss of the software itself. Our best advice to you is to follow your licensing agreement to the letter. Can you cheat the system? Sure. But if you get caught, it could include fines, your company firing you, and even jail time. Is saving your organization some money up front worth this to you?
Phases of the Technology Implementation One of the biggest differentiators in today’s implementation marketplace is the methodology to get the job done. In this section, we will outline a tried-and-true EnterpriseOne technology implementation methodology. We hope it will assist those of you who are contemplating your implementation. For those of you who have already completed this process and are reading this section, you may find a point or two that will make it easier for you the next time you go through this type of project. ■
Phase 1
Initial planning
■
Phase 2
Software installation
■
Phase 3
EnterpriseOne technology training
■
Phase 4
EnterpriseOne architecture modeling
■
Phase 5
Pre-go-live activities
■
Phase 6
Go-live support
■
Phase 7
Continuing technology support
Events Associated with a Technology Implementation Table A-1 gives you a concise look at the events associated with each phase of technology implementation and a description of each. The phases are described in detail in the following sections.
792
JD Edwards EnterpriseOne: The Complete Reference
Events
Notes
Phase 1: Initial Planning Initial planning session
This session is designed to create a plan for your EnterpriseOne implementation. This includes scope definition, As-Is, gap analysis, To-Be, and gap mitigation.
Hardware/software acquisition
This is completed by the client with assistance from the lead CNC consultant.
Third-party hardware/software acquisition
Completed by client, third-party vendor, and with assistance of CNC consultant.
Preinstallation assessment
This is an assessment to confirm that the hardware and software on site are ready for EnterpriseOne to be installed on and correct any issues found.
System ready for EnterpriseOne installation
This is a milestone.
Phase 2: Software Installation EnterpriseOne installation
This is the installation of the EnterpriseOne software on the customer’s hardware. This normally takes 5 to 10 days depending on what a client wants installed.
Installation complete
This is a milestone.
Phase 3: Technology Training EnterpriseOne Security Model
Workshop to determine approach and strategy to security around the ERP solution.
System Administration Workshop
This workshop trains the customer’s administrator on the maintenance and troubleshooting of the system.
Change Management Workshop
This workshop defines and guides the software development life cycle. This also leads to the configuration of the Object Management Workbench.
Package Build and Deployment Workshop
This workshop instructs the customer’s administrator on package builds and deployments.
Data Management Workshop
This workshop addresses how data will be refreshed in the environments and whether an archive strategy will be implemented.
TABLE A-1.
Technology Implementation Events
Appendix A:
Events
The EnterpriseOne Implementation
Notes
Phase 4: Architecture Modeling Architecture review
Review of the architecture.
Nightly operations
Setup, training, and implementation of report scheduler.
Stress test/performance tuning
Creates a baseline and provides a stress test for the hardware and EnterpriseOne configuration. This step ensures that the system will perform under real-world use.
General troubleshooting
This is the handling of standard day-to-day issues that come up during an implementation.
Security implementation
This is implementing the security plan that was created in an early phase.
Phase 5: Pre-“Go-Live” Activities General troubleshooting
Handling of issues prior to go-live.
Go-live readiness assessment
This is where an outside person comes in and assesses the system to ensure it is truly ready for the go-live.
Final package builds and deployments
This is the final rollout of all tested and signed-off modifications.
Operations hand-off
This step is to ensure that the customer’s operations support are ready for the go-live and all final training and job aids are in place.
Phase 6: Go-Live Support General assistance
This consists of helping the customer with issues that come up right before, during, and right after the go-live.
EnterpriseOne system go-live
This is a milestone.
Phase 7: Continuing Technology Support CNC review and tuning
Analyzing new technology and architectures to help increase customer’s ROI of the system.
Upgrade/update assistance
Providing assistance for the customer in planning for and updating the software to the next patch level or release level.
Foundation code applications
Keeping the system up to date on patches to the foundation code.
General technology support
Support of customer for CNC and technology issues.
TABLE A-1.
Technology Implementation Events (continued)
793
794
JD Edwards EnterpriseOne: The Complete Reference
Phase 1: Initial Planning It all comes down to planning, planning, and more planning. The number one thing that will either make or break your implementation is how well you have planned both the technology and the application implementation. Have you adequately considered the effect of the changes you are facing? Is your company ready for this type of change? What about a detailed listing of the tasks that need to be completed? During Phase 1 of the technology implementation, you are primarily focused on creating the plan and beginning the initial steps for the technology implementation. You have to make decisions regarding hardware and software, size your equipment, and create the detailed architecture and technology plan, ensuring that you haven’t left out critical steps. This technology plan is what leads your organization throughout the remaining phases of the technology implementation. One of the primary milestones (and this can change based on the plan you put together) is having hardware and software in-house and configured for the installation. Once this occurs, you are ready to move to the next phase of the technology implementation (see Table A-1 for a description of the phases). And don’t forget, you have to complete this first phase before the application team needs the EnterpriseOne environment. As always, the technology is a slave to the application requirements. Another possible milestone that many organizations select is the installation of a prototype environment. This is usually a quickly throwntogether NT/Intel configuration of the EnterpriseOne product to assist with application’s core team training efforts.
Phases 2 and 3: Technology Implementation Considerations In addition to understanding the overall process of events associated with implementing EnterpriseOne from the technology point of view, you also need to understand what the technology considerations are and must be during an implementation of this type. To help with this, the following sections go into some detail concerning these considerations. The base methodology employed includes determining base hardware and software, then desired architecture, then any additional hardware or software required by the architecture, then personnel requirements, then communication requirements, and finally backup and recovery requirements.
Base Hardware Considerations There are several different pieces of hardware required for any EnterpriseOne implementation. These include a database server, a logic or application server, a deployment server, an E1 HTML Server, and development workstations. Based on your specific implementation, the database and logic server might be the same machine. If so, this machine is known as an enterprise server. We have seen clients
Appendix A:
The EnterpriseOne Implementation
795
combine the enterprise server with the deployment server, providing a singlemachine solution. However, Oracle has considered programmatically disabling this capability. Consequently, we don’t recommend combining them. EnterpriseOne currently supports the following hardware platforms for database and application servers: Sun, HP9000, WinTel solutions, the RS6000, and the AS/400. Linux is also supported on multiple platforms; refer to the minimum technical requirements (MTRs) for full details. The deployment server must be running Microsoft Windows Server 2003 on an Intel chipset. The development clients can be either Windows XP or Vista. HTML clients can be run on Windows XP Professional, Windows Vista, Mac OS X, or Red Hat Enterprise Linux WS using Internet Explorer, Firefox, or Mozilla. It is important to note that not all web browsers are supported on each O/S; the Oracle MTRs have details on the supported configurations.
Base Software Considerations Once you have decided what your hardware platforms are, you need to decide on your software requirements. The first piece of software that we can promise all EnterpriseOne clients have is EnterpriseOne itself. After that, you need to consider Window XP or Vista, MS C++, a C compiler for the hardware selection of your choice, a database platform (either Oracle, MS SQL Server, or DB2/UDB), E1 HTML Server (either Oracle Application Server or WebSphere Application Server), backup software, data warehousing software, data mining tools, and development tools for conversions and interfaces. To assist you with this process, we highly recommend you spend some time on the Oracle web site determining your minimal system requirements. This does not mean we’re recommending that you go with minimal configurations. Rather, this is an excellent area to determine what the software requirements are for OS and other third-party products. Make sure that you follow their recommendations carefully. If you choose to install a newer version of some of the products than what is recommended by Oracle, it can cause serious issues, including an inability to install or create packages and data corruption. Worse still, you might not be able to identify these issues until weeks or even months have passed. A good example of this is MS Visual C++, which is required for building packages. When version 6 came out, EnterpriseOne still required version 5. This caused problems for clients because they had to contact Microsoft directly to get the required version. Version 6 uses a different compiler engine. If clients attempted to use version 6, the packages would not build correctly.
Revisit Your Hardware and Software Considerations Now that you have decided on the architectural design for your organization, it is time to revisit the requirements of your overall implementation. Since 8.11, HTML clients are required to display the software to the end users. So, what type of servers
796
JD Edwards EnterpriseOne: The Complete Reference
are you going to use as your E1 HTML Servers? How many E1 HTML Servers are you going to need in your architecture? Do you have enough WinTel boxes to accommodate the developers in your organization? This is something that you need to evaluate. You also need to determine additional software requirements. How many licenses will you need? At the end of our discussion of these considerations, you should have a very good understanding of your requirements from both the hardware and software sides. You should also have worked with your implementation partner, your hardware vendor, and Oracle to determine the actual size requirements for what your company needs.
Determine Your Personnel Requirements The next major step in the planning process includes evaluating your personnel from the human resource point of view as well as the technology point of view. Some of the human resource points include having the right number of people with the right skill sets in place to support existing legacy systems and the new ERP solution. Does your IS organization already have the necessary bandwidth to accomplish this, or do you need to augment them by adding additional skills and personnel? Are you going to add to their existing force through hiring, or are you going to augment them with contract or consulting support? If you do hire the skills necessary to accomplish both jobs, what is your plan for the support staff when the legacy system is shut down? Are they going to be retooled within the organization, subbed out to other consulting organizations, or just let go? These considerations should be evaluated. Work with your implementation partner to determine the number of support personnel required to accomplish this new project. If you are going to have to augment your personnel, are you going to hire or train the skills you need? There are pros and cons to both methods (as described several times in this book). It is important to create these strategies early in the process.
Rework What You Can Senior management within your organization has bought off on this new ERP implementation with the understanding that it will cost millions but that it is also a business imperative. Although we certainly don’t recommend that you gouge them for everything you’ve ever wanted, the reality is that you have one chance to redesign your systems, either fixing them if they are broken or bringing them current with existing technologies. The odds of your ever getting this opportunity again are slim. Seize the opportunity to make it happen. If you need a hot redundant site and if you can create a business case validation for this argument, you should do it. Backup/Redundancy With the new system comes new opportunity. We highly recommend that your organization do the right thing up front and often with their
Appendix A:
The EnterpriseOne Implementation
797
backup and recovery scheme. Having a spare drive is no good unless it is tested. Redundant systems don’t buy the organization anything other than additional costs if they don’t work when you need them to. RAID, though always recommended, doesn’t provide your company with redundancy if you don’t know how to break the RAID. SAN solutions provide additional functions that can make this easier. You have to test your systems, the backup, and the built-in redundancy to make sure it is worth the money spent and provides your company with the security you need. As any good IT person will tell you, you can spend as much as you want or as little as you can afford when creating your backup procedure. There are, however, some things that should be taken into consideration when deciding what to back up and how often. If you are backing up your central objects, you should also back up the appropriate path code directories on the deployment server itself. Remember that the database and the directory structure containing C code must stay in sequence. If you need to restore the database portion of a path code, we strongly recommend that you also restore the associated C code. You are only able to do this when you back them both up. There are some sets of data—and yes, some path codes—that really don’t need to be backed up regularly or even at all. Pristine data and path code data never need to be backed up because Oracle ships this information on the original installation CDs. If you lose this or it becomes corrupted, you can always restore it from the CDs. Depending on where you are in the implementation cycle, you can also decide whether you need to back up CRP data, test data, or CRP and DEV path codes. If you don’t need to back up this data or path codes, you can literally save hours of downtime in the backup process.
Phase 4: EnterpriseOne Architecture Modeling As you might be able to guess, it simply isn’t enough to install EnterpriseOne and expect it to magically fit your organizational requirements. Most companies are not single-site, fully wired locations with PCs situated where you need them to get work done. However, even if you do work for that type of company, you will still need to perform EnterpriseOne architectural modeling. Most organizations that are evaluating, purchasing, or implementing EnterpriseOne are sizable enough that they need to carefully determine an architecture that will support their business requirements.
What Is the Modeling Phase Used For? The modeling phase is more than simply setting up the predesigned EnterpriseOne architecture. It is more than simply testing your architecture. It is more than simply stress-testing your system and its software solution. The first step of the modeling phase includes validating the architecture designed in the preinstallation phase of your implementation. Because of the time required to implement EnterpriseOne,
798
JD Edwards EnterpriseOne: The Complete Reference
especially on big accounts, the likelihood that new technologies will be introduced is significant. These technologies or architectures might be of interest and used in your specific situation and should be evaluated. Once you have finalized the go-live architectural design of your enterprise solution, it is necessary to actually put this architecture in place. This usually includes adding application servers, deployment locations, database servers, redundant or clustered systems, E1 HTML Servers, or other hardware and software. Depending on the complexity of your situation, this could take anywhere from a couple of days to several weeks. This can also be done in a phased approach, especially if it fits your rollout plan. Although the first few additions will be more difficult, as you continue installing servers in your architectural design, the process will become easier and easier. In the next step in the modeling phase, you baseline, technically test, stress-test, and finally perform a fully integrated stress test on the architecture in place. The initial testing that needs to be accomplished determines bandwidth usage and reliability of your overall architecture without the addition of EnterpriseOne itself. One of the items that needs to be determined is whether your existing systems adequately perform your day-to-day activities without the addition of the new ERP system. You should include in these tests basic server and workstation utilization, as well as memory usage, hard disk capacity and usage, and overall CPU usage evaluated against daily loads, including office suites, e-mail, and other normal software communications. (Many of the network operating systems tend to be chatty—how is your network holding up under a normal load?) Once you have determined base system utilization, you are ready to go to the next two levels of system testing. You need to determine the overall performance of your technical solution beginning with one EnterpriseOne user and going forward. Although the first user provides you with an understanding of the requirements for a single user, you will often find that there is not a linear association that allows you to extrapolate what 50 or 100 users will require. Just because User A uses 10K WAN bandwidth, which has the workstation CPU usage go from 5 to 40 percent and the RAM drop from 50MB available to 10MB, it doesn’t mean that User B will have the same system requirements. Additionally, when you get both User A and User B working in tandem, it doesn’t mean that you can double User A’s results to extrapolate their combined usage. Generally, we recommend that you test 1, 2, 5, 10, 50, 100, 200, 500, and then 1,000 users to come to some type of understanding on how volume of users will affect your system and how the architecture supports it. In addition, we have seen an organization put more than 700 users live on the system as a test. The results were not only interesting but also highly informative. If you anticipate that your concurrent users will exceed this number, it would be well worth the effort of coordination, time, and effort to perform a few of these tests.
Appendix A:
The EnterpriseOne Implementation
799
NOTE There are a lot of Quality and Testing (QAT) products on the market that can assist you with your integrated testing and load tests. Empirix is one such package that Oracle has recently purchased. The authors anticipate Oracle certifying this type of solution with their ERP offerings in the future. The final step, and we recommend that it actually be done in conjunction with the tests we have listed, includes a fully integrated stress test. Many organizations stress-test their systems by having people perform what we call heads-down keyboard entry. In essence, they get users, or scripts, to enter the simplest of transactions as quickly as possible for a prolonged period. The problem with this type of test is that it is unrealistic and consequently produces unrealistic results (often these results are worse than more realistic testing would provide). A fully integrated stress test has users performing their normal, daily duties at the level they would at their peak month end (traditionally the period with the highest system utilization).
Phase 5: Pre-Go-Live Activities For a well-planned, superbly executed implementation, pre-go-live activities are relatively few in number. Actually, they boil down to one: You need to perform a pre-go-live assessment. This includes both a technology assessment and an application assessment. Prior to betting your organization’s livelihood on a single product (an ERP system), you need to ensure that it will adequately meet the business needs of your company. If you have performed the fully integrated stress tests mentioned in the preceding sections, your work is relatively quick and easy. Your implementation partner will work with you to create a comprehensive list of tests (really a checks-and-balances system) that will fully explore the proposed business solution. If your system meets these criteria, you can go live. If not, you need to consider going live or postponing go-live pending additional functionality, further testing, or some type of fallback position. Don’t take your company live if the solution isn’t ready. We have seen several organizations suffer financially because of their eagerness to hit a deadline instead of providing the proper solution. If you’ve encountered significant issues in the base implementation, pre-go-live activities include additional training, troubleshooting technical and application issues, completion of required modifications and then additional training, increased phased implementations (such as taking a lesser number of users or sites live on less of the software at a single time), or changing the architecture to a less aggressive stance. Remember that the EnterpriseOne architecture is specifically designed to enable rapid changes in architectural models. If what you’re doing fails your fully integrated stress tests, look for alternative solutions.
800
JD Edwards EnterpriseOne: The Complete Reference
Specific Pre-Go-Live Activities Specific pre-go-live activities include the following: 1. Final testing of standard EnterpriseOne applications 2. Final training of go-live personnel 3. Final preparation/coordination of the competency center 4. Final validation of customizations 5. Final validation of technology architecture
Phase 6: Go-Live Activities There are a series of go-live activities that must be carefully planned, coordinated, and carried out prior to go-live. Chief among these is the requirement to complete data transfers from legacy systems to the production environment. Other than that, if everything is planned and executed properly, go-live becomes the anticlimax of the implementation. One of the items we want to stress, however, is that go-live is not the purpose behind the ERP implementation. Rather, it is a by-product of the implementation. ERP solutions fail because organizations become fixated with the concept of go-live and fail to provide a solution that will provide their companies with their base requirements. A company gains nothing from an ERP solution if it can’t buy and sell products or services. If the solution doesn’t meet these minimum goals, it is a waste of time, money, and resources. Properly planned, going live is a flip of a switch, nothing more.
Phase 7: Continuing Technology Support A client once told us that the reality of an ERP project is that it never ends. Most organizations, even if they suspend modifications and alterations to the EnterpriseOne product, will ultimately decide to modify, interface, or in some other way change their system. One of the most common changes includes upgrading the EnterpriseOne version your organization is on to a later version of the software. Many companies actually do this during the initial implementation. After go-live, based on business need, many companies decide that they need to go through an upgrade. An upgrade is, in effect, another implementation. Often there are tens of thousands of changes to the applications and database structure associated with an upgrade. Any organization that installs and implements EnterpriseOne or later has the ability to skip major releases of the EnterpriseOne product (that is, if you are on XE, you can go directly to E812; this is called release skipping). This provides companies with the ability to stabilize on a particular set of EnterpriseOne; however, when they do move to the next release, there are likely to be significant changes to their systems. These upgrades should then be treated as new implementations with CRPs and other associated activities.
Appendix A:
The EnterpriseOne Implementation
801
Post-Go-Live Activities When we talk about post-go-live activities, we are talking about work that continues after your company has gone live with the product. Where certainly not limited to the activities listed below, many companies include events like the following: ■
Custom modifications
■
Custom interfaces
■
Tools Releases
■
Electronic Software Updates (ESUs)
■
Baseline ESUs
■
Application Software Updates (ASUs)
■
Updates/upgrades
The EnterpriseOne Installation
The installation process is significantly better than it was once upon a time. Most base installations are completed in roughly one week (this is the delivery of a working environment to allow the project team to begin configuration of the system). But even with the advances posted since we first started performing those (1996), there are things that you should be aware of from an implementation process point of view. The next section of this appendix is dedicated to assisting you in preparing for and successfully completing this very important step in the implementation process.
Before You Install What types of activities need to occur prior to your installing the EnterpriseOne suite of software? What should not only your company, but your implementation partner be doing in advance? What about your hardware vendor? Finally, what options do you have in the installation itself? So many questions, so many options. It is hard to know where to start, so we’ll start at the beginning.
Scoping and Planning There are a series of events that occur prior to the installation, but after signing the contract. Although we will briefly mention these events, we simply don’t have the room necessary to complete them in the confines of this manual. The primary phase that occurs prior to the installation itself is referred to by some as scoping and planning. Scoping and planning is all about creating a detailed
802
JD Edwards EnterpriseOne: The Complete Reference
plan before you embark on the implementation. It includes gaining a full understanding of where you are in your current systems (also known as the As-Is state), what the EnterpriseOne product will bring you (also known as the To-Be state), and what you need to do to mitigate the difference (gap and mitigation strategies). Although the net change activity may start in this phase, depending on the size of your organization, it may not be completed during this phase. Net change is where you determine whether the new functionality being implemented fits your business needs. If it doesn’t, your organization has to decide whether to make changes to EnterpriseOne, interface with another software vendor, or do something else to get the functionality you are looking for. There are many different options to consider, and it is helpful to have a seasoned implementing team help you navigate through them. Some of the other activities that must be done prior to installation include deciding which business center will house the hardware and software. Are you going with a single installation of the product or multiple? What type of architecture do you want to implement? Are you going to implement the product geographically, by product, or both? You also need to evaluate your current staff and their skill sets, and decide on a hardware and software platform to support the product. Make a choice regarding who will help you implement the software. We have never seen a successful implementation where the client attempted to be its own implementation specialist. You absolutely must include an implementation partner if you want the implementation to be a success. There are other factors that need to be put in place prior to the implementation proper. These include the following: ■
How you are going to train your users on the product?
■
Will it require additional hardware or environments? What about support?
■
How are you going to support the product during the implementation itself?
■
What about after go-live, version control, system/software stress testing, integrated function testing?
And the list goes on.
Preinstallation Planning You’ve selected your hardware and software for the installation itself. How do you know what to order, how much to order, and what software is required to support it all? Once you have decided what your platform is and given some thought to when you are going to perform your installation and implementation, one of the first things you need to do is visit the Oracle web site. This web site is designed as a central repository that allows data mining as well as a method of communication
Appendix A:
The EnterpriseOne Implementation
803
between Oracle and their clients. On the site, you can view the minimal technical requirements for each platform. These are minimal configurations, not production recommendations. If you follow the hardware minimal requirements, the product will work; however, we won’t promise you any speed or a robust system. This section is, on the other hand, an excellent location to find the software requirements for the third-party and OS products themselves. TIP Occasionally you will see that EnterpriseOne supports version x and higher of the third-party product. View this type of statement with caution. Your organization needs to stay with tested and approved versions. If you have questions as to exactly what versions are or are not supported, call Oracle’s JD Edwards support line at (800) 289-2999.
Sizing Your Hardware Many clients start with a miniature of their final hardware configuration. This allows them to intelligently decide the appropriate hardware and software based on their own experience as opposed to Oracle and the hardware vendors’ recommendations. Using a preproduction system does not have to be a waste of time and effort. Several benefits can offset the additional hardware costs associated with this type of activity. If you want to use a Sun/Oracle solution with JD Edwards software, you could purchase a smaller Sun box to start. This provides your users with the ability to start working with the product sooner; the system can be used for development and testing upgrades throughout the life cycle of the product. Additionally, it allows you to see what it takes to manage the system (including EnterpriseOne) and to learn some of the best business practices to implement in the final production solution. Finally, it allows you to postpone the immediate expenditure of funds on hardware and software. Wait until tomorrow and you will be able to purchase a more powerful system, with more memory and functionality, for less. This truism produces a powerful incentive to postpone hardware purchases. Starting with a smaller system allows an organization (especially one that has a longer implementation cycle) to take advantage of this opportunity.
Hardware Vendors, Oracle, Third-Party Implementers, and You When it is time to finally size your production system, the best method of determining your organization’s requirements is actually a four-group conglomerate.
804
JD Edwards EnterpriseOne: The Complete Reference
You should feed information regarding number of users, amount of legacy data, the number of transactions per hour, uptime requirements, and any noticed growth during the conference room pilot (this last assumes you implemented a minisolution during the scoping and planning phase) to the hardware vendor and Oracle’s JD Edwards client support personnel. They will bang their heads together and come up with a recommended hardware sizing solution for your company based on a requested life cycle. As a good rule of thumb, you should then take those recommendations to whoever is helping you implement the EnterpriseOne product (assuming that it isn’t Oracle or the hardware vendor). They will be able to give it a good once-over based on the number of implementations that they have already assisted. When all of this is done, you will have a good hardware recommendation for your production environment.
Purchasing the Hardware and Software There is no special trick to this trade. Make sure that you not only get three different quotes from three dissimilar sources, but that what you are quoted is identical. As an example, we have certain opinions about refurbished hardware. However, if your organization has decided that refurbished hardware is okay, make sure you know which quotes include refurbished goods and whether parts are refurbished or new. Make this disclaimer part of the quote. If your organization frowns on refurbished hardware, be sure that all of the vendors quoting fully understand that the equipment must be new. It is a minor issue, but it is one that we’ve seen catch people before. TIP Virtual machines using Oracle’s solution or VMWare is a nice way to help control your hardware costs. Although Oracle does not support virtual machines in a production architecture, you should keep an eye on this as more and more of their customer base is pushing for greater virtual machine support.
Preinstallation Audit You should have mapped out your overall technology implementation plan prior to purchasing and installing the system. This can be a single-day or a multiday event with your implementer, your IT staff, and your CNC implementation team. Most of the timetables associated with this are planned in a backward mode based on the timetables created by the application implementation team. From these meetings, there will be a clear understanding of the support team’s roles and responsibilities. You would then acquire your hardware and software based on the EnterpriseOne
Appendix A:
The EnterpriseOne Implementation
805
technology plan created in the earlier session. When you get this equipment inhouse, you should install the base system, including any third-party software (including the database) based on any recommendations provided by Oracle itself. Oracle has some posted recommendations on their web site for setting up various third-party products. Once this is done, most installation consultants will require a one-day event where they verify the pre-setup activities. This is done to ensure that everything is in place prior to the installation itself. The exact content of these audits varies from service team to service team, but they deal primarily with making sure all the hardware is in place, functioning properly, can communicate with each other, and that all required third-party software is installed correctly. This is done a week prior to the install to allow you enough time to correct any deficiencies found.
The Installation The EnterpriseOne system installation is relatively straightforward but still requires an experienced installation person. Can one of your own IT staff perform the simplest of installations? Sure, they can, provided they have attended the class and tried it once or twice. If you have a complicated installation, however, we highly recommend that you get a truly experienced installer to do the initial installation and configuration. If you want to watch over their shoulder so one of your people can take over this operation in the future, do so. The installation itself generally takes between two and five days based on the complexity of the installation and unforeseeable issues that could arise during the installation. The overall process goes something like this: perform preinstallation procedures, install the deployment server, create a plan on the deployment server, implement the created plan, install the application server, install the E1 HTML Server(s), install a development workstation, and test the functionality of the installation itself. It’s just that easy. The installation itself might include additional E1 HTML Servers, data servers, and application servers. It can also include multiple deployment servers based on the plan created earlier.
The Postinstallation Audit If the implementer is experienced, they will also have, as part of the plan, time set aside to verify the installation itself. After all, it is one thing to say that the installation went well and another thing to prove that it went well. The audit can take one to two days to complete, but at a minimum, it should include package builds for the development workstations and server, UBE submission from the server, HTML client, and development workstation, appropriate counts on tables and table records, and so on. Once the audit is completed, you will have a document proving the veracity of the installation and configuration itself.
806
JD Edwards EnterpriseOne: The Complete Reference
Wrapping Up the Installation The installation is always seen as a milestone in an implementation. Unfortunately, it isn’t as simple as clicking SETUP.EXE. With the proper prior planning, the right resources, and a little bit of luck, these can be completed with few problems and fewer headaches. For more information on the specific steps of the installation itself, refer to the appropriate EnterpriseOne installation manual shipped with the software or download the most recent copy from the Oracle web site.
Modeling Your Solution (Phases of the Application Implementation)
Let’s take a step back for a moment. Many folks see an ERP implementation in four tracks: ■
Technology
■
Applications solution.
■
Technical (custom development, reporting, and so on) An area we will explore a little bit later in the section “Development and Version Control Methodology.”
■
Project Management An area we do not explore in this book, but which can be a key to your success or failure. A good asset in this area is the Project Management Book of Knowledge (PMBOK) published by the Project Management Institute (PMI) and used by certified project managers who have obtained the Project Management Professional (PMP) designation.
The focus of this book. The area we are about to explore through modeling the
From an applications perspective, there are basically a number of steps or phases along the way, which should be employed by any system integrator within their implementation methodology. These phases may be shown in different ways or called different things by any given organization; however, they should all include these basic features: ■
Appraising the Project be implemented
■
Defining the Project contingency plans
■
Modeling Your Solution requirements
To determine the scope and business processes to To establish timelines, resource requirements, and To prove that the setup matches business
Appendix A:
■
Going Live company
■
Support
The EnterpriseOne Implementation
807
To begin using the solution in everyday situations for the
To keep the solution viable for the long term
There have been many different names for the Modeling Your Solution activity within the EnterpriseOne arena; however, the best known is the conference room pilot (CRP). The term “CRP” is also used as the standard naming convention for one of the path codes (that is, it is integral to the JD Edwards–defined software version control methodology), as the name of one of the standard environments (including its own business data and control tables), and as one of the phases within the implementation. Today, the implementation phase is more commonly referred to as the Prototype or Modeling phase. Still, because of the existence of the path code and environment, the name CRP is still quite in vogue. This section will detail some of the activities and considerations of the Modeling Your Solution phase and hopefully will provide you with a guideline for this particular part of your implementation.
From the Application Point of View The modeling phase of the application’s implementation is a rigorous set of decisions, modifications, documentation, and testing of the various settings of the applications themselves. With your implementation partner (system integrator), you will go through each and every application that makes up your overall solution in detail with exactly how it will be used (and by whom), what processing options will be set, what versions of what applications will be used by what people, and how the software will address your business specifications. Although Oracle intentionally designed JD Edwards EnterpriseOne to be able to handle changes in business processes after implementation, this phase is still the most important part of the implementation cycle. Though you could change many of the processing options with relative ease, there would be a whole series of changes you simply don’t want to have to change after the fact.
The P4210 Let’s take the P4210 Sales Order as an example of some of the considerations necessary to properly implement the EnterpriseOne product. The P4210 is the largest application in EnterpriseOne and also has the distinction of being the most heavily modified by the largest number of clients. This is because there are almost as many ways of selling something as there are things to sell. This application also touches nearly every other module within EnterpriseOne (including the address book, customer master, accounts receivable, accounts payable, inventory, purchase orders, taxes, payroll, and workflow), and it is how your company makes and records its profitability. In short, there is no other application within the product
808
JD Edwards EnterpriseOne: The Complete Reference
itself that is as complicated or as important to get right as the P4210 (this, of course, assumes that your organization is using the Sales Order module within EnterpriseOne). There are over 100 processing options associated with the P4210 application. Your company probably won’t use all of them; however, they do determine information like starting status and next status. These statuses tell other applications what function is required next (such as purchase orders, updating end-of-day sales, and so on) and then they update the sales statuses. Some of these processing options also call other application versions (if you are using the R42520 subsystem to process pick slips), and they determine how the sale is handled, including how it checks inventory, whether it checks the customer’s account, what purchase order version to run, how to process inventory transfers, and so on. Because of the complicated and integrated nature of the product, it is important to set up the application the way that best suits your business requirements and then test the solution. Often, you will set up more than a single version of this application for use by different groups within your organization. Some might use the pick-slip subsystem; others may not and could treat every sale as an order to be fulfilled rather than having the stock readily available. These differences also need to be addressed within the application. During the modeling phase of the EnterpriseOne implementation, you, along with your implementation provider, will determine how to set up and test this application for use with the client. This setup and testing is what the modeling phase is designed to answer.
Other Modeling Phase Activities Other than setting up and testing the various applications for speed, reliability, and data integrity, the modeling phase is often used for end-user training and integrated testing. In the preceding example, we indicated that the P4210 is integrated with a whole series of other applications. As part of the modeling phase, with the processing options you chose as part of your implementation, you would want to test that the data accurately hit and updated all of the other modules within EnterpriseOne. When you tried to sell product to a client who was on credit hold, were you notified that they were on credit hold? When you sold the product, did it decrement your inventory? When you attempted to sell more of the product than you physically had, did it sell your remaining inventory and backorder the appropriate amount of goods? When your salesperson made a large sale, were they credited for commission payroll purposes? Did the sales add up properly at the end of the day and month? Did the cash, credit, and check report show the proper amounts of each, with proper currency conversions, at the end of the day and month? Did the inventory module automatically place orders to replenish minimum order quantities of products sold? How fast did the system work and was it adequate for your clients?
Appendix A:
The EnterpriseOne Implementation
809
These are just a few of the questions that need to be tracked and answered before you sign off on the EnterpriseOne solution for your organization. You should also verify that there weren’t orphaned records (records where there were sales details without headers) or other data corruption (such as the address number for the client on all the lines of the sales order and the header record being the same). Any instances of this type of problem would indicate a serious issue with the application or the implementation setup that would need to be addressed prior to go-live. Obviously, the integrated test is used to track data throughout the system as opposed to a single application (the results of a modular or functional test).
From the Technologist’s Point of View The modeling phase, from the technologist’s point of view, is really quite simple. It consists of implementing the various technology solutions, testing those solutions, modifying any deficiencies or taking additional opportunities provided, testing the final solution, and having all of this culminate prior to the rollout of the solution itself.
Technology Before Applications Now the simple rule “technology before applications” sounds like common sense; however, many clients just don’t take this into consideration when planning the start of their project. Our goal is to have the required technologies in place well in advance of the application implementation team’s need. As an example, say we wanted to implement a phased regional application go-live starting with North America and continuing to Europe and then Asia for a financial and light distribution–only company. Table A-2 shows a graphic representation of the proposed application rollout schedule.
810
JD Edwards EnterpriseOne: The Complete Reference
Now, as we begin our technology planning for this implementation, not only would we take into consideration the proposed timeline for the application rollout, but we also have to consider equipment lead times and resource requirements. You will need the applications ready before the application implementation team begins the To-Be Process analysis. You can’t model the applications without the EnterpriseOne product being installed in the first place (unless, of course, you opt to model the product in your implementation partner’s solution center). Here are some things that will take time and go into the calculation of when you need to start on the technology, using a totally fictional estimate of the time each will take you: hardware sizing – 1 week; receive bids on the equipment – 2 weeks; obtain internal approvals to cut the purchase order – 1 week; equipment lead time to arrive at your facility – 3 weeks; hardware install and electrical work – 3 weeks; software install – 3 weeks. So based on the aforementioned lead times, we calculate 13 weeks are needed prior to the application implementation team starting the ToBe Process analysis. If you want your overall implementation to be a success, we highly recommend that you complete the technology in advance, so that you can fully test it prior to the application implementation team beginning work on the system. Clients that do not give themselves enough lead time tend to run afoul of equipment shortages, unexpected system outages, and other technology-oriented issues slowing and/or delaying their application rollout. This is one way to get behind on day one and place the entire success of your project in jeopardy.
Fully Integrated Stress Tests As mentioned earlier in this appendix regarding the requirement of testing your solution, it is not enough to simply perform the traditional stress test on your technology system. Does the hardware and software solution provided support the business objectives of the project? This question needs to be ensured with the proposed technology solution. Unfortunately, each client is so different that there can be no guarantee without adequate testing of the solution against their organization’s data and software use pattern. The best method of ensuring that the software and hardware solution does fit their business requirements is to perform the fully integrated stress test. This test can be performed using emulation software; however, it is more realistic when performed with real people reacting under normal day-to-day, month-end pressures. This test should be performed during the modeling phase. Once completed, the results need to be analyzed, and if the system is found to be deficient, additional planning needs to occur to bring in a solution that will achieve the business objectives. As such, and because of the critical nature of this series of tests, we normally recommend that this type of testing be started early in the second half of the modeling phase and continue until the client is satisfied with their results. If the solution fails, you have an opportunity to bring in technology (hardware and
Appendix A:
The EnterpriseOne Implementation
811
software) experts as well as Oracle to find an acceptable solution without having to postpone go-live. Unfortunately, many clients end up performing this series of tests at the very end of the modeling phase. If the test shows severe deficiencies, the client has no option other than postponing go-live and consequently costing their company additional money as well as possibly jeopardizing the project itself.
Security Considerations During the modeling phase, you would also want to implement your security plan to ensure your system is protected. Since the application security is designed by role with exceptions for specific users beyond that, you would want to test that the roles have access to applications required by their jobs but are secured against doing anything they shouldn’t have the ability to modify or see. This process, designed by both application lead and CNC resources, is implemented by the CNC administrator and tested by the application lead or their designated representative. (Although CNC resources intimately understand how the security application works, they are not versed enough in each module to fully understand who should have access to what and to what degree. Because of this, the CNC resources are able to train the application lead on what security options are available and to implement the final solution, although they normally do not test that solution.) Any discrepancy in the security plan should be tweaked and corrected to ensure the new product is adequately protected from intentional and accidental damage on the part of the end user and the occasional corporate raider.
Training
With any ERP implementation, one of the most important elements is training your organization on the new systems and software. To this end, there are several historical strategies from which to choose. However, today there is only one real solution to the topic. This section is dedicated to describing some of these historical strategies and the most commonly used and most effective strategies today. This section will focus both on training the core implementation team as well as training the end users.
Core Implementation Team Training One of the considerations many companies face when starting this type of implementation is that their core team does not know the new software. Even if, as recommended earlier, they were part of the software selection process, they really don’t know how to install, configure, and implement this new solution. They will have an understanding of what the system is capable of, but this understanding will be tainted by the sales process. (We can all agree that the software is presented in its best light during the sales process—and that there is a yet-undetermined number of
812
JD Edwards EnterpriseOne: The Complete Reference
possible issues that will need to be resolved prior to creating the final solution.) To this end, not only does training need to occur, but also an overall education. Historically, Oracle provided training through their regional training centers through scheduled classes. However, for the JD Edwards products, this is no longer a viable option as Oracle has greatly reduced providing scheduled classes. Even when they did, this turned out to be a hard option to use to fulfill a client’s needs, as the regional training centers were not in every town and the classes were not offered frequently enough to prevent a delay in the project startup. Additionally, the cost to fly the core implementation team to the various locations proved to be expensive from a travel perspective as well. A second historical option was to have Oracle provide on-site customized training at the client’s location. While on the surface this sounds like a good option, the client basically was paying for a minimum number of students to attend (six was typical of the pricing), and not all subject matter would be addressed as only that functionality planned to be used by the client was taught, and the client often did not have the space or the hardware to support the training. If your team is large enough this can be a viable option, but normally this is not a good option for most mid-size companies. So if you aren’t going to go with a solution provided by Oracle Training, what options do you have left? For the core implementation team, the recommended solution is a combination of one-on-one training with your system integrator and the use of Oracle’s User Productivity Kit (UPK). One-on-one training can be handled by the consultants you have contracted with through your system integrator and, based on their knowledge, can be customized to the areas covered in the scope of your project to reduce the time required. UPK is a product you can purchase from Oracle that comes with predelivered content and is an excellent tool for basic training such as system navigation. The additional advantage of UPK is that you can customize content and use this for your end-user and on-going training needs as well.
End-User Training The second major training consideration surrounds end-user training. While core implementation team training is important to get the product properly implemented, the real proof of the pudding comes with your end users. Many times this is the first opportunity your end users will have to see the software. As such it is vitally important to provide a good impression of the software, its functionality, and to limit the end users’ time away from their normal job. The end user normally only wants to know one thing: how to do their job in the system. So this training should be focused on end-user tasks and not on how the system is set up or what other things they might be able to do with the system. The recommended solution here is to provide in-person training to the end-user community by the core implementation team or their surrogates supplemented with the UPK tool. This is commonly known as a “train the trainer” approach.
Appendix A:
The EnterpriseOne Implementation
813
Train the Trainer This training model works well for many organizations. Conceptually, your goal is to create one or two functional experts at each site who then conduct local training. An added benefit is that these trainers can then be used as the first tier in the support (or help desk) arena. These “power” users need to be carefully picked and managed. They need to establish close working relationships with your organization’s competency center. Under normal conditions, the trainers would be trained regionally, nationally, or globally. After this initial training, they would spend some time with the competency center fielding calls or working on the applications during the modeling phase. These two events will provide them with an in-depth understanding of the product. Their final steps toward becoming a trainer would be either assisting the professional trainers in creating course outlines and materials (including the use of the UPK tool) or taking a class designed to train them on the dos and don’ts of training. If they help to build the content with the UPK tool, the materials can be reused for smaller and remote audiences and for training new hires. We really can’t stress enough the need for the right people in this position, both for their ability to provide and receive knowledge transfers and for their attitudes toward the software and the project as a whole. Remember that these trainers will now directly interface with and help shape the opinions of the end-user community. With the wrong people in place, irreparable damage may occur to the project as a whole. One of the ways your organization will be able to measure their success with this strategy is the amount of support an area receives during and after go-live. The higher the level of required support, the less effective the trainer. Advantages of Training the Trainer Training the trainer provides site-specific functional leads able to provide training to the remaining site staff. It also lowers costs in training and support, increases area feedback, and enhances knowledge networking throughout the organization (trust us, the trainers will work among themselves and with the competency center—many of your more creative solutions will come out of this type of synergy). This strategy can be used in conjunction with any of the other strategies available for training, making it extremely versatile and a good overall solution. Disadvantages of Training the Trainer There are only two real disadvantages to this method, and they revolve around the people themselves. First, if you pick the wrong people, they have the ability to harm the entire project. It doesn’t take many comments like “this thing is always so slow” or “I really prefer the old system” to spread the seeds of discontent. In a recent study of failed ERP projects (ERP’s Second Wave conducted by Deloitte & Touche), 62 percent were due to people considerations and issues. The highest of these issues was change management— this relates to overall end-user acceptance. Only 12 percent were due to technology considerations.
814
JD Edwards EnterpriseOne: The Complete Reference
Second, areas may develop an undesirable dependency on just a few people. This could result in human resources issues later in the software cycle. Area offices can be held hostage if key personnel insist on certain pay raises or shortened work weeks and they are the only “experts” on the system. Although most companies won’t support the employee trying to make this type of ploy, it can cause tension and difficult times when or if those one or two employees are no longer with the organization.
Continued Training The majority of this section talked about the training necessary to implement the product itself for both the project team and end users; however, there is also a continuing education element to having and maintaining an ERP product of this type. Although many companies stop training after go-live, this really limits the effectiveness of the ERP solution. Most organizations will need to maintain a training program for both refresher courses and new employees. While the continuing training requirement is not as intense as the initial implementation training effort, it is still an important part of maintaining your new ERP investment and shouldn’t be overlooked. The UPK tool is an excellent investment in making your ERP solution a continuing asset of your company.
Development and Version Control Methodology
Contrary to what you might expect, Oracle recommends that the CNC administrator, rather than a developer, should dictate the version control policy during an EnterpriseOne implementation. Yet, when you think about it, it really does make sense. Creating and deploying packages is the responsibility of the CNC specialist. The problem you might face, however, is that neither your CNC nor your developers have ever worked with a product similar to this one. Because of this, we decided to provide a detailed version control scheme, including flowcharting, decision-making bodies, some definitions of forms that need to be created, and some examples. All of these can be used and customized to create a version control policy that would work for you.
How to Use This Material When we created this material, we intentionally attempted to create a product that would work for a large company instead of a smaller organization. Our rationale for this was that a smaller company could remove elements of the provided process and streamline the methodology to fit their specific needs. Because this methodology may not fit your specific needs, you should feel free to use part, all, or none of this information when creating your own development and version control methodology.
Appendix A:
The EnterpriseOne Implementation
815
Can You Separate Development and Version Control? Not really! This section really doesn’t address the “how to” of development; rather, we go into detail about the procedures necessary to develop safely, protecting your development investment. There are some relatively simple rules to developing in EnterpriseOne. There is a similar series of rules for version control. These rules are incorporated into the flowcharts that follow at the end of this section.
Development As you decide to modify your system, there are several things you should keep in mind. One is that the JD Edwards upgrade methodology will not carry over all modified objects. Because objects that you may have modified may also have been modified by the Oracle JD Edwards EnterpriseOne developers in Denver, the upgrade methodology had to be developed in such a way that it combines both your changes and Oracle’s. Part of this methodology maintains your changes. Other parts, however, take the EnterpriseOne modification over your own. When this happens, you have to retrofit (or reapply) your modifications. This pulls up two very basic development rules to work with. First, perform all development with upgrades in mind. Oracle has manuals describing development rules; following these rules will stand you in good stead. More information is available in Chapter 15. The second rule about development is that you should copy EnterpriseOne objects when you want to modify them instead of modifying the originals. When you copy the objects you want to modify, you’re ensuring that your modifications will be preserved during upgrade without needing to retrofit the changes. It will also give you some time to evaluate the new EnterpriseOne code before deciding whether you need or want the new functionality of the copied objects. If you want both their new functionality and your modifications, there is very little difference between retrofitting and remodifying the object.
Other Development Rules and Explanations When you copy a version of an EnterpriseOne report (see Figure A-1), provide it with a new name, and change its processing options or data selections, you are performing development. This is one of the biggest areas of development that your organization will undertake, but you won’t even be aware that it is happening most of the time. During most EnterpriseOne application classes, the instructors are extremely quick to demonstrate to the class how easy it is to copy and add versions of UBEs that they can then modify (for example, change the data selection or processing options). To do this, users don’t have to have access to the Object Management Workbench formally. Instead, rather than launching the UBE using the
816
JD Edwards EnterpriseOne: The Complete Reference
FIGURE A-1. Copy Version window P98305 batch application, they can highlight the version they want and then click the Copy or Add button. Presto, they were just involved in the development process. Unfortunately, however, these instructors rarely teach their students how to use a project that can be promoted through the Object Management Workbench to handle their versions. What usually results is hundreds of versions that cannot easily be promoted.
Appendix A:
The EnterpriseOne Implementation
817
This adds days or even weeks to the upgrade process as versions are identified and checked in or deleted. Finally, it represents a huge loss of time and effort. NOTE Although versions can easily be added to through the HTML client, as Figure A-1 shows, these are placed in the user’s default project, which cannot be promoted. You cannot use the Object Management Workbench through the HTML client at present, but you may be able to use some functionality in the future. Until that time, though, it is recommended that users add the versions from a development workstation. This is the same screen, but then you must check the version that is shown in Figure A-2. Training your users to check in their new version (see Figure A-2) or restricting the users who can add or copy versions is a good development rule to adopt. We prefer limiting who can perform these functions for several reasons. First, UBEs have the potential to be very powerful pieces of software. Because of this, you might not want everyone to be able to create custom versions of them. Second, limiting the number of people who can do this allows your CNC administrators to ensure they are trained in how to check in and check out (as well as create and copy) custom versions. Finally, by throwing security on the P98305 application, you will decrease the total number of these versions created. Trust us; having to upgrade 400 versions is bad enough. Having to upgrade 4,000 or 40,000 would be unacceptable. TIP Configure a special project in the Object Management Workbench that your business analysts can use to check in versions. This allows for each promotion of the versions and thus ensures you do not “lose” any.
Checking Items In Although each organization tends to have their own rules regarding check-ins on objects, every company should insist it be done and done regularly. As a minimal rule of thumb, we recommend that objects under development be checked in at least once a week, if the code is ready. If not, we highly recommend that the developers use the save location in the Object Management Workbench to back up their work daily. This is because all development is done on the development workstation, yet most client workstations aren’t backed up or on a UPS.
818
JD Edwards EnterpriseOne: The Complete Reference
FIGURE A-2. Checking in a version
Let’s take a worst-case scenario. Your company needs a modification to the base JD Edwards EnterpriseOne functionality. The developers have been feverishly working to complete the modification so that it can be tested prior to going live. One developer, after two months of work, is finally ready to check his
Appendix A:
The EnterpriseOne Implementation
819
key part in to the deployment server. Just then, boom—lightning strikes, and his machine takes a fatal surge of electricity. This developer, because he chose not to check his work in, just lost two months (320 man-hours times $300/hour = $96,000) of work. Your go-live will have to be pushed off, and you will have to explain to the CEO why and how this could happen. Do you have your résumé polished up? By having developers check in code that is completed, use the save location daily for code under progress, and double-check the database, you can salvage such a worst-case situation. You should regularly back up your deployment server (especially during CRP and development cycles) and database. If you have a save policy, you would only lose a couple of hours in this scenario. Your golive would occur on schedule, and though no one will sing your praises, you won’t need to look for a new way to put your children through college, pay your mortgage, or eat.
Validating Items Checked Out To quickly verify whether any objects are checked out, perform the following SQL statements using the appropriate database tool.
Oracle (SQL Plus or SQL Worksheet) SELECT simkey, siobnm, sipathcd, siuser, siupmj FROM OL812.f9861 WHERE simkey <> 'deployment machine name' ORDER BY simkey, sipathcd, siuser; SELECT vrmkey, vrpid, vrvers, vrusr0, vrchkoutdat, vrvrsavail FROM "path code table owner".f983051 WHERE vrchkoutsts='Y' ORDER BY vrmkey, vrusr0, vrpid, vrchkoutdat;
NOTE The second SELECT statement must be repeated for each path code using the appropriate path code table owner name (PD812, PY812, DV812, and so on).
MS SQL Server (Query Analyzer) SELECT simkey, siobnm, sipathcd, siuser, siupmj FROM OL812.f9861 WHERE simkey <> 'deployment machine name' ORDER BY simkey, sipathcd, siuser SELECT vrmkey, vrpid, vrvers, vrusr0, vrchkoutdat, vrvrsavail FROM "path code table owner".f983051 WHERE vrchkoutsts='Y' ORDER BY vrmkey, vrusr0, vrpid, vrchkoutdat
820
JD Edwards EnterpriseOne: The Complete Reference
NOTE The second SELECT statement must be repeated for each path code using the appropriate path code table owner name (PD812, PY812, DV812, and so on).
DB2/400 (Use the Command STRSQL) SELECT simkey, siobnm, sipathcd, siuser, siupmj FROM OL812/f9861 WHERE simkey <> 'deployment machine name' ORDER BY simkey, sipathcd, siuser SELECT vrmkey, vrpid, vrvers, vrusr0, vrchkoutdat, vrvrsavail FROM "path code table owner"/f983051 WHERE vrchkoutsts='Y' ORDER BY vrmkey, vrusr0, vrpid, vrchkoutdat
NOTE The second SELECT statement must be repeated for each path code using the appropriate path code table owner name (PD812, PY812, DV812, and so on).
Encourage Developers ■
Encourage your developers to use good development practices. Do this by publishing your EnterpriseOne development rules, training each one on the dos and don’ts of the situation, and sacrificing the first offender. Though the last is a little harsh, we’re quite sure it will get everyone else’s attention. If you’ve checked an item out just to look at its code, erase your checkout when you’re done. You might be stopping someone else from doing his or her job.
■
Contact the owner of a checked-out object prior to erasing or deleting the checkout. You certainly will appreciate the same consideration from them.
■
Overcommunicate when multiple developers are set to modify the same object. It really does help.
■
Maintain a developer’s log. As you make changes, annotate your log. In the case of an accident, this log will help the next developer figure out what you were trying to do.
■
As functional requirements are changed or further clarified, update the functional requirements, technical requirements, and business case test scenarios immediately. It is too easy to say you’ll do it later but “later” never comes.
Appendix A:
The EnterpriseOne Implementation
821
■
Don’t wait and try to fix something. If it’s messed up, notify the project team lead immediately. It will be easier to fix if the right people know about it.
■
Own up to mistakes made. Everyone will make them, and knowing them in advance might save valuable recovery time. For example, if you accidentally checked in an older object on top of a newer one when you had intended on erasing your checkout, the proper people may be able to fix it immediately. If you allow the issue to go unnoticed until the next package build, it may be too late.
Version Control Up to this point, we’ve only addressed development. For those CNC administrators out there, do not fear. You need to have some basic development dos and don’ts prior to thinking about version control. The first question that many of you might be asking is what exactly version control entails. Does it mean controlling versions of EnterpriseOne throughout the development cycle? Is it involved with ensuring that tested EnterpriseOne code is deployed in a timely manner throughout the enterprise? Is it managing third-party products introduced into the enterprise? What about deciding (or helping to decide) when to do a new upgrade or Tools Release? Maybe version control is about helping the developers do their work. The reality is that it is about all of these things—they all affect how EnterpriseOne works and all of them must be carefully orchestrated to ensure the system runs properly.
Just How Complicated Does the System Need to Be? To be effective, the system doesn’t have to be complicated. However, if the system you put into place is complicated, it doesn’t necessarily mean it won’t be effective. Rather, it is important to try to put the appropriate measures in place that will ensure your organization has the control that facilitates their personal success. What works for Company A may not work for Company B. You might ask if you can get by without a formal version control process. Theoretically, yes. However, we’ve never seen an organization successfully fly this one by the seats of their pants. Rather, they start their EnterpriseOne implementation with little to no thought about version control and end up changing their philosophy after the first or second stumble. Is version control easy to manage? It can be. In fact, we’re going to make it even easier for you by providing a series of tools you can use as a template. If it is more cumbersome than you want to deal with, you have the option of trimming it down. But remember, what we’re providing is something that does work. Modifying it might decrease its effectiveness.
822
JD Edwards EnterpriseOne: The Complete Reference
TIP You can think of a version control process as a spectrum. If you don’t put enough effort into it, you will have a mess. If you make it too rigid, you will also have a mess.
Definitions Used in the Tools The following are some acronyms that require a brief description prior to your being turned loose on these flowcharts. Once you’ve mastered these, we’re sure you will find them very useful. ■
CCB (Change Control Board) A board of business functional group leads whose primary responsibility is allocating resources for making software modifications to the enterprise system.
■
SMRB (Software Modification Review Board) A board of technically oriented people whose job includes verifying software modifications (both proposed and completed) prior to introduction to the enterprise production packages. Makes recommendations on third-party product introduction, assigns appropriate resources to assist systems analysts (SA) in the creation of functional requirement requests (FRR), technical requirement requests (TRR), and business case test scenarios (BCTS).
■
SA (systems analyst) Technically oriented business expert whose responsibilities include assisting in the development of the FRR, TRR, BCTS, researching issues involving the use of the EnterpriseOne system, creating business solutions for rapid ROI, and functioning as the second line of internal software support.
■
ITPM (Information Technology Project Manager) A liaison between the EnterpriseOne development team, the SA, and the IT department assigned to a particular software modification request.
■
FTs (functionality testers) End users who assist with testing modifications from a functional/functionality perspective. Skills range from power user to system novice.
■
TM (technology manager) portion of a project.
■
RCA (release control manager) Individual or group of individuals responsible for maintaining release level control in the enterprise. Release control should maintain accepted release versions of third-party products
A person designated to manage the technology
Appendix A:
The EnterpriseOne Implementation
823
(including OS releases) as well as EnterpriseOne release levels. The RCA works closely with version control. ■
DEPSVR (deployment server) A server used as a central repository for C code in a central-deployment-strategy EnterpriseOne implementation. Refer to Chapter 14 for more information on the deployment server.
■
APPSVR (application server) A server containing EnterpriseOne server code used for various services in the EnterpriseOne enterprise solution. For more information regarding application servers, see Chapter 14.
■
VC (version control)
■
SMT (software modification test) A complete test of the EnterpriseOne software to ensure that changes have not adversely affected other unmodified areas. This differs from the BCTS in that it looks at all modules instead of modules directly modified.
■
TR (Tools Release) Refers to an EnterpriseOne Tools Release. When Oracle makes changes to the foundation code, they bundle these changes as a Tools Release.
■
MNGT (management) Any of a number of individuals responsible for people, functional areas, projects, or a combination thereof.
■
BCTS (business case testing script) A test script designed to ensure that modifications meet the business requirements for the modification itself. This script should be created prior to the modification itself and should be under version control.
■
JDESAR (JD Edwards Software Action Request) SAR.
■
PMO (project management office) A group of individuals designated to administer the project. They handle the paperwork, the signed documentation, and project timelines ensuring the smooth flow of the project itself.
■
ESOW (executive statement of work) A single-page document outlining a request for system modification. Included elements: business issue, proposed modification, estimated cost, and approval routing.
■
FRR (functional request requirements) A standardized form outlining the detailed functional requirements surrounding a proposed change to the EnterpriseOne system.
The appropriate version control representative.
Traditionally known as a
824
JD Edwards EnterpriseOne: The Complete Reference
■
TRR (technical request requirements) A standardized form outlining the detailed technical requirements of a proposed change to the EnterpriseOne system. This form would include all of the necessary detail to perform the requested modification with a detailed cost estimate, including time, required resources, and capital.
■
FTRR (functional/technical request requirements) The combined output of a revised ESOW, FRR, and TRR. This form provides all of the necessary information for the CCB to review and either approve or reject proposed changes to the EnterpriseOne system.
■
NCA (net change analysis) A review of base EnterpriseOne functionality against functional system requirements. The difference defines a software gap that must either be programmed around, interfaced with another product, or process re-engineered to accommodate.
■
ISAR (internal software action request) An alphanumeric tracking number for client modifications. Oracle uses the SAR tracking system for changes made to objects within the system. We highly recommend that companies create their own ISAR system for tracking company-specific changes.
How to Use the Flowcharts Now that you have a few new abbreviations to work with, you will find the following flowcharts relatively easy to use. Each chart has an identifier in the upperright corner consisting of alpha and numeric characters (for example, A1). Each block also has a number assigned. Combined, these allow users to go between forms as required. (For example, if you were on A2 box 5 and it instructed you to go to A1 box 14, you would pull up the A1 form and locate box 14. From there you would continue on form A1 until completion or until instructed to go to a different form.) Each flowchart maintains a similar feel and read and was designed to accommodate most of what a company needs for version control. ■
Flowchart A1 (see Figure A-3) is designed to address EnterpriseOne enhancements originating at the user level (for example, a user identifies a system change to either increase productivity or to actually accomplish daily, monthly, or yearly work).
■
Flowchart A2 (see Figure A-4) is designed to address software troubleshooting resulting in a EnterpriseOne modification (for example, an EnterpriseOne issue that requires a system or code modification either identified by the JD Edwards Support Line or internally recognized).
Appendix A:
1
24
2
End user identifies system requirement.
The EnterpriseOne Implementation
Is this an emergency?
SA expedites issue w/ Oracle and SMRB.
Yes
SMRB notifies CCB.
No
3
13
Passes request to management.
14 FTRR goes to CCB for final approval.
ITPM & SA complete TRR.
16 12
5 4 Does management approve?
Yes
Request forwarded to systems analyst.
FTRR submitted to VC.
Dev Resource provides E1 specific feedback to SA/ITPM.
ISAR assigned.
15 Does CCB provide project approval?
Yes
FTRR logged, begin VC via PMO.
No
FTRR is submitted to SMRB for notification. SA creates ESOW.
20
DEV MGR schedules Mod-add to project plan.
10
SA mods ESOW – builds business case.
End
Dev MGR assigns Dev Resource.
7
23
17
11
6
CCB reviews ESOW.
18 SA, ITPM, TM generates BCTS.
FRR passed to SMRB.
9
25
8 Yes
19
22 End user updated by management.
Does CCB give tentative approval to ESOW?
21 No
FIGURE A-3.
Does management want to pursue?
Yes
ITPM assigned. SA generates FRR.
No
BCTS passed into VC via PMO.
No 26
SA provides CCB feedback to management.
Go to A4 box #1
Flowchart A1 enhancement request
■
Flowchart A3 (see Figure A-5) is designed to address Net Change Analysis identified issues.
■
Flowchart A4 (see Figure A-6) is designed to address the physical activities surrounding the actual modification of the EnterpriseOne system itself and how it ties into development and version control.
825
826
JD Edwards EnterpriseOne: The Complete Reference
1
2 System issue identified.
Is this an emergency? 25
Yes
No
3
Go to A4 box #17
Issue raised to management.
4 Yes
22 SMRB assignes Dev/CNC Resources to Apply ESU.
ESU applied.
ESOW passed SMRB.
21
6
5 Does mngt agree with issue?
23
32
Assigned, ISAR.
SA researches issue on Customer Connection.
Issue passed to SA.
SA generates ESOW.
No 7
12
28 User is retrained on issue.
29
No
Should Mod be made to alleviate issue?
Yes
10
30
31 High Priority SMRB assigns DEV/CNC resource.
33
No
Yes 17
19 ESU
Is this an emergency?
No
No
No
ESU / paperfix downloaded. SA generates ESOW.
No 15
13 Does SAR result in Code Mod?
Call # tracked in issue DB.
Is Mod available in ESU or paperfix?
Yes
Paperfix 18 Go to A1 box #7
9
Is this an emergency?
Yes
ESU / paperfix downloaded.
SA works with Oracle Customer Support to create Yes SAR.
SA calls Oracle Customer Support; Yes
Is a SAR available?
11
Is issue PEBCAK?
High Priority Resource works with Oracle Customer Support, SA and end user to ID issue and resolution.
Yes
No 26
27
20
8
Is issue already on Customer Connection?
End
No
Can Oracle Customer Support replicate issue?
35
16
14
Enhancement Is Oracle Is committed to SAR viewed as making the enhancement or modification? issue?
Yes
Yes
Issues database is updated, issue tracked.
Low Priority No
SMRB assigns DEV/CNC resource.
24 Issue
Go to A1 box #6
39 Go to A1 box #5
34
Resource works with Oracle Customer Support, SA, and end user to ID issue and resolution.
No
37
Low Priority
38
36 Does Oracle agree to fix?
No
Utilize Oracle Issue Escalation Process.
Does Oracle agree to fix?
Yes
FIGURE A-4. Flowchart A2 troubleshooting resulting in a modification
■
Flowchart A5 (see Figure A-7) is designed to address third-party version control (for example, if a user updates software on their system, they could adversely affect the operation of the EnterpriseOne software itself— modifying the MDAC level by downloading the latest edition of Internet Explorer could cause data corruption).
Appendix A:
1
2
3
6 4
Research change on Customer Connection.
ITPM & SA assigned.
Net change required modification.
The EnterpriseOne Implementation
ISAR assigned.
5
Similar enhancement scheduled in upcoming release?
Can business wait for scheduled release?
Yes
7 Yes
SA contacts Oracle to assist with Tech Spec.
Go to A6 box #1
No
No 9
8
Is Tech Spec available from Oracle?
Go to A1 box #9
Yes 10 Development mgr. assigns resource for review.
FIGURE A-5.
1
11 Go to A1 box #14
Flowchart A3 net change analysis
2
3
6
4 5
Dev Resource updates Dev Loginclude ISAR
Object developed in Dev
Object is stored in DevSave location – done nightly
Object functional test in Dev
Did object pass functional test?
Yes
Object BCTS test in Dev
No 7
8 Did Object pass BTCS test?
Troubleshoot developed object 9 Go to A1 box #14
Yes
11
10 Does new FTRR exceed 5%?
No
No
13
14
12 Did object pass test?
19
Object is BCTS tested in test by end user
Yes
20
15 Deploy package to test client and CRP server.
17
No
Object is transferred to CRP
No
21
24
25
Object is transferred to Prod.
CNC/version control schedules package build.
Troubleshoot package build.
26 Build new full/ update package
28 Did package build correctly?
Yes
Deploy package to test client.
No
Flowchart A4 modification
Package deployment to all workstations.
29
27
30
FIGURE A-6.
18
Build new full/ update client and server packages.
Did package build correctly?
Yes
Troubleshoot package deployment.
SMRB updated with status
Object(s) handed to CNC/version control
SA, ITPM, Dev resources work with user for clarification
22
Update FTRR
23
Yes
16
Did object deploy correctly?
Yes
No
Update FTRR with new specifications.
No
Troubleshoot package build.
FTRR, SMRB, CCG updated.
31
33
32 Object is live BC tested in Prod
Did object pass test?
Yes
Package scheduled for deployment to client and server.
827
828
JD Edwards EnterpriseOne: The Complete Reference
1
New E1 release announced
4 RCA creates ESOW.
5
6
Submits to CCB for conditional approval.
Cumulative
What type of release?
Update/Upgrade
12 Does CCB Approve?
No
Is company experiencing these issues?
RCA researches SAR/issue resolutions
Tools Release
11
Do not install Tools Release
No 10 9
3 Do not install update/upgrade
8 No
Yes
ESU 13
7
2
RCA researches added functionality/ enhancements
ESOW submitted to CCB for conditional approval.
RCA creates ESOW.
Go to A2 box #19
Does CCB approve?
Yes
Yes 15
14
16
25
38
FTRR submitted to CCB for final approval
SMRB assigns CNC & DEV resources.
ESOW transferred to SMRB
17 RCA, CNC, DEV resources create FTRR.
SMRB assigns CNC & DEV resources.
20
24
TR requested by Oracle client manager.
23 FTRR submitted to CCB for final approval.
Do not install Tools Release
RCA, CNC, DEV resources create FTRR
No
Does CCB Approve?
Yes
27
29
Yes
TR Complete If issue after the fact go to A2 box #1
19 Apply TR to DEPSVR, APPSVR, E1 HTML Server, development clients.
32
30
28 FTRR submitted to SMRB for plan & execution
ESOW transferred to SMRB
Separate hardware updated with current code and test data subset.
FTRR passed to SMRB
26 Does CCB approve?
18
31 CNC & Version control schedule TR rollout.
Apply TR to SVR and clients
No
Yes
Did TR pass test?
EnterpriseOne full integrated test
33
37
35
36 Do not install update/upgrade
Start new release project
Create cumulative update/upgrade plan, testing, & rollout
34 Go to A2 box #6
Back off Tools Release
No
FIGURE A-7. Flowchart A5 third-party version control
■
Flowchart A6 (see Figure A-8) is designed to address EnterpriseOne service pack, cumulative, and major release upgrade version control procedures (for example, when to apply, when not to apply, why you should or shouldn’t apply, and so on).
Appendix A:
1
The EnterpriseOne Implementation
829
2
Someone identifies thirdparty product or upgrade
3
Notifies managerrequests new product or upgrade
4 Does manager approve request?
Software not installed or downloaded
No
No No
Yes 5
6 ITPM assigned ISAR assigned
18 19 Software rolled out to identified enterprise resources
7
ITPM researches JDE Web site ITPM creates ESOW
17
No FTRR submitted to SMRB
Does CCB approve?
15
16
FTRR updated ITPM creates rollout schedule
9
8
ESOW submitted to CCB for conditional approval
Does software adversely affect system?
Yes
11
10
ESOW transferred to SMRB
ITPM & CNC resource create FTRR
SMRB assigns CNC resources.
14
ITPM, CNC, DEV and FTs conduct SMT.
Functional leads provide FTs
12
13 Yes
FTRR submitted to CCB for final approval.
Does CCB approve?
SMRB assigns DEV resource.
Yes 20
21 Re-image test systems with original configuration.
22
24
23 Update FTRR with status
FTRR submitted to CCB for reconsideration
Does CCB want to pursue product?
No
FTRR archived with PMO
Yes 26 ITPM pursues issue with third-party vendors.
25 Other thirdparty product
What system was adversely affected?
EnterpriseOne 27 Go to A2
FIGURE A-8.
Flowchart A6 E1 foundation code or major release
Go-Live Activities
Go-live activities are the culmination of all of the implementation activities to date and a significant milestone in the implementation itself. Many organizations feel that this is the end of their ERP implementation experience, and although we won’t necessarily agree with the last statement, we agree that this is a significant step in the ownership of an ERP suite of applications. Properly planned and executed, golive is a non-event. Some organizations split the following steps into two distinct phases: pre-go-live and go-live. For the purpose of this discussion, however, we will treat these as a set of activities.
830
JD Edwards EnterpriseOne: The Complete Reference
NOTE In the following few pages, we’ll discuss some of the steps and considerations necessary for going live with the EnterpriseOne product. Keep in mind that different companies have different required steps (some included, some not) based on business and application decisions made during the implementation itself. Because of the huge number of potential differences, it is impossible to make a clear determination of exactly what steps your particular company may need. As such, we will discuss the most prominent steps that you need to consider prior to going live with the EnterpriseOne product. Still, this section should give you some things to talk about, including: ■
Technical and application audits
■
Final user training
■
Software package builds and deployments
■
Final testing
■
Real-time data conversions
■
Flipping the switch
Application and Technical Audits Application and technical audits are a time to have another person validate that what you’ve completed is done correctly and that your company is ready to go live with EnterpriseOne. The timing is critical to receiving a go or no-go rating on the audit itself. An EnterpriseOne go-live audit needs to be performed about one month prior to go-live. This provides the auditor with a good example of what is completed and what is still left to complete, while simultaneously giving the client time to correct any deficiencies. The importance of the audits should not be overlooked. This is especially true for the EnterpriseOne client. If you choose to go live after failing an audit, you can pretty much guarantee that your company will have no legal recourse against the software vendor or the implementation partner.
Appendix A:
The EnterpriseOne Implementation
831
Application Audits There are application audits that deal primarily with individual modules within this ERP package and how those products interact with each other. They also look at training and the company’s overall readiness to complete go-live successfully. The importance of the application audit is that it is able to point to weaknesses within your organization’s plans to go live. We have seen application audits fail and those accounts that choose to go live anyway invariably suffer from their decision. Some of the items that they will look for include: ■
Application setup (processing options, versions, and so on)
■
Batch version setup
■
Custom menu design
■
Application security
■
End-user training
■
Documentation
Technology Audits On the flip side of the application audit is the EnterpriseOne technology audit. Many organizations feel that the technology will take care of itself, and even though it isn’t the number one reason that ERP projects fail, it does represent 12 percent of all failures. With this large a risk, it is always prudent to validate that what has come before is ready to go. Although we rarely specify differences, if your organization has undergone substantial customization to the EnterpriseOne product, a technical software audit should be performed at the same time as the technology audit. This will ensure the integrity of the developed and modified applications. Some of the items looked at include: ■
EnterpriseOne architecture
■
Security plan
■
Modifications and version control
■
Hardware and software release levels
■
The results of system stress tests (performance-oriented)
■
IS personnel training
■
Any customizations to the product
■
Interfaces with other software packages
832
JD Edwards EnterpriseOne: The Complete Reference
Final User Training This should be more than just completing the training cycle for the end user. It is also the time your organization needs to complete the knowledge transfer from your implementation partner to your staff members.
End-User Training Training at the beginning of the implementation, or even in the middle of an implementation, is wasted on the user who returns to his or her normal job and doesn’t touch EnterpriseOne again for several months. Additionally, there is no advantage to training end users on unmodified modules (if you’re customizing modules) or on software missing a large number of custom UBEs or defined business processes. Consequently, most organizations will find that they are performing the majority of their end-user training toward the end of their implementation. This allows users to be trained just prior to go-live on the software and with a copy of the data that they will use in the production environment. For more information on training strategies, see the section “Training” in this appendix.
Technical and Application Knowledge Transfer Most organizations attempting to implement a product like EnterpriseOne use implementation partners (for example, Oracle consultants, Fujitsu, and so on) to augment their own staff during the initial installation and setup of the product through go-live. Once they go live, however, most organizations anticipate the required thirdparty consulting to diminish and ultimately stop altogether. In order to ensure that your organization is ready for the consultants to go home, there needs to be a knowledge transfer between the implementation partners and your staff. This knowledge transfer is application- and technology-driven and is an important part of this process. During the course of the implementation, there will be a substantial transfer of experience due to working together day in and day out. Part of your go-live process should ensure that everything is properly documented and trained beyond the normal knowledge transfer. Depending on your implementation design, you may also have functional areas where the consultants performed the majority of the setup and testing. In these functional areas, you need to ensure that there has been an adequate transfer of knowledge.
Software Package Builds and Deployments It is safe to say that 100 percent of companies that implement EnterpriseOne will modify the EnterpriseOne product in one way or another. These modifications may be nothing more than placing your company’s data on top of a UBE version. Then again, they could involve millions of dollars of coding and systems integration. Regardless of the number of modifications performed, you need to build and test your final go-live software packages.
Appendix A:
The EnterpriseOne Implementation
833
A mistake that many organizations make is that they continue making code changes (applying ESUs, completing coding, creating new reports, and so on) up to go-live. We don’t recommend this strategy for a couple of reasons. An organization needs to set in stone a timeline with completed go-live software. This should minimally be one week (but preferably several weeks) prior to go-live. This artificial constraint allows the system administrator to build the software being delivered to the end user and then application experts to test it. The longer the time period in advance when no new modifications are performed, the more stable the product tends to be. Remember, as you take this new multimillion-dollar system live, your end-user acceptance of it is a key factor to its success. With this in mind, failure to stop modifications provides an unstable environment for go-live and sets the stage for the implementation to fail.
Final Testing If you haven’t finished your integrated, stress, and functional testing, now is your last opportunity, and oh, by the way, you’re late. If you aren’t comfortable with the final software and procedural solution, you’d better rethink go-live and do so quickly. One of the final tests that needs to be conducted revolves around your software solution for the JD Edwards EnterpriseOne product. Validate that all of the reports and modifications to various modules within the system work as anticipated or are removed from the production set of code.
Real-Time Data Conversions The final conversions that need to be performed relate to what systems are going live at any one time. If you are implementing inventory within EnterpriseOne for multiple sites, you need time to convert existing quantities on hand from your legacy system to your EnterpriseOne system. Now, based on your overall plan, you might perform this conversion by conducting a full inventory at each site and then having people enter the quantities into EnterpriseOne (obviously the items themselves should already be in the database and only missing the quantities by site). Then again, your conversion process could be a program (either built externally or within EnterpriseOne) or another data population method. If you are implementing accounts receivable, you need to enter outstanding debts. Accounts payable needs to come up to speed with what you owe other organizations. And the list goes on. The fact that you need to convert data from a legacy system to your new EnterpriseOne suite means that you need to plan some time when you aren’t changing your legacy information. Does this mean that you have to work manually during this time period? Maybe, but this is ultimately decided as a strategy for your organization. At some point in the process, however, you will need to actually get the data from your existing system into the one you are implementing. This is yet another process that should be planned in the beginning of the implementation process. Work closely
834
JD Edwards EnterpriseOne: The Complete Reference
with your integration partner when planning this important part of implementation. We really can’t overemphasize the importance of this phase. Remember, the data that you start with is as important (if not more so) than the applications themselves.
Flipping the Switch As we stated at the beginning of this section, going live should be a non-issue. With all of the planning and execution required to successfully implement the product, the end users should come in on Monday and start using their new EnterpriseOne product. Some organizations do feel pain associated with go-live, but these organizations are typically the ones that didn’t fully plan, implement, test, and train for the product effectively. If everything is planned and executed accordingly, the end users can start right in using their new business software interface for the betterment of your company.
What Now? (Maintaining the Value of Your System)
Remember when we discussed “Preparing to Make the Move of a Lifetime” in “The Software Selection Process” section? Well, we are sure you do not want to have to go through this again for at least another five to ten years. So how do you keep your system up to date with all the new features and functionality? This is where you have to understand that purchasing an ERP system means continuing maintenance and scrutiny. Don’t go into this believing that this is a one-time investment. You need to keep abreast of the latest developments and maintain a budget to continuously improve your solution both with software updates and resource requirements. If you do not look at version control, patches, upgrades, and new functionality as they become available, you will most likely find yourself back in the same place in five years or less, as you do today with your current software selection process. Keep investing in your solution and maintain the value of your system over time.
Globalization
The process of globalization is more than just having business locations in multiple countries, it is more than just supporting several languages, and it is more than just localizations (financial, regulatory, tax, and currency issues unique to a given country). Globalization is the process of integrating your multicountry sites with a single business solution. This section will detail some of the considerations that you need to keep in mind as you integrate and globalize your company, such as: Should you go with a single instance or with multiple instances? How does the Unicode code set impact your decision? What is a language tier to Oracle? How will globalization
Appendix A:
The EnterpriseOne Implementation
835
impact development requirements? What about localization requirements? What is the impact to my internal support network for my end users around the world?
Single or Multiple Instances One of the first questions you will need to answer is whether or not to go to a single instance of the software or have multiple instances of the software. Historically, you really didn’t have much of a choice if you were dealing with some single-byte languages and some double-byte languages. They weren’t compatible and you had to run them on different instances. However, as of release 8.9, Unicode was adopted by the JD Edwards EnterpriseOne product, and this allowed these languages to be handled within the same instance; Unicode allows you to consolidate your view of global operations across multiple language sets. So now the question is whether your business is similar enough for you to go to a global model. If you can bring all of the countries you are dealing with to the same business process (excluding localization issues) and you have a need to be able to see across your entire enterprise for financial consolidations and inventory tracking and availability, then you probably will want to go to a single global instance. On the other hand, if you cannot get to those common business practices or you do not need an enterprise-wide view, then multiple instances might actually be a better solution for your company. This decision can now be made based on your company needs and not based on any system limitations.
Unicode Unicode is a computer-readable system for representing various languages. Unicode allows your computer to save the English words in this paragraph and display them to you on the screen including punctuation and special characters like the ampersand (&). Prior to Unicode, hundreds of different encoding systems were created. The European Union alone required the use of several encoding systems to cover all its languages. Unicode provides a unique number for every character in every language. Using and maintaining multiple legacy character sets could be costly to any company and, hence, Unicode allows database instance consolidation, reducing the overall cost of IT support. Although Unicode requires more disk space than a non-Unicode database, it does improve overall system performance compared to earlier versions of the software. The JD Edwards EnterpriseOne Tools now use Unicode-encoded characters, allowing all data to be stored in the Unicode format. With the introduction of Unicode, it is no longer necessary to have separate instances for those double-byte languages as was necessary in earlier releases. It should be noted that Unicode is not a translator—Japanese characters entered in Japanese will not be viewed as English to the English-reading end user. However, Unicode will enable single-database and operating-level EnterpriseOne instances for multiple double-byte and western European languages and English.
836
JD Edwards EnterpriseOne: The Complete Reference
EnterpriseOne Languages at Tiers 1–3 Historically, Oracle has defined language support in three different tier levels. Tier 1 languages, as defined by Oracle, are languages that are fully functional and fully supported by Oracle and their development staff. There are also Tier 2 and Tier 3 languages that are supported by Oracle at slightly lower support levels. The language tiers within EnterpriseOne indicate the order in which the languages are moved into a general available status and the quantity of support as well as who provides the software translations. ■
Tier 1
Subset of documentation and software translation
■
Tier 2
Software only
■
Tier 3
Software only, translated by business partners
Traditionally, additional languages are available between 30 and 90 days after the general availability of the EnterpriseOne release. NOTE Language support varies from release to release. For an up-to-date list of languages and their tier for support, refer to the following Oracle web site: http://www.oracle.com/applications/jdedwardsenterpriseone-language-availability.html.
Languages Supported by EnterpriseOne The following languages are supported by EnterpriseOne as of May 31, 2008: Arabic
Finnish
Norwegian
Chinese (simplified)
French (France)
Polish
Chinese (traditional)
French (Canadian)
Portuguese (Brazilian)
Czech
German
Russian
Danish
Hungarian
Spanish
Dutch
Italian
Swedish
English
Japanese
Turkish
Greek
Korean
Appendix A:
The EnterpriseOne Implementation
837
XML Publisher and UPK Finally, there are a couple of other things to note about language and certain products. JD Edwards EnterpriseOne XML Publisher provides tools to translate report layouts into different languages. These layouts are converted to industry-standard files for easy in-house translation or delivery to third-party translation providers. Because each translation is a separate file, modifications can still be made to layout without impacting translations. UPK also supports various languages and uses a two-tier system as well. However, this two-tier system is not the same as the three-tier system for general language support discussed previously. Rather, those languages noted as UPK Tier 1 are translated for the Setup, Developer, and Player, while those languages noted as UPK Tier 2 are translated only for the Player. The following UPK Tier 1 languages are supported by EnterpriseOne: ■
English
■
French (France)
■
German
■
Spanish (Spain)
■
Japanese (Kanji)
The following UPK Tier 2 languages are supported by EnterpriseOne: ■
Chinese (Simplified)
■
Danish
■
Dutch
■
Italian
■
Norwegian
■
Portuguese
■
Swedish
■
Spanish (Mexico)
■
French (Canada)
838
JD Edwards EnterpriseOne: The Complete Reference
Planning the Language Rollout Many organizations choose to implement in what are called phases (for example, they spread the implementation across the company for both modular implementation and regional locations). This buys the organization the ability to leverage time, training, and the core implementation team while simultaneously providing some insurance in case of failure of the product to adequately support the business (even if one region suffers sales losses due to the software implementation, it doesn’t take the entire company down). This also allows the organization to spread the cost of the implementation over a longer time period while simultaneously benefiting from the ever-decreasing cost of hardware (in other words, you don’t even purchase the required regional hardware until it is time to implement those sites). If not, you might be able to plan so that the hardware used for the first couple of sites is rolled into your ultimate redundancy plans. This will mean that an upgrade of the EnterpriseOne product would need to be incorporated into your implementation plan, but it would also allow you to leverage a short-term technical inadequacy to create a long-term solution. Finally, even if all of these ideas fail to fit your organization’s requirements, it still won’t stop the overall globalization of the company. Multiple instances of the product, even on multiple sets of hardware, don’t necessitate decentralized systems. All of the systems can, if you so choose, be co-located at a central location, leveraging the skills and support necessary to maintain it. You are also able, regardless of the number of instances of the product, to keep the entire company on a single version of a single product. This is a significant improvement over what many large organizations currently deploy (for example, multiple solutions on multiple platforms with multiple issues rolling all of the information into a single reporting entity).
Languages and Their Support A final note concerning languages and what your organization will support: You do not need to support every native language for sites that will operate the EnterpriseOne product. Many organizations limit the language support to major languages and major implementations of the product. This means that some locations are using either English or one of the other supported languages instead of their native language. Because of the prevalence of English in business today, it can become a common denominator in the overall language strategy of your organization. Simply support the languages that have enough significance that you realistically need to support them. If you have an office of five salespeople responsible for less than 1 percent of your overall sales in Malaysia, don’t feel that you need to support all of the languages in that country. There is a very good chance that the people responsible for the sales will also understand English (especially since it is a language that is taught in their school system).
Appendix A:
The EnterpriseOne Implementation
839
It is up to the implementation team to accurately determine the languages that need to be supported during and after the implementation. This should occur during the scoping and planning phase as part of a language strategy. We use the base format for all major implementation strategies: As-Is, To-Be, gap analysis, and mitigation strategy. Many implementations try to provide everything to everyone. When considering languages, however, this isn’t always the best solution for the organization. We’ve seen one company who in their As-Is supported two languages for more than 26 countries. In their To-Be, they wanted to support 26 languages. They had to make some hard decisions concerning languages. Although implementations of this type do allow you the opportunity to put in place everything you want, there are costs associated with doing it. In this case, they decided to keep all of the new languages. Because they decided this up front, they were able to plan the hardware and software necessary to accomplish this goal.
Global Development Requirements Although this topic is related to the language issues listed earlier, there are distinct issues surrounding customization of JD Edwards EnterpriseOne code in multiple languages. If you are going to support double-byte development, it just got easier. You see, as of 8.9 all the central object tables are installed in Unicode. This means that you can put languages into your central objects without an issue. This development also extends to custom reports. Remember, if you actually type information into the report or version template via the RDA (Report Design Aid) toolset, you’ve done so in a particular language. There is no code translator available for this. You would need to redevelop this report in all of the languages you wanted to support. Obviously this could pose a problem, or at least additional work. If you use the field description provided with the data dictionary when creating the custom report, this would be translated via the data dictionary itself into any supported language. This is significant for several reasons. First, it indicates that much of your customized code is savable. Second, because much of the customization is saved, it means that your localization efforts are decreased when you support multiple languages on a single instance of the EnterpriseOne product. Finally, it allows you to understand how they perform a huge amount of the language customization. By translating the data dictionary, much (although not all) of the effort of language customization is complete. This could be significant if your company has a requirement to contract for a language not currently supported by Oracle. We would usually recommend that you contract with a professional organization to develop multiple languages for the EnterpriseOne product. The product is complicated enough without the requirements of a language translation.
840
JD Edwards EnterpriseOne: The Complete Reference
Localizations When you go global, you now face new regulatory requirements. These requirements are not limited to just currency issues and translations, although that is probably the first thing that comes to mind. Additionally, you need to consider tax laws and financial reporting requirements. For example, some countries have a mandatory statutory chart of accounts. You probably don’t want to use this chart across your entire organization, and you certainly won’t be able to if you are dealing with two such countries or more. JD Edwards EnterpriseOne definitely supports multiple currencies; however, many organizations might have an issue revolving around when the conversion is applied in various suites of the software. Our recommendation on currency is that you research the possible issues early in the implementation. If you do have an issue, this will provide more time for you to determine the best route of addressing it. Your implementation partner should be able to provide assistance with these assessments. Along with currency, we have to add taxation (after all, you can’t have one without the other). Various countries have various taxation regulations that might, or might not, be addressed in the EnterpriseOne product. As with the currency issues, you need to address possible considerations up front. The earlier you can identify possible issues, the more quickly you can resolve them. You will also want to ensure that EnterpriseOne has (or you can develop) the appropriate forms for audit and reporting income in the various countries you have holdings in. NOTE Localization support varies from release to release. For an up-to-date list of localizations and their support, refer to the following Oracle web site: http://www.oracle.com/applications/jdedwardsenterpriseone-country-support.html.
EnterpriseOne Localization Support JD Edwards EnterpriseOne combines the power of a global business software suite with specific, integrated adaptations that address the financial, regulatory, and other needs for running your company in other countries. As of May 31, 2008, these localization efforts support the following: ■
General business functionality for financial management and supply chain management
■
Country-specific tax, regulatory, and statutory updates prioritized by updates (priority 1) and new requirements (priority 2)
Appendix A:
The EnterpriseOne Implementation
841
The countries listed in the following sections have specific localizations available directly from Oracle or provided by partners for JD Edwards EnterpriseOne across most supported releases. In the following lists, an asterisk (*) indicates a solution provided by a third party. A plus sign (+) indicates that the country does not require solutions that are specific to financial management and supply chain management. Africa ■
South Africa+*
Asia Pacific ■
Australia (plus specific HCM module)
■
China
■
Hong Kong+*
■
India
■
Japan
■
Korea*
■
New Zealand+* (plus specific HCM module)
■
Singapore*
■
Taiwan
■
Thailand*
■
Vietnam*
Europe ■
Austria
■
Belgium
■
Bulgaria*
■
Czech Republic
■
Denmark
■
Finland
842
JD Edwards EnterpriseOne: The Complete Reference
■
France
■
Germany
■
Greece*
■
Hungary
■
Ireland
■
Italy
■
Netherlands (The)
■
Norway
■
Poland
■
Portugal*
■
Romania*
■
Russia
■
Spain
■
Slovakia*
■
Sweden
■
Switzerland
■
Ukraine*
■
United Kingdom
Latin America ■
Argentina
■
Brazil
■
Chile
■
Colombia
■
Costa Rica*
■
Ecuador
■
El Salvador*
Appendix A:
■
Guatemala*
■
Honduras*
■
Mexico
■
Peru
■
Puerto Rico*
■
Venezuela
The EnterpriseOne Implementation
843
Middle East ■
Turkey*
■
United Arab Emirates*
North America ■
Canada* (plus specific HCM module)
Application and Technical Support Now, suppose that none of the issues that we listed actually affect your organization. You’re home free, right? Not necessarily. If you have a centralized organizational structure with the entire operation located in one or two locations, you need to address how you plan on supporting this organization. If someone calls your internal support line at 3 A.M. speaking traditional Chinese, are you prepared to 1. Have someone actually answer the phone? 2. Have that person understand the language and the subsequent question posed? 3. Have the right skill sets available to fix the issue presented? It is more than a little question and one that needs to be addressed as early as possible. Are your personnel able to provide the translation of application and technology issues that could beset them at all hours of the night? Most non-globally aligned organizations don’t have this particular issue because each country has its own system and subsequent support, or the support is still regionally located so that there are not large discrepancies in time zones. Globalization tries to centralize the company based on business processes but adds additional complexity in areas like this.
844
JD Edwards EnterpriseOne: The Complete Reference
Many organizations choose to implement a follow-the-sun support organizational structure. This is where there are two or three primary support locations with the centralized support occurring and rolling over to the next site based on time. With this type of support structure, if someone in North America had an issue at 2:00 A.M., they would still receive their support from overseas instead of the North American competency center. A follow-the-sun structure provides a couple of benefits in that your organization is not trying for 24/7 support architectures. However, there are additional complexities in that you now need multiple sites where all of the pertinent languages are spoken and that have access to the remote control tools necessary to provide both application and technical support.
Interoperability and EnterpriseOne
Many companies are interested in EnterpriseOne interoperability. The first question that needs to be addressed with regard to this topic is exactly what is meant by interoperability. Is it the ability of a hardware platform to talk to another? Yes! Is it the ability to share information between one OS and another? Yes! Is it the ability to share data between one application and another? Yes! Actually, interoperability is all of these and can be easily defined as the ability of an application to share and communicate data between differing applications, regardless of hardware platform. This can occur intra-company (different applications run by the same company) or inter-company (between two different companies).
Electronic Data Interchange (EDI) Is EDI dead? Within the industry, EDI is the longest-running and most widely accepted attempt at intra-company interoperability, and it is still a viable option, especially when properly configured. However, it definitely isn’t the latest or coolest attempt on the block to communicate electronic data between sites. So why doesn’t everyone do it? Simply, no one within the industry could create a universally accepted set of rules regarding what data elements, in what order, with what characteristics comprised a transaction set. The complexity of getting two dissimilar systems from two different organizations to talk to each other is hard enough. It becomes significantly worse when you use different rules for each organization. JD Edwards EnterpriseOne supports many of the more common EDI transaction sets, and the following sections will explain how this process works. As is often the case, it is helpful when working with EnterpriseOne to have a concrete example illustrating how something is done, and this is certainly true with EDI transactions. Consequently, we are going to illustrate an example of 850 purchase orders on the following pages. Due to space constraints, we will not cover every possible EDI transaction within EnterpriseOne.
Appendix A:
The EnterpriseOne Implementation
845
The 850 Outbound To create the 850 outbound transactions with the EnterpriseOne product, it is helpful to understand a little bit about the EnterpriseOne product as a whole and which tables are used based on system code. Purchase orders are used to request products from an internal or external vendor. They are typically generated from sales orders or from stock resupply criteria and often have a series of lines of detail (for example, most organizations don’t create new purchase orders for each individual item; rather, they order all of the goods from a specific vendor on the same order). Within EnterpriseOne, the purchase order information resides in the F43 series of tables. The question that needs to be asked is, how does EnterpriseOne get the information from the relational database into a format that can be easily shipped to other organizations? EnterpriseOne EDI uses a series of tables (the F47 series) as an in-between buffer zone. The problem is getting information from the F43 series tables to the F47 series tables and from the F47 series tables into a format that is easily transferable between dissimilar systems. Once you have a process for this, you can work a reverse process for bringing information back in the system. Still, before we move on, let’s make sure that we have fully addressed the issues and determined logical resolutions for them. If you take records out of the F43 series tables and copy them into the F47 series tables, how do you determine which records to copy? What about records that have already been copied? Once you have these records in the F47 series tables, how do you get them into a format that can easily be transferred from one company to the next? How do you know which records you’ve already shipped from the F47 series tables? Extracting EDI Purchase Orders When you set up purchase orders within EnterpriseOne, you will run across the Purchase Order Print UBE (R43500). One of the shipped versions of this UBE is specifically designed to copy records from the F4301 and F4311 (purchase order header and detail tables) to the F47016, F470161, F47017, F470171, and F4706 tables. This UBE (refer to Figure A-9) selects records from the 43 series tables based on various selection criteria, including purchase order status and vendor. This allows you to customize your particular solution. Some clients want all of their purchase orders to run via EDI, although others only have EDI agreements with specific vendors. You have the ability (using the R43500) to specify which records are extracted. It also gives you the ability to set it up to automatically advance the line status. Using this technique, you can ensure that you don’t order the same thing twice. EDI Purchase Order Extraction Conversion Once you have populated the F47016 and F47017 tables, you are ready to convert the information from your relational database to a flat file (this is the file format normally used to transfer EDI data from one organization to the next). To do this, you should run the R47012C (EDI Purchase Order Extraction Conversion) UBE. This UBE is designed to pull the data out of your relational tables (the F47016, F470161, F47017, and F470171 in particular) and generate a flat file in a specified location.
846
JD Edwards EnterpriseOne: The Complete Reference
FIGURE A-9. Purchase order print
NOTE You can use Universal Naming Convention (UNC) when specifying the location for the flat-file placement. This provides you with significant flexibility within your own system to create a solution that works for you. As an example, your enterprise and application servers may have enough disk I/O that you wouldn’t want to have to continually create flat files on them. As part of your solution, you could have these files automatically pushed to a server designated for this purpose.
Appendix A:
FIGURE A-10.
The EnterpriseOne Implementation
847
EDI purchase order extraction conversion
You would normally create multiple copies of this UBE—one for each vendor that you worked with either regularly or irregularly—and then change the data selections to only pick records associated with that vendor (see Figure A-10). This can be easily done by using the vendor’s address number as part of the selection criteria. You will also note that there is a selection pulling records that do not contain a Y in the Successfully Sent field (SYEDSP column). When records are extracted from the F43 series tables, no value is entered into the EDSP (EDI – Successfully Processed) field. Because of this data selection, you ensure that you don’t pick up records that have already been updated. The PDF output shows a blank page instead of readable output; however, the generated flat file contains EDI purchase order information in an EDI X.12 format like the records in the following example. "H","000000000000000000001.0000000000","00001","000000000000000100000 .0000000000 ","PO","00000000000000000000000000000000","850 "," ","0/0/00","S","00000000000000000000000000000000"," ","9000 ","
848
JD Edwards EnterpriseOne: The Complete Reference
","00","00001","000000000000000004700.0000000000","OZ","000"," 30"," "," "," "," "," "," ","000000000000000004341.0000000000","0000 00000000000006031.0000000000","6/15/05", "6/1/05","6/15/05","6/15/05","0/0/00","0/0/00","0/0/00","0/0/00","0/0/0 0"," "," "," "," "," "," ", " "," "," "," "," "," "," "," "," ","00000000000000000000000000000000"," "," "," "," ","00000000000000000000000000000000","000000000000000000000000000000 00"," "," "," "," "," "," ","00000000000000000000000009000.00","00000000000000000000000000000000 "," ","KG","M3"," "," "," "," "," ","N"," "," "," "," ","00000000000000000000000000000000","F","FRF","000000000000000000 000.1751000000 "," ","00000000000000000000000051399.20","DEMODATA "," "," ","0/0/00","00000000000000000000000000000000","0000000000000000000000 0000000000"," "," ","DEMO ","ER43500 ","TN06DN12 ","5/7/97","000000000000000161034.0000000000" "D","000000000000000000001.0000000000","00001","000000000000000100000.0 000000000", "PO","000000000000000000001.0000000000","850 "," ","0/0/00","S","00000000000000000000000000000000"," ","9000 "," ","00001","000000000000000004700.0000000000","OZ","000","000000000000 000000001.00 00000000"," 30","00001"," "," "," ","0000000000000 0000000000000000000"," "," "," ","00000000000000000000000000000000"," ","00000000000000000000000000000000","000000000000000004341.00000000 00","000000000000000006031.0000000000","7/15/05","6/1/05","7/15/05","7/ 15/05","0/0/00","0/0/00","0/0/ 00","0/0/00","0/0/00","0/0/00","6/1/05","000000000000000000000000000000 00"," "," ","000000000000000060062.0000000000","2001 ","2001 "," "," "," "," "," ","00000000000000000000000000000000","000000000000000000000000000000 00","Cro-Moly Frame, Red "," ","
Appendix A:
The EnterpriseOne Implementation
849
S ","230","220"," "," "," "," "," "," "," "," "," ","200"," ","EA","000000000000000000030.0000000000","00000000000000000000000000 000000","00 0000000000000000030.0000000000","00000000000000000000000000000000","00 000000000 000000000000000000000","00000000000000000000000000000000"," ","000000000000000000200.0000000000","00000000000000000000000006000.00 ","00000000 000000000000000000000000","00000000000000000000000006000.00","00000000 000000000 000000000000000","00000000000000000000000000000000","00000000000000000 000000000 000000","00000000000000000000000000000000"," ","000000000000000000200.0000000000","00000000000000000000000006000.00 "," "," "," "," "," "," "," ","000000000000000000001.0000000 000"," ","N"," "," "," "," "," "," "," ","N"," "," "," ","00000000000000000000000000000000","00000000000000000000000000000000 "," "," "," "," ","EA","000000000000000000030.0000000000","EA","000000000000000000030. 0000000000 ","EA","00000000000000000000000000000000","OZ","0000000000000000000000 000000000 0"," ","IN30","00000000000000000000000000000000","0000000000000000000000000 0000000"," "," "," "," ","00000000000000000000000000000000"," "," "," "," "," "," "," "," "," "," ","00000 000000000000000000000000000"," "," "," "," "," "," "," "," "," "," ","N"," "," "," "," "," "," ","00000000000000000000000000000000"," ","00000000000000000000000000000000","00000000000000000000000000000000 ","FRF","0 00000000000000000000.1751000000","000000000000000001142.2045000000","0 0000000000 000000000000000000000","00000000000000000000000000000000","00000000000 000000000 000034266.14","00000000000000000000000000000000","00000000000000000000 000034266. 14","00000000000000000000000000000000","
850
JD Edwards EnterpriseOne: The Complete Reference
","0/0/00","00000000000000000000000000000000","0000000000000000000000 0000000000", " ","DEMODATA ","DEMO ","ER43500 ","TN06DN12 ","5/7/97","000000000000000161034.0000000000"
Although this may not mean much to you, it contains a single header line with a single detail line from a purchase order in the EDI X.12 format. With this output and the EDI translator of your choice (for example, Sterling, Harbingers, and so on), you are able to map your purchase order to your vendor’s data mapping. Once the resulting file has been picked up and translated by the EDI translation software, it is automatically transmitted to the vendor. The EnterpriseOne process for outbound 850 transactions, however, is not complete. Updating Files as Sent The final step (after flat-file conversion) that needs to occur from the EnterpriseOne side is updating the records in the F47016 and F47017 tables as sent. This needs to be done to ensure that the next time the R47012C is run it doesn’t pick up records already shipped. You can choose to update all records in these tables, or you can add a data selection corresponding to the flat-file creation process. We’ve seen either of these strategies work. As for what would be best for you, this is based on the regularity of the process and how much control your company needs. You should run the R47017 (EDI Purchase Order Update as Sent) UBE to update the records in the F47016 and F47017 tables. By default, the UBE automatically updates all records in the EDI purchase order tables that have a blank in the EDSP column to a Y. The next time that the R47012C is run, it will automatically skip the marked records. Automating the EDI Process In an outbound EDI scenario with EnterpriseOne, your organization will need to run three separate UBEs per EDI pass. On the inbound, there are two more UBEs required. If you choose to perform this every 15 minutes, you can quickly see the complexity required to successfully complete it—especially considering timing. Although you can automate the submission of UBEs on the enterprise or application server (see more on the EnterpriseOne Scheduler in Chapter 12), you will still have issues surrounding processes that don’t complete on time or that end in error. To help automate this process, we recommend that you customize the UBEs themselves by linking them with the Report Interconnect option in the End section of the RDA Event Rules (see the following illustration).
Appendix A:
The EnterpriseOne Implementation
851
Notice that the modification allowing the reports interconnect is performed using event rules and is able to specify the exact versions to call. This allows you to perform vendor-specific version setup within your EDI strategies (this is a must for most organizations). Also, note that we chose to put the UBE call prior to the last End If of the End section and that we decided to allow only asynchronous processing. This will ensure that the last function of the prior UBE is launching the next UBE and that the entire process will complete simultaneously. (For more information on modifying UBEs, refer to Oracle’s documentation.) Another option with the UBE processes is to make the R43500 a subsystem (continually running on the server in the background looking for appropriate records to process), and then link and schedule the EDI-specific UBEs on a more regular pattern. Although both of these are options (and yes, you could perform a combination of the two), you can leverage your implementation partner in helping you decide which option is best for your specific business needs.
852
JD Edwards EnterpriseOne: The Complete Reference
Interfaces and Integration JD Edwards EnterpriseOne provides several robust interfaces and integration points to numerous third-party products, including Siebel, Numetrix, Cognos, Maximo, SynQuest, and so on. There are a variety of different mechanisms available for developing interfaces (both two-way and one-way data interchanges) within the product. There are also methods of interfacing products to JD Edwards EnterpriseOne that are not supported by Oracle itself and consequently should be performed with caution. Regardless of the mechanism you’ve chosen to implement with regard to interfacing and third-party integrations, a key to successful implementation is the testing process associated with the project itself. Any time data is either brought into or copied from EnterpriseOne, a robust testing process should be put in place to ensure bytes in equal bytes out and vice versa. ■
Batch interfaces/Z file integration
■
API calls (also known as master business functions)
■
Flat-file conversions
■
Database triggers
■
External programming with the programming tools of your choice
■
Service-Oriented Architecture (SOA) (see Chapter 1)
■
Fusion middleware
Batch Interfaces/Z File Integration What is a Z file and why does it intrude upon the implementation process? Initial loads of data or interfacing your new, bright, shiny ERP open architecture system to your old legacy system is part of 95 percent of all EnterpriseOne implementations. The data conversions might be nothing more than transferring inventories and accounts receivables to the newly implemented modules. Then again, it might be an interface able to read data directly from the legacy system into EnterpriseOne. Regardless of your business-dictated scope of project, the odds are that you will either work with or at least contemplate working with the JD Edwards Z files. These are specially designed tables for loading data from external sources. Oracle has created batch processes to take data from the Z files and populate all of the appropriate EnterpriseOne tables. In addition to mere population, the information is also validated and posted correctly within the EnterpriseOne system itself during this process.
Appendix A:
The EnterpriseOne Implementation
853
API Calls EnterpriseOne provides a series of published APIs (application program interfaces) available for direct connections. The advantage to using EnterpriseOne APIs (as opposed to non-EnterpriseOne methodologies) is that these APIs use the same master business functions (MBFs) as normal EnterpriseOne applications. This ensures that the data coming in conforms to EnterpriseOne standards and formats and is run through all of the appropriate checks, and modifies all of the appropriate tables for whichever function you are trying to perform. However, when inexperienced programmers call EnterpriseOne APIs, we have seen issues of revolving data loops that ultimately bring the database to its knees. This is not so much a concern for the experienced programmer, and even the inexperienced quickly learn the tricks necessary to ensure that this doesn’t occur often. Still, it is something worth mentioning. The only other concern to using published APIs is where Oracle decides to modify the MBFs (this occurs with updates, upgrades, and possibly with ESUs). When this occurs, your organization will need to test your interface designs (to include data integrity) prior to rolling the change out to the production environment. Though this is a common practice for update and upgrades, the introduction of the ESU in 1999 added an additional point where this might be needed.
Flat-File Conversions EnterpriseOne has also long held the capability to pull information from commadelimited files maintained on workstations. EnterpriseOne contains a tool (P47002 – Flat File Cross-Reference) that details the majority of built-in flat-file functionality. From the name of this application alone, you can deduce that it is related to EDI (now the primary use for flat files; see Figure A-11).
Database Triggers Database triggers are a very quick method of achieving EnterpriseOne interoperability (especially when used between dissimilar applications). However, the speed of achieving this solution carries with it certain opportunities that need to be taken into consideration prior to your complete reliance on this methodology. First, database triggers do not use the JD Edwards middleware. On the database level, going from Oracle to Oracle is very simplistic, but going from Oracle to DB2/400 will require substantial programming or the introduction of a third-party middleware product to facilitate. Obviously, this introduces additional complexity to the solution. Second, EnterpriseOne does not use database triggers from an application standpoint. The rationale behind this programmatic solution is that each of the three primarily supported databases (MS SQL Server, Oracle, DB2/400) uses triggers differently. Because JD Edwards uses all three database platforms, they had to also support the lowest common denominator. This affects your interoperability operations in that you can’t update a single table within the EnterpriseOne suite and
854
JD Edwards EnterpriseOne: The Complete Reference
FIGURE A-11. Flat File Cross-Reference window have the associated tables automatically update. If you are going to use triggers to assist with interfacing different applications, you need to have a robust understanding of every associated EnterpriseOne table and other associated application. Finally, Oracle traditionally will not support interface data integrity when the interface is done via database triggers. The triggers themselves don’t go through APIs/MBF, and there is no validation from the JD Edwards EnterpriseOne standpoint. EnterpriseOne doesn’t even know that the additional data is in the database tables (obviously it will find the data, but it didn’t go through any of the business logic or design applied to the EnterpriseOne suite of products).
External Programming This is another non-EnterpriseOne method of either initially loading data or interfacing different applications with the same pros and cons associated with database triggers. The differential is the tool used to make the work happen.
Appendix A:
The EnterpriseOne Implementation
855
Many organizations, however, insist that external programming is a quick, efficient method of completing this type of work. Our recommendation is that you pick the method best suited to your particular business requirements and know the risks associated with that decision.
e-Opportunities One of the largest developmental growth areas within the EnterpriseOne product is its e-business capabilities. What is nice about the way Oracle handles its e-offering is that it is based on the same specifications as its normal C code. This means that there is no additional coding necessary to complete this offering. Rather, the Java or HTML code is based on the existing and modified code in your system. As with any other e-product, the web-based EnterpriseOne uses servers instead of fat clients to do all of the work. As of EnterpriseOne XE (B733 cumulative 3), the EnterpriseOne web offering is 100 percent and is designed for speed and scalability. With EnterpriseOne 8.9, the product is now HTML based. Earlier versions of the EnterpriseOne web product contained deficiencies in the manner in which they handled certain form types (there are seven form types defined in the EnterpriseOne suite of products—for more information on them, refer to JD Edwards EnterpriseOne Developer’s Guide, published by McGraw-Hill). The EnterpriseOne XE product contains redesigns that greatly improve the ability of the product to return information in a timely manner. The completion of the EnterpriseOne web offering provides additional benefits to the company that is striving to increase the interoperability of their systems. Not only does it provide easy access to a host of published APIs, but it also provides direct access for any client on the Web based on the agreement of the two organizations. And not only has Oracle enhanced the JD Edwards EnterpriseOne offering, but they have also added self-service applications to the World product for employees and vendors. A more recent development is the use of Oracle’s Fusion middleware, which allows direct calls to the JD Edwards EnterpriseOne business functions, thus allowing for SOA architecture as discussed in Chapter 1.
In Conclusion
As you have probably surmised as you read through this section, the implementation of EnterpriseOne is not something to go about haphazardly or without a plan. To sum it up: ■
Select the right software Hopefully, that’s Oracle’s JD Edwards EnterpriseOne. However, be sure that what you have selected is a fit for your business and meets your organization’s goals. Be sure that all signs point to your choice being the right move.
856
JD Edwards EnterpriseOne: The Complete Reference
■
Know what you are contracting for You are not buying a product—you are licensing it. You will need to contract for consultants and be sure you know what you are getting.
■
Understand the technology implementation go-live, support, support.
■
Install the software running.
■
Make the most of your solution Now comes the hard part. Flipping all the switches and making the decisions on how your business runs and proving you have it set up correctly is the key to making the most of your purchase.
■
Train, Train, Train Make sure your staff knows what to do during the project and when you turn on the system. The best solutions use a variety of methods to best reach all audiences, and UPK is a tool you should consider.
■
Control your updates Putting together a plan on how to promote changes in your software is a key to deploying solutions. Your CNC administrator is the key.
■
Be ready to go Be ready to turn the system on; this is not the end, but a new beginning.
■
Maintain your value Staying up to date is like changing the air filter in your home air conditioner. Without the proper maintenance, the repairs will be expensive. Keep it going, keep it fresh.
■
Travel the world Languages, currency, and taxes. There is so much more to do when you are multinational; however, EnterpriseOne and good planning can handle it.
■
Be outgoing Get to know the capabilities of EnterpriseOne to share and communicate data with differing applications, regardless of hardware platform. Your life will become easier the more you know.
We’ll see you out there!
Plan, install, train, model,
Buy the right equipment and get the system up and
APPENDIX
B
Offshore, Near-shore, and Remote Development 857
858
JD Edwards EnterpriseOne: The Complete Reference
Are Managed Services Right for You? The Question of Outsourcing
Many business strategists today tell their leadership it is essential that organizations concentrate on core competencies—they believe that any skill not directly attributable to the core of the business should be shunted to other organizations that have that specific core competency as a primary part of their value-added delivery. In essence, they believe that any skill (HR, IT, financial, and so on) that doesn’t directly contribute to the company’s bottom line is extraneous and subject to consolidation and outsourcing or what is commonly referred to as managed services. The goals are to ■
Focus on what the business knows
■
Let others focus on the areas you don’t know
■
Increase the cost-effectiveness of these services
■
Reduce the overall costs to the organization
There are a multitude of organizations large and small that have jumped on the outsourcing bandwagon, and a slew of CIOs and CFOs that have become known as people able to effectively outsource the organization’s information technology and other “administrative” functions. So, are managed services right for you? Whether or not you believe in this trend and what it encompasses is not the point. We believe that this appendix contains some useful nuggets that you can leverage in your day-to-day activities surrounding whether and how to use managed services for your development activities, technology activities, application support, system hosting, and maintenance contracts. As organizations are under increased stress to show ever-higher profitability, the use of managed services is a strategy that few board members are willing to discount. In this appendix, we will spend some time understanding the use of managed services for your company and the pros and cons of the possible solutions.
The Basics of Managed Services
Though everyone understands that organizations consider managed services for various reasons, few people actually understand the financial rationale that takes large and small companies through a managed services assessment (and indeed, the rationale is different based on your company’s goals and size). To thoroughly understand the financial implications associated with managed services, you have
Appendix B:
Offshore, Near-shore, and Remote Development
859
to first set down some basic tenets. Mind you, if you don’t buy into these basic rules, managed services may not be a fit for your organization’s near- or long-term strategies. Additionally, even if you do agree with the basics of managed services, it still might not be in your organization’s best interest to use managed services for what IT people like to call “your company’s lifeblood.”
Ten Simple Rules of Managed Services When considering managed services for your information technology group or any part thereof (yes, even the development), keep in mind these basic ideas. As long as you go in knowing both what to expect and what you are agreeing to, using managed services for part or all of your IT can be effective and profitable. We have developed what we call the “Ten Simple Rules of Managed Services.” 1. Third-party vendors won’t know your business as well as internal resources do. 2. Third-party managed services providers are in it to make money. 3. Intellectual property may no longer be yours. 4. You can’t put everything in the managed services contract. 5. Once you’ve signed the contract, the balance of power shifts. 6. Provide an exit strategy in the managed services contract. 7. Plan, implement, measure; plan, implement, measure. 8. Much of IT really has become a commodity. 9. You can’t know it all. 10. Managed services is not for the faint of heart; it’s hard work.
Rule 1: Third-Party Vendors Won’t Know Your Business as Well as Internal Resources Do When you replace your IT department or part of its function with managed services, you have to understand and agree that an intimate understanding of your company is not essential (long-term) to effectively running your organization’s IT space. Whether managed services is a part or the whole, you have to understand that over time, your IT provider will lose valuable business information as your original staff members leave, have their attention and responsibilities split, or simply don’t work as closely with the business as they did in the past. The reality is that these people will now work for another company, and often, working hand in hand with your business is not part of the contract.
860
JD Edwards EnterpriseOne: The Complete Reference
Now, many of the proponents of managed services will undoubtedly object to this simple statement, but it is true nonetheless. Does this mean that you will immediately lose all IT knowledge not only of your systems but of your business? No; however, it does mean that there is a new risk you accept as part of your business strategy. Understanding the risks allows you to not only put a risk strategy into place that monitors the key performance indicators (KPIs) associated with specific risks, but also to have a proactive risk mitigation strategy designed to address when your service level agreements (SLAs) are not met (see “Understanding Risk” later in this appendix).
Rule 2: Third-Party Managed Service Providers Are in It to Make Money You must accept that your IT organization will no longer be as concerned about your company success or failure as they once were. For the large company that moves their entire IT staff to the new organization, surely that IT group will continue to truly be motivated by your best interest (after all, some of those people have faithfully worked for your company for years), right? No! As a matter of fact, as soon as you’ve transferred your IT personnel assets to a third-party provider, there is an immediate conflict of interest that will undoubtedly cause key personnel to seek other opportunities with other organizations. They will undoubtedly want your company to do well; however, no matter how you slice it, the third-party managed services provider intends on making a profit. As such, the managed services provider may ■
Reduce the size of the staff supporting your organization
■
Use less skilled and hence less costly resources to support you
■
Be more tolerant of wrong answers or errors in response to your issues
This last statement may require further explanation. In a situation where your managed services agreement is based on time spent on your activities, making mistakes, even when they are costly to your organization, can in fact be a money maker for them, and that is the rub of the conflict of interest. Doing things two or three times costs your organization valuable time and money while further enriching the third-party managed services provider. As for the small company, often this is significantly worse because smaller companies tend to have more knowledge (business and system both) concentrated in fewer individuals. The loss of any one of them can be crippling, especially if your systems are poorly documented.
Appendix B:
Offshore, Near-shore, and Remote Development
861
Rule 3: Intellectual Property May No Longer Be Yours You have to accept that you will lose some if not all of your intellectual property (this refers specifically to business systems intellectual property [IP]) to the thirdparty service provider when using managed services for part or all of your IT functions. In fact, losing some of your IP should be one of your goals if you want to successfully use managed services. By literally selling your intellectual property (business and system) to the vendor, you will ensure that they are competent, day one, to help you run your business. Although many first-class organizations seek to retain much of their IT IP, in order to do so, they will lose some of the potential savings by having dual staffing requirements (staff on the service-provider side and staff on the organization’s part) as they try to retain and maintain it. One of the questions that you should consider when outsourcing is: what is your IT IP worth? Is your vendor paying your company what this asset is worth (and indeed, think what it provides your organization today—it is definitely an asset of the organization)? You should consider this when selling your resources to your service provider. Traditionally these payments can be made in the form of guaranteed savings and associated with the managed services deal over time.
Rule 4: You Can’t Put Everything in the Managed Services Contract One of the ways that third-party managed services providers make money is by being able to charge your organization for things you didn’t originally include in the contract. The managed services providers will work to narrow the scope of what you are receiving throughout the negotiation period. Does maintaining the Windows platform include adding security fixes? If so, is there agreement how often this will occur? What about service packs? Are you going to be charged extra for adding additional users? And these questions can be multiplied many times over when dealing with more complex enterprise-wide systems like EnterpriseOne. It is inherently in the best interest of the managed services provider to limit what services and activities they perform for the set fee and to charge for any service not explicitly defined. Managed services providers normally limit their requirements through a service definition. Regardless as to whether you are going to use managed services for your complete IT activities or just a portion of them, one of your largest concerns and points to clarify prior to signing a contract is the definition of services provided. NOTE When outsourcing your EnterpriseOne development effort, remember to include support from the development team for testing, time lines to address identified issues, hyper-support for the production go-live, and warranty time for the changes after go-live.
862
JD Edwards EnterpriseOne: The Complete Reference
When you outsource coding EnterpriseOne changes to a third-party provider, what type of warranty does it come with—any? If you get a 90-day warranty (hard to come by in today’s environment), when does the 90 days begin? Does it begin when the code is delivered? If so, the warranty might not even see the code into production depending on your release and testing cycles. What type of recourse do you have when you find an error six months later? Sure, the service provider will gladly fix it for a price, but will that price also include having to get one of their people back up to speed on the change itself? (After all, the people who originally made the change are working on other things now—and sure, they documented everything, but there is a still a ramp-up period that you will likely have to pay for.) And, depending on whether your provider has been acquired, you may not have any real information to fall back on when it is time to fix it. Some organizations, when contemplating and defining their outsourcing strategy, will actually consider creating a list of what the managed services provider is not responsible for doing as opposed to what they are responsible for doing. In essence, you are defining what is not in scope instead of what is in scope. The benefit of this type of managed services strategy is that it ensures that the managed services provider is not able to “nickel and dime” your organization with a slew of tasks you felt were obvious but that weren’t included as “in-scope” activities. If a support activity is not specifically listed as “not in scope,” the managed services provider has to perform the activity at no additional charge. This may be hard to position as the managed services provider will obviously push back; however, it provides a point of negotiation to come to an amicable way of working out such issues after the contract is signed.
Rule 5: Once You’ve Signed the Contract, the Balance of Power Shifts When you first begin to research your managed services options, as a customer you hold all of the proverbial cards. During this phase of the assessment exercise, the managed services provider tends to be very compliant with the wishes of your organization. After all, if they are in any way reluctant, you certainly won’t award them your business. During the negotiations, there is a subtle shift in the balance. By now, they know that they are your preferred vendor. Though they still have to make you happy, they will become more forceful in pushing their own agenda during this stage of the process. Your best goal during negotiations is to keep from making major mistakes that will put your organization into serious jeopardy. You can mitigate the risk during this phase by contracting with a firm that specializes in managed services contracts. Though expensive, these specialty firms are worth their weight in gold when it comes time to successfully negotiate your organization’s IT future for the next three to five years. Once final contracts are signed, the power tips further from your organization to the managed services provider. You have officially handed your company’s IT future
Appendix B:
Offshore, Near-shore, and Remote Development
863
to another company. If you have successfully negotiated this contract, your company’s future could be brighter, more cost-efficient, and streamlined, concentrating on core business, as opposed to being inundated with maintaining nonessential functions. If not, you may find yourself in an untenable situation, which could be more costly than when you had your own IT department and more troublesome to your management.
Rule 6: Provide an Exit Strategy in the Managed Services Contract There are many ways in which the managed services provider can discourage you from breaking the contract while taking advantage of the ability to charge you for additional services not defined during the negotiation phase. Some managed services providers will move your hardware to different data centers within their networks. To your company, there is no easy way to re-establish your own data center because of the spread. Other managed services providers will do the same thing to your personnel. When you are planning to use managed services for some or all of your IT, be sure that you have stipulations within your contract that keep your hardware and people centrally located, allow you to cancel the contract, and provide a means for you to re-establish ownership of your data, program code, hardware, and people. This will make breaking the contract with the service provider easier in the event that you are dissatisfied with their service or when it comes time to renegotiate an extension to the contract at its expiration. It also allows for an easier transition should you choose a different managed services provider or if you decide to bring the activities back in-house.
Rule 7: Plan, Implement, Measure; Plan, Implement, Measure Though Rule 7 sounds repetitious (plan, implement, measure; plan, implement, measure), it really is the basis of successfully overseeing a managed services agreement for parts of your IT services. When you start looking to leverage managed services, planning the work, implementing the plan, and measuring your results is an essential process to ensure that you will successfully deliver this IT solution. Remember, it is iterative. When things go wrong, don’t be afraid to make changes. When you change your plan, ensure that your measurements are still valid. If they are, use them to ensure that the new direction is working for the company. If these measurements are not valid, change them to ones that more closely align with what you’re trying to achieve. One of the things to remember during this is the seven P’s: Proper Prior Planning Probably Prevents Poor Performance.
Rule 8: Much of IT Really Has Become a Commodity Is the science for managing a great communications network different for a manufacturing company as opposed to a logistics company? Aren’t the basic tasks
864
JD Edwards EnterpriseOne: The Complete Reference
the same: network should be available, have minimal latency, be resilient against external attack, have a security schema, and so on? Are the tasks associated with maintaining your systems really all that different? What about the applications— though there may be different applications in use, the principles surrounding application maintenance, help desk, and tier 1 and 2 supports are much the same regardless of the business. Having an IT organization that understands your business really benefits an organization when the IT staff is actively leveraged for the company’s success. One of the questions that should be asked at all layers of the IT organization is how the IT department is going to help decrease the cost of operating the company while simultaneously increasing its productivity and market share. After all, you ask those questions of your business units. Why wouldn’t you ask the same of your IT group or your managed services provider?
Rule 9: You Can’t Know It All Though it sounds strange, you simply can’t plan it all, know it all, anticipate it all, or create the perfect plan. The reality is that you will make mistakes and hopefully you will learn from them. One item you can pursue that will limit your liability when considering a managed services strategy is to bring in a specialist. Though this has been mentioned before (specifically surrounding the contracts), the entire managed services program could use expert assistance. You can contract with companies that will come in and review your managed services plan, validate your return on investment (ROI), make recommendations for your KPI and measurements methodology, and in general assist your organization and minimize the liabilities associated with doing it yourself for the first time.
Rule 10: Managed Services Is Not for the Faint of Heart; It Is Hard Work We intentionally left this for the final rule because it is true regardless of the level of managed services you’ve chosen to implement. As an example, you decide to outsource much of your implementation to a systems integration provider. They come on site and begin working with various members of various business units to define and scope your implementation. Without your continuous participation, they will quickly implement something other than what was agreed at the board level. After all, each of the business units has their own agendas. The only way that you can ensure that the work done is consistent with the original plan is to conduct review after review—which uses more of your and your staff’s time. Even after the solution has been rolled out, you will need to monitor performance and provide a liaison to the managed services provider. Your oversight will always remain critical to the success of this initiative.
Appendix B:
Offshore, Near-shore, and Remote Development
865
Now let’s look at a smaller managed-services piece of work. You’ve just decided to offload some work for a new service you plan on providing to your business units. Your people create detailed functional and technical specification—surely anyone could code something that well defined, right? Unfortunately, you might have language barriers that you have to overcome. You quickly find yourself staying at the office until 10 P.M. because you have calls from the other side of the world starting their day and a need to ensure they understand what they need to do. Then you find yourself getting up early so that you can check in before they have quit for the day. Before you know it, you are working 70- and 80-hour weeks (and that doesn’t include the weekend—remember, when you’re asleep, work can be done on the other side of the world—third-party providers use this as one of the advantages to offshore work). Some organizations seek to make this easier for you by putting some of their offshore people on shore. Don’t worry about coordinating the offshore resources; this can be done with the service provider’s onshore personnel. Of course, when you’re looking at this option, you don’t realize that (1) there is still the language barrier; (2) you’ve now asked a third-party vendor to not only manage itself but also to police their own people; and (3) the cost of the offshore resources on shore make those resources more expensive than your internal resources were originally.
Quick Case Study A company paid a service provider to modify some of a package’s code to fit their business requirements (we could discuss the wisdom of this at length but won’t at this time). Shortly after completion, the service provider was purchased by a much larger software manufacturer. A year and a half later, when the company found a bug in the software associated with the original functional requirements (functionality simply not used to that point and obviously missed during functional and acceptance testing), the large software manufacturer claimed that it was a custom installation and that they couldn’t support it. When the business organization argued that the software vendor had made the original changes, the provider was reluctant to even facilitate consulting surrounding it. Apparently the original developers didn’t document the software modifications well and were no longer with the new software company. Obviously we can pull a couple of very quick lessons from this case for outsourcing your package development. First, you have to acquire and maintain the intellectual capital associated with any change you make to your package. This can be in the form of functional, technical, and system appreciation documents, knowledge transfer, or other methods of getting this information from your vendor into your internal resources. Second, ensure that you fully test all functional/technical requirements (not just the ones that will be immediately used) when you receive your modification. The best method to ensure that this occurs is to properly plan your testing at the beginning of the development effort. The easiest method to follow is
866
JD Edwards EnterpriseOne: The Complete Reference
a traditional V-testing methodology with functional requirements as defined in the business requirements generating the test cases for user acceptance testing.
Managed Services Strategy
Now that we have talked about the basics and the Ten Simple Rules of Managed Services, it’s time to discuss your company’s managed services strategy. What are the goals of your organization as it is related to IT? Do you want to look at moving out of the IT business and handing these responsibilities over to a managed services provider? Exactly what IT functions do you want to move out of your organization? From an ERP perspective, this appendix focuses on five areas: ■
Development activities
■
Technology activities
■
Application support
■
Hosting of your system
■
Maintenance contracts
However, it should be noted that a managed services strategy may need to be expanded well beyond just your ERP solution. Such areas as peripheral systems, network support, intranet and Internet applications, printers, common knowledge management storage devices, training platforms, help desks, and other core systems, which may not even be tied in to your ERP solution, should also be considered. To limit the discussion, however, we are going to focus on just the five areas we mentioned.
Managed Services – Development Activities When you have determined that you want to leverage lower-cost resources in order to bring the overall financial implications of your IT department or implementation down, you have several options from which to choose. Each of these choices carries with it both pros and cons and each can be mixed and matched to create the best situation for your organization. When you look at the opportunities facing you today, you can outsource a series of “non-value-add” functions in your organization including financial management, information technologies, and even human resources. Much of the attitudes of today surrounding third-party managed services vendors can be traced back to the long history of companies like ADP and Accountemps. However, managed services of development activities didn’t really gain in popularity until the Year 2000 (Y2K) issues of the late 1990s and early 2000s.
Appendix B:
Offshore, Near-shore, and Remote Development
867
DEFINITION Y2K issues primarily surrounded the concern that applications would cease to function because of the year 2000. Before 2000, many applications used by major service providers (banks, utility companies, and so on) were written with a twodigit year differentiator, allowing only 99 years to be successfully recognized. Is the year 10, 2010, or 1910? To fulfill the IT personnel requirements associated with the Y2K concerns, many companies looked to offshore resources and organizations to provide the warm bodies necessary to make the identified computer fixes. These same companies invested heavily in the infrastructure necessary to rapidly communicate between organizations a world away. As an added bonus, these companies recognized the cost savings of having a $25–50/hour programmer as opposed to having a $250– 300/hour resource on site. Once the Y2K issues were resolved, many of the managed services companies began to see a steep decline in their revenue pipelines. Because of this, they began a sales strategy to not only position their people to do the code work, but to outsource call centers, IT service centers, and much of the work for filling out tax reports. The reality is with a relatively cheap workforce that is well educated, you find that you can literally outprice the competition in a variety of fields. From the early 2000s through today, companies in India (the primary birthplace of these organizations) aggressively positioned themselves to provide real benefits to their customers. In general what you get out of these offshore development services provides significant savings above what you would get from onshore services; however, the hours are not a one-for-one match. Normally, you need to provide about a 20 percent uplift in development hours and another 10 percent in coordinating activities from a local onsite resource. So as an example, let’s assume you had an initial effort of 200 hours to complete a development activity with an initial consulting rate of $250 / hour. This puts the original cost at $50,000. Based on use of the offshore model, you are now looking at approximately 240 hours of offshore at $35 / hour and 20 hours of onsite for approximately $13,400, not the $7,000 you might have anticipated. Fees for these kinds of services are normally on a billable hour basis plus any associated expenses.
Managed Services – Technology Activities Technology activities refer to what is commonly known as Configurable Network Computing (CNC). Many companies are finding it difficult to find and retain good
868
JD Edwards EnterpriseOne: The Complete Reference
experienced CNC resources as they have become less available and more in demand, raising their value and the salaries they can command. As a result, there is an increasing trend toward managed services of companies’ technology activities. One of most companies’ more important business requirements is an up-to-date system with 24/7 access. Since most companies cannot maintain a minimum of four to five dedicated resources to cover the system in the event of access issues, the more cost-effective solution is to use a managed services provider who can use these same four to five resources to cover multiple companies’ needs. This reduces your company’s costs while providing that extra level of service required in many company’s businesses today. Now what do you get? Normally your agreement will allow for a certain timeframe for callback and resolution of an issue for administrative matters, such as security issues, logon resets, new user setups, and system monitoring. This may or may not be an issue for your organization. Remember, when you have dedicated resources, they are able to immediately work to solve any issues that your company might encounter. When these resources are owned by another organization, their dedication to your issue may not be as fervent as you might wish. Your agreement will also call for routine maintenance such as regular backups, patch downloads and deployments, and regularly scheduled package builds to deploy new code whether from custom development or from the software provider. What you don’t normally get includes security setup based on reorganizations of personnel, new security group setups, immediate deployment of code or patches, upgrade support, and any other activities not specifically specified. The services are normally priced at a set fee per month based on number of users and path codes to be maintained with additional fees related to the out-of-scope activities noted earlier. One thing to remember when allowing others to maintain your technology solution is that you will need to spend additional time in oversight, increasing the overall cost of the service and decreasing your subsequent savings. You are paying the third party to make system backups. Did they do so? When was the backup tested the last time? Did you test the package build? Did the third-party service provider test it? These types of questions should be considered before moving to one of these managed solutions.
Managed Services – Application Support Application support refers to anything to do with system setup, procedures, and “how to” type issues. This is a task normally handled by your superusers or internal project team after the go-live date and is normally coordinated through a help desk arrangement. In some organizations, the leadership feels that once the project is implemented, the project team should return to the business and the core activities. In this case, where does the common user turn when they have a problem? Who works on the next release of the application? The various ERP applications (and
Appendix B:
Offshore, Near-shore, and Remote Development
869
EnterpriseOne is no exception) tend to be a journey, not a destination. They continue to evolve over time and someone needs to leverage the advantages of a package implementation. Here is a case where managed services providers have found a niche and are stepping in to take on the companies’ non-core activities. If you have implemented or are implementing EnterpriseOne, how many resources do you need to dedicate to supporting the application after Go-Live? Will these individuals actually know the application in depth enough to find ways to address new requirements? Or would you rather, once again, leave this to the experts? A managed services application support team can free your personnel to work on core business activities and provide you with the benefits of more in-depth knowledge at reduced costs. These teams often learn about new features before anyone else and can provide insight to your organization on how to address new business requirements. However, they usually don’t actually update the system for you, but provide advice on how your company can update the system for yourselves. From a pricing arrangement, applications support is often based on a monthly fee with a maximum number of hours associated with each month. Hours required above the maximum number of hours are usually provided at a slightly inflated rate, so as to discourage their use.
Managed Services – Hosting of Your System Another cost in an implementation is the hardware. If you want to reduce the upfront cost in an implementation, one approach is to go with a hosted solution. Not only do you not have to worry about hardware costs and delivery dates, but you might also forego the need to hire a CNC resource. Often, the hosting company will provide these services as part of their contract. Not all managed services companies provide hosting as an option and/or as a solution. Consequentially, you may end up needing to contract with more than one managed services provider or go with a shorter list of possible candidates that can provide both services. In addition, if you take the path of looking at a wider solution set for managed services (including such things as network services, printers, and so on), then the list shrinks even further. However, the advantages of having a single source for all of your managed services can often outweigh the limiting of the choices you have. Finding a true partner for all of your needs can result in more discounts and a fuller relationship with the managed services provider. With that in mind, however, hosting your system further limits your organization’s access to system hardware, software, data, and IP. You have to be willing to give up a bit more control in order to gain the additional benefits. With a hosting solution, look for guaranteed uptime, access availability, and regular maintenance schedules. You also need to plan on a continuing budget for the hosting services and be aware that the only way to get off this solution would be to find another hosting partner or actually buy the hardware yourself. If you move to
870
JD Edwards EnterpriseOne: The Complete Reference
a different hosting partner, you need to be aware of the costs of getting your software and data from the prior host to load on to the new system in addition to the knowledge transfer necessary to adequately support your company’s solutions. Your limitations to immediate support are similar to those already noted in the “Managed Services – Technology Activities” section discussed previously in this appendix. Pricing is often arranged in a similar manner as well, with a monthly retainer for specific services and additional fees related to out-of-scope activities.
Managed Services – Maintenance Contracts Some companies have begun using managed services for maintenance contracts as a substitute for the software vendor. There are managed services providers that will gladly perform this type of activity, and some organizations have even begun specializing in maintenance contracts. As a leader within your organization, you need to determine the benefits to doing this type of managed service. Managed services for maintenance of EnterpriseOne have many of the same pros and cons as listed for outsourcing development as a whole. And, similarly, we would argue that it is a case-by-case scenario justification process. Smaller companies will benefit more from this kind of managed services than larger organizations because they don’t need a full-time administration person in the first place. Some of the disadvantages, however, include getting the work done when you need it done, getting the work done for the original price without a scope creep issue, and keeping knowledgeable resources on your account. Often your provider will either lose the resources that really know your system (or EnterpriseOne for that matter), forcing a constant resource ramp-up time, or will reassign the really knowledgeable resource to another, “more important” client. As an example, should you choose to use a managed services provider for your EnterpriseOne maintenance, you can anticipate saving at least half of your maintenance charges. Although this may seem insignificant, the reality is this can mean hundreds of thousands of dollars saved every year. So, you immediately ask yourself what the downside to managed services for your maintenance is, right? Well, the companies that provide maintenance don’t have access to the source code of EnterpriseOne. If there is an issue associated with this source, there really is nothing that these organizations can do about it. Additionally, when you pay these third-party organizations maintenance, you are no longer able to call Oracle support nor are you able to download patches and other fixes. Where it appears that you had a huge savings, you might find that the savings really weren’t as much as you anticipated and that the cost might have been substantially more on the other side. Oracle charges you a penalty when you drop support and then pick it back up again. Normally this penalty is equivalent to the cost of maintaining the support the entire time plus an additional administrative charge (example: support is $200,000 per year and you drop support for two years—when you are ready to renew support,
Appendix B:
Offshore, Near-shore, and Remote Development
871
the cost will be approximately $440,000). If you find that you need their support in the future, you will find that you’ve actually paid more than you would have had you just maintained Oracle’s support in the first place. Still, we would be remiss in our jobs if we didn’t mention that a huge number of CIOs question the value of paying maintenance to software companies in general. What do you really get for the deal? Access to the support line, access to electronic updates, and access to application improvements are a few of the benefits. What you, as an IT professional, need to decide is whether that is worth the cost.
Pros of Managed Services The pros associated with managed services can usually be summed up in one word—cost. IT support is not something that many company executives today will want to do if there is another more cost-efficient solution available. It is definitely not a core value-adding skill for any organization that isn’t a software designer, developer, and reseller. When you decide to use managed services for your IT, whether using a foreign company or a local software vendor, you gain by not having the resources full time. When you need them, they are available and when the work is over, they can be deployed to someone else’s account. This is definitely a win for your organization and its stakeholders. However, there are other pros beyond just cost. These include the need to address the skills requirements and hiring aspects of the various roles that are not part of your core business activities. By using managed services providers, you shift this responsibility to them. When you need a particular skill, the managed services provider normally has someone on staff to address your needs or has a network to call upon to bring the right skill set to your company. You also don’t have to worry about what to do with these resources when they aren’t busy or the project or tasks are completed.
Cons of Managed Services The biggest con associated with managed services is the loss of intellectual capital and control of your own data, software, and hardware. The reality is that once you allow someone else to perform one of these core IT business functions, you are selling the intellectual capital and self-reliance that many companies have learned to appreciate. Often when you need changes made, no one understands the system well enough to provide the type of detailed assistance that would be necessary without going back to the managed services provider at additional cost. A second con is the ability to reach the required support immediately. Most managed services agreements will have a service level agreement, where issues are addressed within a certain time frame. However, this does not mean you will get immediate response; sometimes as much as 24 to 48 hours may elapse depending on the severity of the issue, and this may cause all kinds of displeasure among your users. In addition, many times managed services are provided by people in different
872
JD Edwards EnterpriseOne: The Complete Reference
time zones where labor costs are lower (for example, India, which is anywhere from 9.5 to 13.5 hours ahead of current time zones in the United States). A third con is language differences. Many managed services providers have service centers in countries where the native language may not be the same as yours, again due to lower labor costs. This provides a barrier in the nuances of the language even if it is only a difference between Great Britain’s English, America’s English, India’s English, and Australia’s English.
The Resources Available via a Managed Services Offering
Managed services providers usually have a whole host of different resource options available to support your company. Depending on your needs, different resource options should be employed. These include (in general these costs increase as you move further down the list): ■
Offshore
■
Near-shore
■
Onshore
■
Remote
■
Onsite
Offshore Traditionally offshore is just that; the host company provides requirements (whether these requirements have detailed technical specifications or not is a subject of debate—many of these managed services companies will take simple requirements and provide detailed technical specifications from that) that are then coded offshore for a fraction of the cost. Although many people immediately think of India as the center of this model, there are countries in Asia and Europe that also play into this equation. For ease of definition, we should define offshore resources as any resource that is across an ocean and doesn’t work directly for your company.
Pros Offshore resources are extremely economical. Often, you can acquire three or four offshore resources for the costs associated with an internal resource, and again, these resources are for a limited time. Once completed, your company is no longer obligated to use these resources, allowing you to flex your workforce based on the needs of the organization.
Appendix B:
Offshore, Near-shore, and Remote Development
873
Cons Often, however, offshore resources have language and productivity issues. We tracked one company that was experimenting with offshore, second-level application support answering a backlog of user issue tickets. When this offshore group was tightly managed by one of the company’s managers, the managed services provider completed a good number of tickets daily. When the group was left to their own devices, the number of tickets dropped significantly. When they were confronted by management, the number of tickets solved went up again. This type of productivity issue is relatively common with offshore managed services. CAUTION Out of sight, out of mind. When the cat’s away, the mice will play. Unfortunately, both of these sayings are relevant when using offshore IT resources. Language barriers will often create issues for full productivity from your offshore resources. We definitely recommend significant due diligence surrounding any work or work product created using offshore managed resources. Though it is often in the same language (such as English), people’s cultural bias and understanding of the language will often cause issues that result in solutions that don’t address your organization’s needs.
Near-shore Because of the issues surrounding having the development resources coding while you were asleep (this is both a benefit and a detriment) and the rapidly increasing costs of offshore managed resources, many companies are now looking into and trying a variation of the offshore model where they still push IT activities to other countries, but they do so using resources in neighboring countries that are simply cheaper due to economic situations. An example of this is where people in the U.S. might leverage IT resources in South America—similar time zones so issues can immediately be addressed; often they are slightly more expensive, while other times they can even be cheaper than the resources offshore (Indian companies are suffering a decrease in economic effectiveness because of an increase in the value of their currency, increasing standards of living for their people, and an increase in competition for a scarcity of human resources). Often, these near-shore resources are more willing to work with your company as opposed to setting a series of artificial requirements around the work performed. In essence, these near-shore resources are often easier to deal with than the offshore resources due to their hunger to tap into this new market and their lack of experience in working under these arrangements.
874
JD Edwards EnterpriseOne: The Complete Reference
Pros The pros associated with near-shore development surround cost yet again. As prices continue to rise in the traditional Indian market, leveraging other countries that are near but not as industrialized can yield substantial cost savings. Adding the aforementioned benefit that the companies are often on similar time zones can provide quality benefits to your company.
Cons Depending upon what country you choose for near-shore development, it can be more costly than offshore and you can have political upheavals or instability as a potential risk associated with this approach. This risk is above and beyond the risks that you would face from offshore including: loss of communication, cultural differences, differences in work ethic, and so on. These risks are not different from risks you might face with an internal resource, but when you choose an internal resource, you have the ability to closely define who does what. When you use a managed services provider, much of your ability to manipulate these factors is diminished.
Onshore When using managed services, you will often hear the term “onshore,” and in truth this phrase can have two very different meanings. To most in the industry, the terms onshore and landed are interchangeable. These refer to an employee of an offshore service provider that is at your site providing assistance with those offshore resources (gathering requirements, translating functional to technical requirements, coordinating work efforts on multiple contents, acting as a liaison between the developers and the user community, bridging language barriers, and so on). Onshore can also refer to any resource (management, development, and so on) that is physically on site, including resources that work for the company directly. However, for our purposes we will exclude this last definition.
Pros Onshore resources have a series of advantages over other internal and national resources including price (that is, usually cheaper national resources, though this isn’t always the case when expenses are factored in). If you bring them onshore, they are now in the same time zone as your company, and face-to-face communication tends to make them more responsive and more productive. Having the resource available to you in a face-to-face scenario is highly advantageous, allowing a better understanding of the business issues and subsequently better solutions. Allowing these resources, in a limited number, to manage other offshore resources is the preferred working scenario for many offshore service providers.
Appendix B:
Offshore, Near-shore, and Remote Development
875
Cons The cons of onshore resources also include price (they are much more expensive than their offshore counterparts both in hourly rate and living rate). They are generally not working all night (sometimes considered an advantage of the offshore model), and once they come on shore, they can be very difficult to get back off (that is, once they are here, they tend to be here to stay—if your organization asks for them to be moved back off shore, they will often move them to other companies rather than ship them off shore).
Remote Though we’ve already discussed some of the different ways you can leverage technology associated with EnterpriseOne to perform remote work, the question for many is why you would want it in the first place. I have worked with many companies as early as 1998 using OneWorld (the old name for EnterpriseOne) and remote development resourcing. This allowed a significant savings for the company by not having the resources wasting time traveling, nor spending the company’s money associated with travel expenses. Additionally, it can create more productive and happier workers (after all, working in your shorts in your own home every day has to be nicer than flying all over the country week in and week out for over six months at a time). Remote resourcing suffers many of the offshore issues just as it benefits from many of the same advantages. The two systems are not mutually exclusive. Quite the contrary, remote access is used to power the off-, on-, and near-shore teams to do their jobs, just as it is for the remote worker. Remote resourcing is an important enabler for saving your organization money.
Pros Remote resourcing provides travel expense savings. It can also provide for space savings as many times companies find it difficult to find good locations to place the project team. Additionally, it can provide for a happy worker and hence a more productive worker, which results in additional cost savings.
Cons Often, however, remote resourcing suffers the same fate as offshore resources around productivity issues. Without the possibility of instant oversight, productivity can drop significantly. This type of productivity issue is relatively common. Again the sayings: “Out of sight, out of mind” and “When the cat’s away, the mice will play” often apply.
876
JD Edwards EnterpriseOne: The Complete Reference
Onsite This is the traditional consulting model. If you have work to perform; do it face to face and with the most local resources available. While this model is effective, it is also the most costly and hence provides the least benefit from a cost-structure perspective.
Pros Onsite resources are usually considered the most effective way to run IT operations. They provide for face-to-face relationships and the least ambiguity in assignments.
Cons This is the most expensive option of the five we have discussed.
A Quick Example of Costs for Onshore Resources There is a company that charges a premium for their offshore ERP programming resources (and many advocates of the EnterpriseOne system would say this was rightly so) with the average cost of 140% of their normal development resources. When these same resources are on shore, they also command a couple of hundred dollars a day (seven days a week) for living expenses. When you take their increased costs plus their expenses into consideration and then multiply that by one year, you find that you’ve paid the managed services company in excess of $140,000 per year per resource with this skill set when on shore. Often you can find a local resource for less that will be loyal to your organization first and is just as skilled (sometimes more so). So the point of this example is that you should never just assume that the option you are selecting will provide the cost savings you are looking for. Always work out exactly what your needs are versus the options available before making a final decision.
Assessing Risk
With any managed services strategy, it is important to determine the risk associated with your plans and determine whether the benefits outweigh the risk of the endeavor. The following section presents one mechanism you can employ to look at the risk and to help your company come to a decision on whether managed services are for you.
Understanding Risk To understand how great a risk this or any other IT decision could be, we can use a simple formula to determine not only what the risk is, but when something absolutely
Appendix B:
Offshore, Near-shore, and Remote Development
877
must be done about it. When using the calculation listed, any time you have an overall value greater than 145, you would immediately want to address it (addressing the risk could be something as simplistic as identifying it and maintaining a watchful eye to see if it comes to pass or could be as detailed as stopping the program until the risk is effectively neutralized). The three variables used are normally assigned a value between one and ten with an overall potential of 1000 points. The higher the risk priority number (RPN), the higher priority your organization must place not only on the risk, but also on mitigation strategies designed to limit the organizational risk undertaken. NOTE When identifying risk associated with managed services, don’t forget that the number one root cause associated with ERP implementation failure is organizational change management. In essence, issues associated with your personnel need to be identified early on and addressed. The risk priority number can be calculated as the severity of the event (S) times the occurrence likelihood (O) times the detection rate (D). Severity represents organizational impact should the risk be realized. When thinking about EnterpriseOne, you could decide that feeding incorrect data into your MRP system rates a 5 (mid-range severity). If that incorrect data was fed in multiple times per day, the occurrence could be defined as a 7 on the 1–10 scale. Because you would subsequently either run out of material or order too much, straining your credit line, you might have the detection as a 6. Your resulting RPN would be 210. Based on our rule of thumb associated with RPN calculations, you would want to take immediate action on this particular issue. NOTE (RPN = S * O * D) is the calculation used for determining the risk priority number. As stated earlier, a rating scale of 1 to 10 is used with 1 being the least consequential and 10 being the highest. Each organization will want to establish some basic guidelines (operational definitions) surrounding your company-specific scale measurements to ensure that the measurement is both repeatable (that is, the same person can make the same determination multiple times in a row) and reproducible (more than one person can make the same determination by using the operational definition for the scale).
878
JD Edwards EnterpriseOne: The Complete Reference
DEFINITION Operational definition: The operational definition is a detailed description of the requirements; in this particular instance, a detailed description of how you would rate the risk. The definition should be written in such a way that it is both repeatable and reproducible (that is, a single person would get the same result multiple times and multiple people would get the same result).
An Example Adding examples to your operational definitions will help clarify for people performing the evaluation of the severity, occurrence, and detection. There is the old statement that a picture is worth a thousand words. Well, in this type of scenario, an example is worth a thousand words. Additionally, you can augment your examples with anything that will make them more understandable and more resilient.
Risk Mitigation Strategy Basics Once you have determined what the risks are for your specific situation (they will vary by organization, amount of outsourcing, business conditions, and third-party service provider) and determined your basic KPI, you will need to set up a measurement system to ensure that you are actively monitoring these indicators. By actively monitoring KPI, you will ensure that you notice the trends (upwards or downwards) in the service being provided. These KPI need to be included in the risk mitigation strategy (RMS). As you set up your monitoring, you also need to keep in mind specific actions that should be taken when a negative trend is first detected. The key to ensuring your organizational outsourcing success is to ensure that you quickly and effectively manage the KPI and that they are the right indicators. NOTE Don’t overdo KPI—fewer is better. Too many KPIs act as a destabilizing force for managing your outsource provider. Setting between three and seven KPIs for any one layer of management allows the KPI to effectively manage your requirements without overloading your management team or diluting your efforts, and it provides an ability to actually manage to the KPI.
Appendix B:
FIGURE B-1.
Offshore, Near-shore, and Remote Development
879
FMEA example
FMEA Six Sigma methodology includes a useful tool when creating your RMS called Failure Mode and Effect Analysis (FMEA). When creating your FMEA, the goal of the exercise is to identify all potential issues and risks associated with the process flows. The FMEA uses RPNs (risk priority numbers, discussed earlier in this appendix) to evaluate and document potential risks, mitigation strategies, and even document actions and re-evaluated RPNs. In Figure B-1, you will find an example of an FMEA used to determine the risks associated with moving production hardware from one site to another.
Wrapping IT Up
In the content of this appendix, we’ve tried to go through a series of rules associated with intelligently using managed services for some or all of your IT. We’ve provided concrete examples with both dos and don’ts. We went on to discuss different kinds of managed services that you may want to consider for your organization and the pros and cons of the managed services approach. We discussed different resource
880
JD Edwards EnterpriseOne: The Complete Reference
types that would be available to you and the pros and cons of using each of these resource groups. We also provided a tool that will help you determine and quantify your risk and hopefully help you assess your IT goals to make the decision whether managed services are right for a part of your IT operations or for all of your IT operations. At the end of the day, all we hope to have accomplished with this appendix is to give you the opportunity to determine what your company’s managed services strategy should be. Regardless of whether or not you are an advocate of managed services for IT, with luck, you have found a couple of useful bits of information in this appendix to justify the time you’ve spent reading it and to be able to confidently answer your board members’ questions about whether managed services are right for you and your company.
Index A About JD Edwards EnterpriseOne, Help menu, 119 Action Security, 423–425 actions, allowed, 345 active data cache, BAM, 16–17 activity rules, task views, 140–141 ad hoc reporting, 571–574 Add Environment form exit, 402–403 Add New Task View, 117 Add Report Definition window Bursting and Delivery, 594–596 Languages and Output Types, 593–594 options, 592–593 Add Role exit, 399–400 Add window, OMW, 350 Add XML Localized Template to Repository, 589–590 Add XML Publisher Object to Repository, 586–587 Address Book exit, User Profile Revisions, 393 Administration Settings, OAS, 612–613 administrative tasks, 455–544 assigning SYSADMIN role for, 389 data dictionary and, 364
deploying client packages, 273–274 EnterpriseOne Scheduler (see Scheduler) how EnterpriseOne server code works, 515–521 Oracle BI Administrator, 218–219 Server Manager (see Server Manager) user overrides (see user overrides) Adobe Reader, 579–580 Advanced Conversion Program form, 556–557 Advanced Operations folder, OCM, 86 Advanced Setup, Data sources, 35 Agent Downloads, Server Manager, 462 aggregates, 197, 216 AIA (Application Integration Architecture), 6–7, 10–11 alerts BAM, 17 Oracle BI Delivers, 212–213 Allow QBE flag, Object Mapping Revisions, 78 allowed actions, OMW, 345–346 analysis data warehousing and, 187 Oracle BI Administrator, 218 Oracle BI Answers, 205
881
882
JD Edwards EnterpriseOne: The Complete Reference analysis (Continued) Oracle BI Disconnected Analytics, 215 Oracle BI Interactive Dashboard Guided Analytics, 207 Apache server, tuning, 747 APIs (application program interfaces), interoperability, 853 APPLEAD user, 389 applets, 609 application (app) servers, 157–164 benefits of, 159 defined, 158 elements, 161–163 limitations of, 160–161 making it work for you, 163–164 overview of, 157–158 setting up data sources for, 46 uses for, 158–159 using as departmental server, 154 application audits, go-live, 830–831 Application Integration Architecture (AIA), 6–7, 10–11 application layer, communication middleware, 318 application modeling phase, EnterpriseOne, 807–809 application program interfaces (APIs), interoperability, 853 Application Security, 420–423 application server (APPSVR), 823–829 Application Server Environments window, WebSphere, 628 Application Server Network Deployment window, WebSphere, 627 application servers administering in Server Manager, 508 defined, 609 optimization and, 727–728 Application Software Updates (ASUs), 295 applications batch (see batch applications) definition of, 222–223 design, 225–226
globalization, 843–844 interactive (see interactive applications) logic interfaces, 223 managed services, 868–869 naming conventions, 223–225 specialty (see specialty applications) summary review, 242 table conversions, 695–696 versions, 222, 237–241 Applications menu, Solution Explorer, 118 Applications Unlimited Program, 4 APPSVR (application server), 823–829 architecture business services, 19–20 EnterpriseOne modeling phase, 797–799 Server Manager, 457–458 Work with Data Sources, 43 AS/400 platform applying Tools Release, 302–305 backing up enterprise server, 298 BLOB support, 37 printer definitions, 551, 560–562 RDBMS, 32 removing Tools Release, 311–312 running in parallel on, 721 AS/400 platform, troubleshooting, 769–777 comparing files, 774 database relations, 777 displaying open files, 773–774 DSPOBJD, 771 editing INI file, 775–776 joblogs, 769–770 PDM, 775 QBATCH, 771–773 QZDASOINIT, 770–771 reorganizing physical files, 775 running EnterpriseOne with, 768 STRSQL, 775 As-Is state, 802 ASUs (Application Software Updates), 295
Index asynchronous processing, 89–90 asynchronous request, JDENET_n, 321 audit history, 498–499, 512 authentication, 201, 494 authority, applying Tools Release to AS/400, 303 Available Log Files, EnterpriseOne HTML, 499
B backup data warehouse-BI systems, 191 deployment server, 147 EnterpriseOne technology implementation, 796–797 installing Tools Release on Intel/ Windows server, 309 JDE.INI file, 520 of old Tools Release, 297 procedures for upgrades, 669–672 update package builds, 265 BAM (Business Activity Monitor) components, 16–17 monitoring business processes, 18 overview of, 15 BAM Administrator, 17 BAM Architect, 17 baselines, 295 .bat file, installing Listener, 280 Batch Application Overrides, 539–540 batch applications data dictionary and, 362–364 definition of, 234–235 designing with OMW, 225–226 logic interface, 223 naming conventions, 223–225 Report Design Aid Director, 235–237 report templates, 237 report versions, 237 scheduling, 534–535 specification information, 223 summary review, 242 versions, 237–241
batch interfaces, Z file integration, 852 batch processes adding batch queues to servers, 740–744 Oracle BI Publisher, 211 Security kernel, 323 troubleshooting AS/400 using QBATCH, 771–773 UBE process, 739–740 UBE submission, 739–740 BCTS (business case testing script), 823–829 BI (Business Intelligence) business case for, 183–184 data warehousing and (see data warehouse-based BI systems) OBIEE Suite (see OBIEE[Oracle Business Intelligence Suite Enterprise Edition]) BI Publisher applications, WebSphere vs. OAS, 608 Blue Stack, 625 bots, Oracle BI Delivers, 213 bottom-up development, data warehousing, 192–193, 197 BPEL (Business Process Execution Language) configuring Oracle BI Delivers for, 213 defined, 5 Process Manager, 14–15 WebSphere vs. OAS, 608 Briefing Books, Oracle BI, 212 browse portlet form, 234 browse subform, reusable, 234 BSFN Builder section, INI file, 288 BSFN counts, 755–758 BSFNERR log file, 288 BSSV (Business Service Security Revisions), 23–24 BU (Business Unit) security, 447–451 setting UDC sharing, 447–449 setting up, 449–450 transaction security, 450–451 Build reports, client package builds, 287
883
884
JD Edwards EnterpriseOne: The Complete Reference Build Specification Options window, Package Assembly, 256–259 buildlog.txt logs, client package builds, 286 Bursting and Delivery form, 594–596 Busbuild application, 264, 271 Business Activity Monitor. See BAM (Business Activity Monitor) business case testing script (BCTS), 823–829 business data tables overview of, 37–38 roll back strategy for upgrades, 673 during upgrades/updates, 662 Business Function Options window, Package Assembly, 259 business functions analyzing with JDEDEBUG.LOG, 765 applying Tools Release to AS/400, 305 Call Object kernel processing, 324 package build process, 245 troubleshooting on AS/400 with joblogs, 770 using F9862 table to decipher failed, 354 Business Intelligence. See BI (Business Intelligence) Business Preferences, User Profile Revisions window, 393 Business Process Execution Language. See BPEL (Business Process Execution Language) Business Service Security Revisions (BSSV), 23–24 business services, 19–28 architecture, 19–22 building and deploying, 27–28 defining, 19 developing, 22–27 registering server, 482–487 Business Unit security. See BU (Business Unit) security business view, Report Design Director, 236
C C compiler, 288 C components, package build process, 245 CAB file, 311 Cache Management window, HTML server, 502–503 Call Object kernel configuring, 329 defined, 319 multithreaded, 324 overview of, 324 tweaking definition, 520–521 Call Object Stats window, HTML server, 501–502 Cancel button, Fix Inspect form, 229 capacity requirements planning (CRP), 192 Cascading Style Sheets (CSS), Oracle BI Interactive Dashboard, 209 case study, managed services, 865–866 Category list, Search tab of OMW, 351 CCB (Change Control Board), 822, 824–829 central object tables full package builds, 263 roll back strategy for updates, 674 roll back strategy for upgrades, 673 Specification merge and, 706–707 upgrade process flow, 661 central object tables, path codes copying, 58–61 creating, 55–58 decentralized strategy for, 247 defined, 51 package build process, 244–245 centralized strategies, packages, 246–248 cfg.xml file, 630 Change Control Board (CCB), 822, 824–829 change management Oracle BI Administrator, 218 task views, 140–141 versions, 238
Index Change Table Data Item Master, F9755, 356 change tables, data dictionary, 356 Chart Control Security, 446–447 checked-out items development rules, 820 OMW, 354 validating, 820 check-in location, path codes advanced configurations, 248 creating, 61–63 defined, 51 full package builds, 263 check-ins, development rules, 817–819 chmod 777 command, 781 clickstream DW, 196 Client Listener Setup Type window, 281–282 Client Listener Setup User Information window, 282–283 Client Listener Setup window, 280–281 Client Workstation Setup Package Selection window, 274 client workstations optimization, 727 placing up-to-date full package on, 671 running in parallel, 723–724 ClientPkgBuild.log, 286 CLRIPC command, 302 Clustered flag, Data sources, 35–36 clusters setting up Oracle Web Cache in, 621–625 tuning OAS, 619–620 CNC (Configurable Network Computing) allowing versions, 222 applying concepts to optimization, 736–737 defined, 81 managed services, 867–868 path codes, 246 code changes, ESUs, 718–719 code generation, Oracle BI Server, 200
Collaboration Portal server overview of, 177–178 setting up single sign-on, 453 using edit portlet form, 234 Column Security Revisions window, 428–429 comma-separated value. See CSV (comma-separated value) file COMMIT statement, sign-on security, 412 compression full package builds, 264 PDF files, 621 Compression Options window, Package Assembly, 259–260 Configurable Network Computing. See CNC (Configurable Network Computing) configuration files, WebSphere, 634 Configuration Options window Oracle Application Server Infrastructure, 640 Oracle Portal Application Server, 645–646 Web Cache, 622 Configuration section, EnterpriseOne HTML server, 506–507, 512 confirmation window business services server, 484–487 HTML server, 475–476 registering enterprise server, 480–482 connect strings, Oracle RDBMS, 31 connection pooling, Oracle BI Server, 217 connectionTimeout parameter, JAS, 750 console admin group, 491 consultants, EnterpriseOne implementation, 789–790 Continue Build On All Errors, Package Assembly, 258 contracts EnterpriseOne implementation, 789–791 managed services, 861–863, 870–871 control object tables, 38–39
885
886
JD Edwards EnterpriseOne: The Complete Reference Control Table Workbench, 701–715 Merge Modification flag, 707–713 modifying merge status of object, 713–714 overview of, 701–704 Specification merge, 704–707 Specification merge and source/ header files, 714–715 control tables, 379–383 defined, 379–380 next numbers, 380–381 pristine environment, 380 user-defined codes (UDCs), 381–383 conversions, real-time data, 833–834 Copy Data field, Revise Table and Data Source Overrides, 85 Copy Environment, Work with User/Role Profiles, 397 Copy Overrides form, 526–528 Copy Record row exit, 414 Copy This Task and All of Its Children, 133 Copy This Task Only, 133 Copy Version window, 815–817 copying central object tables, 58 check-in location, 62 development rules for, 815–817 environments, 70 modifying objects through, 225 OCM mappings, 80 tasks, 130, 133–134 core implementation team training, 811–812 corporate portals, 192, 197 cost ERP program implementation, 788 managed services, 871 onshore resources, 875 costs, onsite resourcing, 876 cowboys, “Law of the West”, 48–49 CPUs deployment server requirements, 150 Windows client requirements, 178
Create Tables field, Revise Table and Data Source Overrides, 85 Create User Group button, 491 Create/Register a Managed Instance window business services server, 485 enterprise server, 478–479 HTML server, 472–475 OAS, 467–468 WebSphere, 465 CRM (customer relationship management) solution, 7 Cross Reference Facility application, 359 cross-data source table conversion, 695–700 CRP (capacity requirements planning), 192 CRTDUPOBJ command, 312, 775 CSS (Cascading Style Sheets), Oracle BI Interactive Dashboard, 209 CSV (comma-separated value) file defined, 517 printing to, 569–571 troubleshooting workstation printing, 581 currency, supporting global, 840 Custom Installation planner, 676, 677 customer relationship management (CRM) solution, 7 Customize Grid window, user overrides, 524
D dashboards, 188, 212. See also Oracle BI Interactive Dashboards Data Browser and heap dumps, 748–749 overview of, 383–385 Security Revisions window, 442–443 Data Class field, data sources, 34, 44 data cleansing tool, 196 data dictionary, 355–364 administration of, 364 batch applications, 362–364
Index Control Table Workbench affecting, 701 decentralized strategy for, 247 defined, 355 development, 358 interactive applications, 359–361 locations, 357–358 overview of, 355 P92002 error message, 361–362 summary review, 364 tables, 355–357 working with, 359 Data Dictionary data source, 40 Data Dictionary merge, 702 Data Dictionary Smart Fields table, F9211, 356 Data Dictionary-Error Message table, F9207, 356 data embedding, 214 Data Field Display Text table, F9202, 356 Data Field Specifications table, F9210, 356 data integration, BAM, 16 Data Item Alpha Descriptions table, F9203, 356 Data Item Master table, F9200, 356 Data Item Specifications window, 362 data marts additional architected, 193–194 defined, 185 enterprise DW architecture, 194–195 single architected, 192–193 data mining, 188 data modeling tool, 197 data replication, 155–156 data selection, versions, 239 data sequencing, versions, 239 data servers, 151–157 defined, 152 implementing, 155–157 overview of, 151–152 reasons to implement, 152–155 Data Source Master table. See F98611 table, Data Source Master data source master table, 68
Data Source Mode field, Object Mapping Revisions, 78 Data Source Name field, 33, 44 Data Source planner, upgrades, 679 Data Source Revisions row exit, 414 Data Source Revisions window, 170–171 Data Source Type field, 34, 44 Data Source Use field, 33, 43–44 Data Source Workbench, 683 data sources, 29–49 application server requirements, 161–162 components, 33–37 database differences, 30–32 defining, 32–33 defining data servers through, 152 number needed, 37, 41 Oracle BI Publisher options, 211 Oracle BI Server performance and, 216 physical data storage independence, 205–206 setup and configuration, 41–43 special uses for, 46–49 types of, 37–41 Work with Data Sources window, 43–46 data warehouse-based BI systems advantages of starting now, 189–191 architecture, 191–195 basics, 184–185 best practices for next-generation, 196–197 case for business intelligence, 183–184 connection between, 184 creating solution, 188–189 development of, 195–196 making use of, 187–188 not obtaining necessary data directly, 185–187 overview of, 182–183 summary review, 219–220 using OBIEE Suite (see OBIEE [Oracle Business Intelligence Suite Enterprise Edition])
887
888
JD Edwards EnterpriseOne: The Complete Reference database data source (DB), 37–40 Database Instance, Data sources, 34 Database Name (TNS/Alias), Data sources, 34 Database Prams form hyperlink, Work with Data Sources, 46 Database Schema Passwords window, Universal Installer, 644 Database Server Name field, Data sources, 34, 44 database servers, optimization and, 727–728 database triggers, interoperability, 853–854 Database Type field, Enterprise Server Revisions, 168 databases backing up for upgrade, 669 client workstation INI settings, 415 configuring IBM Collaborative Portal with, 651–652 configuring sign-on security, 406–407 EnterpriseOne Windows enterprise servers MTR, 667 optimizing, 730–732 running upgrade after changing passwords for, 693–695 troubleshooting AS/400, 777 DB (database) data source, 37–40 DB2 RDBMS, 32 DB2/400 (STRSQL command), 820 DDDICT file, data dictionary locations, 356 DDTEXT file, data dictionary locations, 356 debug log files JDEDEBUG.LOG (see JDEDEBUG .LOG file) UBEDEBUG.LOG, 766–768 decentralized strategies, packages, 246–248 Default Database form hyperlink, Work with Data Sources, 46 Default Printer Revisions, 564–567 default printers, 562–567
default_island, Java Virtual Machines, OAS, 617–618 Delete window, OMW, 350–351 deleting environments, 70 OCM mappings, 80 path codes, 66 relationships in multilevel relationships, 134 report definition jobs, 601 task relationships, 134 task views, 126–127 tasks, 135–136 user-defined code values, 383 Delivers, Oracle BI, 212–213 delivery format and channels Oracle BI Delivers, 213 Oracle BI Publisher, 210, 211 XML Publisher PDF, 584 departmental servers adding enterprise servers as, 172 designing specific, 159 implementing, 154–155 implementing data servers as, 156 Deployment Groups form exit, 402 deployment servers, 145–151 basics of, 147 definition of, 145–146 roll back strategy, 674–675 rolling into configuration, 148–151 running in parallel on, 720–721 Server Manager console installation, 458–460 Tools Release, applying new, 298 Tools Release, backing up, 297–298 Tools Release, removing, 310–311 troubleshooting Intel server, 782 turning off, 147–148, 151 upgrades, directory backups for, 669–671 upgrades, disabling sign-on security, 693 DEPSVR (deployment server), 823, 824–829 derived measures, 206
Index Description field, Enterprise Server Revisions window, 167 Description field, Environment Revisions window, 69 design tools, XML Publisher, 584 Details tab, Printers, 553–555 Developer field, Environment Revisions window, 69 development data dictionary, 358 group, 491 managed services activities, 866–867 development methodology checking items in, 817–819 DB2/400 (STRSQL command), 820 encouraging developers, 820–821 EnterpriseOne implementation, 814–821 MS SQL Server, 819–820 Oracle SQL Plus or SQL worksheet, 819 overview of, 814 rules and explanations, 815–817 separating from version control, 815 validating items checked out, 819–820 DEVUSER, 389 Director mode, package assembly, 250 directories applying Tools Release to AS/400, 303 backing up deployment server, 297–298, 669–671 full package builds, 262–263, 264 full server package builds, 271–272 OAS installation, 611–612 update package builds, 265 disk space monitoring EnterpriseOne enterprise server, 511 upgrade requirements, 664 display decimals, 363 Display File Description (DSPFD) command, 774
Display Object Description (DSPOBJD) command, 771 Display Open File utility, AS/400, 773–774 Display Tab Scheduler processing option, 530 Distribute button, 299–300, 608 Distribute Software button, Server Manager, 463 DLLs (dynamic link libraries) full server package builds, 271 how host code functions, 516 role in package build process, 245 troubleshooting client package builds, 286–287 troubleshooting server package builds, 288 Do Not Compress If Errors, Package Assembly, 258 document generation, XML Publisher, 584 documentation, development naming standards, 224 DOS command prompt, WebSphere, 631 DSPDBDR command, 777 DSPFD (Display File Description) command, 774 DSPOBJD (Display Object Description) command, 771 dynamic link libraries. See DLLs (dynamic link libraries)
E E1 HTML server. See HTML server E1 middleware, 87, 92 EDI (Electronic Data Interchange), 844–851 automating process, 850–851 creating 850 outbound transactions, 845 extracting purchase orders, 845 overview of, 844 purchase order extraction conversion, 845–850 updating files as sent, 850
889
890
JD Edwards EnterpriseOne: The Complete Reference Edit menu, Solution Explorer, 106–110 Edit Named Site window, 624–625 edit portlet form, 234 edit subform, reusable, 233 editing, INI file, 775–776 850 outbound transactions, EDI automating process, 850–851 creating, 845 extracting purchase orders, 845 purchase order extraction conversion, 845–850 updating files as sent, 850 Electronic Data Interchange. See EDI (Electronic Data Interchange) Electronic Software Updates. See ESUs (Electronic Software Updates) e-mail subscriptions window, Server Manager, 515 ENDNET command, Tools Release, 302, 311 EndOneWorld.sh command, 306, 312 end-user tools, 192–195 end-user training, 812–814, 832 enterprise resource planning. See ERP (enterprise resource planning) package Enterprise Server Processes window, 510 Enterprise Server Revisions window, 166–169, 285, 685–686 enterprise servers adding, 165–172 application servers vs., 158 applying Tools Release, 302 backing up, 298 backing up old Tools Release, 297 creating path code, 63 debug log files, 764–766 definition of, 164 installing Tools Release on Intel/ Windows server, 309 installing web server, 174 kernel processes, 317–318 log files, 761–764 moving Tools Release into, 306–307 registering, 477–483
removing Tools Release, 311 running in parallel on, 721 Server Manager administering, 509–514 sign-on security, 414–415 troubleshooting printing, 582 types of, 164–165 using as departmental server, 154 when to add, 172 Windows NT upgrades, 665–668 Enterprise Service Bus (ESB), 13–14 EnterpriseOne basic navigation, 95–96 setting up media objects in, 366–370 task views interacting with, 119–121 EnterpriseOne, building blocks data sources (see data sources) environments, 66–71 middleware, 86–89 OCM (see OCM [Object Configuration Manager]) path codes (see path codes) EnterpriseOne, future of Application Integration Architecture, 10–11 Fusion Applications, 6–9 Fusion Applications vs. Middleware, 4–6 Fusion Middleware (see Fusion Middleware) overview of, 3 Service-Oriented Architecture, 9–10 summary review, 28 EnterpriseOne Enterprise Server window, 510–512 EnterpriseOne HTML window Available Log Files section, 499 Configuration section, 506–507 overview of, 498 Runtime Metrics section, 500–505 EnterpriseOne implementation application modeling phase, 807–809
Index development methodology, 814–821 e-opportunities, 855 globalization (see globalization) go-live activities, 829–834 installation process, 801–806 interoperability (see interoperability) maintaining value of system, 834 software selection process, 784–788 summary review, 855–856 technology modeling phase, 809–811 things to know about contract, 789–791 training, 811–814 version control, 821–829 EnterpriseOne implementation, technology phases, 791–801 architecture modeling, 797–799 considerations, 794–797 continuing support, 800–801 events associated with, 791–793 go-live activities, 800 initial planning, 794 pre-go-live activities, 799–800 EnterpriseOne servers application servers, 157–164 collaborative portal servers, 177–178 data servers, 151–157 deployment server, 145–151 enterprise servers, 164–172 overview of, 144–145 summary review, 178–179 web servers, 172–177 Windows client, 178 Entity Relationship (ERD) diagrams, 192–193 environment detail file, 68 Environment Detail table, F00941, 684 Environment field, Default Printer Revisions, 566
Environment Master program, 68–70 Environment Name field, Environment Revisions window, 69 Environment Name field, Object Mapping Revisions, 76 Environment Revisions window, 69 Environment Variables window, 511 Environment Workbench, 684, 716 environments adding, 68–69 adding data sources when adding, 47–48 adding to server maps, 685–686 copying, 70 customizing, 70–71 defined, 67 deleting, 70 overview of, 66–67 summary review, 92 tables, 67–68 updates/upgrades, 657 web server requirements, 176–177 Environments exit, User Profile Revisions, 394 Environments planner, 679–680 e-opportunities, 855 equivalence preserving, Oracle BI Server, 200 ERD (Entity Relationship) diagrams, 192–193 ERP (enterprise resource planning) package architected data mart component, 192 Fusion Applications as, 6–7 next-generation DWs, 196 error messages Data Dictionary – Error Message information, 356 data dictionary providing, 355 deployment server, 148 server log files, 763–764 ESB (Enterprise Service Bus), 13–14
891
892
JD Edwards EnterpriseOne: The Complete Reference ESOW (executive statement of work), 823–829 ESUs (Electronic Software Updates) defined, 249, 295 keeping pristine environment current with, 380 modifying code, 224 overview of, 718–719 ETL (extract, transform, and load) tools as architected data mart component, 192–194 creating data warehouses, 188–189 defined, 185 enterprise DW architecture and, 195 for next-generation DWs, 196 Event Capture option, Tools menu, 117 event engine, BAM, 17 Event Notification kernel, 320, 327 Event Observer kernel, 320, 327 events EnterpriseOne implementation, 791–793 rules for update process flow, 659–660 Exclusive Application Security, 436–437 exclusive row security, 419–420, 426 executive statement of work (ESOW), 823–829 exit strategy, managed service contracts, 863 expiration headers, Internet Explorer, 749 Export Assistant, 571–574 exporting data from grid, 571–574 for import spreadsheets, 574–576 Oracle BI Administrator, 218 Extended Business Processes (XPI), 22 Extensible Markup Language. See XML (Extensible Markup Language) External Calls Security, 438–439 external programming, and interoperability, 854–855 extract, transform, and load tools. See ETL (extract, transform, and load) tools
F F keyword, 776 F0002 table, Next-Number, 380–381 F00021 table, Next-Number, 381 F00165 table, Media Objects Storage, 366 F00166 table, Media Object Categories, 366 F0092 table, Library Lists-User, 389 F0093 table, 398–399 F0094 table, Library List Master, 684 F00941 table, Environment Detail, 684 F00942 table, Path Code Master Environment Workbench populating, 684 overview of, 53–55 path codes, 91 storing path code information, 51–52 F91300 tables, Scheduler kernel, 326 F9200 table, Data Item Master, 356 F9202 table, Data Field Display Text, 356 F9203 table, Data Item Alpha Descriptions, 356 F9207 table, Data Dictionary-Error Message, 356 F9210 table, Data Field Specifications, 356 F9211 table, Data Dictionary Smart Fields, 356 F9212 table, Smart Field Criteria-Setup Rules, 356 F96021 table, Software Package Build Header, 266–267 F9603 table, Package Header, 265–266, 686–687 F96215 table, Package Build Header History, 267–268 F9622 table, Package Build Detail, 268 F96225 table, Package Build History Detail, 268, 271–272 F9631 table, 686–687 F9650 table, Machine Master, 684–685 F9651 table, Machine Detail, 685
Index F9755 table, Change Table Data Item Master, 356 F98101 table, Imaging Constants, 367 F983051 table, 56–58 F98402 table, Host Plan Detail, 685 F98404 table, 686–687 F98405 table, 688 F984052 table, 688 F9843 table, Table Conversion Scheduler, 688 F9860 table, Object Librarian Master, 353 F9861 table, Object Librarian-status detail checked-out items, 354 modifying, 63–65 overview of, 353 F986101 table, Object Configuration Manager adding environment to server map, 686 configuring data sources, 42 data source manipulations, 49 Environment Workbench populating, 684 Host Workbench populating, 685 server maps, 372 F98611 table, Data Source Master adding environment to server map, 686 data source manipulations, 49 Host Workbench populating, 685 overview of, 42 server maps, 371–372 F986110 table, Job Control Status Master changing UBE version, 744 job data and detail, 374–376 overview of kernel processes, 318 server maps, 371–372 UBE submission and, 739–740 F986111 table, Job Number Master File, 371–372 F986113 table, Subsystem Job Master, 371–372, 377–379
F986115 table, Table and Data Source Sizing, 49, 685 F98616 table series, 547, 548 F9862 table, Object Librarian-function detail, 353–354 F9863 table, Object Librarian-object relationships, 354 F9865 table, Object Librarian-form information, 354 F98881 table, 716–717 F988810 table, SpecMerge Tracking, 709–714, 716–717 F98950 table, user overrides, 402, 522 F98MOQUE Media Object Queues, 367 F98OWSEC table, 323, 404 Failure Mode and Effect Analysis (FMEA), 879 Fast Path, 103, 113 FDA portlet, 234 Features window, Package Assembly, 254 File menu, Solution Explorer, 105 files, AS/400, 773–775 filtering Menu Filtering mode, 119, 451 Oracle BI Interactive Dashboard, 208 Oracle BI Server, 200 task views, 97–98, 137–138 Find window, OMW, 350 Find/Browse form, 227–228 Fix Inspect form, 228–229 flat-file conversions interoperability, 853 purchase order extraction conversion, 846 updating files as sent, 850 flowcharts how to use, 824–829 software selection process, 786 version control tools, 822–824 FMEA (Failure Mode and Effect Analysis), 879 font support, XML Publisher, 584 Form Generate Server Map, 172
893
894
JD Edwards EnterpriseOne: The Complete Reference formats adding to user overrides, 523–526 deleting grid, 526 modifying when pushed to group, 529 Oracle BI Publisher, 211 XML Publisher document generation, 584 forms. See interactive applications Forms Design Aid adding media objects in, 366 locking users out of, 438 working with portlet forms, 234 foundation code, getting changes into. See Tools Release Foundation Component window, Package Assembly, 252 Foundation Software Updates (FSUs). See Tools Release frameworks, data warehouse, 189 FRR (functional request requirements), 823–829 FSUs (Foundation Software Updates). See Tools Release FTP process applying Tools Release to AS/400, 303–304 editing INI file using, 776 FTRR (functional/technical request requirements), 824–829 FTs (functionality testers), 822, 824–829 full packages building server, 270–272 compression options, 259–260 overview of, 249 R9621 report for building, 262–263 functional request requirements (FRR), 823–829 functionality testers (FTs), 822, 824–829 functional/technical request requirements (FTRR), 824–829 Fusion Applications Fusion Middleware vs., 4–6 overview of, 6–9
Fusion middleware, 11–28 Business Services (see Business Services) EnterpriseOne tools, 18 e-opportunities and, 855 Fusion Applications vs., 4–6 Oracle Fusion SOA Suite (see Oracle Fusion SOA Suite) overview of, 11 preparing for Fusion Applications, 7
G garbage collection administering HTML server, 505 reclaiming unused heap space, 749 GD records, Work with User Overrides, 527 Generate Stack File, 757 GF records, Work with User Overrides, 527 Global Password Policy, 412 global permissions, Server Manager groups, 491–493 globalization, 834–844 application and technical support, 843–844 development requirements, 839 languages at tier levels 1-3, 836–839 localizations, 840–843 overview of, 834–835 single or multiple instances, 835 Unicode, 835 GlobalPageSize, tuning JAS, 750 go-live activities application and technical audits, 830–831 EnterpriseOne implementation, 800 final testing, 833 final user training, 832 flipping the switch, 834
Index overview of, 829–830 post phase, 801 pre phase, 799–800 real-time data conversions, 833–834 software package builds and deployments, 832–833 grid format adding new, 523–526 deleting, 526 as user override, 522 groups, Server Manager user, 490–494 GRTOBJAUT command, 303, 312 GUI, Object Management Workbench, 342 Guided Analytics, Oracle BI Interactive Dashboard, 207, 209
H hard drives deployment server requirements, 149 upgrade requirements, 664 Windows client requirements, 178 hardware deployment server requirements, 148–151 EnterpriseOne installation, 803–804 EnterpriseOne technology implementation, 794–796 EnterpriseOne Windows enterprise servers, 665 optimizing OS, 728–730 upgrade disk space requirements, 663 web server requirements, 173 Windows client, 178 HDPACKSTS column, 271 HDPKGOPER column, 271 Header Detail form, 230 header files, and Specification merge, 714–715 Headerless Detail form, 230–231
heap dumps defining, 748 tuning web application server, 748 tuning WebSphere, 634–635 Help menu, Solution Explorer, 118–119 help message, data dictionary, 355 host code, 515–516 Host Name field, Default Printer Revisions, 566–567 Host Plan Detail table, F98402, 685 Host planner, upgrades, 678 host services, Tools Release AS/400, 302 HP9000/pSeries/Sun Solaris, 306 Intel/Windows server, 308–309 removing, 311–313 Host Type field, Enterprise Server Revisions, 167 hosting, by managed services, 869–870 Hosts (Machine) Workbench, 684–686 Hot-Link option, 578–579 HP9000, 305–306, 312 HTML server architecture overview, 605 installing code using Server Manager, 605–608 installing using OAS, 610–615 installing using Server Manager, 470 Server Manager administering, 497–507 Server Manager creating, 472–477 troubleshooting using log files, 616 tuning OAS using multiple JVMs, 617–620 tuning OAS using Web Cache, 620–625 tuning WebSphere, 634 HTML summarized output file, Performance Workbench, 757–758 HTML/JAS servers, 568, 571–572 HTTP (Hypertext Transfer Protocol) configuring multiple JVMs in OAS, 620 configuring plug-in with WebSphere, 629–630
895
896
JD Edwards EnterpriseOne: The Complete Reference HTTP (Continued) defined, 610 handling single point of failure, 620–625 installation of IBM, 628–629 optimization and, 727–728 troubleshooting using log files, 616 httpd.conf file configuring HTTP plug-in with WebSphere, 630 tuning OAS, 620 values for, 625–626 hub-and-spoke enterprise DW architecture, 194–195, 196 Human Capital Management, 636 Hyper Exit Security, 434–436 Hypertext Transfer Protocol. See HTTP (Hypertext Transfer Protocol)
I IBM Collaborative Portal, 650–652 IBM HTTP server, 628–630 IBM WebSphere application suite, 177–178 IFS file system, 305 Image Security, 444 Imaging Constants Revisions window, media objects, 369 Imaging Constants table, F98101, 367 imaging systems, 366 importing data to grid, 574–579 Oracle BI Administrator, 218 inclusive row security, 419–420, 426 indexes, optimization, 731–733 Individual Specification Selection, Package Assembly, 257–258 INF files deploying client packages, 275–276 full package builds, 263 full server package builds, 270 troubleshooting client package deployment, 290
troubleshooting server package builds, 287 Information Technology Project Manager (ITPM), 822, 824–829 INI file adding enterprise server, 171 applying Tools Release to AS/400, 305 client workstation security settings, 415 creating client, 276 editing, 775–776 enterprise server security settings, 414–415 installing Tools Release on Intel/ Windows server, 309 removing Tools Release, 312 running in parallel and, 721–724 troubleshooting AS/400, 775–776 troubleshooting server package builds, 288 tuning WebSphere, 634 Initial Tasks workbench, upgrades, 683 in-place table conversions, upgrades/ updates, 695–696, 700–701 Install Manager, 274, 298 Install New Enterprise Server option, 478 Installation Path field, Enterprise Server Revisions, 168 installation planner Data Source planner, 679 defined, 676 Environments planner, 679 Host planner, 678 Location planner, 678 Package Build planner, 682 performing upgrades with, 676–682 Specification Merge planner, 682 summary, 682 Table Conversion planner, 680–681 upgrading custom environment and path code, 679–680 working with, 677 installation process, EnterpriseOne, 801–806 conducting, 805
Index postinstallation audit, 805 preinstallation audit, 804–805 preinstallation planning, 802–803 purchasing hardware/software, 804 scoping and planning, 801–802 sizing hardware, 803–804 wrapping up, 806 Installation Workbench, 682–715 Control Table Workbench (see Control Table Workbench) Data Source Workbench, 683 Environment Workbench, 684 executing upgrades, 684–686 Initial Tasks workbench, 683 Locations Workbench, 683 Package Workbench, 686–687 Table Conversion Workbench (see Table Conversion Workbench) types of workbenches, 682–683 install.bat, 651 instance properties creating HTML server, 473–475 registering business services server, 484–485 registering enterprise server, 479–480 registering OAS, 468–469 registering WebSphere application server, 465 instances, single vs. multiple, 835 integration, and interfaces, 852–855 Intel server installing Tools Release, 308–309 removing Tools Release, 313 running EnterpriseOne with, 768 running in parallel on, 722 troubleshooting, 781–782 intellectual property, and outsourcing, 861 interactive applications, 226–234 browse portlet form, 234 data dictionary and, 359–361 designing with OMW, 225–226 edit portlet form, 234 Find/Browse form, 227–228 Fix Inspect form, 228–229
Header Detail form, 230 Headerless Detail form, 230–231 logic interface, 223 merge modification flag, 709 Message form, 231 naming conventions, 223–225 overview of, 226–227 Parent/Child form, 231–232 power forms, 231–233 reusable browse subform, 234 reusable edit subform, 233 Search & Select form, 231 summary review, 242 versions, 237–241 wizard, 233 working with Data Dictionary application, 359–360 Interactive Dashboard. See Oracle BI Interactive Dashboards interactive deployment, client packages, 273–275 Interactive SQL (STRSQL), 775 interfaces, and integration, 852–855 internal business services, 20–21 internal software action request (ISAR), 824–829 Internet Explorer, 749 Internet Mail Messages program, Tools menu, 117 interoperability, 844–855 API calls, 853 batch interfaces/Z file integration, 852 database triggers, 853–854 Electronic Data Interchange, 844–851 external programming, 854–855 flat-file conversions, 853 interfaces and integration, 852 overview of, 844 Interoperability Event Observer kernel, 320, 327 interprocess communication (IPC), 318, 326
897
898
JD Edwards EnterpriseOne: The Complete Reference IPC (interprocess communication), 318, 326 ISAR (internal software action request), 824–829 iSeries, 148–149 IT skills, software selection process and, 788 ITPM (Information Technology Project Manager), 822, 824–829
J J2EE (Java Enterprise Edition) administering application servers, 508 defined, 609 installing E1 HTML server, 470 registering business services server, 484 registering WebSphere, 465 servlet loader, 604 WebSphere vs. OAS, 608 JAR (Java archive) file, 610 JAS (Java Application Server) E1 HTML server formerly known as, 604 reading XML information at run time, 223 requiring sign-on security, 415 tuning configuration, 750–751 jas log file, 633 JAS.INI file, 634, 649–650 JASLogParse section, Performance Workbench, 755, 760 Java, defined, 609 Java Application Server. See JAS (Java Application Server) Java archive (JAR) file, 610 Java Database Connectivity. See JDBC (Java Database Connectivity) drivers Java Enterprise Edition. See J2EE (Java Enterprise Edition) Java Environment Runtime Detail window, 504–505
Java Virtual Machines. See JVMs (Java Virtual Machines) java-version command, 782 JD Edwards EnterpriseOne Developer’s Guide, 852 JDBC (Java Database Connectivity) drivers installing E1 HTML code, 606 installing E1 HTML server, 470 installing software with Server Manager, 463–464 registering business services server, 484 registering WebSphere, 465 tuning JAS configuration, 750–751 tuning WebSphere, 634 JDBj Connection Caches window, 503 JDBj Database Caches, 502–503 JDBj Database Configuration, 506 JDBj Runtime window, 504 JDBJ.INI file, 634 JDBNet Data Source check box, 35 JDBNet kernel configuring, 329 defined, 320 overview of, 324–325 jde_admin, 488 JDE_HOME directory, 458, 616 jde_processid.log, UNIX, 778 JDEBASE code, 516 JDEBase middleware, 88–89 jdedebug_processid.log, UNIX, 778 JDEDEBUG.LOG file analyzing, 764–766 evaluating SQL statements, 732 reading JDE.LOG file, 762–763 upgrades/updates, 694–695 JDE.INI file kernels, 318, 328–331, 744–746 logging for table conversions, 692–693 passwords during upgrades/ updates, 694 Performance Workbench, 754–755, 760–761
Index printing, 567–568 troubleshooting EnterpriseOne/ UNIX services, 780–781 tweaking Call Object kernel definition, 520–521 JDELocal data source, 39 JDE.LOG file, 761–763 JDENet as communications middleware package, 318, 321 defined, 515 full server package builds, 272 how it works, 517–519 overview of, 86–87, 517 JDENET_k kernel types, 319–328 Call Object kernel, 324 configuring kernels, 328–331 configuring servers, 331–332 Event Notification kernel, 327 Event Observer kernel, 327 Interoperability Event Observer kernel, 327 JDBNet kernel, 324–325 JDENET_n processes, 321–322 Lock Manager kernel, 323–324 Metadata kernel, 327 monitoring kernel processes, 332–335 overview of, 319–321 Package Build kernel, 326 Package Installation kernel, 325 Replication kernel, 322 Scheduler kernel, 326 Security kernel, 323 Server Administration (SAW) kernel, 325–326 UBE kernel, 322 UBE Subsystem kernel, 327 Workflow kernel, 327 XML Dispatch kernel, 327 XML List kernel, 327 XML Service kernel, 327 XTS kernel, 327 JDENET_k processes how it works, 518
JDENET_n processes and, 319 kernel overview, 317–318 kernel processes on enterprise/ application servers, 519–521 kernel types, 319–328 overview of, 88 troubleshooting AS/400, 769 JDENET_n processes configuring, 328 defined, 87–88, 318 how host code functions, 515–516 how it works, 321–322, 518–519 how many run on server, 322 overview of, 318–319 JDEQUEUE processes, 88, 739–741 JDESAR (JD Edwards Software Action Request), 823, 824–829 JDESSELocal data source, 39 JDeveloper, 24–26 Job Control Status Master table. See F986110 table, Job Control Status Master Job Monitor Sleep Time field, 533–534 Job Number Master File table, F986111, 371–372 job queues, 385–386, 741–744 job schedule, adding, 535–540 joblogs, 769–773 join plans, Oracle BI Server, 199 Just In Time Installation field, Environment Revisions, 69 JVMs (Java Virtual Machines) administering HTML server, 497 configuring multiple, in OAS, 617–620 configuring WebSphere and OAS, 608 defined, 610 tuning WebSphere, 634–635
K kernel def types, 316 Kernel Ranges link, 511–512 Kernel Recycling window, 513–514
899
900
JD Edwards EnterpriseOne: The Complete Reference kernels configuring, 328–331 configuring servers, 331–332 definition of, 316–317 JDENET_k kernel types (see JDENET_k kernel types) JDENET_n process (see JDENET_n processes) monitoring processes, 332–336, 510–511 processes, 317–318, 519–521 tuning JDE.INI, 744–746 KPIs (key performance indicators), 18, 879
L Language Component window, Package Assembly, 254 languages adding custom printer definition, 555–557 choosing printer definition, 553–554 determining strategy for, 838–839 outsourcing limitations, 873, 875 planning rollout, 838 supported by EnterpriseOne, 836 UPK support, 837 XML Publisher support, 584, 837 Languages and Output Types, Add Report Definition, 593–594 Launch Installation Wizard for Network Deployment Application Server, 627–628 Launch Pad, WebSphere, 627–629 “Law of the West” operations, 48–49 layout template, Oracle BI Publisher reports, 210 LDAP, 452–453, 652 left pane (main view), Solution Explorer, 96, 101–102 legacy applications, architected data marts, 192–194 library lists creating custom, 398–399 library list control, 67
Library List Master table, F0094, 684 Library Lists-User table, F0092, 389 master file, 67 Library Name, Data sources, 35 Library Name field, Work with Data Sources, 44 license requirements downloading OAS, 611 Oracle software, 789–791 WebSphere, 625, 628 line printers issues with, 547 modifying printer definitions, 560–562 paper dimensions for, 554 printing from server and, 582 Link Security, 444 Listener service, 279–284 load balancing across multiple HTTP servers with Web Cache, 621–625 tuning OAS, 619–620 tuning WebSphere, 635 LOB Data Type Support flag, data sources, 36, 45 Local data source, 41 localizations, 840–843 locally replicated data, 39 Location field, Enterprise Server Revisions, 167 location planner, upgrades, 678 locations data dictionary, 357–358 printer, 551–552, 561 restoring from save, 671–672, 674 Locations Workbench, upgrades, 683 Lock Manager kernel, 319, 323–324 Log File Configuration, HTML server, 507 log files, 761–768 application server, 508 maintaining developer’s, 820 OAS, 615–617 server, 761–764 server package builds, 287
Index table conversion, 692–693, 696–701 using Performance Workbench, 755–760 logging, OMW, 352–353 logic data source, 41 logic interfaces, 223 logic servers. See application (app) servers Logical Machine Name field, Enterprise Server Revisions, 168 logical request generation, Oracle BI Server, 199 logical SQL generation Oracle BI Answers, 203 Oracle BI Presentation Server, 202 login role, tasks, 130–131 LogParse, Performance Workbench, 755–758
M Machine Detail table, F9651, 685 Machine Environments Revisions window, 170 Machine Master table, F9650, 684–685 machine name, defined, 41 Machine Name field, Enterprise Server Revisions, 166 Machine Search and Select form, 42–43 Machine Selection window, client packages, 277 Machine Usage field, Enterprise Server Revisions, 166 main view (left pane), Solution Explorer, 101–103 Maintain Set-ID window, Business Units, 447–449 maintenance app servers, 160–161 EnterpriseOne implementation, 834 managed service contracts, 870–871 Manage Components window, E1 HTML code, 607–608
Managed Home window creating HTML server, 472 registering enterprise server, 477 registering OAS, 465–466 registering WebSphere application server, 465 Managed Instance window, 477, 482–483 managed services. See outsourcing (managed services) strategy Managed Services. See outsourcing Management Agents dashboard, 459–460 Management Console Users, Server Manager Users window, 489 Management kernel, 329 maxKernelProcesses setting, 520 maxNetConnections setting, JDENET_ n processes, 322, 520 maxNetProcesses setting, JDENET_ n processes, 322, 520 MaxNumberofConcurrentThreads, JDE.INI, 746 MaxNumberofProcesses, JDE.INI, 746 MaxUsers, JAS, 750 Media Object Categories table, F00166, 366 Media Object Queue Revisions window, 369–370 Media Object Security, 444–446 media objects, 365–370 applications, 368 defined, 365 imaging systems, 366 setting up, 366–370 types of, 364, 367 Media Objects Storage table, F00165, 366 menu bar exits, Hyper Exit Security, 434 Menu Design button, 119 Menu Design mode, Solution Explorer defined, 97 left pane (main view), 101–102 task views (see task views) Menu Filtering button, 119, 138–139
901
902
JD Edwards EnterpriseOne: The Complete Reference Menu Filtering mode, 97–98, 137–138, 451 merge, Oracle BI Server, 200 merge, Specification. See Specification merge merge modification flag, 707–713, 717–718 merge reports, upgrades, 661 Message form, 231 Message Management, 116 message queues, kernels, 318 metadata architected data mart, 192–193 data warehousing creating/storing, 187 enterprise DW architecture, 194–195 next-generation DWs, 196 Oracle BI Administrator, 218 Metadata kernel configuring, 329 defined, 321 overview of, 327 Microsoft Office, 213–214 SMS (Software Management System), 280 software licenses, 789 Microsoft SQL Server Desktop Engine. See MSDE (Microsoft SQL Server Desktop Engine) database middleware. See also Fusion Middleware defined, 6 defining, 86 EnterpriseOne, 86–89 Fusion Applications based on, 7 types of EnterpriseOne, 86–87 minConnection parameter, JAS, 750 minimum technical requirements. See MTR (minimum technical requirements) Miscellaneous Security Revisions, 441–442 MNGT (management), 823–829
Mobile Client Database Revisions form, Package Assembly, 252 mobile user security, 403 model, printer, 551–552, 561 modeling, EnterpriseOne architecture, 797–799 Modeling Your Solution phase, EnterpriseOne implementation, 806–807 Modify a User Group window, 493 Monitor Configuration window, Server Manager, 514–515 monitoring business processes, 18 SAW kernel, 325 Web Cache, 625 Monitors window, Server Manager, 514 MS SQL Server, 819–820 MSDE (Microsoft SQL Server Desktop Engine) database data servers running on, 152 deployment server directory backups, 670 dropping in Q2 of 2008, 264 storing TAM and XML files, 261 MTR (minimum technical requirements) defined, 20–21 deployment server, 146 software selection process, 786 upgrade disk space, 664 upgrade software, 664–665 WebSphere installation, 625 Windows NT enterprise server upgrades, 665–668 multiple instances, globalization, 835 multiple queues, optimization, 738–744 adding JDEQUEUE processes, 740–741 changing UBE version for new queues, 742–744 increasing number of queues, 741–742 reasons to add queues, 740 UBE process, 739–740 multithreaded call object kernels, 324
Index multithreaded processing, JDE.INI kernels, 745 multithreaded queues, 738
N named event rules (NERs), 26, 264 naming conventions business data tables, 37–38 configuring HTTP plug-in with WebSphere, 630 control object tables, 38–39 Data Dictionary data source, 40 local data source, 39, 41 logic data source, 41 Object Librarian, 40 printers and locations, 552, 561 registering OAS, 468 server data source, 41 system data source, 40 task views, 120–121 Versions data source, 39 for your company, 251 native portlets, 234 navigation basic EnterpriseOne, 95–96 OMW, 348–351 Oracle BI Server, 199 NCA (net change analysis), 824–829 near-shore resources, outsourcing, 873–874 NERs (named event rules), 26, 264 net change analysis (NCA), 824–829 netwm tool, 332 network layer, communication middleware, 318 Network process, AS/400, 769 network service, Listener, 280–282 Network Settings window, HTML server, 506 next numbers control tables, 380–381 task views, 121 next-generation data warehouses, 196–197
Next-Number table, F0002, 380–381 Next-Number table, F00021, 381 nightly processing, app servers for, 158–159 NoSource.txt file, 287 NotChkdn.txt file, 287 notification hours, Server Manager configuration, 515 N-tier architecture, 157–158
O OAS (Oracle application server), 610–625 administering using Server Manager, 508 installing E1 HTML code, 606 installing E1 HTML server, 610–615 as red-stack installation, 610 registering, 465–471 troubleshooting, 615–616 tuning, multiple JVMs, 617–620 tuning, Web Cache, 620–625 WebSphere vs., 608–609 OBAs (Oracle Business Accelerators), 238 OBIEE (Oracle Business Intelligence Suite Enterprise Edition), 197–210 defined, 182 Oracle BI Administrator, 217–219 Oracle BI Answers, 203–206 Oracle BI Briefing Books, 212 Oracle BI Delivers, 212–213 Oracle BI Disconnected Analytics, 215–217 Oracle BI Interactive Dashboard, 207–209 Oracle BI Office Plug-in, 213–215 Oracle BI Presentation Server, 201–203 Oracle BI Publisher, 209–211 Oracle BI Server, 198–201 overview of, 197–198 summary review, 219–220
903
904
JD Edwards EnterpriseOne: The Complete Reference Object Component, Package Assembly, 252 Object Component Selection, Package Assembly, 253 Object Configuration Manager. See OCM (Object Configuration Manager) Object Configuration Manager table. See F986101 table, Object Configuration Manager Object Librarian Master table, F9860, 353 Object Librarian tables changing OCM mappings for, 80–82 objects in, 344 overview of, 40 Specification merge, 704–705, 707, 710, 716–717 upgrade process, 661 Object Librarian-form information table, F9865 table, 354 Object Librarian-function detail table, F9862, 353–354 Object Librarian-object relationships table, F9863, 354 Object Librarian-status detail table. See F9861 table, Object Librarian-status detail Object Management Workbench. See OMW (Object Management Workbench) Object Mapping Revisions window, 76–79 Object Name field, Object Mapping Revisions, 77 Object Owner ID field, Data sources, 34, 44 Object Type field, Object Mapping Revisions, 77 OC4J (Oracle Container for Java) defined, 609 OAS installation, 612 tuning OAS, 618 OCM (Object Configuration Manager), 71–86 adding mappings, 76–79
advanced options, 86 changing object librarian table mappings, 80–82 changing Oracle parameters used by EnterpriseOne, 82–84 copying mappings, 80 data server solution, 157 defining, 71–72 deleting mappings, 80 environment table, 68 example of mappings, 73–74 how host code functions, 516 overview of, 71 Revise Table and Data Source Overrides screen, 84–85 system vs. server map mappings, 80 which tables are used, 72 workstation requesting data or logic, 72–74 workstation running UBE, 74–76 OCM Data Source flag, 36, 45 ODBC connections, AS/400, 770–771 ODBC Data Source Name, 35 ODS (Operational Data Store), 192 offline mode, Oracle BI Administrator, 219 offshore resourcing near-shore resources vs., 873–874 overview of, 872–873 OK button, Fix Inspect form, 229 OLAP, 197, 205 OLTP (Online Transaction Processing), 197 OMW (Object Management Workbench), 340–355 allowed actions, 345–346 application design tools, 225–226 basic search in, 351–352 building and deploying business service in, 28 creating business service in, 23 documenting development naming standards, 224 logging, 352–353 navigating, 348–351
Index objects, 343–344 overview of, 341–342 owners, 345 projects, 342–343 promoting task views via, 120 restoring object from save location, 672, 674 roles, 345 searching by Project Name, 253 tables used by, 353–354 tokens, 346–348 one1 security level, application versions, 241 OneWorld Xe, 8–9 online folders, Oracle BI Publisher, 211 online mode, Oracle BI Administrator, 219 online references Electronic Software Updates, 718 EnterpriseOne software technical requirements, 667–668 language support, 835 localizations, 840 OAS, 611, 638 Oracle Enterprise Manager, 614 third-party products for printing, 583 upgrade disk space requirements, 664 upgrade software requirements, 664–665 WebSphere, 625 Online Transaction Processing. See OLTP (Online Transaction Processing) onshore resourcing, 874 onsite resourcing, 876 open files, AS/400, 773–774 Open window, importing data into grid form, 577–578 operating system, optimizing, 728–730 Operational Data Store. See ODS (Operational Data Store) operational definition, 878 optimization creating multiple queues (see multiple queues, optimization)
data servers, 156 deployment servers, 149 JDE.INI kernels, 744–746 knowing when to optimize, 726–728 web servers, 746–751 optimization, five-step methodology, 728–738 CNC concepts, 736–738 database, 730–732 of EnterpriseOne process, 732–733 operating system, 728–730 process redesign, 733–736 Oracle application server. See OAS (Oracle application server) Oracle Application Server Infrastructure configuration options, 641–642 installing, 637–640 selecting installation type, 640–641 Oracle Application Server Portal, 177–178 Oracle BI Administrator, 217–219 Oracle BI Answers, 183, 203–206 Oracle BI Briefing Books, 183, 212 Oracle BI Delivers, 183, 212–213 Oracle BI Disconnected Analytics, 183, 215–217 Oracle BI Interactive Dashboards, 183, 207–209 Oracle BI Office Plug-in, 183, 213–215 Oracle BI Presentation Server, 201–203, 217 Oracle BI Publisher, 183, 209–211 Oracle BI Server accessing information, 201 code generation, 200 defined, 182 information reliability, 200–201 Oracle BI Presentation Server interaction with, 201–203 overview of, 198–199 parallel execution engine, 200 performance and scalability, 215–217 query parsing and compilation, 199–200
905
906
JD Edwards EnterpriseOne: The Complete Reference Oracle Business Accelerators. See OBAs (Oracle Business Accelerators) Oracle Business Intelligence Suite Enterprise Edition. See OBIEE (Oracle Business Intelligence Suite Enterprise Edition) Oracle Configuration Manager, 493–494, 495–497 Oracle Connect String, Data sources, 35 Oracle Container for Java. See OC4J (Oracle Container for Java) Oracle Enterprise Manager, OAS installation, 614–615 Oracle Fusion SOA Suite, 11–18 BPEL Process Manager, 14–15 Business Activity Monitor, 15–18 ESB and Web Services Manager, 13–14 overview, 11–13 Oracle home, OAS Infrastructure, 638–639 Oracle Internet Directory service, 647–648 Oracle on the Web option, Help menu, 119 Oracle Portal, 637–650 accessing, 648 installing EnterpriseOne portlet, 649–650 installing OAS, 644–648 installing OAS Infrastructure, 637–644 overview of, 637 Oracle RDBMS, 31, 34 Oracle Universal Installer configuration options, 641–644 installing Oracle Application Server Infrastructure, 638–640 installing Oracle Portal Application Server, 644–648 selecting installation type, 640–641 output, User Default Revisions dialog, 114–115 outsourcing (managed services) assessing risk, 876–879
case study, 865–866 overview of, 858 pros and cons of, 871–872 resources available via, 872–876 summary review, 879–880 ten simple rules of, 859–865 outsourcing (managed services) strategy application support, 868–869 development activities, 866–867 hosting of your system, 869–870 maintenance contracts, 870–871 overview of, 866 technology activities, 867–868 owners, OMW, 345 OWWEB settings, jas.ini file, 650
P P0004A User-Defined Codes application, 382–383 P0092 User Profile application, 389 P00950. See Security Workbench P4210 Sales Order, 807–808 P47002 Flat File Cross Reference, 852–855 P9000, 120–123 P91300 Schedule Jobs application. See Scheduler P92001 Data Dictionary application administration of, 364 batch applications, 362–364 defining data items to, 358 interactive applications working with, 359–362 P92002 error messages application, 361–362 P95600 XML Publisher Object Repository, 586 P95620 XML Publisher Report Definitions, 591–592 P95630 Report Definition Output Repositories, 600–601 P9631 Package Deployment, 284 P96470 Work with Software Updates, 716–717
Index P98305 Batch Version application, 373–374, 739, 742–744 P98401 Specification Merge Selection program, 658–659 P984052 Table Conversion/Merge Log application, 691–692 P98430 Table Conversion Scheduler, 688–689 P986113 Work with Subsystem jobs, 376–378 P986115 Database Data Sources, 37, 42–46 P986116 Work with Server Jobs defined, 372–373 job data and detail, 374–376 overview of, 374 subsystem jobs, 376–378 UBE/subsystem counts, 378–379 P986130 Work with Job Queues, 741–742, 780 P98616 Printers application adding new printer definitions, 548–558 defined, 548 modifying printer definitions, 560–562 overview of, 548 setting up default printer, 562–567 P98700 Specification Merge Status, 710–714 P98950 User Overrides application adding new grid formats, 526–529 deleting record using, 529 finding record for specific application, 528–529 finding specific record, 528 user override administration, 526–529 P98OWSEC User Security, 404 Package and Deployment Tools menu, 250, 283–284 Package Assembly, 250–260 Build Specification Options, 256–259
Business Function Options, 259 Compression Options, 259–260 defining new package, 250 Features, 254 Foundation Component, 252 Individual Specification Selection, 257–258 Language Component, 254 Mobile Client Database Revisions form, 252 Object Component, 252 Object Component Selection, 253 Package Build Location, 256 Package Build Revisions, 260–262 Package Component Revisions, 254 Package Information, 250–251 Package Type Selection, 251 Server Selection window, 269–270 Work with Packages, 250, 255–256, 260 Package Build Definition director, 256 Package Build Detail table, F9622, 268 Package Build Header History table, F96215, 267–268 Package Build History application, 267–268 Package Build History Detail table, F9622, 268, 271, 272 Package Build History window, 268, 289–290 Package Build kernel, 320, 326 Package Build Location window, 256 Package Build planner, 682 Package Build report, 261–265 Package Build Revisions window, 260–262 Package Component Revisions window, 254 Package Deployment application, 277–279 Package Deployment Attributes window, 277–278 Package Deployment Targets window, 277, 285
907
908
JD Edwards EnterpriseOne: The Complete Reference Package Header table, F9603, 265–266, 686–687 Package Information window, 250–251 Package Installation kernel, 320, 325 Package Selection window, 277 Package Type Selection window, 251 Package Workbench, 686–687 packages building, 261–265 centralized vs. decentralized strategies, 246–248 defining in Package Assembly (see Package Assembly) deploying server packages, 284–286 how host code functions, 516 overview of, 244–245 Package History Build application, 286–290 server, 269–273 summary review, 291 troubleshooting, 286–290 workstation, 248–249 packages, deploying client, 273–284 assigning to workstations, 277–279 creating client INI file, 276 interactive deployment, 273–275 silent and verbose, 276 troubleshooting, 290 using Listener, 279–284 what happens during, 275–276 paper type adding custom, 554–555 choosing printer definitions, 552 modifying printer definitions, 560–562 printing and, 554–555 Paper Type Revisions window, 554–556 par files, Tools Release, 298–299 parallel execution engine, Oracle BI Server, 200 Parent/Child form, 231–232 parsing, Oracle BI Server query, 199 Password Revisions row exit, 414 passwords changing in Server Manager, 489
configuring sign-on security, 407 installing Server Manager console, 458 Oracle Enterprise Manager sign-on, 614–615 running upgrade after changing database user, 693–695 Security kernel processes, 323 troubleshooting server package builds, 288 User Default Revisions dialog box, 114–115 patches, WebSphere, 630 Path Code field, Environment Revisions, 69 path code master file, 68 Path Code Master table. See F00942 table, Path Code Master path codes, 50–66 adding, 52–61 associating environments with, 69 creating check-in location, 61–63 creating enterprise server, 63 decentralized strategy for, 246–247 defining, 51 deleting, 66 deployment server containing, 146 implementing remote development, 154 modifying F9861 table, 63–65 overview of, 50–51 in package build process, 244–245 setting up standard configuration, 246 tables used, 51–52 update process in development, 658 upgrading custom environment, 679–680 PCYMMDDT naming convention, 251 PDF files printing out of Adobe Reader, 579–580 printing to CSV files, 570 remote sites and, 580
Index troubleshooting workstation printing, 581–582 XML Publisher security levels, 584 PDL (Printer Definition Language) adding custom, 555 choosing printer definitions, 550, 553–554 modifying printer definitions, 560–562 PDM (Program Development Manager), 775 performance. See also optimization ensuring PDF file compression, 621 Oracle BI Presentation Server web server, 203 Oracle BI Publisher, 210 Oracle BI Server, 216 tuning OAS, multiple JVMs, 617–620 tuning OAS, Web Cache, 620–625 tuning WebSphere, 633–635 Performance Monitor, 506 Performance Workbench, 754–761 defined, 754 dos and don’ts, 760–761 JASLogParse section, 760 LogParse section, 755–758 optimization and, 732 setting up, 754–755 SQLLogParse section, 758–760 permissions applying Tools Release to HP9000/ pSeries/Sun Solaris, 307 global group, 491–493 server group, 493–494 troubleshooting Intel server, 781–782 troubleshooting UNIX server, 781 Permissions for Server Group, 493–494 personalization, 205, 208 personnel requirements, EnterpriseOne technology implementation, 796 physical data storage independence, 204–206 PIM Export All Users form export, 403 PIM Synch server, registering, 487
ping servername, UNIX, 779 PIPs (Process Integration Packs), 6, 7, 10 planning EnterpriseOne implementation, 794 EnterpriseOne installation, 801–802 EnterpriseOne preinstallation, 802–803 managed services, 863 Platform Information window, printers, 551 Platform Pack, 66–67, 676 Platform type field, 34, 44 platforms JDBNet kernel communicating between, 324–325 printer definitions, 550–551 supported by EnterpriseOne, 164, 768 troubleshooting AS/400 (see AS/400 platform, troubleshooting) troubleshooting Intel server, 781–782 troubleshooting UNIX server, 777–781 upgrades/updates, 662–663 PMO (project management office), 823–829 port configurations installing Oracle Application Server Infrastructure, 641 installing Oracle Portal Application Server, 646–647 JDENet, 518–519 OAS installation, 611 tuning OAS using Web Cache, 622 port numbers Enterprise Server Revisions window, 167 installing Oracle Portal Application Server, 648 installing Server Manager console, 458–459 running in parallel on client workstations, 723–724
909
910
JD Edwards EnterpriseOne: The Complete Reference portal, defined, 609 portal server, 177–178 portal solutions. See also web servers IBM Collaborative Portal, 650–652 Oracle Portal (see Oracle Portal) overview of, 635–636 summary review, 653 portlets defined, 609 edit and browse, 234 FDA vs. native, 234 installing for EnterpriseOne, 649–650 overview of, 636 porttest command, 307–308, 309 post-go-live activities, 801 postinstallation audit, 805 power browse forms, 233 power edit forms, 232 power forms, 231–233 prebuilt options, data warehouses, 189 pre-go-live activities, 799–800 preinstallation audit, 804–805 preinstallation planning, 802–803 Previous System Data Source, upgrades, 678 Primary User field, Enterprise Server Revisions, 167 print queues, monitoring, 582 Printer Name field, Default Printer Revisions, 566 Printer Search & Select (W98616F) form, 562–563, 566 Printer Selection window, 568, 570 Printer Setup director, 549–550, 558–562 Printer Setup window, 552–553 PrintImmediate setting, 568 printing adding custom printer definition language, 555–557 adding job schedule, 539–540 adding new paper types, 554–555 adding new printer definitions, 548–554 changing default printer for users, 114
to comma-delimited file, 569–571 defining default printers, 562–567 exporting from grid, 571–574 history of, 547–548 importing to grid, 574–579 modifying printer definitions, 558–562 other options, 579–580 P98616-EnterpriseOne printers, overview, 548 printer support for upgrades, 665 settings for, 567–569 with third-party products, 582–583 troubleshooting, 580–582 with XML Publisher 8.97 (see XML Publisher) printqueue, 304–305 pristine environment, 380, 676 Process Integration Packs (PIPs), 6, 7, 10 processes, optimization, 732–736 Processes radio button, 376–378 Processing Option Security, 429–433 processing options prompting, 240–241 Scheduler, 529–530 versions, 239–240 Processing Options Default tab, Scheduler, 531 Processing Options Process tab, Scheduler, 531 Processing options, Solution Explorer Edit, 107–108, 121 production environment, updates/ upgrades in, 657 productivity issues, outsourcing, 873, 875 PRODUSER, 389 Program Development Manager (PDM), 775 project management office (PMO), 823–829 projects assigning roles, 345 Object Management Workbench, 342–343 owners of, 345
Index Prompt for Data Selection and Values, Solution Explorer, 110 Prompt for Data Selection, Solution Explorer, 109 Prompt for Values, Solution Explorer, 106–107 Prompt for Versions, Solution Explorer, 108–109 prompting options, batch/interactive versions, 240–241 prototype environment, 140, 657–658 ps-ef|grep command, UNIX, 777–778 pSeries, 305–306, 312 *PUBLIC, 562–567 Publish BSSV, 447 publishing, with business services, 20–21, 483 purchase orders (see EDI [Electronic Data Interchange]) purple stack, 625 Push Button Security, 443–444
Q QAT (Quality and Testing) products, 799 QBATCH, troubleshooting AS/400, 771–773 QBE (Query By Example) line deleting task, 133 deleting task view, 126 Find/Browse form, 228 merging a lot of objects using, 711 modifying printer, 600–601 searching in OMW, 352 QSECOFR command, 311 QSoftware Global, 453 Quality and Testing (QAT) products, 799 queries caching, 217 data warehousing and, 187 with Oracle BI Answers, 203–206 parsing and compiling, 199–200 Query Analyzer, 819–820 Query By Example. See QBE (Query By Example) line
Query Selector, Table Browser, 383–384 queues adding media object, 367–369 optimizing with multiple (see multiple queues, optimization) quick links, Server Manager, 606–607 QYSYSINC (System Openness Includes), 770 QZDASOINIT processes, troubleshooting AS/400, 770–771
R R00165 Data Item Text Check, 363 R07231 Print Checks UBE, 739 R43500 Purchase Order Print UBE, 845, 851 R47012C EDI Purchase Order Extraction Conversion UBE, 845–850 R47017 EDI Purchase Order Update as Sent UBE, 850 R8998743 report, 697 R9200 Data Dictionary clean up report, 363 R9200100 - Update Display Decimals, 363 R92TAM Recreate Replicated DD, 363 R9621 report full package builds, 262–263 full server package builds, 270–271 update package builds, 264–265 R9622 Server Package Build report, 271–272 R9800942 report, 62–63 R98402 report, 696 R98403 Processing Options dialog, 58–61 R98403 Table Copy UBE, 156, 398 R98405 report, 694 R98407 report, 696 R9861101 Job Control Status Master, 372 R9861101 UBE, 601 R98825D UBE Enterprise Server Deployment, 285 R98CRTGL Generate Global Table Spec, 364
911
912
JD Edwards EnterpriseOne: The Complete Reference RAD (Rapid Application Development), 192–193 RAID, 149 RAM deployment server, 150 Windows client, 178 ranking, Oracle BI Server execution engine, 200 Rapid Application Development (RAD), 192–193 RCA (release control manager), 822–829 RDA (Report Design Aid), 117 applying process redesign, 736 automating EDI process, 850–851 overview of, 235–237 RDBMS (relational database management system) data server containing, 152 Enterprise One ERP supporting, 30–33 implementing data server solution, 156 optimizing, 730–732 read-only reports, restricting users to, 441–442 Real Time Events window, HTML server, 506 records, updating at one time, 230 Recurring Scheduling Information Revisions window, 536, 538 red stack, OAS as part of, 610 redundancy, 149, 796–797 registering with Oracle Internet directory, 647–648 servers (see Server Manager, registering servers) regulations, data warehousing and, 187 relational database management system. See RDBMS (relational database management system) relationship, task adding, 131–132 copying to new task view, 133–134
deleting, 134 deleting in multilevel relationships, 135 release control manager (RCA), 822–829 Release field, Environment Revisions window, 69, 167 remote development, data server for, 154 remote resourcing, 875 Replace JDE.INI, Package Assembly, 259 replication, data dictionary, 379 Replication kernel configuring, 328 defined, 319 overview of, 322 report definitions, XML Publisher, 590–596 basic options, 592–593 bursting/delivery options, 594–596 deleting, 601 language/output options, 593–594 managing output, 600–601 Report Design, 117 Report Design Aid. See RDA (Report Design Aid) Report Design Director, 235–237 reports active report engine, BAM, 17 ad hoc, 571–574 bursting, Oracle BI Publisher, 211 data warehousing and, 187, 191 eliminating time-based tables for, 206 multiple languages for, 839 next-generation best practices, 197 Oracle BI Publisher managing, 209–211 printing (see printing) read-only, 441–442 templates, 237 User Default Revisions dialog box, 114–115 versions, 117, 237 XML Publisher features, 584 XML Publisher process, 585
Index request for proposal (RFP), 787–788 Required/Not Required option, Security History, 411 retrofitting modifications, upgrades/ updates, 719 reusable browse subform, 234 reusable edit subform, 233 Revise Enterprise Server window, 171 Revise Table and Data Source Overrides, 84–85 rewrites, Oracle BI Server, 199 RFP (request for proposal), 787–788 RGZPFM command, AS/400, 774 right pane (main view), Solution Explorer, 96, 102–103 RIS versions, 238 risk, managed services and, 876–879 risk mitigation strategy (RMS), 878–879 RMS (risk mitigation strategy), 878–879 RNMOBJ command, 303 Role Definition window, 130–131 Role Description form exit, 400 Role Revisions form, 399–400 roles applying to tasks, 130–131 changing view of task view, 140 OMW user, 345 sequence, 400–401 setting up default printer for, 562–567 understanding task view, 138–139 roll back strategy, for upgrades, 672–675 Row And Column Security, 425–429 row exits Action Security, 425 External Calls Security, 439 Hyper Exit Security, 436 Processing Option Security, 432 Row Security Revisions window, 426–428 runbatch process, 516–517 running in parallel, 664, 719–723 Runtime Metrics, EnterpriseOne HTML, 500–505
Runtime Metrics, EnterpriseOne Server, 510–514 runube process, 326
S SA (systems analyst), 822, 824–829 SANs (storage area networks), 731 Sarbanes-Oxley regulations, 187 SARs (Software Action Requests), 296, 718 Save Location, OMW, 349 save location, restoring object from, 671–672, 674 Save Role application, 139 saving Oracle BI Interactive Dashboard selections, 209 query override, 522 SAW (Server Administration Workbench) configuring, 329 defined, 320 kernel processes, 325 monitoring kernel processes, 332–336 overview of, 325–326 viewing modified task view, 129 scalability multiple application servers, 159 Oracle BI Presentation Server web server, 203 Oracle BI Publisher, 210 Oracle BI Server, 216 Schedule Information Add window, 536–537 Schedule Server, 531–534 Scheduler, 529–542 activating Schedule Server, 531–534 adding job schedule, 535–540 F91300 table, 530 knowing about time, 534 overview of, 529 processing options, 529–530 scheduling batch applications, 534–535 troubleshooting, 540–542
913
914
JD Edwards EnterpriseOne: The Complete Reference Scheduler kernel configuring, 329 defined, 320 overview of, 326 Scheduler kernel tables, F91300, 326 Scheduler Sleep Time field, 533 schedules Listener service, 283–284 Oracle BI Publisher, 210, 211 Scheduling Advanced Options window, 536–539 scoping and planning, preinstallation, 801–802 Scroll To End, 748–749 SDLC (software development life cycle), 22, 244 search facilities OMW Search window, 351–352 Oracle BI Publisher, 211 Package Assembly, 253 Search & Select window, 121, 231 Secondary Data Source field, Object Mapping Revisions, 78 Sec-Qure software, 453–454 security built-in business services, 20 business unit, 447–451 data warehouse-BI systems, 191 LDAP, 452–453 overview of, 388 request for proposal and, 787 sign-on (see sign-on security) single sign-on, 453 task views, 102 technology modeling phase, 811 testing Tools Release for, 310 third-party applications, 453–454 users and roles (see users and roles) using Oracle BI Office, 214 using Security Workbench (see Security Workbench) versions and, 241 web server, 177 XML Publisher PDF, 584
Security History window, 411 Security kernel configuring, 328–329 defined, 319 overview of, 323 Security Revisions window, 408–410 security server, 494, 778–779 Security Workbench Action Security, 423–425 Application Security, 420–423 Chart Control Security, 446–447 Data Browser, 442–443 Exclusive Application Security, 436–437 External Calls Security, 438–439 Hyper Exit Security, 434–436 Image Security, 444 Inclusive/Exclusive Row Security, 419–420 Link Security, 444 Media Object Security, 444–446 Miscellaneous Security Revisions, 441–442 overview of, 416–419 Processing Option Security, 429–433 Publish BSSV, 447 Push Button Security, 443–444 Row And Column Security, 425–429 Solution Explorer Security, 440–441 Tab Security, 433–434 Text Block Control Security, 446 Work with User/Role Profiles, 402 Select Grid Format window, user overrides, 523–524 Select Product window, Portal Application Server, 645 SELECT statements configuring sign-on security, 411 processing options, 433 troubleshooting with JDEDEBUG .LOG, 765 troubleshooting with UBEDEBUG .LOG, 768
Index Select window, OMW, 350 Send Message button, Runtime Metrics, 501 Sentinel processes, troubleshooting AS/400, 769 serialized objects, 727 Server Administration Workbench. See SAW (Server Administration Workbench) server codes, 158, 163 server data source, 40–41, 46 server group permissions, 493–494 Server Manager administering EnterpriseOne enterprise server, 509–514 administering HTML EnterpriseOne server, 497–507 administering OAS and Websphere, 508 applying Tools Release with, 296, 299 architecture, 457–458 configuration, 460–461 configuration monitoring, 514–515 console users, 487–494 defined, 609 development of, 605 installing console software, 458–460 installing E1 HTML code, 605–608 installing E1 HTML server, 632 installing Oracle Configuration Manager, 495–497 installing Server Manager agent, 459–460 installing software, 461–464 installing/upgrading Tools Release, 300 kernel, 321 Oracle Configuration Manager, 493–497 overview of, 456–457 uploading Tools Release, 299 viewing modified task view, 129 Server Manager Console (SMC), 457
Server Manager, registering servers business services server, 482–487 creating new HTML web server, 472–477 enterprise server, 477–482 Oracle application server, 465–471 other types, 487 overview of, 464–465 WebSphere application server, 471–472 server map data source, 40, 162–163 Server Map Data Source field, Enterprise Server Revisions, 168 server maps, 371–379 adding new environments to, 685–686 defined, 371–372 Host Workbench populating tables for updates, 685 OCM mappings, 72, 80 subsystem jobs, 376–379 tables associated with, 372–376 Server Name field, Work with Data Sources, 44–45 server packages defining, 269–270 deploying, 284–286 full, 270 troubleshooting, 289–290 Server Status field, Enterprise Server Revisions, 168–169 service packs. See Tools Release Service-Oriented Architecture. See SOA (Service-Oriented Architecture) services logging AS/400, 769–770 troubleshooting UNIX, 780–781 servlets, 609 Setup Business Unit Security application, 449–450 setup.exe file, OAS, 611–612 sharing information online with Oracle BI Answers, 205 with Oracle BI Interactive Dashboard, 207 with Oracle BI Office plug-in, 215
915
916
JD Edwards EnterpriseOne: The Complete Reference Show option, Solution Explorer View menu, 111–114 sign-on security, 404–416 client workstation INI settings, 416 concepts, 404–411 disabling in deployment server for upgrades/updates, 693 enterprise INI settings, 414–415 Global Password Policy, 412 other application options, 412–414 overview of, 404 single, 453 steps prior to forcing, 411–412 silent package deployment, 276 Simple Object Access Protocol (SOAP), 5, 202 single instances, globalization, 835 single sign-on, 453 single-threaded queues, 540 site servers, 623–624 skill, managed service advantages, 871 Smart Field Criteria-Setup Rules table, F9212, 356 SMC (Server Manager Console), 457 SMRB (Software Modification Review Board), 822, 824–829 SMT (software modification test), 823, 824–829 SOA (Service-Oriented Architecture) defined, 5 Fusion Applications based on, 7 OBIEE Suite sharing common, 183 overview of, 9–10 SOAP (Simple Object Access Protocol), 5, 202 soft coding, for business services, 26–27 software installing E1 HTML code, 607 installing with Server Manager, 461–464 upgrade requirements, 664–665 web server requirements, 173
software, EnterpriseOne implementation about contracts, 789 package builds and deployments, 832–833 purchasing, 804 selection process, 784–788 single or multiple instances for globalization, 835 technology implementation, 795–796 Software Action Requests (SARs), 296, 718 software development life cycle (SDLC), 22, 244 Software Modification Review Board (SMRB), 822, 824–829 software modification test (SMT), 823, 824–829 Software Package Build Header table, F96021, 266–267 Solution Explorer EnterpriseOne navigation, 95–96 Help option, 118–119 HTML overview, 99–100 left pane (main view), 101–102 overview of, 96–99 right pane (main view), 102–103 Security Revisions window, 440–441 Security window, 440–441 task views (see task views) sorting in data sequencing, 239 Oracle BI Server execution engine, 200 Report Design Director, 236–237 source files, Specification merge and, 714–715 specialty applications control tables, 379–383 data browser, 383–385 data dictionary (see data dictionary) job queues, 385–386 media objects, 365–370
Index Object Management Workbench (see OMW [Object Management Workbench]) server maps (see server maps) system tables, 370–371 specification files, data dictionary, 356 Specification Merge affecting source and header files, 714–715 Control Table Workbench, 704–707 modification flag, 707–713 modifying merge status of object, 713–714 updates, 716–718 Specification Merge planner, 681 Specify Database Configuration Options window, Universal Installer, 643 Specify File Locations window, Oracle Portal Application Server, 644 Specify Namespace in Internet Directory window, Universal Installer, 642 Specify Port Configuration Options window, Universal Installer, 641–642 SpecMerge Tracking table, F988810, 709–714, 716–717 SQL Plus or SQL worksheet, 819 SQL Server Express (SSE) database, 261, 670 SQL Server RDBMS, 31–32, 34 SQL statements optimization process and, 732–733 updating printer definitions, 561–562 SQL worksheet, 819 SQL*Net, Oracle RDBMS, 31 SQLLogParse section, Performance Workbench, 755, 758–760 SSE (SQL Server Express) database, 261, 670 standards Fusion Applications, 7 OAS, 468 Oracle BI Publisher, 211 Status Bar, Solution Explorer View, 114
Status field, Default Printer Revisions, 566–567 Stop Build, Package Assembly, 257–258 storage area networks (SANs), 731 stovepipe data marts, 196 stress tests, 801, 810–811 STRNET command, AS/400, 769 STRPDM command, 775, 776 STRSQL command, 775, 820 STS log files, 287–288 styles, Oracle BI Interactive Dashboard, 209 Submit Build button, package builds, 261 Submitted Job Search window, 373 Subsystem Job Master table, F986113, 371–372, 377–379 subsystem jobs, 376–379 Sun Solaris, 305–306, 312 support, managed service limitations, 871–872 Support Assistance, 494–495 Support for Locking Updates flag, 35–36, 45 SvrPkgBuild.log file, 286 synchronous message, JDENET_n, 321 synchronous processing, 89–90 SYSADMIN, 389 SYSOLDSP command, 312 System Administration Tools menu, 389 system audits, 791 system data source, 39–40 system directory, 297–298, 306–309, 311–313 system library, 302–304 system mappings, 72, 80 System Prerequisites Check, WebSphere, 628 System Role field, Object Mapping Revisions, 77 system tables adding user profiles, 389 Host Workbench updating, 684–685 overview of, 370–371
917
918
JD Edwards EnterpriseOne: The Complete Reference System User Revisions window, 407 systems analyst (SA), 822, 824–829 system.Z file, 305–308
T Tab Security, 433–434 Table and Data Source Sizing table, F986115, 49, 685 Table Conversion planner, 680–681 Table Conversion Scheduler, F9843, 688 Table Conversion Workbench after changing database user passwords, 693–695 overview of, 687–693 types of table conversions, 695–701 updates, 715 table conversions log files, 696–701 types of, 695–696 updates, 715 tables control, 379–383 data dictionary, 355–357 database maintenance, 731 environment, 67 Environment Workbench, 684 full package builds, 263–264 media object queues, 367 Object Configuration Manager, 72 OMW, 353–354 package build definition, 265–268 package build process specification, 261 reloading during upgrades, 660–661 server map, 371–372 system, 370–371 task view, 119–120 updating at one time, 230 tables spaces, Oracle RDBMS, 31 Task Launching mode, Solution Explorer, 98–99 Task Properties window, Solution Explorer, 111–113
Task Relationship Revisions window, 132, 133 Task Revisions window applying roles to tasks, 130 customizing existing task view, 121–123 modifying existing task view, 127 Task Translations Revision window, 133–134 Task View merge, Control Table Workbench, 703–704 Task View Revisions dialog box, 123–126 task views, 104–141 adding task relationship, 131–132 Applications menu, 118 applying role to, 130–131 change control and, 140–141 changing role view of, 140 Control Table Workbench affecting, 701 copying existing task and its relationship to new, 133–134 copying task, 130 custom, 123–125 customizing existing, 121–123 deleting, 126–127 deleting relationships in multilevel relationships, 135 deleting task relationship, 134 deleting tasks, 135–136 Edit menu, 106–110 File menu, 105 filtering, 137–138 Help menu, 118–119 HTML/web users, 99–100 inserting existing task, 125–126 interaction with EnterpriseOne, 119–121 left pane (main view), 101–102 menu bar overview, 104 modifying existing, 127–129 overview of, 95–96 right pane (main view), 102–103 roles, 138–139
Index Solution Explorer overview, 96–99 task translations, 136–137 Task Where Used option, 117, 130, 134–135 toolbar, 119 Tools menu, 115–118 View menu, 110–115 Task Views option, Solution Explorer View menu, 111 Task Where Used option, Tools menu, 117, 130, 134–135 taxes, globalization and, 840 technical request requirements (TRR), 824–829 technical requirements. See MTR (minimum technical requirements) technical support, and globalization, 843–844 technical table conversions, upgrades/ updates, 695 technology activities, managed services, 867–868 technology audits, 830–831 technology before applications rule, EnterpriseOne implementation, 809–810 technology manager (TM), 822, 824–829 technology modeling phase, EnterpriseOne, 809–811 technology phases. See EnterpriseOne implementation, technology phases templates report, 237 XML Publisher process, 585–590 Terminate button, Runtime Metrics, 501 terminology Fusion Applications and Fusion Middleware, 5–6 web server, 609–610 testing EnterpriseOne architecture, 798–801 grid formats, 526 in technology modeling phase, 810–811
Tools Release, 310 WebSphere, 631 Text Block Control Security, 446 thick client, 17 thin client, 17 third-party vendors. See also outsourcing EnterpriseOne hardware configuration, 803–804 printing, 582–583 security, 453–454 upgrade software requirements, 664–665 ThreadedMode settings, INI file, 520 ThreadPoolIncrement settings, INI file, 520 ThreadPoolSize settings, INI file, 520, 746 3 security level, application versions, 241 time, and Scheduler, 534 time-based reporting tables, Oracle BI Answers, 206 Tip of the Day option, Help menu, 119 Tivoli Directory Server, 652 TM (technology manager), 822, 824–829 TNSNAMES.ORA, 31 tnsping, 780–781 To and From release, Table Conversion planner, 680–681 To-Be state, 802 tokens, OMW, 346–348 toolbar showing or hiding Menu, 113 Solution Explorer, 119 Tools menu, Solution Explorer, 115–118 Tools Release applying tools update (see tools update) definition of, 294–295 registering enterprise server, 477 version 8.96 and older, 302–309 when to apply, 295–296 Tools Release (TR) defined, 823 how to use flowchart, 824–829 Tools Release/Service Pack (TR/SP), 295
919
920
JD Edwards EnterpriseOne: The Complete Reference tools update, 296–310 applying to deployment server, 298 applying Tools Release 8.97 and newer, 299 backing up old Tools Release, 297–298 building/deploying update package to client workstations, 309–310 distributing Tools Release to appropriate server, 299–301 how to apply, 296–297 reasons for applying, 296 removing Tools Release, 310–313 Server Manager installing/ upgrading, 301 testing Tools Release, 310 uploading Tools Release into Server Manager, 299 train the trainer model, 812–813 training continued, 814 core implementation team, 811–812 end-user, 812–814 final user, 832 overview of, 811 web server, 173 Transaction Manager (TS), 323–324 transaction processing, 206, 324 transaction security, 450–451 transaction server, registering, 487 transfer of knowledge, training through, 832 translations setting up for task view, 136–137 User Profile Revisions window, 393–394 transport layer, communication middleware, 318 troubleshooting AS/400 platform (see AS/400 platform, troubleshooting) Intel server, 781–782 OAS installation, 615–616 overview of, 754
package builds, 286 printing, 580–582 Scheduler application, 541–542 UNIX servers, 777–781 using log files (see log files) using Performance Workbench (see Performance Workbench) WebSphere issues, 632–633 TRR (technical request requirements), 824–829 TR/SP (Tools Release/Service Pack), 295 TS (Transaction Manager), 323–324 2 security level, application versions, 241 TXT log files, 287–288 Typical Installation planner, 676. See also installation planner
U UBE kernel configuring, 328 defined, 319 overview of, 322–323 UBE Subsystem kernel configuring, 329 defined, 320 overview of, 327 UBEs (Universal Batch Engines) adding batch queues to servers, 740–744 as batch applications (see batch applications) configuring versions, 222 deploying server packages, 285 Environment Workbench and, 684 finding and running, 117 host code and, 515–516 printing using, 547 scheduling batch applications, 535 security, 432 submission, 739–740 subsystem counts, 378–379 trouble with unattended, 540 troubleshooting UNIX, 779–780
Index UBE process, 739–740 using asynchronous processing, 90 viewing with UBEDEBUG.LOG, 766–768 workstations running, 74–76 UDC Group Revisions window, Business Unit security, 447–448 UDCs (user-defined codes) Business Unit security and, 447–448 Control Table Workbench, 701, 703 data dictionary in conjunction with, 355 maintaining, 381–382 overview of, 381 P0004A application, 382–383 setting up sharing, 447–448 UDEDEBUG.LOG, 766–768 UNC (Universal Naming Convention), flat-file placement, 846 Unicode data sources, 35–36 globalization and, 835 Universal Table Browser (UTB), 383–385 UNIX server backing up, 298 choosing printer definitions, 551 configuring deployment server, 150–151 implementing data server, 153 running EnterpriseOne with, 768 troubleshooting, 777–781 update packages assembling, 251–252 building and deploying to client workstations, 309–310 building server, 272–273 deploying server, 286 overview of, 249 R9621 report for building, 264–265 recommended number of, 290 UPDATE statement, 411 Update XMLP Object Effective Dates window, 588
updates business data table conversions during, 662 Control Table, 716 Electronic Software Updates, 718–719 Environment Workbench, 716 impact on end users, 675 Oracle BI Briefing Books, 212 overview of, 715 printer definition, 561–562 process flow, 658–660 records or tables at one time, 230 retrofitting modifications, 719 roll back strategy, 674–675 running in parallel, 719–723 Specification Merge Workbench, 716–718 standard methodology, 657–658 summary review, 723–724 table conversions, 715 terminology of Oracle, 294–295 upgrades vs., 656–657 using Electronic Software Updates, 224–225 upgrade path, to Fusion Applications, 8 upgrades, 655–724 app servers, 161 backup procedures, 669–672 development rule, 815 disk space requirements, 664 impact on end users, 675 process flow, 660–663 required software levels, 664–665 retrofitting modifications, 719 running in parallel, 719–723 standard methodology for, 657–658 summary review, 723–724 update process flow, 658–660 updates vs., 656–657 using change tables, 356 using Electronic Software Updates, 224–225
921
922
JD Edwards EnterpriseOne: The Complete Reference using installation planner, 676–682 using Installation Workbench (see Installation Workbench) using Platform Pack, 676 when to roll back, 672–675 Windows NT enterprise servers, 665–668 UPK (User Productivity Kit) tool, training, 812–814 Upload Software Components window, 299–300, 607–608 URL (Universal Resource Locator) defined, 610 installing Server Manager console, 458 monitoring Web Cache, 625 setting up Web Cache, 623 Use Decimal Shift flag, 35–36, 45 Use Julian Dates flag, 35–36, 45 Use Table Owner flag, 36, 45 user access report, 493 User Default Revisions dialog box, 114–115 User Environment Revisions window, 394–395 user group, 491 user interface, 202 User Options, Solution Explorer View menu, 114–115 user overrides, 521–529 administration, 526–529 Control Table Workbench affecting, 701 how they are created, 523–526 overview of, 521–522 types of, 522 Work with User/Role Profiles, 401 User Overrides table, F988810, 402, 522 User Productivity Kit (UPK) tool, training, 812–814 User Profile Revisions window, 390–392, 393–395
user profiles, 389–390, 452–453 User Revisions form, 399–400 User Security application, 402 User Security Global Password Policy application, 412 User Session window, Runtime Metrics, 500–501 usernames Oracle Enterprise Manager, 614–615 Security kernel, 323 troubleshooting server package builds, 288 User/Role Environment Revisions window, 402–403 users default printer setup for, 562–567 impact of upgrades on, 675 Oracle BI Administrator and, 219 Oracle BI Answers and, 203–206 Oracle BI Presentation Server and, 201–202 users and roles, 388–403 add environment, 402–403 add role and role description, 399–400 Business Unit security, 403 creating custom library lists, 398–399 defining, 389–396 deployment groups, 402 dueling environments, 396 machines, 402 mobile user security, 403 overview of, 388–389 PIM Export All Users, 403 role sequence, 400–401 user overrides, 401–402 user security, 402 what is under row exit, 397 UTB (Universal Table Browser), 383–385
Index
V
W
VC (version control), 823, 824–829 vendors. See third-party vendors verbose package deployment, 276 version control, 821–829 app servers for, 159–160 complication and, 821–822 defining tools for, 822–824 development rules, 815–817 EnterpriseOne implementation, 823, 824–829 using flowcharts, 824–829 Version List, Specification merge, 710, 713, 716–717 Version Prompting window, Solution Explorer Edit menu, 109 versions adding to projects, 343 batch vs. interactive applications, 240–241 continuing support for ERP project, 800 creating custom batch, 535 data selection, 239 data sequencing, 239 overview of, 237–238 Package Installation kernel and, 325 processing options, 239–240 security, 241, 432 Versions data source, 39 View menu, Solution Explorer, 110–115 Show options, 111–113 Task Views options, 111 User Options, 114–115 views Oracle BI Answers, 204 Oracle BI Office plug-in, 215 virtual data warehouses, avoiding, 196 virtual machines, controlling hardware costs, 804 Visual Assist, 231, 533
W986161 Advanced Conversion Program form, 556–557 W98616M Work with Default Printers window, 563–564 W98950D Copy Overrides, 526–528 W98950E Work with User Overrides form, 526–527 Waiting Jobs radio button, 376–378 WAN Configured Environment field, Environment Revisions window, 69 WANs, 159. See also web servers Web Cache, 747–748 Web Catalog, 202 web development, Intel server, 782 web page, Listener service, 280 Web Runtime, 506 web servers. See also portal solutions configuring, 173 definition of, 173 definition of terms, 609–610 E1 HTML server, 604–605 OAS (see OAS [Oracle application server]) optimization, 727–728 overview of, 172 Server Manager, 605–608 setting up, 174–177 summary review, 652–653 testing Tools Release on, 310 tuning Apache, 747 WebSphere (see WebSphere application server) WebSphere vs. OAS, 608–609 Web Service Definition Language. See WSDL (Web Service Definition Language) web services defined, 6 Oracle BI Presentation Server interface for, 202–203 web server requirements, 175 Web Services Manager, 13–14
923
924
JD Edwards EnterpriseOne: The Complete Reference WebSphere application server, 625–635 administering using Server Manager, 508 configuring HTTP plug-in with, 629–630 installation of, 625–628 installation of IBM HTTP, 628–629 installing E1 HTML server code, 606, 632 OAS vs., 608–609 overview of, 625 registering using Server Manager, 471–472 starting it all up, 630–632 troubleshooting, 632–633 tuning, 633–635 * wildcard, Search tab of OMW, 351–352 Windows backing up enterprise server, 298 configuring deployment server, 150–151 implementing data server, 153 installing Tools Release on server, 308–309 removing Tools Release, 313 running in parallel on, 722 troubleshooting Intel server, 781–782 Windows client, 178 Windows Explorer, 274 Windows NT enterprise servers, 665–668 Win-Sockets, 87 wizard, 233 Work Center program, Tools menu, 116 Work with Conversion Programs, 555–557 Work with Data Sources window, 43–46 Work with Default Printers (W98616M) window, 563–564 Work with Job Queues window, 384–385 Work with Locations and Machines window, 402 adding enterprise server, 171
Work with Machine Identification window adding enterprise server, 165 Data Source Revisions window, 170–171 Enterprise Server Revisions window, 166–169 Machine Environments Revisions window, 170 Work with Media Object Queues application, 368–369 Work with Merge Selections window, 708 Work with Package Definitions window, 311 Work with Package Deployment window, 284–285 Work with Packages window, Package Assembly, 250, 255–256, 260 Work with Paper Types window, 554–555 Work with Role Relationships application, 395–396 Work with Role Sequences window, 400–401 Work with Scheduled Jobs window, 535–536 Work with Server Jobs application, 581 Work with System Users window, 406 Work with Task Relationships option, Tools menu, 117 Work with Tasks window customizing existing task view, 121 defined, 117 deleting task view, 126–127 task translations, 133–134 Work with User Defined Codes window, 575, 577 Work with User Overrides form W98950E, 401, 526–527 Work with User Security window configuring sign-on security, 404–405, 407–408, 410–411 Global Password Policy, 412 other application options, 412–414
Index Work with User/Role Profiles window adding user profiles, 389–390 assigning environments, 394–395 Copy Environment window, 397 form exits, 398–403 getting back to, 393 Work with User/Role Security window, 418 Workflow kernel configuring, 329 defined, 320 overview of, 327 workstation packages overview of, 249 server packages vs., 269 workstations assigning packages to, 277 installing Listener on, 279–283 requesting data or logic, 72–74 server code vs., 158 testing Tools Release on, 310 troubleshooting printing from, 581 when running UBE, 74–75 worktable, defined, 696 World, 768 WRKACTJOB command, AS/400, 769, 771 WRKLIBPDM command, 776 WRKUSRJOB command, 769–770 WSDL (Web Service Definition Language) creating business service, 20 defined, 6 overview of, 14 producing when publishing business services, 483
X XAPI messages, 327 XJDE0019, 58 Xloratio, 748–749 XML (Extensible Markup Language) defined, 5
full package builds, 263 Metadata kernel processing spec access requests, 328 XML Dispatch kernel, 321, 327 XML Formatted Workflow option, 37 XML List kernel, 320, 327 XML Publisher, 583–601 adding template to repository, 585–590 default report definition for UBE, 596–598 features, 584–585 Object to Repository form, 589 process overview, 585 RD execution and output/delivery management, 598–600 report definition output, 600–601 report definitions, 590–596 XML Service kernel, 321, 327 XML/TAM (Table Access Manager) files deploying server packages, 286 deployment server containing, 146 full server package builds, 271–272 Package Assembly, 256–257 package build process, 245 troubleshooting, 289 turning off deployment server and, 147 update package builds, 265 XPI (Extended Business Processes), 22 XTS kernel defined, 321 overview of, 327
Y Y2K issues, 867
Z Z file integration, 852 0 security level, application versions. See PDL (Printer Definition Language)
925
This page intentionally left blank
FREE SUBSCRIPTION TO ORACLE MAGAZINE
GET YOUR
Oracle Magazine is essential gear for today’s information technology professionals. Stay informed and increase your productivity with every issue of Oracle Magazine. Inside each free bimonthly issue you’ll get:
�� � � ���������������������������������������������������������������������� ������������������������������������������������������������������ ������������������� �� ���������������������������������� �� �� ����������������������������������������������������������������� �������������������������� �� ����������������������������������� �� ���������������������������
If there are other Oracle users at your location who would like to receive their own subscription to Oracle Magazine, please photocopy this form and pass it along.
Three easy ways to subscribe: 1 Web
��������������������� oracle.com/oraclemagazine� �����������������������������������������������������
2 Fax
����������������������������������������������������� ���������������������������������������+1.847.763.9638
3 Mail
����������������������������������������������������� �������������� P.O. Box 1263, Skokie, IL 60076-8263
Copyright © 2008, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
!%28=3963;279&7'6-48-32 36)')-:)%*6))79&7'6-48-3283 =391978*-003988,))28-6)'%6(7-+2-8%2((%8) -8-2'3140)8)'%6(7'%2238&)463')77)(36%'/23;0)(+)("39'%2%073*%<=396%440-'%8-3283 ./1!/".'!$ 0,1.$!/'0$ 0,. ")$",*,. ")$* & 5'+$ $/-)$ /$/$+#*$ /1!/".'-0',+ 3 631 8-1) 83 8-1) 6%'0) 9&0-7,-2+ %003;7 396 4%682)67 )<'097-:) %'')77 83 396 )1%-0 %((6)77)7 *36 74)'-%0 46313 8-327 %2( %22392')1)2873 &) -2'09()( -2 8,-7 463+6%1 40)%7)',)'/8,-7'-6'0)*=39(3238;-7,83&)-2'09()(=39 ;-00320=6)')-:)238-')7%&398=39679&7'6-48-32:-%)1%-0 6%'0)9&0-7,-2+%003;77,%6-2+3*3964378%01%-0-2+0-78;-8, 7)0)'8)(8,-6(4%68-)7*=3946)*)6=3961%-0-2+%((6)7723883 &)-2'09()(-28,-7463+6%140)%7)',)'/8,-7'-6'0) *%8%2=8-1)=39;390(0-/)83&)6)13:)(*631)-8,)61%-0-2+0-7840)%7)'328%'8 97831)6 )6:-') %8 36 7)2( %2 )1%-0 83 36%'0),%00(%8%'31 * =39 348 -2 83 8,) 7,%6-2+ 3* -2*361%8-32 6%'0) 1%= %073 463:-() =39 ;-8, )1%-06)0%8)(836%'0)463(9'877)6:-')7%2():)287*=39;%2883'3140)8)0= 9279&7'6-&)*631%2=)1%-0'31192-'%8-32*6316%'0)40)%7)7)2(%2)1%-083 9279&7'6-&)36%'0)1%-0'31;-8,8,)*3003;-2+-28,)79&.)'80-2) #=396 )1%-0%((6)77$36'3140)8)-2*361%8-32326%'0)9&0-7,-2+746-:%'=46%'8-')7 40)%7):-7-836%'0)'31 ,810 46-:%'= ,810
3 7-+2%896)6)59-6)((%8) 2%1)
8-80)
'314%2=
)1%-0%((6)77
786))8 43&3< '-8= 78%8) >-4364378%0'3()
8)0)4,32)
'39286=
*%<
,1)#4,1)'($0,.$"$'2$4,1.%.$$/1!/".'-0',+'+#'&'0 )%,.* 0'+/0$ #,%-.'+0'%'0!$",*$/ 2 ') !)$$/3
-*)*&(#(/+)$))*,*/ %/%+((#**)"%*%$4964< @?6@?=J
6C@DA2462?5676?D6#2?F724EFC:?8 AA=:42E:@?)6CG:46&C@G:56C FE@>@E:G6#2?F724EFC:?8 96>:42=D #65:22?5?E6CE2:?>6?E @?DECF4E:@??8:?66C:?8 @?DF>6C)64E@C@?DF>6C&24<2865 @@5D 5F42E:@? :?2?4:2=)6CG:46D?DFC2?46 62=E92C6 :89*649?@=@8J#2?F724EFC:?8%# ?5FDEC:2=#2?F724EFC:?8 ?56A6?56?E)@7EH2C6,6?5@C ":76)4:6?46D3:@E649A92C>246FE:42=D $2EFC2=(6D@FC46D %:=2?52D &C@76DD:@?2=)6CG:46D &F3=:4)64E@C8@G6C?>6?E (6D62C49 (6E2:=-9@=6D2=6:DEC:3FE:@? )JDE6>D?E68C2E@C,(, *6=64@>>F?:42E:@?D *C2G6=2?5*C2?DA@CE2E:@? +E:=:E:6D6=64EC:482DD2?:E2E:@?H2E6C %E96CFD:?6DD2?5)6CG:46D111111111
:8:E2=BF:A>6?E@CA+$.,.,#) &+$. #. #+$. ":?FI(652E ":?FI)+) ":?FI%C24=6?E6CAC:D6 ":?FI@E96C #24:?E@D9
#,)
$6EH2C6
$6EH@C<@>AFE:?8
)%+$.
)F?)@=2C:D)F?%)
-:?5@HD
%E96C+$. %E96C $@?6@7E963@G6
2C5H2C6 FD:?6DDAA=:42E:@?D(&(#6E4 AA=:42E:@?6G6=@A>6?E*@@=D 2E232D6&C@5F4ED ?E6C?6E@C?EC2?6E&C@5F4ED %E96C)@7EH2C6 #:55=6H2C6&C@5F4ED $@?6@7E963@G6
(-( #24:?E@D9 #2:?7C2>6 #2DD:G6=J&2C2==6=&C@46DD:?8
#:?:4@>AFE6C ?E6=I ?E6=I $6EH@C<@>AFE6C )J>>6EC:4#F=E:AC@46DD:?8 -@C
-*)/%+(%#&$/))0 4964<@?6@?=J
#@C6E92? >A=@J66D
E@ >A=@J66D E@ >A=@J66D
E@ >A=@J66D
E@ >A=@J66D 6H6CE92? >A=@J66D
"6DDE92? E@ E@ E@ E@ 2?5%G6C
-*)/%+(%#&$/)/("/)") (,$+4964<@?6@?=J
+($*$.* #%$*)%-#+ %/%+$*&*/%+(%($0*%$ -"")&$%$%#&+*((-( )%*-(&(&(")$)(,)%( /%+("%*%$4964<@?6@?=J
$/%+( %%/%++)%(&"$*%&+( )$/%*%""%-$&(%+*) 4964<2==E92E2AA=J )%*-( # @==23@C2E:@?)@7EH2C6 @>>F?:42E:@?D 2E232D6#2?286>6?E :=6#2?286>6?E :?2?46 2G2 #F=E:>65:2FE9@C:?8 $6EH@C<:?8 &C@8C2>>:?8
&C@;64E#2?286>6?E )4:6?E:7:42?5?8:?66C:?8 )JDE6>D#2?286>6?E -@C<7=@H
)(,) @?DF=E:?8 5F42E:@?*C2:?:?8 #2:?E6?2?46 %?=:?62E232D6 )FAA@CE *649?@=@8J 2D65*C2:?:?8 %E96C $@?6@7E963@G6
%/%+,"+*)&/(%##$ %(+*%(0*&+()%$/% *%""%-$4964<2==E92E2AA=J
-%*%""%-$)*)() /%+(&(#(/ %+$*%$ 4964<@?6@?=J %(&%(*#$#$*)* I64FE:G6#2?286>6?E&C6D:56?E92:C %%%H?6C&2CE?6C&C:?4:A2= :?2?465>:?:DEC2E:G6#2?286>6?E ,&:C64E@C#2?286C@?EC@==6C &FC492D:?85>:?:DEC2E:@? )2=6D#2C<6E:?8#2?286>6?E ,&:C64E@C#2?286C @>AFE6C)JDE6>D%A6C2E:@?D #2?286>6?E %,&:C64E@C#2?286C#))*%AD )*)* AA=:42E:@?6G6=@A>6?E&C@8C2>>:?8 #2?286>6?E AA=:42E:@?6G6=@A>6?E&C@8C2>>:?8 )E277 @?DF=E:?8 )JDE6>D5>:?:DEC2E@C 5F42E:@?*C2:?:?8 *649?:42=)FAA@CE:C64E@C#2?286C
%E96C*649?:42=#2?286>6?E)E277 %E96C
-*)/%+(+(($*&(#(/%&(*$ &"*%(#4964<2==E92E2AA=J
2?523@G6 E@ E@ E@ E@
-*"$+)$(#-%(!)% /%++)4964<2==E92E2AA=J
;2I
&JE9@? (F3J(2:=D )AC:?8 )ECFED
:36C?2E6 2G2 )& $*
&6C=
&& &")'"
)'" ,:DF2=2D:4 %E96C
-*%("&(%+*)($+)*/%+( )*4964<2==E92E2AA=J %("*) %C24=62E232D6
8 %C24=62E232D6 8 %C24=6 : 2E232D6 % C24=6>3655652E232D6 %C24=6":E6*:>6D*6?6C<6=6J %E96C%C24=62E232D6(6=62D6 %("+)%$#"-( %C24=6AA=:42E:@?)6CG6C %C24=6&@CE2= %C24=6?E6CAC:D6#2?286C %C24=6&"&C@46DD#2?286C %C24=656?E:EJ#2?286>6?E
%C24=6)%)F:E6 %C24=62E2F3D %(","%$**%%") %C24=6 6G6=@A6C %C24=6@C>D %C24=6(6A@CED %C24=66D:8?6C %C24=6:D4@G6C6C %C24=662?D %C24=6-2C69@FD6F:=56C %C24=6-636?E6C %C24=6AA=:42E:@?IAC6DD %("&&"*%$) %C24=6 FD:?6DD)F:E6 &6@A=6)@7E?E6CAC:D6 5H2C5D?E6CAC:D6%?6 5H2C5D-@C=5 %C24=6FD:@? JA6C:@? ):636=(# %(")(,) %C24=6 FD:?6DD)F:E6%?6>2?5 %C24=6*649?@=@8J%?6>2?5 ):636=(#%?6>2?5 %C24=6@?DF=E:?8 %C24=65F42E:@? %C24=6)FAA@CE %E96C $@?6@7E963@G6