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.

Friday, May 19, 2023

Manage 2000 Release 8.1 Service Pack 6 Now Available

 Just in case you missed the official announcement...again!:

 "We are pleased to announce that Release 8.1 Service Pack 6 was released today, April 17th, 2023 and is now available for upgrades."

And yes, we already have 4 or 5 requests in for it.  So the glacier of Manage 2000 client releases continues to press forward.

We have had folks using the knowledgebase for a couple of years and while it is hard to imagine new classic Manage 2000 topics to add to the thousands of KB articles already created, it is pretty obvious that new features in recent service packs deserve some knowledge creation.  So, I am trying to remember the lessons of my technical writing course some years back...something about hushing the passive voice.

There is a school of thought that documentation should be done first and that development should drive off of the documentation.  What I experience is that knowledge creation drives bug fixes. 

When a developer is tasked with knowledge creation and actually has to find simple examples to put into how-tos, things that can go wrong generally do.  But that is why the patch system exists, to make Manage 2000 more resilient.

The other great excitement of the moment for me is a client doing beta testing on the web based ProductConfigurator. The ProductConfigurator was introduced in release 7.2.  The backend has been used by several clients to process custom front end request, but the standard user interface has never undergone a serious full beta test cycle with feedback to and correction by the development staff.

Driving a web experience off the same SCREEN.BUILD metadata that defines the user interface for PWS CTO.ENTRY is an ambitious undertaking.  The payoff for CTO technical folks is HUGE!  Their experience, skills, and techniques configuring models with CCVs applies equally to CTO.ENTRY and ProductConfigurator.

Lane and I have been experimenting with adding accumulator CCV types that can render running totals off of QPA.TABLE.CALC results. This supports running pricing displays as users configure an end item.

I feel we are finishing things started long ago.  And that is a good feeling.