Saturday, January 3, 2009

Displaying Your Own Queries in the IT Performance Reporting

You can use IT Performance Reporting (part of the System Monitoring Work Center in SAP Solution Manager, available as of SAP Solution Manager 7.0 SP15) to centrally display the development over time of the most important monitoring data for your monitored systems. This means that you can identify potential problems early, and obtain an overview of the utilization and performance of your systems. We provide a set of predefined reports for this purpose (more information: http://help.sap.com/saphelp_sm40/helpdata/en/47/6595864609500de10000000a421937/frameset.htm). Of course, you already know all of this. What could be new to you, however, is that you can also integrate your own reports into IT Performance Reporting to determine yourself which data is to be displayed, and how it is to be displayed. This is the topic of this blog post.

To do this, you only need to be a little familiar with the operation of BEx Query Designer and BEx Web Applications Designer to be able to perform all of the steps quickly and easily You integrate your own queries in three steps:

1.

Create the query
2.

Wrap the query in a Web Template
3.

Include the new Web Template in IT Performance Reporting

Step 1: Creating the Query

1.

Start BEx Query Designer (Release 3.5), and log on to your SAP Solution Manager system; documentation for operating the Query Designer is available at: http://help.sap.com/saphelp_nw04/helpdata/en/9d/76563cc368b60fe10000000a114084/frameset.htm.
2.

Create a new query. Choose the appropriate MultiCube from the following, depending on your desired data source:
*

If you want to create a query for CCMS monitoring data, choose Computing Center Management System --> Monitoring Performance Data --> CPH Performance Data (All Resolutions without Online Data) (technical name 0CPH_NALL).
*

If you want to create a query for ABAP statistics data, choose Computing Center Management System --> Statistics Data --> WebAS Kernel --> Aggregates --> Time Profiles (technical name 0CCMSMTPH); this MultiCube is used in the example screenshots below.

image
3.

Irrespective of the details of your query, use the following dimensions in the query and drag them into the specified area:
*

For queries for CCMS monitoring data:

Dimension


Technical Name


Area

Time --> Calendar Year/Month


0CALMONTH


Rows

Time --> Calendar Year/Week


0CALWEEK


Rows

Time --> Calendar Day


0CALDAY


Rows

Time, Time Slots, and Time Zone --> Time


0TIME


Rows

Aggregation Type and Resolution --> Aggre. Type


0CCM_ATYP


Free Characteristics

Aggregation Type and Resolution --> Time Resolution


0CCM_RES


Free Characteristics

MTE --> System Name


0CCM_SYS


Rows, Columns, or Free Characteristics
*

For queries for ABAP statistics data (refer to screenshot):

image

Dimension


Technical Name


Area

Time --> Calendar Year/Month


0CALMONTH


Rows

Time --> Calendar Year/Week


0CALWEEK


Rows

Time --> Calendar Day


0CALDAY


Rows

Time --> Time Range


0CCMMATIRA


Rows

Instance --> Server


0CCMAPSRV


Free Characteristics

Period Type --> Period Type


0CCMPTYP


Free Characteristics

System and Landscape --> System ID


0SMD_LSID


Rows, Columns, or Free Characteristics
4.

Restrict the dimension System ID to the systems that you want to have displayed in SAP Solution Manager. To do this, choose Restrict from the context menu, and drag the entry Systems with Solution Manager Authorizations from the Variables tab page into the selection on the right.

image
5.

Drag the desired key figures, which you want to display in the query, into the Columns area.

image

For queries that are to display CCMS monitoring data, you need to think outside the box a little. This is because the CCMS represents a semantic-free data model; the meaning of the key figures is defined by the attributes of the characteristics:
1.

From the key figures, select the type of values that you want to display, such as the average value from the Calculated Key Figures. However, by doing so, you have not yet decided which MTE classes you want to display.
2.

To define the MTE class, select the entry MTE --> Attribute MTE Class --> Values from the dimensions, and drag the desired MTE class into the Filter area, or (for example, if you want to display multiple MTE classes in a query) into the Columns area (for an example, refer to the screenshot).

image
6.

Save your query, entering a description and the technical name. The technical name should start with Z, so that the query is in the customer namespace.

Step 2: Wrapping the Query in a Web Template

1.

Start BEx Web Application Designer (Release 3.5), and log on to your SAP Solution Manager system; documentation for the operation of the Web Application Designer is available at: http://help.sap.com/saphelp_nw04/helpdata/en/a9/71563c3f65b318e10000000a114084/frameset.htm.
2.

When creating your own Web template, you are largely unrestricted. In this case, we are creating only a simple wrapper of the query created above, as an example. From the Web Items, drag the following Standard Items into the template:
* Chart
* Generic Navigation Block

image
3.

To create the connection between the query and the Web Template, proceed as follows (refer to the screenshots):

image
*

In the properties (General) of your Chart, specify the query you created above. You can leave the name of the DataProvider unchanged (DATAPROVIDER_1).
*

In the properties (Web Item) of your Generic Navigation Block in the Affected Data Provider, select the data provider that you specified in the previous step.
4.

Save your Web template; the technical name should start with Z, so that the template is in the customer namespace.

Step 3: Including the New Web Template in IT Performance Reporting

1.

You now need to include the new Web Template in the list of IT Performance Reports to be displayed. To do this, start transaction RSA1 in the BI system that is associated with the SAP Solution Manager (usually the Solution Manager system itself).
2.

In the navigation bar, choose the InfoProvider entry from the Modeling area.
3.

In the displayed InfoProviders, expand the path Computing Center Management System --> Report, and right-click the Report entry to display the context menu.

image
4.

Choose Maintain Master Data, and execute the selection on the selection screen without entering additional data on the screen.
5.

A list of the elements of a dropdown list box appears. This dropdown list box is displayed when you call the IT Performance Reports.

image
6.

Generate two new entries in this list, in the following order:

Report


Long Description

[Letter]_00_TITLE


[desired title in dropdown list box]

[Letter]_01_[Web Template]


[desired title in dropdown list box]

Explanation:
*

[Letter] is any letter; the entries created by SAP in this list have a number as a prefix, for differentiation, your entries must start with a letter.
*

[Web Template] is the technical name of the Web template that you created in the second step. This Web template is called if the user chooses the corresponding entry in the dropdown list box.
*

The texts in the Long Description determine the corresponding entries in the dropdown list box.
7.

Save your changes and return to the initial screen of transaction RSA1. Now choose Activate Master Data, and ignore the message that the master data is already active.

You have now performed all steps; the next time that you call the IT Performance Reports, the Web template that you created yourself will appear in the list of available reports:

image

Café Innovation – Leverage your platform’s capabilities

Subscribe. Subscribe
Print. Print
Permalink Permalink

EcoHub was the big story in the SAP world when I was at Tech Ed '08 in Berlin. Coming on the heels of the launch of SAP's Innocentive program, SAP made it clear that innovation was high on the list of things needed for future success. I will return to EcoHub in a subsequent post. Let us explore what leveraging the SAP platform for innovation could mean.

Are you struggling with the ability to connect a mobile work force with a monolithic application base? Are you looking to make your workforce more agile? Are you seeking to plug a gap in your process because out-of-the-box SAP does not fulfill all your requirements? These are not unusual questions nor are they novel. What is interesting is that now we can look beyond the limitations of the delivered business application and the known abilities of your programmers to find ways within the platform to address the apparent functionality gap. For example, one might have a situation where the mobile work force needs to synchronize with, and leverage, backend capabilities. If this is not something that can be easily accomplished by out-of-the-box functionality, perhaps the use of Adobe Interactive Forms and NetWeaver Mobile can solve the dilemma without the need for seeking additional external solutions or writing copious quantities of code! If this were done, it could well illustrate business process innovation enabled by the SAP platform!

When you do something like this you have shown additional return / benefit from the platform - perhaps something you had not accounted for earlier. Proper exploitation of the SAP platform going into the future is all about addressing business pain points with novel use of the platform. As many SAP customers engage in the upgrade process, they need to consider a comprehensive return on their upgrade investment - one that includes benefits from process innovation leveraging the power of the platform - and not just a mechanical ROI that is limited to a technical upgrade. I will concede that this comprehensive ROI will be difficult to estimate, but that cannot be a valid reason for not doing the right thing. When my colleagues and I evaluate upgrades for our clients we challenge them and our own folks to identify and deliver value beyond what is possible with a mere technical upgrade. This helps these SAP customers derive better value from the platform. This sets them on the path of innovation with the platform.

According to Usman Sheikh, Vice President, Global Ecosystem & Partner Group, (...and, I paraphrase) using the platform to create that differentiated value is what leveraging the platform is all about. It is my personal opinion that SAP customers who are ready to take a close look at the platform to leverage it more effectively will find a lot of support from SAP and from systems integrators. So they should not in any way hesitate to seek assistance in this matter.

New SAP Press Book – Content Integration with NetWeaver Portal – by Marty McCormick and Matt Stratford

Overview

The first half of a two-series blog that introduces a new SAP Press book titled "Content Integration with SAP NetWeaver Portal". In this book, we provide detailed insight into various impacts and considerations relevant for several popular portal content integration scenarios such as Business Intelligence (BI), SAP Manager and Employee Self Service (XSS), Supplier Relationship Management (SRM), and SAP Composite Application Resource and Portfolio Management (RPM). For each portal content area, we discuss architecture and development impacts, configuration overview, and project management considerations. In addition, we discuss the wide ranging impacts of Federated Portal Networks (FPNs) as well as several overlapping areas relevant in portal implementations today, such as Adobe Document Services, System Landscape Directory, and NetWeaver Development Infrastructure. This book is unique because it covers several skill sets, such as systems and development, and as such allows SAP professionals to greatly broaden their knowledge on the NetWeaver Portal.

The book is divided into three sections. In the first section, we introduce critical concepts that provide a solid foundation for SAP professionals, such as FPN technology. In addition, we provide an overview of the fundamentals of portal content. In the second section, each chapter is dedicated to a specific portal content area, such as NetWeaver BI, XSS, CRM, SRM, and RPM. Within each chapter in Section II, we provide detailed analysis of architecture and development impacts, such as FPN implications and where to place various software components in your SAP landscape. In the third section, we address the overlapping areas that must also be accounted for in NetWeaver architectures, such as ADS, SLD, and NWDI.
Section I - Introduction
Chapter 1 - Introduction

After a quick "refresher" of SAP NetWeaver and the SAP NetWeaver Portal, Chapter 1 will provide readers with an overview of business content integration with the SAP NetWeaver Portal. Readers will learn how portal content integration options have evolved from early Portal releases. In addition, they will gain an understanding of the benefits of the latest Portal technology and be introduced to the challenges project teams face when integrating portal content.
Chapter 2 - Federated Portal Networks

In Chapter 2, readers will learn the importance of Federated Portals and its impact on Portal content integration. After this chapter, readers will possess an understanding of the intricacies of Federated Portals and be able to discuss the impact of FPN technology on various Portal usage scenarios. Users will apply their knowledge of FPN concepts to specific content integration topics in subsequent chapters.

Challenges in BI upgrade

Scope & objectives

To minimize the risks involved in the Upgrade and to improve the performance of the Upgrade and reduce the Downtime.

Business Benefits:

Standardization of existing processes using new functionalities thereby reducing custom developments.

Increased Value Added Activities – Updated Process, End User Training and Validation Testing Documentation

Salient Features:

Steps involved in a successful BI7 upgrade and what are the costs to the business, technical dependencies that need to be considered in an upgrade, dependencies between upgrading to BI7 and integrating SAP's new acquisition.

By following the below approach, the risks can be mitigating for a successful BI Upgrade.

The challenges facing BI/BW projects can be technical, or fiscal in nature. Discover how to eliminate problems before they occur, by preparing for them from the outset. Learn about common BW mistakes, find out how to avoid them and understand how successful BW projects can be executed.

Thoroughly study the customer requirement by analyzing their landscape, and go through the specific Master guide of the Upgrade and decide on the approach that has to be followed for the available functionalities in their current landscape.

Go-through the component Upgrade guides for the particular approach and document all the relevant notes that were referred for similar Upgrades.

Analyze whether there any developments in the source BW release and decide on the strategy that will be followed in the subsequent SPDD and SPAU modifications. You may need an SSCR key to perform the modification adjustment. Get the key before you upgrade the system. The adjusted objects are collected in a repair that is released to a transport request. You cannot release this transport request; instead you must flag it for transport in transaction SPDD. Towards the end of the upgrade, SAPup exports the request to the transport directory /usr/sap/trans and registers it for transport in the umodauto.lst file.

Analyze for any large tables which require ICNV conversion, and decide on the approach for ICNV conversions depending on the Upgrade strategy.For up-to-date information, see SAP Note 490788 - ICNV in upgrade to Web AS 6.20.

If the customer wants to implement security after the Upgrade, first check whether 3.x reports are used AS-IS or whether they want to convert them to 7.0. Authorization concept in BI 7.0 has been changed dramatically; following is the note that can be referred to. New authorization concept: Authorization Analysis note 955990 - BI in SAP NetWeaver 7.0: Incompatibilities with SAP BW 3.x.

Team structure for a BI Team

Changing skills requirements to upgrade BI; managing the relationship with external consultants empower the masses without killing the system; understanding the benefits a BI Competency Centre can deliver; understanding the critical skills of an effective BI team.

Demo on Data Extraction from SAP to Non-SAP systems such as Database tables and Flat Files using Open Hub Destination

Aim: To explain Open Hub Destination and to demonstrate the extraction of data from an Info Cube to database tables and flat files. What is Open Hub Destination?

Open Hub is a SAP BI component where this service provides the framework for scheduled and monitored extraction of consolidated and integrated data from the SAP BI and the controlled distribution of data for external systems or applications.
When we use Open Hub Destination?

For example our company has an external data warehouse system and we want to make the data available to this system in the form of tables or files then go for Open Hub service.
Where we should not use Open Hub Service?

We should not use Open Hub Service if we want to transfer the data into other SAP systems or applications.
What are the important functions of Open Hub Service?

a)DB tables and Flat file in CSV format: The data of database tables of the third-party can be obtained using API’s

b) Full and Delta extraction mode possible.

c) OHD is a part of data flow: Using the data flow options such as transformations and target object for data transfer process.

d)It supports all BI data targets such as Info Cube, Multi-providers, DSO, Characteristic Info-Objects.

e)Monitoring: Integrated monitor and application log.


The Transaction Code for creating Open Hub is RSBOH1.

image



The other way to go into the OHD creation screen is by selecting the Open Hub Destination in the modeling tab which is as shown below…

image

Let us consider the Info Cube ZIC_ISET with the following data….

image
1. Extracting data into a database table…

Right Click on the Infoarea on which we get an option to create OHD….



image

Now in the OHD screen we have to enter the technical name and description of OHD we are creating and we have to specify the Info Cube from which we want to extract the data….

image
We have to enter the destination type as database table in the destination tab, then a database table will be automatically created as below….

image



In the field definition tab we have to make sure that that all the fields are copied success fully for the Info Cube selected….

image"


When we try to activate the OHD we will get a pop-up with the following message and upon saying OK it will be activated.

image



image
On successfully activating the OHD we have to create a Transformation to map between Cube and OHD.

image



Now we have to enter the name of the cube in the source of the transformation as shown in the figure….

image

The following screen shows the mapping of objects…

image

After successfully creating the Transformation, we have to create the DTP for transferring the data.

image


Now activate and execute the DTP so that the data is transferred….

image



In the monitor we can check that the data is transferred successfully into the database table….

image

oto SE16 and check the data in the database table….

image



The following data is loaded in the database table which is in the Info cube....

image


2. Extracting Data into Flat FileFor loading the the data into a flat file the procedure is the same as the above but while creating the OHD we need to select the destination type as file, then a CSV file is created with the given path.



image



The following screen indicates the CSV file created and the directory taken.

image

In the monitor we check that the data is transferred successfully into the flat file….

image





The following indicates the data in the CSV file which is extracted from the Info Cube.

image

How to Apply Support Packages while Reducing Downtime

How to Apply Support Packages while Reducing Downtime

Customers have often commented about how long it takes to perform maintenance on SAP Systems. One of the key concerns is the impact that the required downtime will have on the operations of the business. The increasing nature of global businesses increases the impact that maintenance downtime periods have on organization. The main complications arise on dual stack system. This blog discusses ways to minimize the downtime required to apply Support Packages Stacks (SPS) to SAP systems.

Overview

When applying support package stacks, it is important to understand the types of support packages and the procedures for applying the stacks. My blog on Support Packages and Corrections is a good start for this discussion. Downloading support package stacks will include the necessary software components required to update a system to the targeted level.

Example: Update an SAP NetWeaver BI System from Service Release 3 (SPS 14) to the Support Package Stack 17.

To update the BI System, the following updates will be downloaded:

· SAP Kernel Updates

· ABAP Support Packages

· Java Support Packages

· Front End Patches

SAP provides an implementation guide for each stack to assist administrators with applying the updates. The guide for SPS17 provides a recommendation for a procedure for applying ABAP and Java support packages concurrently.

Reducing Downtime and Minimizing Manual Effort

When performing system updates, downtime consists of actual downtime and the period during which the system updates are deployed to the system. In response to concerns from customers, SAP has provided a process whereby the Java and ABAP support packages can be deployed in parallel. In addition, tools are available to minimize manual efforts expended by system administrators. Administrators can utilize the Java Support Package Manager (JSPM) to automate maintenance tasks.

Update JSPM

The Java Support Package Manager has a number of uses. In this blog, JSPM is used to apply individual Java support packages and stacks. JSPM can also be used to update the SAP kernel on a dual stack system. Before initiating these tasks, the JSPM application itself needs to be updated. Please see my video blog that shows how to Patch the JSPM Application to the latest version. This process is non-disruptive to the system and can be applied during normal uptime.

Parallel Patching Procedure

The Support Package Stack guide for NetWeaver 7.0 (SPS17) lists the procedure for parallel patching as follows:

1. Prior to applying ABAP and Java Support Packages, use the Single Support Packages option in JSPM and select for update only the components SAP KERNEL and BC-FES-IGS.

Using JSPM automates the process of applying the kernel update. All SAP instances and services on the local system are stopped, patched, and restarted. My video blog on Applying SAP Kernel Updates with JSPM shows how to accomplish this task.
2. Import the Support Packages for the component SAP_BASIS into the ABAP stack using the ABAP Support Package Manager (SPAM).

The SPAM tool itself provides additional functionality to reduce downtime when applying ABAP support packages. SPAM has a reduced downtime mode that provides system administrators more control over the import process. System Administrators can execute a much of the update efforts during normal productive uptime and consolidate all downtime activities to a single phase. My video blog on Reducing downtime when applying ABAP Support Packages shows this process.
3. Import the remaining ABAP Support Packages with SPAM and in parallel; apply the Java Support Package Stack with JSPM.

While the downtime activities for the ABAP packages are running, system administrators can apply the Java support package stack at the same time. My video blog on Applying Support Packages Stacks with JSPM provides an example of deploying Java support packages.

Conclusion

These procedures provide administrators tools and processes that can reduce the amount of time it takes to apply support packages to a system. It should be noted that point in time recovery safeguards should be applied when performing any system maintenance. This blog provides a procedure that allows the application of both Java and ABAP support packages concurrently. In addition, the downtime minimized option for SPAM reduces the amount of downtime required to apply ABAP based support packages. Utilizing the tools and procedures in this blog reduces manual effort and addresses concerns raised by customers in regards to minimizing maintenance downtime.

The Road from and around Berlin (Part 2)

Ramble tamble

On the plane from Philly to Frankfurt, my first long distance Airbus trip, and there's an Entertainment console stuck on the back of the seat in front of me, on the side of my chair, and worst of all, in two-thirds of the place where my feet and day pack would go. Not to mention that the system froze before very long, requiring an announcement that the entire plane (!) would be rebooted, and everyone's console would be down for 15 minutes. Within the hour, this process was repeated, but the downtime was another 30 minutes. Again, when the TV, movie and whatever else came back up for a third time, it needed a reboot. The splash panel said Rockwell Collins (the folks that got the U.S. to the moon and back 6 times, or so).

6:00 PM: Screen says "Announcement: Inflight entertainment will end within 5 minutes." 30 more minutes of down time.

According to my Windows Explorer, the moon shot displayed below was:

Created: Friday, October 10, 2008, 9:41:48 AM
Modified: Thursday, October 09, 2008, 3:38:42 PM

Whoa, created after being modified. That's strange.

I got my first inflight German lesson, being told "Guten Appetit" over my airplane food meal by my neighbor (who probably hasn't read Accidental Tourist). "Back at ya."

There's no record of my visit to a back alley in Bühl where I listened to jazz (without paying) standing around with the smokers. Late night, a little cool. Some things don't need photos.

Fast forward to the trains in Berlin.

Berlin's erfolgreichste show - "show suitable for foreign tourists", and, Bluemax Theater on Potsdamer Platz. Advertisements that caught my eye, not because I wanted to see these shows, but because I didn't understand what was up.

Hervé Couturier and Sal Visca meeting. The most memorable quote that I wrote down was "need masively parallel ABAP". See Dennis's blog for much more insight. With the increase in threaded CPU architectures over clock speeds, any code designs that scale up for parallel processing are total wins.

Code Jam / Steve Winwood jams

  • Firebug
  • Webkit

Louenas Hamdi, co-winner of the Berlin TechEd Demo Jam, gave me 2 key phrases as we hung out backstage before the Steve Winwood concert. With my omnipresent notepad, I jotted these down for later. Louenas said, "these are revolutionary web" trends, Firebug debugs the web, where previously one might just say "the web is broken, and it's better than Adobe." Webkit is the "browser engine that powers Safari, Chrome," and more.

Those are a few links I found on a quick internet search for Firebug. My advice to you internet coders out there? "Get fire bug" And tell them Louenas sent you.

"Firebug is free and open source (BSD)" - sweet.

As for webkit, it's here: http://webkit.org/

People who write documentation, write code, or even "just" write email should look at this page for an example of clear writing:

If I Were King of the Forest

In a side conversation in the Community Clubhouse in Berlin, Michael Schwandt posed a question to me, "What would you change if you were in charge of SCN?" Similarly, Brian Bernard asked what I would do to clean up static areas of SCN. In the meantime, SDN has gotten a facelift.

Michael: Here are 3 things I'd do to improve user experience of SCN:

  1. Blog comment editor and blog editor improvements. I'm sure these are in the works for a future "support pack," but they're more important to me than what colors are in the toolbar. I have seen folks embed links into blog comments, and a year later finally was told "oh, just write raw HTML". Which sort of works, and often doesn't, like
    fails. I'm not experienced with many blog editors, but pop-up windows that lose my work, non-existent spell checkers, and an arcance process to just drop a darn image in the text are all no-brainers.
  2. Point system charity leverage. I think SCN has done tremendous good by connecting technical and other contributions to worthy causes. I'd say this can be taken a couple steps farther, using models like Paypal and Facebook to allow an easier way to designate recipients, track where the donations go, and even see success stories. My suggestion would be: (1) food, (2) books, and (3) laptops as specific material projects.
  3. Modified ratings where we track not just individual contributions but a type of social capital. Oliver Kohl shared a lot of great ideas around this on the Clue Train ride, so you have heard it, and Oliver can explainit better than I can, but the theory would be to show not just who has a lot of friends, but who has influence due to the number of people listening to them. I've done similar study of whose blogs are read, but that's just one element. The SCN business card is probably the locus for this. And the SAP investment in linkedin might be a clue for the future.

Brian: This one is even harder to answer than the question Michael posed. But after a few weeks, here's what I have:

  1. Improve contributor detail so that at least the deadwood can be visible. If I log on and see that my last contribution was a week ago, I know I'm sharing. It's a little harder to see how others are sharing. The "widget" that showed ratios of answered to unanswered question was a step in the right direction.
  2. Run contests with specific prizes to fill out the sparse areas and remove stale content. I'd concentrate on the wiki areas first, since I already know that I've built pages that need tuning.
  3. Set up archiving with retention periods, compression and delete-by-dates. It's not going to be easy, but hopefully newer frontends like docupedia and collaboration workspace can be engineered with pruning in mind rather than afterthoughts.

In a Phone Booth in Baltimore

I watched Community Day Bangalore from afar, with images via twitpic, video and audio via ustream, and a series of tweets both inhouse and remote. I commented on the quality of the content, as well as the quality of the transmissions. See below for example photos/screen shots (I'm supposed to link the twitpic capture back to the original source, per the terms of use).

The xchrono screen shot is from my home workstation. I hacked some source code to get a clock view so I'd know what time it is in India. It turns out my Windows Mobile smart phone has a "world clock" that is limited to whole hour settings, and India is 5.5 hours offset from Greenwich Mean Time. So, I can't see what time it is properly on the latest OS? I'll post my diffs to the code snippet repository on SDN later, but the key was to use a timezone (TZ variable) of "Asia/Calcutta". The rest is just code.

The link above goes to lyrics and music from Primitive Radio Gods.

image
@MarilynPratt showing Community Day schedule board. on TwitPic

image