New book on Mumps & Cache

244 views
Skip to first unread message

rtweed

unread,
May 30, 2012, 1:27:50 AM5/30/12
to Hardhats
For those interested in learning (or updating their knowledge on)
Mumps & Cache, I've learned that Mike (Paul) Kadow has published a new
book: Cache ObjectScript & Mumps. I knew he had been close to getting
it published, so it's good to hear that he's finally got it out: a
huge effort on his part, for which he should be congratulated.

It covers both "traditional" Mumps and the newer Cache-specific
extensions, so it's ideal for anyone wanting to understand the
potential differences in VistA etc that you'll see on either Cache
systems (eg at the VA) or on GT.M systems. It also provides a more
modern take on the practice of using the Mumps language than we've
seen in the past. I'd say it's worth a look.

For details: https://www.createspace.com/3715369 I believe that you
can use the discount code of 7849H88Y to get $4.00 off the purchase
price!


Rob

Chris

unread,
May 30, 2012, 1:47:34 AM5/30/12
to hard...@googlegroups.com
Kindle, ePub or PDF version for purchase please.

rtweed

unread,
May 30, 2012, 5:52:43 AM5/30/12
to Hardhats
I don't speak for Mike, but I shall take the liberty of copying his
response the the equivalent question in the Cache & Ensemble Google
Group:

"no the book is not available as an e-book.
I barely got it out as I did, you would not believe what it takes,
perhaps
in time I can make it available as an e-book.
-Mike "

Chris

unread,
May 31, 2012, 1:40:06 AM5/31/12
to hard...@googlegroups.com
Ummm... the kindle was supposed to lower barriers to entry. Hence kindle direct publishing? But in any case - I don't have experience so I'll take his word.

How about a preview of the table of contents?

I've always been looking to learn more about the ScreenMan (somewhat) GUI and how it really draws things on the screen appropriately.

Pmkadow

unread,
May 31, 2012, 5:01:32 AM5/31/12
to hard...@googlegroups.com
Now, the Table of Contents is something I can do:
 

Caché ObjectScript and MUMPS

Table of Contents

Chapter 1 Basic Concepts I 1

What is MUMPS?. 1

What is M?. 1

What is Caché?. 1

Caché ObjectScript (COS) 1

A word about the Lexicon. 1

Advantages of Caché. 2

Disadvantages and Criticisms of Caché. 2

Quote by Arthur B. Smith on Databases. 2

Variable Manipulation and Interrogation. 2

Your own copy of Caché. 7

Exercises on Set, Write, If, Plus and Kill commands. 8

Answers to exercises on Set, Write, If, Plus and Kill commands. 8

Concatenation - the underscore character. 8

Operator Precedence. 9

For Loop command. 10

Halt command. 13

Chapter 1 Summary. 13

Chapter 2 Basic Concepts II 15

Routine Definition. 15

Controlling Process Flow.. 17

Routines and Labels. 20

Routines and Variables. 22

Routines and Parameters. 23

Formats for Calling Routines. 26

Globals, Local Arrays and Variables. 27

Chapter 2 Summary. 29

Chapter 3 System-Supplied Functions I 31

System-Supplied Functions. 31

User-Defined Functions. 31

System-Supplied Functions - Strings. 31

Chapter 3 Summary. 45

Chapter 4 System-Supplied Functions II 47

System-Supplied Functions. 47

User-Defined Functions. 47

System-Supplied Functions - Data. 47

System-Supplied Functions - Number formatting. 52

System-Supplied Functions - Character Representation. 56

System-Supplied Functions - Decision Making. 57

System-Supplied Functions - Miscellaneous. 58

Chapter 4 Summary. 59

Chapter 5 List Processing. 61

$ListBuild or $LB – build a list. 62

$List or $LI - list. 62

$ListData or $LD (similar to $Data) 64

$ListGet or $LG (similar to $Get) 65

$ListFind or $LF (similar to $Find) 65

$ListLength or $LL (similar to $Length with two parameters) 66

$ListNext or $LN - sequentially returns elements in a list. 66

$ListSame or $LS compares two lists. 67

$ListToString or $LTS creates a string from a list. 67

$ListFromString or $LFS creates a list from a string. 68

$ListValid or $LV checks for a valid list. 68

Exercises on List Processing Exercises. 69

$Piece System-Supplied Function. 73

$Data – (similar to $ListData) 75

$Get – (similar to $ListGet) 75

Exercises on Delimited List Processing. 76

Delimiters. 76

Compound $Piece and $ListBuild. 78

Recommendations. 79

List Processing versus Array Processing. 79

Chapter 5 Summary. 79

Chapter 6 Global Processing I 81

Global Processing. 82

Building a Database. 100

Data Global and Indexed Global. 104

Chapter 6 Summary. 104

Chapter 7 Global Processing II 105

Namespaces. 105

Extended Syntax. 106

Temporary Globals. 107

Naked Indicators or Naked References. 108

The Merge command. 109

The Lock command. 111

The Kill command. 113

Exercises on Globals. 114

Chapter 7 Summary. 119

Chapter 8 Commands Revisited. 121

Read and Write commands. 121

If, ElseIf and Else commands. 125

While and Do While command. 128

Secret Escape Hatch in Structured Code. 130

Chapter 8 Summary. 130

Chapter 9 New Command. 131

New command used without variables. 131

New command used with variables. 137

New command used with variables in parentheses. 140

New command used improperly. 141

Examples of the New command. 142

New command warnings. 143

Chapter 9 Summary. 143

Chapter 10 Pattern Matching. 145

Validate an American Social Security Number with Pattern Matching. 145

Pattern Matching Codes. 146

Pattern Length. 146

Validating Alpha Characters. 147

Validating Uppercase Characters. 147

Validating a Capitalized Word. 148

Validating Numeric Digits. 148

Validating a Numeric with Two Decimal Positions. 149

Validating Punctuation Characters. 149

Search a string for a substring. 149

Validating Control Characters. 150

Pattern Matching to Validate Data of Specific Lengths. 150

More complex Pattern Matching. 151

Exercises on Pattern Matching. 154

Answers to Exercises on Pattern Matching. 154

Chapter 10 Summary. 155

Chapter 11 Comparison Operators. 157

Table of Comparison Operators. 157

How COS Interprets True and False. 158

Unary NOT Operator (') 159

Exercises on True, False, Not and $Data. 162

Answers to Exercises on True, False, Not and $Data. 163

Binary Greater Than and Binary Less Than. 164

Exercises on Binary Less Than and Greater Than. 166

Answers to Exercises on Binary Less Than and Greater Than. 167

Binary And and Binary Or. 167

Exercises on Binary And and Binary Or. 172

Answers to Exercises on Binary And and Binary Or. 173

Binary Equals. 174

Binary Contains. 176

The Binary Follows Operator and Binary Sort After Operator. 176

Chapter 11 Summary. 178

Chapter 12 File Processing. 179

Read and writ an external file. 179

Use command. 184

Cycle through several Files. 184

Search multiple files for a specific string. 185

Miscellaneous File Functions. 186

Chapter 12 Summary. 188

Chapter 13 Error Processing. 189

Introduction. 189

Why take all this trouble with Errors?. 189

Error Processing. 189

Terms regarding Errors. 195

Errors. 195

Call Stack or Frame Stack. 201

Chapter 13 Summary. 202

Chapter 14 Testing and Debugging. 203

Objective of Testing - Quality. 203

Scope of Testing. 203

Types of Testing: Static and Dynamic. 204

Debugging (Dynamic Testing) 204

Chapter 14 Summary. 210

Chapter 15 Procedures. 211

Procedures. 211

Definitions. 212

Elements of a COS Procedure. 212

Template of a COS Procedure. 213

Calling a COS Procedure. 213

Public and Private Procedures. 214

Parameters. 214

Public Variables. 219

Private Variables. 221

Private Procedures. 225

Return Value. 226

Exercise on a COS Procedure. 227

Chapter 15 Summary. 228

Chapter 16 Structured Code. 229

If command with Structured Code. 229

For Loop commands with Structured Code. 229

Setting up the TM (Transportation Machines) Global. 230

Traversing a Global Array with the Do While command and Structured Code. 231

Traversing a Global Array with the While command and Structured Code. 231

If and Else commands with Structured Code. 232

Nested If and Else commands with Structured Code. 233

If, ElseIf and Else commands with Structured Code. 234

If, (multiple) ElseIf and Else commands with Structured Code. 234

Comparison between Inline Do command and Structured Code. 235

Continue command. 236

Chapter 16 Summary. 237

Chapter 17 Writing Robust Code. 239

Definition of Robust. 239

Programming Goals. 239

What is Robust Code?. 239

Overview of Robust Code. 240

Mr. Murphy. 240

Plan of Action. 241

Debugging Examples. 242

Wrong Assumptions. 244

Data Validation. 248

Types of Data Items. 248

Chapter 17 Summary. 248

Chapter 18 Miscellaneous Topics. 249

How can I learn to read Caché ObjectScript code?. 249

Function, SubRoutine and $Quit. 250

$Quit. 250

When should I use Post-Conditionals?. 251

When should I use dynamic code?. 252

Percent sign (%) 253

$Data Revisited. 254

Job Command – start another process. 255

Chapter 18 Summary. 255

Chapter 19 Miscellaneous Examples. 257

Examples using Strings. 257

Examples using Globals. 261

Examples using Variables. 263

Chapter 19 Summary. 267

Chapter 20 Date and Time System Supplied Functions. 269

Date and Time Functions and Variables. 269

$HOROLOG.. 269

$ZDATETIME. 270

$ZDATETIMEH.. 281

$ZTIMESTAMP. 288

$ZDATE and $ZDATEH.. 289

$ZTIME and $ZTIMEH.. 289

Examples using Date and Time. 290

DeltaDate Routine. 290

Chapter 20 Summary. 292

Chapter 21 Object Technology Introduction. 293

Encapsulation. 293

Inheritance. 293

Polymorphism.. 294

Object Class or Class. 296

Terminology. 298

Direct Global Manipulation. 299

Chapter 21 Summary. 299

Chapter 22 Object Class & Properties. 301

Object Class. 301

Objects. 301

Object Properties. 301

Defining a Class of Actors. 301

Types of Classes. 302

Object Properties. 302

References to Persistent Objects. 308

References to Embedded Objects. 313

Chapter 22 Summary. 316

Chapter 23 Embedded and Dynamic SQL. 317

Caché SQL Basics. 317

Embedded SQL. 318

Dynamic SQL. 325

Chapter 23 Summary. 330

Chapter 24 Object Property Datatypes. 331

Common Datatypes. 331

Custom Datatypes. 337

Chapter 24 Summary. 338

Chapter 25 Class & Object Properties - Collection List of Data Types. 339

Introduction to Collections. 339

Collection Lists and Collection Arrays. 340

Table of Collection Methods. 341

Collection List of Data Types. 343

Chapter 25 Summary. 356

Chapter 26 Class & Object Properties - Collection Array of Data Types. 357

Introduction to Collections. 357

Collection Lists and Collection Arrays. 358

Collection Array of Data Types. 358

Chapter 26 Summary. 369

Chapter 27 Class & Object Properties - Collection List of References to Persistent Objects. 371

Introduction to Collections. 371

Collection List of References to Persistent Objects. 372

Chapter 27 Summary. 385

Chapter 28 Class & Object Properties - Collection Array of References to Persistent Objects. 387

Introduction to Collections. 387

Collection Array of References to Persistent Objects. 388

Chapter 28 Summary. 400

Chapter 29 Class & Object Properties - Collection List of References to Embedded Objects. 401

Introduction to Collections. 401

Collection List of References to Embedded Objects. 402

Chapter 29 Summary. 415

Chapter 30 Class & Object Properties - Collection Array of References to Embedded Objects. 417

Introduction to Collections. 417

Collection Array of References to Embedded Objects. 418

Chapter 30 Summary. 430

Chapter 31 Object Relationships. 431

One-To-Many Object Relationships. 431

Parent-To-Child Relationship. 439

Chapter 31 Summary. 445

Chapter 32 Methods. 447

Caché Class. 447

Defining a Class of Cars. 447

Class Definition for MyPackage.Cars. 448

Object Property Definitions for MyPackage.Cars. 448

Methods. 448

Class Method. 449

Instance Method. 450

Elements of a Method. 452

Chapter 32 Summary. 460

Chapter 33 SQL Queries and Class Queries. 461

SQL Query. 461

Class Query. 464

Chapter 33 Summary. 467

Chapter 34 File Processing with Objects. 469

Read and write an external files. 469

Use command. 473

Cycle through several Files. 473

Search multiple files for a specific string. 474

Search multiple files in multiple directories for a specific string. 475

Miscellaneous File Functions. 477

Chapter 34 Summary. 479

Chapter 35 Caché ObjectScript – Object Commands Reference Table. 481

General Help. 481

Calling a Class. 481

Save and Delete Calls. 482

Status Calls. 482

Validate Calls. 482

Link Objects Call. 483

Tests Calls. 483

Obtain a Value Calls. 483

Set Calls. 483

Populate Call. 483

List/Display/Dump Calls. 483

System/Product/Version Calls. 484

General Miscellaneous Calls. 484

Chapter 35 Summary. 484

Chapter 36 Caché ObjectScript - Good Programming Concepts. 485

Attractive and Easily Readable. 485

Thoroughly and Concisely Documented. 486

Easily Maintainable. 486

Modular Design. 486

Well Tested. 486

Error handling. 487

Displays. 487

Dynamic Code. 487

Reports Design. 487

Chapter 36 Summary. 487

Index. 489




Reply all
Reply to author
Forward
0 new messages