• Home
  • Services
  • SAP® E-Sourcing and CLM
  • Portfolio
  • Company
  • Contact Us
  •  

    Managing changes

    December 21st, 2008

    A good friend of mine thought I should post some thoughts about best practices; after giving it some thought, I figured I would write a little about managing configuration changes in E-Sourcing and CLM.

    Many of you probably know that E-Sourcing provides options when it comes to making configuration changes and applying them to development, staging, and production instances. Some people choose to make the configurations using the XLS workbook capabilities, while others make the majority of the changes via the user interface. In either case, it is still important to consider how these changes should be moved to other instances of the application.

    Some customers I work with are particularly rigorous about ensuring all changes are made in a development system, tested in a staging system, and carefully migrated to the production system. At the other end of the spectrum, I have also seen some customers be more aggressive and make configuration changes directly in the production instance. Where are you in this spectrum? Has your process worked well for you?

    When I work with customers, I tend to prefer the more rigorous approach to change management. I think it is important that configuration changes are thoroughly tested and validated. I like this to be done in the development system, then migrated to the production system at the appropriate time - I think an evening or weekend is best to allow for further validation testing in those systems.

    Unfortunately, applying this rigor really requires careful coordination, particularly if multiple people are working on the changes. E-Sourcing does not provide the necessary tools to easily identify “what has changed” and “has it been migrated to production”. As a result, those people making the changes need to carefully record each of the changes (I usually create a spreadsheet enumerating each change) and then create an export with those items. When done carefully and diligently, this works really well. It also helps set the next person making changes up for success - that person doesn’t need to figure out which system has the correct set of configurations; they can follow the same process.

    Regardless of whether you choose to make your changes using an XLS workbook or via the E-Sourcing user interface, I would encourage you to use the E-Sourcing export data and import data tools as your means to move changes from a development system to a staging and/or production system. These tools are available in the setup area and can be configured to export only specific data elements.

    In reality, this topic could have a small book written on it. Nevertheless, I hope it has made you think about how you manage changes and ensure your systems are configured consistently. Good luck!


    Could the E-Sourcing / CLM Workbench be more useful?

    December 12th, 2008

    Could the E-Sourcing / CLM Workbench be more useful? I have thought about this question a bunch of times, particularly when I login to use an E-Sourcing system and I ignore everything on the workbench page and immediately navigate to the area of interest.

    With this in mind, I thought about what some of the key things I would like to see on the workbench page that would ease my use of the system and provide real value to me. Some goals that I established for my workbench page were:

    1. The workbench page should load fast. I don’t want it to take long to load, particularly when I login to the system. Usually when I am logging in, I have a specific task in mind and waiting for the workbench is not valuable use of my time.

    2. The workbench page should be free of clutter. I don’t want things on the page that are not useful and that I won’t use.

    3. The workbench page should simplify my use of the system…show me what I am working on and provide quick navigation to the areas of the system I use the most.

    With these goals in mind, I set about creating a workbench page…here is what I came up with:

    My Workbench (click to enlarge)

    My Workbench (click to enlarge)

    The workbench page I created consists of five desktop channels:

    1. My Quick Links: this channel provides one click navigation to the major module areas (Projects, RFx, Auctions, and CLM). This saves me from having to click on the top navigation bar and select the module access point. I can view documents in the module area or create new ones.

    My Quick Links (click to enlarge)

    My Quick Links (click to enlarge)

    2. My Recent Edits: This channel is setup to show the recent business documents that I edited, with one-click access to those documents. In my experience, sourcing professionals are working with a small set of documents in the system, so this simple one-click access to the document can really speed up navigation of the system.

    My Recent Edits (click to enlarge)

    My Recent Edits (click to enlarge)

    3. My Bookmarks: One of the features that I really like in E-Sourcing / CLM is the ability to bookmark reports. Unfortunately, I don’t think it gets used enough. Bookmarking reports allows the user to “save” the filter parameters they use with the report and run it with those filters without having to re-enter them every time they run the report. This capability can be pretty useful if you have a report that filters by, say, organizational unit and users typically are only interested in a particular organizational unit. Anyway, after bookmarking reports, they are available on the Analysis (report page). I created a new workbench channel that puts them on the workbench page.

    My Bookmarks (click to enlarge)

    My Bookmarks (click to enlarge)

    My workbench page also includes two of the standard channels that come with E-Sourcing / CLM:

    1. Links: If you have configured web hyperlinks on the Company object, keeping the links channel that is provided with the system is a good idea.

    2. Technical Support: This channel is very useful so that users know what to do in case of questions and issues.

    What do you think? Would such a workbench page work for you? What else would you like to see on the page? Another idea I had was to create a “favorites” area that would allow me to identify certain business documents (Projects, RFxs, Contracts, etc) as a “favorite” and those favorites would be listed on the workbench page…I like this idea, but have not prototyped it yet. Would this be helpful?

    For those that are intested in knowing a little more about how I actually, configured this workbench page, read on…for those that are not, thanks for stopping by.

    Each of the three “My…” desktop channels was implemented using the E-Sourcing /CLM query definition tool. The My Quick Links channel is a single column query that uses the URL/Internal Page capability of the query tool. It also used images to create the actual links - this enabled me to create the indented effect and include the icon with the link.

    The My Recent Edits channel is a query that looks at the MODIFIED BY field on the business documents and selects only the most recently edited documents.

    The My Bookmarks channel queries the bookmarks table to generate the URL to the bookmarked report.

    Thanks again for stopping by…I hope you enjoyed this post and see how you can use the E-Sourcing / CLM query tool to create some interesting desktop channels.


    Expanding the Capabilities of Numbering Tables

    December 8th, 2008

    A colleague of mine recently posed the question: Is there any way to configure numbering tables to use the Organizational Unit id instead of the Company id? I did some research and found that E-Sourcing does not provide this capability out of the box, but with a little scripting, it can be done.

    To review, the E-Sourcing/CLM Numbering Table configuration object allows you to establish a configuration for how various business documents can be uniquely identified. For example, the default configuration for the Project numbering table provided with E-Sourcing/CLM numbers the business documents like: PRO-<sequence_number>-<year>, resulting in numbers like: PRO-00018-2008.

    The system does come with some additional configuration options called “tokens” that allow you to configure the generated identifier with a value from certain fields on the business document. For example, the identifier can be generated to include the Company id. Unfortunately, however, the system does not provide for inclusion of the Organizational Unit id.

    To provide this capability to the system, I did the following:

    1. I put my own special token in the numbering table definition. I included the string value “<%ORG_UNIT%>” in the portion of the numbering table configuration where I wanted the organizational unit id to be inserted.

    2. I created a script that replaced any instances of the <%ORG_UNIT%> token above with the id of the associated organizational unit id.

    Lets look at this in a bit more detail.

    The following image shows the configuration of the numbering table object. Notice that the value of the prefix field includes my special token (<%ORG_UNIT%>). The configuration also calls for a three digit sequence number, followed by the year. If the Organizational Unit has an id of “IT”, the generated project identifier would be: IT-001-2008.

    Numbering Table Definition (click to enlarge)

    Numbering Table Definition (click to enlarge)

    WIth this definition of the numbering table in place, I next added a Script Definition that will process the numbering table configuration when the project is saved. The script definition was setup as a field validation on the CREATED_AT field on the Project module. For those that desire to see actual script coding, it is listed below.

    With the numbering table defintion and script in place, I was ready to have the system generate the project identifier using my custom numbering scheme. The following image shows the generated identifier on a test Project.

    Generated Identifier on a Project (click to enlarge)

    Generated Identifier on a Project (click to enlarge)

    Although, I have demonstrated this solution in the Project module, it will work anywhere that numbering tables are used.

    I hope this was an interesting post for you and I look forward to your comments.

     

    Script Contents

    pattern = “<%ORG_UNIT%>”;

    // See if the numbering table has the <%ORG_UNIT%> token in it
    if (hasValue(doc.getDocumentId()) @and doc.getDocumentId().indexOf(pattern) >= 0)
    {
        // Make sure the org unit has a value
        if (hasValue(doc.getOrganizationalUnitRef()))
        {
            // Get the org unit external id
            busUnitHome = IBeanHomeLocator.lookup(session, doc.getOrganizationalUnitRef());
            busUnit = busUnitHome.find(doc.getOrganizationalUnitRef());
           
            // Now update the UNIQUE_DOC_NAME
            start = 0;
            end = 0;
            result = new StringBuffer();

            // Replace all instances
            while ((end = doc.getDocumentId().indexOf(pattern, start)) >= 0)
            {
                result.append(doc.getDocumentId().substring(start, end));
                result.append(busUnit.getExternalId());
                start = end + pattern.length();
            }
            result.append(doc.getDocumentId().substring(start));
           
            // Actually, set the value
            doc.getFieldMetadata(”UNIQUE_DOC_NAME”).set(doc, result.toString());
        }
        else
        {
            // Generate an error since we should not have a ORG_UNIT token without the value being set (org unit
            // should be required)
            throw doc.createApplicationException(null, “error.org_unit_not_set”);
        }
    }


    Using Images in Reports

    December 2nd, 2008

    One of my favorite things to do in E-Sourcing and CLM is to develop reports. I have worked with many customers over the years to develop queries and reports using the proprietary report development environment in E-Sourcing.

    A couple years back, SAP added the capability for report developers to include images in the report results. You might have seen this capability at work in some standard reports, such as the Project Status Summary report shown here.

    Project Status Summary (click to enlarge)

    Project Status Summary (click to enlarge)

    This report nicely shows how color images can be applied to result columns providing visual queues to the end user.

    I recently was working on a report for a client and used images in another way: as a button for a drill down report. The original report requirements called for the report to show estimated value totals aggregated by the business unit and to hyperlink those totals to the individual projects that made up the totals. Unfortunately, hyperlinking the totaled values threw the formatting off by left justifying the values and removing the numeric formatting. The next graphic shows that result.

    Drilldown Report Available on Numeric Data (click to enlarge)

    Drilldown Report Available on Numeric Data (click to enlarge)

    The alternative approach I chose makes the drilldown report available via an image (used like a button) in the report results and allows the estimated value data to be shown correctly as a numeric value.

    Drilldown Report Available on Image (click to enlarge)

    Drilldown Report Available on Image (click to enlarge)

    The setup required for this is really easy. First, you need to create the image that you want to use for your drilldown link. In my case, I chose to use a magnifying glass since that is a common user interface metaphor for getting more details. This image is then loaded into E-Sourcing/CLM in the File Attachment Container area (Setup > System Setup > User Interface > File Attachment Container). Typically, the “path” I provide to such images will be like: /reportimages/<gif file name>

    Once the image is loaded, you need to create two (2) localized resources. They are shown in the next graphic:

    Localized Resources for Image (click to enlarge)

    Localized Resources for Image (click to enlarge)

    These localized resources are used to show text and the image in the report. Notice that the first one with the text value does not contain the .image suffix. The second localized resource identifier contains the .image suffix and the value must be the value of the “path” field on the File Attachment Container object previously created.

    The last component to change is the query that contains the drilldown. The URL column that links to the drilldown report should have the “Show Image” field set to Image Only; And, the value of the URL column must be the localized resource created above (without the .image suffix). Have a look at the next graphic to see the definition of the URL result column.

    URL Query Column Definition (click to enlarge)

    URL Query Column Definition (click to enlarge)

    I hope you found this interesting and maybe inspired you to try using images in your reports.

    In a future post, I will write about another report I wrote using checkbox images that enabled some very interesting update capabilities from a list view.