26
BP0180: Creating “Plug-n-Play” Applications with Open API’s StepUp AccountingHansdip Singh Bindra Phone: +1 (973) 361-4224 Fax: +1 (973) 537-6946 e-mail: [email protected] Web: www.innov8cs.com © 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…01

Creating Plug-n-Play Applications with Open APIs

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

BP0180: Creating “Plug-n-Play” Applications

with Open API’s

StepUp Accounting™

Hansdip Singh BindraPhone: +1 (973) 361-4224 Fax: +1 (973) 537-6946e-mail: [email protected]

Web: www.innov8cs.com

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 01

About Us:

• StepUp Accounting™• You do not have to Reinvent the Accounting Wheel• The ONLY “Web-Services Ready” Progress based G/L, A/R, A/P• Made just for ISV's and Consultants

• ProcessWare FrameWork™

• Consulting…• Progress 4GL / Database / GUI• WebSpeed• DWP and WebClient• Web-Services / Sonic / .Net / EAI• Experienced / High-Quality Off-Shore Services

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 02

Background:

• “Total Solution” from Progress ISV’s and Consultants

• Integrating “Best of Breed” Applications

• Progress Software – Quadrant II initiative

• “Universal Appeal” such as .Net

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 03

Overview:

• Plug-n-Play…

• Open API…

• Power of the 4GL…

• Real World Examples…

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 04

What is “Plug-n-Play”?

An Application with…

• Input and Output (I/O) Points

• Moreover, extremely well “Documented” I/O Points

• “Centralized Manager” for all I/O Points

• “Business Process Level” I/O Points – ATOMIC(NOT Business Logic Level)

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 05

Application Integration Techniques:

Traditional…• Extensive Programming Changes to BOTH Applications

• MIDDLEMAN approach – Intermediary Tables / Files

Plug-n-Play…• “Plug” and “Socket” Applications

• Add Minimal Programming Layer on “Plug” Application

• NO Middleman or Match-Maker!

• Well “Documented” I/O for “Socket” Application

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 06

The “Plug-n-Play” Advantage:• Simplify Enterprise Application Integration Process

• Minimal costs to Integrate Applications

• Lower Threshold for Integrating Applications

• More “Total Solutions” based on “Best of Breed”

• Keep up with LATEST Integration platforms like…• “Web-Services” Service Oriented Architecture

• Enterprise Service Bus

• .Net / J2EE

• “Ready” for Messaging Systems like Sonic XQ/MQ

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 07

The Open API Approach:

• Transform existing 4GL Business Logic into Processes

• TOTAL UI Independence

• “Encapsulated” Process Inter-Dependency

• Layered Approach to “Openness” – Inside Out

• PRIMARY Focus on “Back-End” Integration

• “Centralized Controller” to Manage ALL Processes

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 08

Design…Design…Design…:“…The MOST important part in Creating a Plug-n-Play

Application is the Design Documentation of the Open API Business Processes…”

• Typically 2/3rd of Total Project Cycle• StepUp Accounting: 6.5 Months on Design Documentation• StepUp Accounting: 3 Months on Programming

• Levels of Design Documentation…• Specification• Design• Design Detail• Open API Detail

• Application “Blue Print”• Language Independence

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 09

Documentation:Specification

• Justify Business “need” for Functionality

Design

• General Overview of Functionality• Non-Technical – Business Process Flow

Design Detail

• Detailed Discussion of Functionality• Describe “How Application will Solve the Functionality”• Technical • Data Descriptions and Business Process Layouts

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 10

Open API Documentation…I:

Overview…• “CORE” of the Plug-n-Play approach• Describes the Layered API• Need Document for each Layer

• 4GL• Web-Services Wrapper, etc.

Guidelines…• Q & A Format• Describe the I/O for EACH Business Process• Examples for EACH Business Process I/O• Target Audience – “Layer” Architect/Programmer

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 11

Open API Documentation…II:Example…Overview

TABLE OF CONTENTSGENERAL LEDGER MODULE………………………………………………………….. 6

GENERAL JOURNAL ENTRY CREATION…………………………………………. 6

Step 1: LOADING GENERAL JOURNAL HEADER DETAILS………………… 61. Which Procedure to Call? ............................................................... 62. Parameter Definitions, Formats and their Description……….… 63. Syntax for Calling this Procedure…………………………………. 6

Step 2: LOADING GENERAL JOURNAL ITEM DETAILS…………………….. 71. Which Procedure to Call? ………………………………………… 72. Parameter Definitions, Formats and their Description…………. 73. Syntax for Calling this Procedure………………………………… 7

Step 3: FINAL CREATION OF GENERAL JOURNAL ENTRY………………… 81. Which Procedure to Call? ………………………………………… 82. Parameter Definitions, Formats and their Description………….. 83. Syntax for Calling this Procedure…………………………………. 8

Step 4: SAMPLE GENERAL JOURNAL API PROGRAM……………………….. 9

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 12

Open API Documentation…III:Example…Details

Step 3: FINAL CREATION OF GENERAL JOURNAL ENTRY1. Which Procedure to Call?superAPIGeneralJournalCreateProc (Parameters…)

PARAMETERS:There are 4 I/O parameters associated with this procedure that Creates a General Journal Entry in StepUp Accounting.

2. Parameter Definitions, Formats and Descriptions: Parameter Type Data Type Format Description 1 INPUT Character X(10) (M) System generated Journal Task ID, returned

Procedure SuperAPITempGLBatchCreateProc. If the generated value is not passed correctly, then the system does not allow creation of Journal into StepUp Accounting.

2 OUTPUT Logical YES/NO Returns YES if General Journal was created successfully into StepUp Accounting.

3 OUTPUT ROWID Returns ROWID of Journal Header Record (GLBatch Table)

4 OUTPUT Character X(10) Returns Actual StepUp Accounting General Journal Number.

NOTE: (M) - Indicates as MANDATORY.

/* SUPER - Main Procedure that Creates Actual General Journal Entry */RUN superAPIGeneralJournalCreateProc(INPUT inJournalTaskID,

OUTPUT outGLBatchStatus,OUTPUT outGLBatchRowID,OUTPUT outGeneralJournalNo).

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 13

Open API Documentation…IV:Goals and Recap…

1. What are different types of APIs available in the Application?2. What are the Names of available API’s?

3. What are the I/O Parameters and Parameter Types?4. What is the Description and Format of those Parameters?

5. How to call these API’s (Syntax)?6. Is there any Sample Program available?

7. Is there any sequence to be followed while calling the API’s?8. Can a given task be accomplished by calling single API or a

group of APIs?

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 14

Power of the 4GL…I:Open API Environment…

• Business Process Internal Procedure

• Input / Output Parameters ONLY(NO Sharing of Variables or Buffers)

• Mix of Temp-Tables and DB Tables

• “Self Contained” but “Universally Accessible”

• Usually resides on AppServer

• SUPER PROCEDURES ! ! !© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 15

Power of the 4GL…II:Open API Management…• Centralized Manager per Business Function (Module)

(Example: ARModuleAPIManagerSuper.p)

• Single Activation / Loading Mechanism SUPERs

• “Inner-Core” programmed in “UI-Less” 4GL(Use “Flags” to Handle Error/Status Messaging)

• “Layer Interfaces” provided by WSTK, etc.

• BUSINESS PROCESS MANAGER (BPM)

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 16

“Black-Box” Approach:• “Inside-Out” Architecture

• Normally Thin-UI / AppServer

• Flexible for Client-Server and Host-Centric(Leverage 80% of existing Applications)

• “Interaction” through Procedure Signatures ONLY

• SUPER PROCEDURES are means to that end…• Maintain “Single Set” of Programs• Deploy in both “Front-End” and “Back-End” Integration• Easy “Customization” through Procedure Overloading

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 17

Total Parameterization…I:• Groups of Internal Procedures

• SUPER (Both for Integration and Local Application)• PRIVATE (Internal Application Only)

PROCEDURE superAPIAPBatchBillItemCreateProc:/* Define I/O Parameters */. . ./* Validates complete contents of A/P Batch details, Bill details & its Item details. */IF outAPICreationStatus THEN

RUN privateValidateAPAPIBatchProc(INPUT inAPBatchTaskID,OUTPUT outAPICreationStatus).

/* Calls the Main procedure which Creates A/P Batch, Bill & Bill Items details */IF outAPICreationStatus THEN

RUN privateAPBatchBillItemCreateUpdateDeleteProc(INPUT “New”:U,INPUT inAPBatchTaskID,INPUT “”,INPUT “New”:U,INPUT 0,OUTPUT outAPICreationStatus,OUTPUT outAPBatchBillRowID,OUTPUT outAPBatchBillNo).

/* Clears Temp Table Contents */RUN superAPITempAPBatchBillItemEmptyProc.

END PROCEDURE.

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 18

Total Parameterization…II:• Groups of .p’s by Application Function

• A/P Module API Manager• A/P Module Posting Manager, etc…

• Central Activation by BPM

/** Super Procedure HANDLE’s **/DEF VAR handleAPAPISuper AS HANDLE NO-UNDO.DEF VAR handleAPPostSuper AS HANDLE NO-UNDO.

/** Run Persistent Procedures and SESSION:SUPER-PROCEDURES **/

/* A/P Module API and Posting Managers */RUN SuperProcedures\APModuleAPIManagerSuper.p PERSISTENT SET handleAPAPISuper.RUN SuperProcedures\APPostManagerSuper.p PERSISTENT SET handleAPPostSuper.

ASSIGN handleAPAPISuper:PRIVATE-DATA = “APModuleAPIManagerSuper.p”:UhandleAPPostSuper:PRIVATE-DATA = “APPostManagerSuper.p”:U.

/* Add Session SUPER’s */SESSION:ADD-SUPER-PROCEDURE(handleAPAPISuper).SESSION:ADD-SUPER-PROCEDURE(handleAPAPISuper).

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 19

Total Parameterization…III:• Wrappers for each Level of External Exposure

• XML• Sonic XQ• Web-Services (Tool Kit)• .Net / J2EE, etc…

WSTK or Sonic XQProxyGen

4GL BPM.P Procedure

4GL Super

4GL Private

4GL Super

.P Procedure

4GL Super

4GL Private

4GL Super

Java

ActiveX

WSM

ESB

J2EE

.Net

WebServices

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 20

Open API – Integration:

WSTK

ProxyGen

#14GL BPM“Socket”

ESB

J2EE.NetWebServices

#24GL BPM

“Plug”

“Front-End UI”

“Plugs”

#24GL UI“Plug”

#14GL UI“Plug”

WebServices

UI

Java Other

UI.Net

UI

AppServer Boundary

“Back-End Application”

WebClientGUIChUI

WebSpeed

WebClientGUIChUI

WebSpeed

Sonic XQ

“Plugs”

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 21

Real World Examples…I:Dynamic WebClient Platform…

• Complete UI Separation• Repository based BPM (bl.p)• “Code-Hooks” Business Processes WSTK .Net

RepositoryRepository

ui.p

ApplicationApplicationdatadata

bl.p

WebClient AppServer

ApplicationApplicationdatadata

uihooks.p blhooks.p

InternetInternetoror

IntranetIntranet

InternetInternetoror

IntranetIntranet

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 22

Real World Examples…II:4GL Plug-n-Play…

BB: “4GL Plug” StepUp: “4GL Socket”

• “Back-End” Integration• Link BB StepUp BPM SUPER Procedures• Rental Contracts A/R Items• Daily Business Activity G/L Journal Entries

• “Front-End” Integration• Drill-Down from StepUp Accounts to BB Contracts• Link StepUp Menu/Security BB Structure

StepUpAccounting™

Front-End

Back-End

PersonWeek

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 23

Open API 4GL Sample…Real World Examples…III:

/* Upload Journal Header Details */RUN superAPITempGLBatchCreateProc(INPUT "Journal Import", /* User defined Batch Number */

INPUT 2004, /* Posting Year */INPUT 02, /* Posting Period */INPUT "USD", /* Journal Currency */INPUT TODAY, /* Journal Entry Date */INPUT 1000, /* Journal Amount */OUTPUT GLBatchStatus, /* Returns Journal Header Creation Status */OUTPUT JournalTaskID). /* Returns System Generated Journal Number */

/* Upload Journal Line Item - 1 */RUN superAPITempGLBatchItemCreateProc(INPUT JournalTaskID, /* System Generated Journal Task ID */

INPUT "102212", /* Journal Line Item G/L Account Number */INPUT -1000, /* Debit or Credit Journal Line Item Amount */INPUT 1, /* Journal Line Item Exchange Rate */INPUT "February Salary", /* Journal Line Item Description */INPUT "MANAGER", /* Journal Line Reference Number */INPUT "EMM001", /* Journal Line Item Reference Number */INPUT TODAY, /* Journal Line Reference Date */INPUT "L 1", /* User Defined Reference 1 */INPUT "S 1", /* User Defined Reference 2 */INPUT "", /* User Defined Reference 3 */OUTPUT ItemStatus). /* Returns Journal Item Creation Status */

/* Upload Journal Line Item(s) – 2, 3. . . */

/* Main Procedure that Creates Actual General Journal Entry */RUN superAPIGeneralJournalCreateProc(INPUT JournalTaskID, /* System Generated Journal Task ID */

OUTPUT GLBatchStatus,OUTPUT GLBatchRowID,OUTPUT GeneralJournalNo).

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 24

Real World Examples…IV:

StepUpAccounting™

** CODE DEMO **• BB: “Plug” – pwgljournal.p

• StepUp: “Socket” – GLModuleAPIManagerSuper.p

© 2002-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 25

Questions?Additional Information and Downloads…

http://www.innov8cs.comhttp://psdn.progress.com/library/wstk.htm

http://www.microsoft.com/net/http://www.dynamicwebclient.com

StepUp Accounting™…You do not have to Reinvent the Accounting Wheel

…The ONLY “Web-Services Ready” Progress based G/L, A/R, A/P …Made just for ISV's and Consultants

© 2002-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 26