exchange in real time the prodataset in openedge™ 10 john sadd progress fellow and openedge...

40
Exchange in Real Time Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

Upload: camilla-francis

Post on 01-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

Exc

hang

e in

Rea

l Tim

eE

xcha

nge

in R

eal T

ime

The ProDataSet inOpenEdge™ 10The ProDataSet inOpenEdge™ 10

John SaddProgress Fellow and OpenEdge Evangelist

Page 2: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation2Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Agenda

ProDataSet Overview Syntax Specifics and Demo ProDataSet Directions

Page 3: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation3Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

ProDataSet

The ProDataSet

Data-Relation1

CustomerTT

1 Lift Line Skiing2 Urpon Frisbee3 Hoops Croquet

OrderTT

6 1 01/05/9336 1 01/19/9379 1 02/10/93

Database

Customer

Lift Line SkiingUrpon FrisbeeHoops Croquet

Order

1 53 01/01/932 81 01/04/933 66 01/04/93

Event LogicDataset:Before-fillBuffer:Before-fillBefore-row-fillRow-AddRow-Delete…

Data-Source1Field Map

CustNumNameContact

Data-Source2Field Map

OrderNumCustNum

OrderDate

Query…Q1 forCustomer

Query…Q2 forOrder

Page 4: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation4Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

OpenEdgeBusiness Logic

PO ProDataSet

The Bigger Picture – Today and Tomorrow

Purchase Order Business Logic

HeaderData

DetailData

OtherData

PurchaseOrderProxy

.NET User Interface

Jonas Grumby

110 Desert Isle Path

Minnow, HI

OK

Cancel

C#

OpenEdge.NET Interface

ProDataSets become a driving force in OpenEdge Applications

4GL or

WebSpeed

Interface

WebClient / HTML

User InterfaceJonas Grumby

110 Desert Isle Path

Minnow, HI

OK

Cancel

OpenEdge4GL Interface

4GL

OpenEdgeWeb Services Interface

Page 5: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation5Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

ProDataSet to ADO.NET DataSet

ProDataSet is a Progress in-memory data store

ProDataSet maps directly to an ADO.NET DataSet:– Design a .NET interface in terms of .NET

DataSets

– Build business logic in Progress

Page 6: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation6Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Agenda

Distributed Data Management in Version 9 ProDataSet Overview Syntax Specifics and Demo Futures

Page 7: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation7Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

A ProDataSet is made of Temp-Tables

Define temp-tables in the usual way

DEFINE TEMP-TABLE ttOrder

/* fields from Order db table */

FIELD OrderTotal AS DECIMAL

FIELD CustName LIKE Customer.Name

FIELD RepName LIKE SalesRep.RepName.

DEFINE TEMP-TABLE ttOrderLine…

DEFINE TEMP-TABLE ttItem…

Page 8: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation8Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Define the DataSet

Define the DataSet in terms of the temp-tables it combines

DEFINE DATASET dsOrder FOR ttOrder, ttOline, ttItem

DATA-RELATION OrderLine FOR ttOrder, ttOline

RELATION-FIELDS (OrderNum, OrderNum)

DATA-RELATION LineItem FOR ttOline, ttItem

RELATION-FIELDS (ItemNum, ItemNum) REPOSITION.

Page 9: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation9Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Populating with Data-Relations

When a DataSet is populated, Progress retrieves children of the current parent

…DATA-RELATION OrderLine FOR ttOrder, ttOline

RELATION-FIELDS (OrderNum, OrderNum)…

ProDataSet

Data-Relation

OrderTT

6 1 01/05/9336 1 01/19/9379 1 02/10/93

OrderLineTT

6 1 000096 2 000096 3 00011

36 1 0000936 2 0000936 3 00011

Page 10: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation10Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Navigating with Data-Relations

When a DataSet is navigated, Progress filters on children of the current parent

…DATA-RELATION OrderLine FOR ttOrder, ttOline

RELATION-FIELDS (OrderNum, OrderNum)…

ProDataSet

Data-Relation

OrderTT

6 1 01/05/9336 1 01/19/9379 1 02/10/93

OrderLineTT

6 1 000096 2 000096 3 00011

36 1 0000936 2 0000936 3 00011

Page 11: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation11Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Defining Data-Sources

You can define a Data-Source for each temp-table buffer in the DataSet

Each Data-Source can define database buffers or a query or both

Data-Source is separate from any DataSet

Database

Order OrderLine

1 53 01/01/932 81 01/04/933 66 01/04/93

Data-Source

SrcOrder

Data-Source

SrcOline

Query…Q1 forOrder

Query…Q2 forOrderLine

1 53 01/01/932 81 01/04/933 66 01/04/93

ProDataSetOrderTT

OrderLineTT

Page 12: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation12Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Defining a Data-Source with a Query Define a query for a top-level table

– For example, which Order(s) to start with

– Or to define a join between buffers

DEFINE QUERY qOrder FOR Order, Customer, SalesRep.

DEFINE DATA-SOURCE srcOrder FOR QUERY qOrder Order KEYS (OrderNum), Customer KEYS (CustNum), SalesRep KEYS (SalesRep).

QUERY qOrder:QUERY-PREPARE("FOR EACH Order WHERE Order.OrderNum = " + STRING(iOrderNum) + ", FIRST Customer OF Order, FIRSTSalesRep OF Order").

Page 13: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation13Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Defining a Data-Source without a Query If there’s a Data-Relation, its fields can tell Progress

how to construct a query

DEFINE DATA-SOURCE srcOline FOR OrderLine

KEYS (OrderNum).

…DATA-RELATION OrderLine FOR ttOrder, ttOline

RELATION-FIELDS (OrderNum, OrderNum)…

ProDataSet

OrderLineTTData-Relation

OrderTT

6 1 01/05/9336 1 01/19/9379 1 02/10/93

6 1 000096 2 000096 3 00011

Page 14: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation14Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Attaching Data-Sources

Data-Sources are defined separately from the DataSet– You can attach a particular Data-Source

without changing the DataSet definition

– Data-Sources do not travel with the DataSet

DatabaseOrder

Data-Source

SrcOrderQuery…

Q1 forOrder

1 53 01/01/932 81 01/04/933 66 01/04/93

ProDataSetOrderTT

6 1 01/05/9336 1 01/19/9379 1 02/10/93

Page 15: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation15Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

ATTACH-DATA-SOURCE Method Relates a Data-Source to a DataSet buffer Optional arguments:

– Field mapping for fields with different names– Except-list to skip unwanted fields, or– Include-list to include only certain fields

BUFFER ttOrder:ATTACH-DATA-SOURCE

(DATA-SOURCE srcOrder:HANDLE,

"Customer.Name,CustName").

BUFFER ttOline:ATTACH-DATA-SOURCE

(DATA-SOURCE srcOline:HANDLE).

BUFFER ttItem:ATTACH-DATA-SOURCE

(DATA-SOURCE srcItem:HANDLE).

Page 16: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation16Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Populating a ProDataSet

Use the FILL method to populate the DataSet FILL on the DataSet fills every table starting

with top-level buffers FILL on a buffer fills that table and its

descendents FILL-MODE

– NO-FILL – skip this table– EMPTY – empty the table first– APPEND – add more records to the table– MERGE – add recs & eliminate dups– REPLACE – replace existing recs

Page 17: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation17Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Event Callback Procedures

You can define event procedures for:– Before and After FILL of the ProDataSet– Before and After FILL of any temp-table

buffer– Before and After FILL of any record

Use ProDataSet events to prepare queries, attach Data-Sources, etc.

Use Buffer events to manipulate the table Use Record events to populate calculated

fields You can use these events when

there is no Data-Source at all

Page 18: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation18Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Record-level Event Procedure

Fills a calculated OrderTotal fieldhBuff:SET-CALLBACK-PROCEDURE

("AFTER-ROW-FILL","postRecordFill",THIS-PROCEDURE).

PROCEDURE postRecordFill:

DEFINE INPUT PARAMETER DATASET FOR dsOrder.

hBuff = hDset:GET-BUFFER-HANDLE(“ttOrder”). FOR EACH OrderLine WHERE OrderLine.OrderNum = INTEGER(hBuff:BUFFER-FIELD("OrderNum"):BUFFER-VALUE): dTotal = dTotal + OrderLine.ExtendedPrice.

END. hBuff:BUFFER-FIELD("OrderTotal"):BUFFER-VALUE = dTotal. END PROCEDURE.

Page 19: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation19Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

ProDataSet demo…

Page 20: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation20Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Passing a ProDataSet as a Parameter

You can pass a DataSet parameter as:– DATASET – static reference like TABLE for

temp-tables

– DATASET-HANDLE – dynamic reference to the DataSet and its definition, like TABLE-HANDLE for a temp-table

– HANDLE – passes a simple DataSet handle to a local procedure

Note!– Within a single session DataSet parameters

can be passed BY-REFERENCE

Page 21: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation21Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Local DataSet ParameterRUN OrderDset.p ON hSession

(INPUT iOrderNum,

OUTPUT DATASET dsOrder

BY-REFERENCE).

/* OrderDset.p -- Test proc for Order Dataset */

{dsOrderTT.i}

{dsOrder.i}

DEFINE INPUT PARAMETER iOrderNum AS INTEGER.

DEFINE OUTPUT PARAMETER DATASET FOR dsOrder.

ProDataSetOrderTT

6 1 01/05/9336 1 01/19/9379 1 02/10/93

Page 22: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation22Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Remote DataSet Parameter

RUN OrderDset.p ON hSession(INPUT iOrderNum, OUTPUT DATASET dsOrder

BY-REFERENCE).

/* OrderDset.p */

DEFINE OUTPUT PARAMETER

DATASET FOR dsOrder.

ProDataSetOrderTT

6 1 01/05/9336 1 01/19/9379 1 02/10/93

ProDataSetOrderTT

6 1 01/05/9336 1 01/19/9379 1 02/10/93

Page 23: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation23Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Dynamic ProDataSets

Every element of a ProDataSet can be dynamic– CREATE DATASET

– ADD-BUFFER()

– ADD-RELATION() A Data-Source can also be dynamic:

– CREATE DATA-SOURCE And a DataSet can use dynamic temp-tables

– CREATE TEMP-TABLE Attributes and methods manipulate the

DataSet through its handle

Page 24: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation24Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Updating Through the ProDataSet

ProDataSet tables have a companion before-image temp-table to record updates (add/change/delete)– Used to pass changes to the server to be

made in the Data-Source

– Maps to .NET support for update versions

Page 25: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation25Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Before-Image Table for a DataSet

Original values for every modified record

ProDataSet

Data-Relation

OrderTT

6 1 01/05/9336 1 01/19/9379 1 02/10/93

OrderLineTT

6 1 000096 2 000106 3 00011 6 4 00077

0 0 00000 A 6 2 00009 M 6 5 00022 D

Initial values for every added record Original values for every deleted record

Page 26: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation26Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Saving Changes To The Database

Use ATTACH-DATA-SOURCE to reattach the DataSet to the database tables for it

SAVE-ROW-CHANGES method for saving a row to the database– Uses the before-table for optimistic locking

– Allows full control in the event of a conflict ERROR, ERROR-STRING, REJECTED,

DATA-SOURCE-MODIFIED attributes

Page 27: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation27Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

ProDataSet update demo…

Page 28: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation28Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Agenda

Distributed Data Management in Version 9 ProDataSet Overview Syntax Specifics and Demo ProDataSet Directions

Page 29: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation29Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Enhancements in OpenEdge 10.0B and 10.0B01

COPY-DATASET method enhancements– Also COPY-TEMP-TABLE – Behavior changed to allow copies between

non-identical tables and DataSets GET-CHANGES and MERGE-CHANGES

– include parents of modified rows FILL-MODE “REPLACE”

– Refreshes rows already in the tables– Slower than MERGE because it requires

FINDing each row as it is added to the temp-table

Page 30: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation30Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Enhancements in OpenEdge 10.0B and 10.0B01 -- continued

Additional events to support data retrieval transparency– OFF-END for a ProDataSet query

– FIND-FAILED for a FIND on a buffer Extended support for data batching

– BATCH-SIZE attribute for a buffer

– LAST-BATCH attribute signals end of data

– NEXT-ROWID for repositioning a query See white paper for examples:

– psdn.progress.com/library/product_info/oera/index.ssp

Page 31: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation31Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Page 32: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation32Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Data batching demo…

Page 33: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation33Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

ProDataSet Features in OE10.1

Direct to-or-from XML conversion– This supports ProDataSets as parameters

to Web services Mapping from ProDataSets to Java SDOs REFERENCE-ONLY to use called

procedure’s ProDataSet instance– Also parameter passing BY-REFERENCE

for temp-tables

Page 34: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation34Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

New dynamic syntax in 10.1

Combines a dynamic ProDataSet reference with static names– hDataSet:ttOrderLine.Price

Simplifies logic to pass dynamic reference for flexibility

Page 35: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation35Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

In Conclusion…

The ProDataSet is a key part of the future of 4GL applications

It is part of a focus on building complex data definitions and business logic in the 4GL

The ProDataSet is a standards-conformant object that will integrate with .NET and Web services as part of a global Service-Oriented Architecture

Page 36: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation36Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Additional Resources

Expert Series book: Using ProDataSets– Now available through amazon.com

PSDN white paper on Using Advanced ProDataSet Language Features– Part of a series on implementing the OERA

Instructor-led course: Using ProDataSets

OpenEdge online documentation

Page 37: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation37Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Page 38: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation38Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Questions?

Page 39: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation39Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10

Thank you for your time!

Page 40: Exchange in Real Time The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist

© 2005 Progress Software Corporation40Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plif

y yo

ur b

usin

ess

Sim

plify

you

r B

usi

nes

sS

impl

ify y

our

Bu

sin

ess

The ProDataSet in OpenEdge 10