Thursday, January 19, 2012

Top Ten Things To Know on Manage 2000 7.3

1. What preferences settings exist and how to set them globally, by role
2. How to turn on and use web function usage tracking
3. How to use web performance exception reporting
4. How to present different views to different roles
5. How to setup mobile access to Manage 2000
6. How to setup an externally facing portal
7. How to setup AR KPI dashboard displays
8. How to enable attachments in web portals
9. How to extend web portals by creating REPORT.BUILD functions as web functions
10. How to develop web functions with Visual Studio

I'll try to post on these topics over the coming weeks.

Web Preferences


Web preferences allow you to configure behavioral characteristics of Manage 2000 web sites. They can be set globally in WEB.CONSTANTS on screen 3. They can be set per role in the CNT.SYSTEM.REFS function. They can be set per user in screen 8 of CONTACTS.



Web Preferences are cached on a per user basis. To get preference changes to take effect you need to logoff your web session and start a new one. You can logoff the web session from the Welcome Portal or the My Account menu or by running WebLogoff from PWS.

The most sought after preference change has been turning off the autocomplete behavior in web functions which seems to annoy users more than help them. So in WEB.CONSTANTS on screen 3 add Preference Code 12 Minimum Length for Autofill and set the value to 999.

Preference 1 External Home Page controls what happens when a user logs off the website. You can use it to redirect them to your company web site. You can also set it to a value of ../../default.aspx which redirects them to the web login page. This feels nice and somehow harmonic to end the session where it began.

Preference 9 M2k Home Page controls what happens when a user logs into the web site. Using this preference in CNT.SYSTEM.REFS and by selecting the appropriate web function name you can start your customers in the shopping cart when they login, while directing sales reps to select the customer they wish to represent as they login, and direct service reps in the service portal as they come in.

As a developer constantly testing web functions I particularly like 13 Use LK as Default set to Y. Which does pretty much what you would expect. If users often want to view in a web function what they were just accessing in PWS then they might like this too.

Explore other preferences using ?? in one of the web preferences prompts. To avoid disturbing other users you can test just on yourself by setting preferences in CONTACTS screen 8.

Some preferences are fairly obvious like 4 Items Per Page. Others are a bit more mysterious like 8 Page Smoothing which can be used on users with older version of IE to cut down on the screen flickering during postbacks.

A number of them like the ...PDF.. settings can be tested from the REPORT.BUILD report viewer, or HyperQuery functions like CustOpenSalesOrders which provide export links for PDF viewing.

I'll cover the mobile and attachments preference settings in later postings on those topics.

Saturday, January 7, 2012

In Defense of the Multi-Value Database

Reading Andrew E. Wade's chapter "Business Objects in Object Databases" of Andrew Carmichael's anthology of OO practitioners "Developing Business Objects" from 1997 I am struck by the parallels between the advantages of Object Oriented databases and Multi-Value databases over RDBMS for complex business modeling such as ERP systems.
RDBMSs provide a simple, flat, tabular view of all information. The user must map his application data structures, whatever they might be, into those tables. Other traditional database systems require similar mapping down to simple, flat records. The user must work at the level of only the table data structure and only a small set of simple operations (select,project,join). Now, if the application data structures is naturally simple and flat, and the application operations are also simple, this mapping is straightforward and not an issue. On the other hand, when the application structures and operations become complex, the RDMBS approach forces the user to deal with this directly. An ODBMS offers the ability to model an application in terms of objects, which may have any user-defined structure and any user-defined operations. Applications that require nested structures, dynamically varying sized structures, many-to-many relationships, and complex operations can map these directly to objects. Not only is the support far more efficient, far faster at run time, but the user may work at higher levels of abstraction. Instead of translating the application down to records and tuples with joins, the user can work directly with objects such as customers or manufacturing processes, and the natural, application-defined operations on these. The result is easier and faster for the developer and the end user. ...

When to Use an ODMS

... Second, if the application's information is complex and interconnected, an ODBMS can provide much better performance and ease of use. To contrast, if the information being modeled consists of simple, flat, fixed-length field, that fit nicely into tables, an RDMBS can be a fine fit. On the other hand, if the information contains complex structure, nested structures, dynamically varying sized structures, including images, audio, and video, all these can be represented directly as objects. Saving the need to translate not only eases the developer's load, but also eliminates the need to translate at run time, making it faster. To some users, the interconnections in their information model are even more important. In an RDBMS, such relationships are represented by creating secondary data structures, foreign keys. At run time, the system searches down two tables, comparing key values, until it discovers two that match.This search-and -compare process is called a join, an it's the weak point of relational technology. Even with the help of indices, it's slow, and the bigger the database, the slower it gets. In an ODBMS, there is no need to create and manage secondary data structures... Referential integrity, a difficult issue in traditional database systems, comes along automatically and easily. Moreover, the traversal is direct, with no need to search or compare, resulting in performance that is orders of magnitude faster. The more relationships, the more the application will benefit from an ODMBS.
Although to my way of thinking the most critical advantage of Multi-Value databases is their elasticity. They accomodate change. And change is the greatest challenge to software development and software field operations. One example of this is the ability to add domain specific vocabulary to a database in the field. The I-Descriptor feature in file dictionaries allows one (among other things) to describe how the system should retrieve a single foreign field. This is, effectively, a class definition for a field level join. Once defined the foreign sourced field may be used as if it were local for query and record selection purposes. Some users shy away from creating new custom dictionaries, but I see this as teaching the database how to be more useful to the users, how to be more functional in the users natural business vocabulary. Some argue that Multi-Value is dead. I hear this mostly in context of sales and marketing. But the absolute dominance of the healthcare sector by Intersystem's Cache and its predecessor MUMPS would seem to contradict this assertion. Critics will point out that Cache is not Multi-Value, but it most certainly is NOT first normal! In fact, one can argue that the Multi-Value database design is a subset of Cache's architecture. I would argue that the default Multi-Value Telnet based UI is the major problem for sales and marketing. Cache supports HTML as an immediate client protocol. This has been a conspicuously missing piece in U2 and other Multi-Value vendors offerings. While there are many ways to mix-in HTML client protocols such as UO, RBO, BlueFinity, or developing your own data components as we did on the Manage 2000 team, these all introduce tons of extra complexity. On most Multi-Value platforms there is no native MV Basic way to simply and directly code HTML UI's.

Wednesday, October 26, 2011

Out Of the Box Experience (OOBE Newbie New)

Well the development cutoff of Manage 2000 7.3 sp3 is done. I have upgraded our build system and development web server to sp4 where 7.3 future development will happen, and created the views for patching sp3. Now I wait and wait and wait while Release Control readies installs for the field and customer sites slowly rollout new service pack upgrades or come on board from older major releases.
One of the areas I have been trying to enrich is the How To documentation on various web setup processes. I hope this combined with more appropriate Sales Rep and Customer menus and default role preferences will make setting up external access to Manage 2000 less daunting, and thereby give more Manage 2000 sites ROI justification for upgrading to the newest Manage 2000 release.
Imagine Sales Reps, Service Personnel, Buyers for customers at trade shows pulling out their IPhone, Droid, or IPad and interacting directly with your Manage 2000 site.

Saturday, August 27, 2011

IE 9.0 Firefox 4,5,6... and counting and Chrome

Manage 2000 7.3 sp3 is now building in development with IE9 compatibility in standards mode with HTML 5.0 support. WhooooooooooooHooooooooooooooooo!!!
Development is scheduled to continue till mid-October giving a nice cushion for alpha testing to clean up any construction debris. So things are looking good for 7.3 sp3.
I still need to spend some quality time with the roiScreenControl used in the web product configurator to implement the new scrolled set capability and make it cross browser compatible with Chrome and Safari. But other than that everything seems to be running well in IE9, Chrome, Firefox and Safari.
A nice side benefit of the IE9 project for 7.3 sp3 is that more of the mobile tools and applications slated for 7.4 will make an early appearance. The ESOP module in particular will start sporting a sleek mobile look with a sales product code browsing app with add to cart capability, and mobile formatted shopping cart and checkout pages.

Thursday, June 9, 2011

Wizard's Work

Manage 2000 7.4 development now includes a wizard that is capable of generating a maintenance web function with single valued fields and scrolled sets somewhat akin to PWS.
And there were a LOT of bytes in that elephant!
But the payback is a reduction in cost of writing web clients for Manage 2000 maintenance and posting functions, which we will leverage during the remainder of the standard system development cycle. And it will produce further payback as a tool for custom development projects.
The Manage 2000 tooling for the faux scrolled sets leverages the ajax validation, last keys, and prompt stack features of the roiTextbox and provides smooth keyboard navigation.
It takes just a few moments to select fields from a business transaction object and generate a working web function, which can be further enhanced and polished in Visual Studio.

Tuesday, March 8, 2011

ITouch'd Manage 2000

Well the Manage 2000 7.4 web repository is finally branched and 7.4 only development can now be checked in. But one last web tools development project did make it into the 7.3 sp3 code base before the branch; MT/M2000Mobile/M2000Mobile.aspx provides navigation based on MENU.MASTER trees and DEMO/MobileStockStatusByLoc/MobileStockStatusByLoc.aspx which provides an example application to copy.
The idea is to build HTML, javascript, and CSS styles that mimic mobile applications, rather than building applications in proprietary environments one end-user device at a time. Using micro-frameworks like WebApp.Net one can build a web page that looks and feels like a mobile app although it runs in the browser.
Sp2 just went out the door so we won't be launching sp3 for awhile but it should be available in plenty of time for stocking stuffers.

Sunday, January 30, 2011

iManage2000

This last month I've been testing and researching issues related to accessing Manage 2000 web functions from IPhone and Android based mobile devices. Since these internet enabled devices include web browsers the basic ability to run Manage 2000 web functions is built right in.
However there are stumbling blocks to their usability. The most obvious problem is the small screen and the large complex pages of standard Manage 2000 web function pages. A little further examination reveals navigation problems in the drop down menus. These are rendered by Infragistics UltraWebMenu controls which do not work properly with WebKit based browsers. Another issue to consider is performance when accessing the net through slower connections. (How many G's are there in T1?)
So, though you can go the discount route and setup phone desktop buttons to target specific standard Manage 2000 web functions, a little more work can lead to a much better user experience.
The road map to a better user experience includes replacing the standard heading banner with a navigation app based on IUI, WebApp.Net, or Sencha Touch. The menus should still be administerable in MENU.BUILD, but the whole mobile menu tree would get loaded to the mobile browser as a multi-layer page with anchor navigation between layers. This would provide the user with rapid menu navigation including familiar slide transitions and header navigation buttons.
Functions would work off of standard hyperlinks and load and postback in their usual fashion. Though any specific mobile web function development should consider leveraging the layer tools in these micro-frameworks. Other mobile web function best practices would include avoiding the IG Grid in lieu of lighter weight options, minimizing the information displayed in any given layer to 5-7 items and providing multiple choice data entry in place of fill in the blank wherever possible.
Sizing the formatting table to 480 x 320 can help give a design time feel for mobile screen territory at standard magnification. HTML meta tags like <meta name="viewport" content="width=device-width; initial-scale=1.0;" /> can be used to control the magnification level of the web function when initially displayed. Since these micro frameworks tend to use CSS hiding techniques they interfere with the design time WSYIWYG in Visual Studio. You can temporarily comment out the stylesheet link in the aspx file to get a better designer experience.