Showing posts with label Newsfeeds. Show all posts
Showing posts with label Newsfeeds. Show all posts

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.

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’




Friday, May 6, 2022

Bearer Token Authorizations and JPATH Expressions

 Yeah, apples and oranges.  And I am not going to relate the two either.  They are just the flotsam and jetsam floating about in my mind from recent development.

Bearer token authorization comes out of the OAuth 2.0 standard, but has taken on a life of its own and become a commonly used authorization mechanism for REST services.

In the Rocket UniData UniBasic Extensions Version 8.2.2 you can find details on the Authorization setting required in setRequestHeader.  There is a whole intro page about OAuth 2.0 and U2.  

Short version:

setRequestHeader(HTTPRequest.Handle,"Authorization", "Bearer ":BEARER.TOKEN)

setRequestHeader(HTTPRequest.Handle,"Authorization", "DIRECT ":HMAC.TOKEN)

And these have to be done after the Request object is created.  There is no option in setHTTPDefault to specify the authorization type ahead of time. 

So in the REST.SERVICES table you just need to start the Auth Token prompt with "Bearer " or "DIRECT " and then the token, and REST.SERVICE will setRequestHeader and your REST.SERVICE request will be off to the races.






JSONPath or JPATH is for JSON what XPATH is for XML; a standard for declaratively specifying pieces of a JSON string to be returned.  I stumbled into the need for such a thing while working on the REST provider for NEWS.ARTICLES.  If you want to provide the capability to an article author to layout an HTML div and specify replacements from a REST service then you need some standard declarative expression to say "put THAT piece from the REST service results HERE!". And it would be nice to make the replacement expressions familiar and consistent with some larger standard.




The REST.NEWS news provider subroutine simply calls out to JPATH to extract out the pertinent data.

 *
2110* Replace dictionary references with values
 *     
     VAR.CNT = COUNT(LINE, "&")/2
     FOR VAR.IDX = 1 TO VAR.CNT
        VAR.IDX = VAR.IDX ;* Audits!
        VAR.NAME = FIELD(LINE, "&", 2, 1)
        TARGET.NAME = VAR.NAME
        TARGET.VALUE =  JPATH(udoRESTData, TARGET.NAME )





JPATH is not yet a W3C standard.  There is an IETF working group developing a standards-track JSONPath specification based on work by Stefan Goessnerwhich.  So while not set in stone there is general consensus on what a JPATH expression ought to look like and how it ought to function.

There are no JPATH features in the Rocket UDO functionality currently. However, the primitives are there for building a JPATH function.  And that is what I have started. It is available as a patch to Manage 2000 8.1 sp5.  And I would lead with "not complete yet".  But it provides the basic functionality which allows expressions in NEWS.ARTICLES like "&$.Customers[1].OutputEmailAddresses.SaleseQuoteEmail&" and since "$" is optional and array slice filter defaults we can write more concisely &Customers.OutputEmailAddresses.SalesQuoteEmail&.  

Why "not complete yet"?  Well it will do basic array slicing expressions, but a lot of work remains to implement all the possible filter expression and array slices within array slices and so forth.  




Monday, November 1, 2021

Templated Rendering of REST Provider's JSON Responses in Manage 2000

REST.MSO CustomFormatter subroutines are great for Unibasic programmers who don't mind familiarizing themselves with UDO JSON parsing and building text and HTML displays.

But what can you do without getting into programming?

There is another REST JSON formatter named REST.NEWS. Its purpose is to support writing NEWS.ARTICLES with content from REST providers.  It works similarly to the MCD_DATA.NEWS AR/SO dashboard code behind subroutine in that it lets you layout a template in the news article body with &var& type replacement variables. 


Use the new News Source REST in place of CUSTOM to save yourself some typing.

REST.NEWS will run the REST service specified and then look for expressions in the body like &propertyname& and replace them with the corresponding value from the web service JSON response. It will also check for expressions matching variables sent to the web service like CITY in this example.

So we can hit the same REST provider as our previous MSO and see the results laid out nicely, all without doing any actual programming:


There is an important distinction between MSOs and NEWS.ARTICLES in their scope.

At release 8.1 sp5 MSOs can be configured to be available in any PWS or web function throughout Manage 2000. 

The scope of news articles is a little different:

In terms of Manage 2000 functions, you only see them in NewsReader and the News panels of the 16 or so web functions in the ROIPortals directory. 

However, news articles are NOT limited to viewing in Manage 2000 functions. Manage 2000 news feeds can be viewed from any RSS client. This includes Outlook, Sharepoint, Lotus, the built-in IE newsreader, browser add-ons like Sage for FireFox and SlickRSS for Chrome, standalone readers like RSSOwl, and others.

There is also an interesting reciprocity between the two: MSOs can be used as the source for NEWS.ARTICLES, and since Newsreader is a Manage 2000 function an MSO can wrapper a display of articles in Newsreader.

In this sense the news article scope is actually wider than the MSO scope.  One could even use the auto-start feature of MSOs to fire off a Newsreader display based upon the user entering any particular PWS function or prompt.


Sunday, September 12, 2021

Manage 2000 REST Consumer API

My latest development adventure has been expanding on text messaging REST services to create a generalized API for Manage 2000 to act as a REST API consumer.

To this end 8.1 sp5 will have a new function named REST.SERVICES which allows naming and configuring access to  REST providers.




The REST.MSO subroutine provides MSO access to REST.SERVICES endpoints.


These services can then be used in MSO.BUILD to display information from REST API provider endpoints in any Manage 2000 function.




This MSO can now be called up in PWS from the CUSTOMERS function:




Or, alternatively, from the CustomerPortal web function:

Perhaps you have an internal system that can be configured to supply a REST provider.  Let's say an MES system which lets you publish real time work order activity. You could display that in the work order status portal by configuring a REST.SERVICES item to access the provider and then publish internally as an MSO or news article.


One can envision REST API providers and consumers becoming a critical architecture for accelerating information up and down the supply chain: 

"... APIs can make certain that carriers, shippers and 3PLs have access to the same real-time data through the entire lifecycle of a shipment, providing true visibility across the supply chain...One of the greatest benefits of using API technology in a 3PL business is that APIs are capable of transmitting data back and forth across the supply chain in milliseconds, making real-time supply chain management a reality."

Rempel, Eric | REDWOOD LOGISTICS. "Supply Chain Integration: How API-Led Connectivity Is Transforming the Logistics Industry" 3PL Magazine, 7 Jan 2019  


Whatever the source, REST.SERVICES, MSO.BUILD, and NEWS.ARTICLES allow you to build a loosely coupled integration of information from disparate sources into displays within Manage 2000.

Related topics coming soon: 

  • Custom formatter subroutines for rendering JSON responses
  • NEWS.ARTICLES templated support for REST providers
  • Tools subroutine REST.SERVICE for application specific development of REST provider service based features

                                                  

Monday, April 22, 2019

Embedding Power BI Reports in Manage 2000 News Feeds


Power BI provides shareable visualizations mashed up from multiple data sources.  The data might come from Excel or SQL or ODBC.  For instance Manage 2000 data might be synced through Novo Motion Outbound to SQL server. From there Power BI might refresh reports and dashboards.

Users can consume the report through the Power BI interface.  But it is also very easy to embed Power BI reports in Manage 2000 news articles for display in the Manage 2000 function NewsReader or other RSS feed readers.

From the Power BI Service browser interface:
Select a report
Select File
Select Embed



Copy the iframe content
Paste it into a STATIC article Summary (HTML) prompt

(Recent updates to Power BI have made this a little more round about;
 After copying the iframe snippet into the Summary (HTML) prompt -
   copy the link to the app.powerbi.com website from the Secure embed code dialog to the clipboard
   use the Edit button on the right to bring the Summary (HTML) text up in the editor
   select the string inside the quotes on the right side of the "src" attribute
   paste in the app.powerbi.com url string
   save the contents back to the Summary (HTML) prompt - 8/19/2019)

(Even more recent updates corrected this hiccup.)

Copy the link to the app.powerbi.com website
Paste it into the Drill Back Document prompt
(Clicking on the news article link will send the user to the drill back URL, in this case the report in the Power BI Service. If related detail such as the original Manage 2000 data is available from another URL use that instead.)

Attach the article to a news feed and view from the Newsreader function:


Selecting a row in the airport table refocuses the map to display that specific information. The interactive features of the report remain active when viewed in a Manage 2000 newsfeed.