Presentation is loading. Please wait.

Presentation is loading. Please wait.

Macro-Enhancing Connexion Learn how to improve your cataloging productivity using macros in the Connexion client February 8, 2005.

Similar presentations


Presentation on theme: "Macro-Enhancing Connexion Learn how to improve your cataloging productivity using macros in the Connexion client February 8, 2005."— Presentation transcript:

1 Macro-Enhancing Connexion Learn how to improve your cataloging productivity using macros in the Connexion client February 8, 2005

2 Who we are  Harvey Hahn  Arlington Heights Memorial Library, Arlington Heights, IL  Joel Hahn  Niles Public Library District, Niles, IL

3 Special thanks to…  OML “pioneers”  Eric Celeste (MIT)  Jim Ferguson (TPOT-UCSD)  Walt Nickeson (Univ. Rochester)  Tim Shearer (UNC-Chapel Hill)  Will Caine (SOLINET)  Carl Ratz (Phoenix Pub. Lib.)  Kyle Banerjee (Oregon State Lib.)  Jon Higgins (formerly WILS)  Rhoda Bilansky (Boston Univ.)  and many other macro writers over the years

4 And special thanks to…  OCLC  for providing a full-blown programming language as an integrated part of their software products.  “If I have seen further than other men, it is because I stood on the shoulders of giants.” –Isaac Newton

5 Similarities between CatME and Connexion macros  OML Standard BASIC commands are identical.  Variables operate exactly the same.  Adding a field as line 99 (or better yet, 999) makes it the last line in the record.  Many OCLC-specific commands are identical (though Connexion has more).

6 Some commands are identical  CS.CursorRow  CS.CursorColumn  CS.DeleteHoldings  CS.DeleteRecord  CS.Export  CS.FindText  CS.Print  CS.QueryRecordStatus  CS.Reformat  CS.RunMacro  CS.SetMyStatus  CS.UpdateHoldings

7 Commands that are similar*  CatME  CS.Insert  CS.GetFixedField  CS.SetFixedField  CS.GetFirstRecord  CS.GetNextRecord  CS.Replace  Connexion  CS.InsertMode  CS.GetFixedField  CS.SetFixedField  CS.GetFirstItem  CS.GetNextItem  CS.ReplaceRecord * Similar does not mean identical!

8 Commands that are different*  CatME  Dim CS As Object Set CS = CreateObject (“CatME.Application”)  CS.ResaveOnlineFile  CS.SaveLocal  CS.Validate  Connexion  Dim CS As Object Set CS = CreateObject (“Connex.Client”)  CS.SaveOnline  CS.SaveToLocalFile (FALSE,FALSE)  nNumErrs = CS.Validate(sErrList) * Different can mean better!

9 More differing commands  CatME  CS.ItemType  CS.Scan  CS.Search(search string)  CS.SearchLocalFile (search string, file type)  Connexion  CS.ItemType (Uses different values)  CS.Browse  CS.Search(database, search string) }

10 Some are similar and different  CatME  CS.GetFieldData  CS.SetFieldData  CS.AddField  Connexion  CS.GetFieldLine  CS.GetField  CS.SetFieldLine  CS.SetField  CS.AddFieldLine  CS.AddField { { {

11 One major programming difference between CatME and Connexion  CatME  Retrieved field data has spaces surrounding the indicators. 245_14_Some title  Connexion  Retrieved field data does not have spaces surrounding the indicators. 24514Some title This difference affects how you write macros!

12 Obsolete CatME commands  CS.GetActiveRecord  CS.GetActiveTruncatedList

13 Difficult CatME tasks that are simple commands in Connexion  CS.GetField(“650”, 1, SubjectData)  Grab the contents of the first 650 field  CS.EndCell : CS.PrevSubfield  Jump the cursor to the start of the last subfield in the current field  CS.DeleteToEndOfCell  Delete from the cursor to the end of the field

14 Things to watch out for  Connexion always handles the  character internally.  If you see ö in a record, what's really there and what macros will report is o¨ (not ¨o)  Note that the order of letter and diacritic may differ from what local systems expect (and from what is in exported records). Connexion’s editor and macros follow the Unicode standard.

15 More things to watch out for  Connexion has no spaces between a MARC tag & indicators and none between indicators & field contents.  However, CS.CursorPosition acts as if there were spaces there and also as if there were a space between the indicators.  OCLC recommends using CS.CursorColumn instead 245 1 4 The adventures of Tom Sawyer

16 Impossible in CatME but simple in Connexion  Recording macros  Can be a good way to learn OML.  Recorded macros may still need to be edited.  They tend to be inefficient and use many more commands than are necessary.  They may not work with all records.  Some tasks cannot be recorded.

17 Converting CatME macros to Connexion  When to simply translate?  Does the old macro use only commands that are similar in Connexion?  When to record a new version?  Does the macro never depend upon the content or status of the record?  Does the macro only navigate to fields that are always present, then insert new data?  Do you want a template on which to build the macro from scratch?

18 Converting CatME macros to Connexion  When to start from scratch?  Does the macro react to the content or status of the record?  Is the macro complex?  When not to convert at all?  Is the macro still necessary, or could this task be done instead…  By an existing command?  With constant data?  With text strings?

19 Connexion macro tips & tricks  Option Explicit  CS.IsOnline  CS.ItemType  When deleting several fields, work backwards

20 Connexion macro tips & tricks  Iterate through all 6XX fields in a record:  bool = TRUE  nTagNum = 0  Do Until bool = FALSE  nTagNum = nTagNum + 1  bool = CS.GetFieldLine( nTagNum, sField )  If Mid(sField, 2, 3) Like "6##" Then  'Put code that alters the record here.  'Use nTagNum for the field number in CS.* commands  ElseIf Mid(sField, 2, 3)) > 699 Then  Exit Do  End If  Loop

21 Connexion macro tips & tricks  Iterate through all records in a list:  bool = CS.GetFirstItem  bNextRec = TRUE  Do While bNextRec <> FALSE  'Put code that looks at or alters each item here  bool = CS.SaveOnline  'OR: bool = CS.SaveToLocalFile(FALSE,FALSE)  bNextRec = CS.GetNextItem  If bNextRec = FALSE Then Exit Do  Loop  bool = CS.CloseRecord(TRUE)

22 Connexion macro tips & tricks  Copy data directly into MS Office programs:  Dim CS As Object  Set CS = CreateObject("Connex.Client")  bool = CS.GetField("092", 1, sCall)  bool = CS.GetField("245", 1, sTitle)  Dim XL as Object  Set XL = CreateObject("Excel.Application")  XL.Sheets("Sheet1").Select  XL.Range("A1").Value = "Call #"  XL.Range("A2").Value = sCall  XL.Range("B1").Value = "Title"  XL.Range("B2").Value = sTitle (Check the VBA help file in your version of Excel for the proper commands to use.)

23 Further resources  OCLC-CAT mailing list  Archives are now available  OCLC’s Connexion macros web page  http://www.oclc.org/connexion/support/macros.htm  OML for the Complete Beginner  http://users.rcn.com/aardy/oml/lessons/index.html  Joel’s OML web page  http://users.rcn.com/aardy/oml/index.html  Harvey’s OML web page  http://www.ahml.info/oml/

24 Questions, comments, etc. To contact us after the live presentation: Harvey Hahn Joel Hahn


Download ppt "Macro-Enhancing Connexion Learn how to improve your cataloging productivity using macros in the Connexion client February 8, 2005."

Similar presentations


Ads by Google