Earlier today, the Arbortext User Group had their monthly meeting. The guest today was Todd Hicks from Wolters Kluwer with us. He’s going to talk about a tool he built at the request of his users. His users want to do less work and they’re always asking him, “hey, can you make it do this?” Well, today, we saw one of the many things you can do if you have Arbortext in your tool chest.

In case you missed it, you can watch the video recording or browse through the live tweet stream from the event captured below.¬† If you want to know more about the kinds of tools Todd and his team have built on the Arbortext platform, you might want to listen to Todd’s interview.

For the Live Twitter Stream¬†read on…

@SingleSourcing: #arbortext #ptcuser T.Hicks “An ACL Tool to Find and Replace XML Attribute Values”
@SingleSourcing: #arbortext #ptcuser T.Hicks: Todd has built dozens of Arbortext-based tools to improve the lives of his users at Wolters Kluwer.
@SingleSourcing: #arbortext #ptcuser T.Hicks: Wolters Kluwer – leader in global services and publishing – using Arbortext and Documentum
@SingleSourcing: #arbortext #ptcuser T.Hicks: my dream is to have the very best Arbortext implementation in the universe
@SingleSourcing: #arbortext #ptcuser T.Hicks: we build tools for our users, we want to increase efficiency and decrease errors
@SingleSourcing: #arbortext #ptcuser T.Hicks: We want to make it easy for users to do the right thing and very hard to do the wrong thing
@SingleSourcing: #arbortext #ptcuser T.Hicks: the most important thing in my life is when our Editors come up and say, “it doesn’t do this, we need it to..”
@SingleSourcing: #arbortext #ptcuser T.Hicks: We needed a tool that would globally find and replace attribute values
@SingleSourcing: #arbortext #ptcuser T.Hicks: our Editors didn’t want to have to learn regular expression syntax but had need for very specific find/replace
@SingleSourcing: #arbortext #ptcuser T.Hicks: we have an ongoing conversation with our users and what they want to do
@SingleSourcing: #arbortext #ptcuser T.Hicks: tools like this are a good idea for any kind of organization that uses XML
@SingleSourcing: #arbortext #ptcuser T.Hicks: people’s eyes glaze over when you say XML, so anything that makes it easier to do what they want to do is good
@SingleSourcing: #arbortext #ptcuser T.Hicks: I new I had to have code that interacted with the open file and had a complex GUI initiating dynamic behavior
@SingleSourcing: #arbortext #ptcuser T.Hicks: we wanted a tool that worked with any DTD or schema and had no business logic in it at all. And it does!
@SingleSourcing: #arbortext #ptcuser T.Hicks: I took advantage of ACL Designer, a GUI designer for Arbortext
@SingleSourcing: #arbortext #ptcuser T.Hicks: ACL Designer was built on Galaxy, complete with springs and struts. Pretty steep learning curve, but visual
@SingleSourcing: #arbortext #ptcuser T.Hicks: UI: Act 1 is on left, Act 2 in middle, Act 3 on right, finale at the bottom.. (in western UI design)
@SingleSourcing: #arbortext #ptcuser T.Hicks: I like to put something at top that shows the effect of their actions, at the bottom the action buttons
@SingleSourcing: #arbortext #ptcuser T.Hicks: took me 2 months to build it, but we had the requirements nailed down and a design that the users accepted
@SingleSourcing: #arbortext #ptcuser T.Hicks: XUI editor now comes OOTB with Arbortext and it will show you the dialog dynamically
@SingleSourcing: #arbortext #ptcuser T.Hicks: We say “AE” for “Arbortext Editor”. I can just type “AE” to launch the editor on my desktop
@SingleSourcing: #arbortext #ptcuser T.Hicks: “Editor” is a job title in my company
@SingleSourcing: #arbortext #ptcuser T.Hicks: we have arbortext customized for WK, buttons that we designed ourselves to launch tools we built into AE
@SingleSourcing: #arbortext #ptcuser T.Hicks: To prevent people from accidentally wrecking content, we passworded the global find and replace tool
@SingleSourcing: #arbortext #ptcuser T.Hicks: changing the value of the ‘pub’ attribute on all ‘xref’ elements — just use our global find/replace tool
@SingleSourcing: #arbortext #ptcuser T.Hicks: Action can be limited to specific elements, attributes, and values, in an easy UI for our Editing team to use
@SingleSourcing: #arbortext #ptcuser T.Hicks: They were concerned about accidents, so we built in several layers of “undo”
@SingleSourcing: #arbortext #ptcuser T.Hicks: Now we’re getting into some ACL code. Here’s how to build a custom dialog box in Arbortext Editor
@SingleSourcing: #arbortext #ptcuser T.Hicks: Step by step tutorial on building custom tools in Arbortext. It’s easy to do, anyone can do it. Very powerful
@SingleSourcing: #arbortext #ptcuser T.Hicks: Epic is the former name of Arbortext Editor. Before that, it was called “Adept” (Expert!)
@SingleSourcing: #arbortext #ptcuser T.Hicks: in your code, you need an object that is the dialog itself, you can identify, use, and interact with it
@SingleSourcing: #arbortext #ptcuser T.Hicks: Here’s how to read the ACL functions and understand how to use them…
@SingleSourcing: #arbortext #ptcuser T.Hicks: the next thing you want to do is to have a function for adding callbacks for your controls.
@SingleSourcing: #arbortext #ptcuser T.Hicks: a mistake I made early on was adding the “()” but it just needs the function name.
@SingleSourcing: #arbortext #ptcuser T.Hicks: dialog item callback is something ACL hands you. When you specify it, it knows what event happened to call it
@SingleSourcing: #arbortext #ptcuser T.Hicks: list of elements.. get a callback for each control.
@SingleSourcing: #arbortext #ptcuser T.Hicks: Sample Callback function code
@SingleSourcing: #arbortext #ptcuser T.Hicks: there was a lot of fear for this, so we added “scary” warning boxes
@SingleSourcing: #arbortext #ptcuser T.Hicks: ACL (Arbortext Command Language) is great for talking to XML
@SingleSourcing: #arbortext #ptcuser T.Hicks: ACL lets you do things in the open file and interact with it, ask the DTD questions, and talk to the markup
@SingleSourcing: #arbortext #ptcuser T.Hicks: here’s some sample code. You can find out all kinds of stuff by just asking the DTD
@SingleSourcing: #arbortext #ptcuser T.Hicks: I’m filtering out the Documentum namespace attributes, barring changes to those by the users
@SingleSourcing: #arbortext #ptcuser T.Hicks: This is a tree walker. (sample code)
@SingleSourcing: #arbortext #ptcuser T.Hicks: Here’s another little trick: create little functions to do what they do to simplify and encapsulate actions
@SingleSourcing: #arbortext #ptcuser T.Hicks: XML ACL sample code to modify markup in the live document in Arbortext Editor
@SingleSourcing: #arbortext #ptcuser T.Hicks: I wanted to give you the tools you’ll need to do it yourself. You can get a dialog like this!
@SingleSourcing: #arbortext #ptcuser T.Hicks: It’s a pretty clever little pile of code, dialog boxes that keep you awake when you do things in them
@SingleSourcing: #arbortext #ptcuser T.Hicks: you want it to do more than say “uh huh” like people reacting to you
@SingleSourcing: #arbortext #ptcuser T.Hicks: This saves people a lot of time — 200 changes by hand? or hiring someone to write a script? do it on the fly!
@SingleSourcing: #arbortext #ptcuser T.Hicks: Learn ACL, make good code and good interfaces, and you will have… Smooth Sailing!
@SingleSourcing: #arbortext #ptcuser T.Hicks: If you have an application, and it has an API, then use it! You’ll be in line with the company developing it
@SingleSourcing: #arbortext #ptcuser T.Hicks: I went to Ann Arbor for ACL training as well as using the documentation
@SingleSourcing: #arbortext #ptcuser T.Hicks: I went to Ann Arbor for ACL training as well as using the documentation
@SingleSourcing: #arbortext #ptcuser T.Hicks: I went to Ann Arbor for ACL training as well as using the documentation
@SingleSourcing: #arbortext #ptcuser T.Hicks: I went to Ann Arbor for ACL training as well as using the documentation

Get useful tips and valuable resources every month

Join the thousands who know just how much we share.

Powered by ConvertKit
%d bloggers like this: