Monday, January 6, 2025

Times they are a changin'

After 37 years working on Manage 2000 I have decided to ease back to ½ time. For 20 hours each week I will continue to fix treasures, perform maintenance on Manage 2000, and assist our great helpline folks. That will give me 20 hours a week to devote to personal pursuits.

I started out working on Manage 2000 in the custom code department, sometimes called Special Client Services. It was a small group including Teri Scheper, Warren Jacobsen, and Lane Johnson.

The year was 1987.  It was the third day of August, a warm cloudy Monday with a passing thunderstorm.

We worked on ADP 40 terminals wired into an Altos minicomputer and delivered customization to client computer systems by way of a cantankerous communication batch processor named The Magic Bus.

Yes, life was different then. It was the time of Castlevania and Zelda. Michael Jackson was Bad, Whitney Houston was Whitney, and U2 was up the Joshua Tree. Aretha Franklin became the first woman to be inducted into the Rock & Roll Hall of Fame.

The Twins defeated the Cardinals four games to three to win the Series. Twins pitcher Frank Viola was named as the 1987 World Series MVP.

The radio introduced us to "Walk Like an Egyptian", "The Way It Is", and "Livin' on a Prayer".

Important debuting cultural works included "The Princess Bride", "Spaceballs", and "Predator".

And we were all captivated by the baby Jessica McClure rescue saga unfolding in Midland, Texas where at the age of 18 months she fell down a well and was trapped. Rescuers worked for 58 hours straight in order to rescue the child. And all three networks covered every hour.

I was oblivious to most of this due to the sleep deprivation that accompanied our first child. That and the mental distortion of stepping onto the ROI Systems juggernaut named Manage 2000.

Ben has been an architect for the last decade.  Michael is a mechanical engineer.  Matthew does some kind of underwriting voodoo that keeps health insurance solvent.

Now I need to take some time to meet the next generation and watch the magic happen again without the sleep deprivation.

I also hope that some of you may want to invite me back to my custom code days to work on projects of value to your organization.  

I am particularly excited about REST and web services in and out of Manage 2000 8.1.  There can be magic here too.   Excel integration with Ribbon components that are aware of Manage 2000 and directly pull/validate data.  PWS functions that read and post directly to FEDEX or UPS REST services.  Integration projects that let other software in your network leverage Manage 2000 data and processes. 

Time to semi-retire and start having more fun.

Wish me luck!


Friday, July 19, 2024

Javascript Lifecycle

Once upon a time Volkswagon put out an advertisement mocking folks who thought Volkswagons never changed.  The Beetle did look like a Beetle for decades; then again even when it was retro'd.  Change is antithetical to software endurance and yet we write code in a rapidly changing environment.  And our users expect it to continue working for years...decades in the case of Manage 2000.

The W3C has been a conservator of Internet technologies like HTML, CSS, and Javascript. The underlying standards of TCPIP, FTP, and Telnet have been steady for decades.  But there is enormous pressure to 'improve' the user interface technologies that power browser experiences.  And now that the browser wars have consolidated technological components and users are updated with the latest version of a few shared script  engines continuously, browsers can quickly adapt to changes in the definition of Javascript.

ECMA Script 6 was a giant leap forward. It was adopted in 2015 and implemented in most browsers by 2017.  But the European Computer Manufacturers Association (now Ecma International) is moving the Javascript standards forward every year; JS 2016, JS 2017, JS 2018, JS 2019, JS 2020, JS 2021, JS 2022, JS 2023, JS 2024.

Turns out I don't know Javascript.  I know what Javascript used to be.  But I don't know what it can be in this moment. Check out the new methods and properties and whole new language elements:  w3 schools js versions.asp

I guess it is time to give up pretending I know how to program in Javascript and start believing I can figure it out and look it up on Google or Stack Overflow and construct my knowledge of coding in Javascript "Just-In-Time" as I am working through projects.  Oh yeah, I know, AI will help me out  providing Javascript coding techniques in real-time as I type, Javascript coding techniques which are changing with every new project I undertake.  Will I feel like I am in control of the horse, or just hang on to the saddle horn and try not to fall off?



Friday, May 31, 2024

NUGM 2024: A Real Live User Group Meeting!


NovoROISystems' first in-person post-covid user group meeting came off without a hitch. 

 An intimate group of about 20 customers participated, some bringing experience in search of new ideas, others bringing novel points of view and a hunger for experienced perspectives. 

Bud Brown brought his deep well of system administration knowledge. 

Linda McHenry and I shared our custom and standard development experience. I took a deep dive into Manage 2000 as a REST consumer and also as a REST provider.  Linda pulled back the curtain on creating and modifying Manage 2000 web functions.

Marc and Trey and Joanne covered NovoROISystems software as well as several standard Manage 2000 topics. 

And special guest, Ian Foster, brought an introduction to Embrace ERP, which is a going and growing concern with an APICS core similar to Manage 2000.

It was short but sweet.

Really heart warming to see old friends still succeeding in manufacturing using Manage 2000 as a rock solid ERP solution.

And encouraging to see new faces just beginning their journey with Manage 2000 or in some cases experienced Manage 2000 6.5 users looking into the face of the Manage 2000 8.1 world.

Frodo Lives!

Friday, February 2, 2024

Manage 2000 News Ideas

Manage 2000 NEWS.ARTICLES provide a wrapper for ERP generated news content, publishing ERP news on an RSS feed making it accessible from any RSS enabled client.  This might be the Manage 2000 web function NewsReader, or a web browser RSS plug-in, or some other client newsreader software outside of Manage 2000.

Many news content providers already exist within Manage 2000. MSO is one out of 8 news source types available in NEWS.ARTICLES. The MSO new source type publishes the results of Manage 2000 Software Objects.  There are about 1000 standard MSOs, about 1/2 of which are suitable for publishing as news articles (not dependent on PWS).  And if you don't see what you are looking for, creating specific new tailored MSOs can be quickly accomplished using MSO.BUILD.

News About a Customer:

There are lots of standard MSOs creating content about customers and sales.  You can easily configure a newsfeed focused on what has just happened in a customer's account and another feed focused on what is expected to happen shortly.  You can copy any of these standard MSOs to a tailored version to adjust date ranges, time spans, and other options.

Try creating a Customer Recent Events newsfeed with news articles based on some of these MSOs: 508S, 509S, 512S, 513S, 514S.  And a Customer Forecast News with news articles based on some of these MSOs: 510S, 515S, 1272S, 1278S.

In NEWS.ARTICLES select MSO as the Source and enter the MSO Id and then accept all the defaults.

Add your articles to a newsfeed and then inspect in the NewsReader.

When you have something you like then use the previous post 'Virtual NUGM 2023 Tailoring Manage 2000 Web Portals' to guide you through adding your displays to LOOK.AR.

News About Today's Business Activity:

If SOP.CONSTANTS Sales Data Monitoring and AR.CONSTANTS AR Data Monitoring are enabled then MCD_DATA is updated with monitoring information about Sales Orders and Shipments and Invoicing and Cash Receipts as these transactions are entered into Manage 2000. 

MCD_DATA can be used as a News Source in NEWS.ARTICLES to present live information about SOP/AR activity.  You can present bottom line totals or Top Ten lists of customers or parts or sales reps, which continuously update as transactions are entered into the ERP system.

News From The Shipping/Receiving Docks:

Create an E type MSO which lists the RCVNG.RPTS for today in reverse chronological order  sampling the last hour or so.  Then wrap your tailored MSO in a NEWS.ARTICLE.

News From The Production Floor :

If you track live activity on your production floor using an MES system then check to see if it is capable of publishing REST services providing detailed status of work in progress.  If so you can configure a REST.SERVICE in Manage 2000 to consume the MES REST service.  And yes, there is a REST news source type allowing you to publish the MES information inside of Manage 2000, say, on the Work Order Status portal.

News About System Administration Tasks:

Another of the 8 news source types is MONITOR.  You can publish MONITOR.OPTIONS of ADI, BATCH.MASTER, CASE, ECA Agents, MASTER.AGENT processes and more. The original MONITOR.INTERFACE was PWS based, consuming a PWS user license while providing a user display. NEWS.ARICLES publishing MONITOR.OPTIONS are displayed in a web browser drastically lowering the license cost of using MONITOR.OPTIONS and making them available on a variety of devices.

News From Power BI:

If your company uses Power BI to build Visualizations you can publish these as news articles making them available to Manage 2000 users within the ERP system.

In Summary:

Manage 2000 RSS News is a low cost way of sharing ERP news events in real time. You can leave newsfeeds for private consumption by users in NewsReader, or make the newsfeed appear on portal pages, or hang a smart TV in a public area and set its URL to a specific NewsFeedId to create an Airport style monitor of shared information keeping everybody on the same page.

Friday, December 8, 2023

Automating REST Authorization Calls

REST services provided by 3PL partners generally require a two-step process to use their service.  First a call must be made with secret credentials to obtain an authorization token.  Then the auth token is submitted with subsequent requests.

In Manage 2000 REST.SERVICES we can create one REST.SERVICES record to obtain the auth token and then reference it in another REST.SERVICES record:



GetAuthToken accepts JPATH expression parameters to identify the token and the expiration span. It then caches the token for the expiration span and uses the cached version until it expires before going back to the REST service to get a fresh token.

Services like the FEDEX Rates service accept a great many parameters.  These can be specified in the REST.SERVICES record:

A SCREEN.BUILD screen built with matching X_DATA_1 names makes it easy to map the inputs into the RS.COM area for calling the 3PL REST API for information.


The program needs to:

  • Call SUB.MT500 to run the screen
  • Overlay the variables from the screen to the REST common
  • Call REST.SERVICE
  • Parse the result with JPATH
  • Present the results to user, perhaps in the PWS Viewer using SUB.TEXT.OUTPUT.
And the result is a Manage 2000 look and feel function that gets live information from the 3PL REST service:




Tuesday, October 31, 2023

Virtual NUGM 2023 Tailoring Manage 2000 Web Portals

 NovoRoi Systems is in the middle of a month of virtual NUGM with sessions each Tuesday and Thursday from 2:00 to 3:00 pm central time.  This week is a bi-week so everyone can attend to Month End and finish their Halloween costumes.

I've done my two sessions with my co-host Linda McHenry.  The first on October 10 was on major development topics in recent service packs to Manage 2000 release 8.1.  The second on October 24 was on tailoring Manage 2000 Web Portals.

Here are a few slides about adding custom web functions to web portals menus:

Portal Menus Are Just Menus


Portal Menu Roots Are In DEFINE.PORTAL.LINKS


LJM.CM.INQS Is Now Part of CustomerPortal



The Secret to Passing the Portal Key


Adding news articles to web portal news panels:

Create a Feed in NEWS.FEEDS and Attach Articles

Create Your Own Articles in NEWS.ARTICLES

Attach the Feed to the Portal in DEFINE.PORTAL.VIEW

LOOK.AR Now Displays Feed 000018


And enabling MSO access in web functions:

Enabling MSOs Globally in Web Functions

LOOK.AR Now Has an Attachment Icon Menu

Quick Display Example

Navigation Shortcuts under ‘Web Functions’




Tuesday, August 1, 2023

Extending the browser based capabilities of Manage 2000

Manage 2000 8.1 contains 317 browser based functions compared to about 2200 PWS based functions.

A few of the browser based functions are abstract in that they can emulate a class of PWS based functions:

  • ReportBuildRpt, for instance, accepts a module and report name and then emulates that specific REPORT.BUILD report.  
  • BatchProcess accepts a PWS function name and then emulates MT420, presenting the screen as a web page and submitting the request to DJS or MASTER.AGENT.

Over half of PWS functions are MT420 functions such as, MRP.CALC.PN or SHOP.LOAD.SUM.WK or SALES.BY.ITEM. These types of batch functions can easily be published as web functions by creating the appropriate FN.BUILD record.

Given a PWS function name, BatchProcess will use the PWS SCREEN.BUILD definition referenced in the paragraph to generate a web page to gather user input. After prompting the user for input BatchProcess will submit the completed MT420 request to DJS or MASTER.AGENT.

By creating a record in FN.BUILD you are creating a web type pseudo-function, pre-configuring BatchProcess to run a specific MT420 function.  You just need to create a web type function pointing to /MT/BatchProcess/BatchProcess.aspx passing in a parameter named FunctionName with a value like SHOP.LOAD.SUM.WK, and directing it to always run in a batch queue like a Master Agent AdHoc queue.







BatchProcess will not support any possible MT420 request. In particular there is no provision for handling screen output like EOT Viewer inquiries. However, by sending the output to the spooler with an LPTR request, it will be available to the browser user in the MyPrintJobs web page.



Once the FN.BUILD record is created your web function can be added to any menu through MENU.BUILD.  You can add it to PWS menus, or just as easily to the web portal menu system.