3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan...

38
3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

Transcript of 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan...

Page 1: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

3rd Annual Plex/2E Worldwide Users Conference

6DConsuming Web Services using rWebAPI in PlexJuan Rios

Rollins Corp.

Page 2: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI Pattern

> Supports interfacing with the Web

> Provides the classes to call Web services (REST)

> Supports displaying web content in client functions

> Supports tracing and logging errors and information

Page 3: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI Pattern Structure

> Components Abstract

Data

Messages

Scripts

Services

UI

Page 4: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI.Data Structure

> Contains the entities that handle the information about the web services and pages:

> WebPage

> WebServer

> WebService

> WebService.Log

> WebService.ReturnedStatus

> WebService.Scope

> WebService.System

Page 5: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI.Samples Structure

> Contains the sample code for easier understanding of the pattern

Page 6: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI.Data Structure

> WebService is known by WebServiceId

> WebService Refers to WebPage for WebPageId

> WebService Refers to WebServer for WebServerId

Page 7: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI.Data.Webservice Structure

> WebService Refers to WebService.System

> WebService Refers to WebService.Scope

> WebService.Log Owned by WebService.System

> WebService.Log Refers to WebService

> WebService.Log Refers to WebService.Scope

> WebService.ReturnedStatus Owned by WebServerId

Page 8: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI.Abstract Structure

> This area is where all the abstract classes reside

> These classes contain the actual functionality for which the pattern is designed

Page 9: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

Web S

ervices ClassesW

eb C

onte

nt C

lass

es

ROLLINS FOUNDATION CLASSES

rWebAPI FOUNDATION CLASSES

rWebAPI IMPLEMENTABLE CLASSES

rWebAPI IMPLEMENTED CLASSES

rWebAPI SCRIPTS

rWebAPI.Abstract Class

Page 10: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI.Abstract Class Structure

Page 11: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI.Abstract Class Structure

Page 12: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

Web

Con

tent

Cla

sses

Web S

ervices Classes

rWebAPI.Abstract Class Structure

ROLLINS FOUNDATION CLASSES

rWebAPI FOUNDATION CLASSES

rWebAPI IMPLEMENTABLE CLASSES

rWebAPI IMPLEMENTED CLASSES

rWebAPI SCRIPTS

Page 13: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

ROLLINS Foundation Classes

> Rollins’ specialization of the Plex Classes RUIBasicShell RFrameChild RFunctionShell

> They do not belong to the rWebAPI pattern

Page 14: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI Foundation Classes

> Classes that provide the foundation for rWebAPI patterns for web services and web content display:

Browser

WebWrapper

Page 15: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

Browser Class

> Provide foundation for web content support

> Displays a Web Browser with basic functionaliy:

Load

Refresh

Stop

Close

Page 16: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

WebWrapper Class

> Provides foundation structure to call web services

> Defines the input parameters for web services

> Obtains Web service information

> Builds complete URL

Page 17: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI Implementable Classes

> WindowBrowser

> FrameBrowser

> FrameBrowser.FramWebPage

> WebPageFrame

> WebPageStandard

> WebPageCustom

> Classes that provide the necessary functionality to display web content and call web services. These are the classes that the developers will inherit from

> WebPageCustom.BrowserWindow

> WebService

> WinCWebService

> RPGWebService

> WebInvoke

Page 18: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

WindowBrowser Class

> Adds WebPageURL field as Input parameter to support calls from other functions

> Uses provided subroutine to load web content.

> Do not inherit from this object directly since there are other classes that provide more specialized behavior

Page 19: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

WebPageFrame Class

> Adds WebPageURL as an output parameter

> Returns WebPageURL after URL has been constructed

> Do not inherit from this object directly since there are other classes that provide more specialized behavior

Page 20: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

WebPageStandard Class

> Adds Call to Implemented Class DisplayWindowBrowser

> Inherit from this function when web page to display will not be combined with other controls (i.e. grids, fields, etc)

Page 21: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

RWebAPI.Samples.WebContent.WCStandard

Page 22: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

WebPageCustom Class

> Supports web content display along side other controls

> Inherit from this class when customization is needed in the panel where web content is displayed in a separate window

Page 23: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

RWebAPI.Samples.WebContent.WebCCustom.WCCustom

Page 24: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

.BrowserWindow Class

> Class scoped by WebPageCustom Class

> Display the web content in a customizable panel by the implementer

> Will be inherited implicitly when scoping class is inherited

Page 25: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

. RWebAPI.Samples.WebContent.WebCCustom.WCCustom.BrowserWindow

Page 26: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

FrameBrowser Class

> Supports web content displayed along side other controls within a frame panel

> This Class will call FrameWebPage to construct URL before loading web content

> Inherit from this class when customization is needed in the panel where web content is displayed in a separate window.

Page 27: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

.FrameWebPage Class

> Class scoped by FrameBrowser Class

> Adds WebPageURL as an output parameter

> Returns WebPageURL after URL has been constructed

Page 28: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

WebService Class

> Foundation class for Web Services wrapping

> Adds Dual Field WSRowsFetched in the Control input variable for determining how many records have been populated in the FetchedData variable

> Adds returning message and status as output as well as defines FetchedData

> Adds parsing of resulting data into the FetchedData variable

> Calls WebInvoke for actual calling of web service

> Do not inherit from this class since there are specialized subclasses bases upon implementation language

Page 29: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

WebInvoke Class

> Foundation class for Web Services invocation

> Calls source code/api to do actual call to the web service

> Returns raw resulting data back to calling class

> Do not inherit from this class since there are specialized subclasses bases upon implementation language

Page 30: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

WinCWebService RPGWebService

> Implementable class for Web Services wrapping

> Implementation language added

> Replaces Calls to WebInvoke for actual implementable subclasses for calling of web service

> Inherit from this class when implementing web services.

> To implement this class:

> Add fields to the Input variable for the input parameters for the web service

> Add the output fields to the FetchedData variable. These fields are the output of the web service. They should be in the same order as in the WS Signature

> Change occurrences for FetchedData variable if MOV

> Add line to determine WebServiceId to call in the AD

> Change Implement SYS triplet to YES

Page 31: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

RWebAPI.Samples.WebService.SOV.WinC.AddressVerificationWS

Page 32: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI Implemented Classes

> Objects that are implemented

> They perform the actual work of the rWebAPI pattern

Page 33: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

DisplayWindowBrowser

> This function display the web content in a dialog window

> This function is called by other functions when displaying web content is the only functionality needed in the panel

> This function is implemented; therefore, the only work the developer needs to do is to call it using the implementable classes provided in the pattern

Page 34: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

WinCWebServiceInvokeRPGWebServiceInvoke

> These functions invoke the webservice

> These functions are called by other functions when calling web services

> These functions are implemented; therefore, the only work the developer needs to do is to call them using the implementable classes provided in the pattern

Page 35: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

rWebAPI Scripts

> Low level objects that are used by the pattern to call web services

> Do not inherit from these objects

Page 36: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

Logging

Page 37: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

Error Handling

Web Service Interface(RWebAPI.Abstract.WebService)

HTTP CALL

Web Service Provider

5

4

3

FUNCTION CALL

Web Service Consumer(RWebAPI.Abstract.WebServiceConsumer)

1

2

Step Description Error Variable on (1)

Field on (1)

2 Function Call Failure to find Function

Environment <*Call Status>

Failure to find Web Service information

Environment

<*Returned Status>

Failure to Invoke Web Service

Environment

<*Returned Status>

3 Web Service Interface

Failure to insert Logging information

Environment

<*Returned Status>

WebServiceL WSHTTPReturnedStatus 4 HTTP Call HTTP Related Failures WebServiceL WSHTTPStatusType

WebServiceL WSReturnedStatus WebServiceL WSStatusType

5 Web Service Provider

Web Service Related Failures

WebServiceL WSReturnedMessage

Page 38: 3rd Annual Plex/2E Worldwide Users Conference 6D Consuming Web Services using rWebAPI in Plex Juan Rios Rollins Corp.

Demo and Q&A