The ABAP Detective Presses On
Last time I popped my detective hat above the cubicle wall was 6 months or so ago, in the last episode called I Carry A Spool or How The ABAP Detective Found His LP. That was a software lifetime ago.
Since then, I’ve been in one dark and dusty network tunnel and late night low spots after another, picking up the paper tape while trying to keep a least a touch of a grin, not shading to grimace. Because working the back streets of printer spool detail is like most maintenance level jobs, where if you do it well, your an invisible ninja and the only gratitude you’re likely to see is when you face yourself down in the mirror.
Last episode was reflections of a pilot program, and you’re never sure if any tool or suite is going to catch on, if the vendor will be one of the fabled rock stars that have all hits and no misses (it is opening day today, so pardon the diversion). Since then, scope were defined, contracts signed, and project numbers toted into project plans. What’s challenging on these kinds of adventures is you know you’re writing the steps as you go, if you can switch over from legacy methods to a new configuration in minimal time. Running dual stacks in parallel can often delay the cutover from old to new, and if the interest wanes, change stalls.
Where to begin? The imponderables, of course. After eliminating the impossible. Boning up on print queue management isn’t so easy, as the goal is to have it turn on and just run. What we looked at for deliverables were faster response times, better accountability, and simplified/abstracted device management. The tally of of a global inventory was perhaps as popular as the occasional government census taker dropping by. But without all that excitement.
One key thought process I wrestled through was how to pare down lists up to or more than 20 years old, which had gone through many SAP versions, different application team owners, and some “close enough” leftovers to fill an error page. What I came up with was triggered by a casual comment from a former Basis manager that printer definitions were exported and altered during systematic copybacks, so there was already an automated way to manipulate the stanzas. If the team had to manually modify hundreds of similar screens, it could be error prone, not to mention time consumingly boring.
With a couple other clues, I dug through the ABAP manuals…
When I googled the program code name RSPOXDEV, I got only 3 hits, one of which was a link to the second. So, not a well trodden path. Just my kind of assignment. Of course, now I’ve polluted the air as this will be picked up on many of your local stations.
Thought I had it.
For longer than the usual duration, the auto-acronym finder in my brain refused to differentiate the four letter codes equating to newsprint generators, until LOCL local printer morphed into LOHP local HP brand printer. Or equivalent. As someone whose memory goes back to line printers that Merganthaler would have been proud of, I realize there’s HP printer and there’s HP like printer. Don’t even mention the inkwell mafia.
So, draw a line through that lead on my small spiral casebook, and get onto the next one. Pushing out some code, found a corpse of a windows package. With the odd cartoon disney strip of X-es over the eyes, feigning or encompassing death.
After various back and forths with the systems people, the basis people, the village people, and the vendor people, the E EX E went off like the rocket it should, Quick and simple in this business.
With that aberration under control, moving on to the next lead, how to satisfy the quality gatekeepers while plowing through hundreds of file cabinets, I mean, print spool, migrating them to a new path along the e highways. My albatross turned out to be one request per facility. And this place has many. Trying and disregarding in my head the ways and means of basic infrastructure like this, a colleague passed me the Rosetta stone, casually mentioning printer definitions are regularly and automatically pulled and pushed from systems. The leap I came to was splitting up the full copy into sets of copies, one per location, with batch jobs to flick the switches on like dominoes.
Enter ABAP variants, a level of dante’s h e double hockey sticks I have diligently managed to avoid for quite some time. No more, alas. Here’s the gory detail on breaking up RSPOXDEV into chunks. Create a variant, assign multiple devices instead of the usual “*” on the menu pick-lists. If your devices have more rigid naming standards or some meta data somewhere that I could not locate, good on you.
Meanwhile, I learned how to specify a variant on a scheduled command line job. Or a javaplug-in. Never needed to know that before.
More doc links
Maintaining variants manually
“import variants of already imported Abab [sic] programs”
Next, on to the esoteric world of printer methods, types, and messages, and more. There’s a great self-importing printer list SAP publishes regularly. I’d use it. Though straightening out 20 years of IMG choices ain’t my cup of tea.
Asian, double-byte, Chinese and other character sets are fine with Unicode (your systems are Unicoded right? that was my entry into the scn blog space: https://blogs.sap.com/2008/02/12/unicode-episode-1000-the-final-chapter-updated-18-feb-2008/ )
Turns out I didn’t know anything; good thing the partner was experienced (we found them through another SAP community, not SCN). I have a handy test clause a colleague shared with me
UPPER(A.SQL_TEXT) LIKE '%我是一个测 试页%'
yet this part of the story is incomplete.
To find who prints where, go to the logs, luke. SP01 transaction yielded a great quantity of data. Too much, and rather revealing in some ways. Lots of LOCL print. Good. Hope it stays virtual.
Comparing the old device status message I found we could improve by filling in details from a recent survey. Might as well freshen the decor. SAPGUI displays show as few as 18 characters or so, meaning the first impression (hence the blog title) counts.
One success so far: turning off leaking paper spigots. As I walked around hunting spool traces, some just stood out like a sore thumb. Figured out how to decouple physical printing from ABAP batch jobs yet like mushrooms they inevitably will return when someone refreshes old code for new uses. Nah, that never happens.