33
A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

Embed Size (px)

Citation preview

Page 1: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

A14: What’s New with ProDataSets in 10.1C?

Noel ShannonSenior Solution Consultant

Page 2: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation2

Non-Progress

DataSource

Progress® DataSets

Business “Objects”

In-memory cache of relational data

Before and after data

Data source separate from DataSet

Transfers to/from XML easily

Progress DataSet

HeaderData

DetailData

Progress DataSource

02/10/1993793

01/19/1993362

01/05/199361

Table

Page 3: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation3

ProDataSet™

ProDataSets in the OpenEdge® Reference Architecture

PresentationPresentation

Business ComponentsBusiness Components

Data AccessData Access

Data SourcesData Sources

Co

mm

on

Infrastru

cture

Co

mm

on

Infrastru

cture

Enterprise ServicesEnterprise Services

Temp-Tables 

 

 

 

 

 

 

Temp-Tables 

 

 

 

 

 

 

FILL ( ) READ-XML( )

Page 4: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation4

Agenda

ProDataSet ABL Enhancements ProDataSets in OpenEdge Web Services Web Services Client Demo Futures for ProDataSets

Page 5: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation5

Recursive Data-Relations

Self-Referencing Relation• Org Chart

– Employee-Manager• Bill of Materials

– Part-Part Structure

Efficiency and Simplicity

MAXIMUM-LEVEL

RECURSIVE

NUM-ITERATIONS

CURRENT-ITERATION

GET-ITERATION ( ) Standardize on FILL ( )

Page 6: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation6

Recursive Data-Relation – Org Chart

EvanWayne

EvanMichael

EvanRobin

MarthaEvan

MarthaLaura

PeterMary

PeterShelley

PeterMartha

GordonPeter

ttEmployee

Gordon

managerempName

Gordon

Peter

Martha

Laura Evan

Robin Wayne

MaryShelley

Michael

DATA-RELATION rel1 FOR ttEmployee, ttEmployee RELATION-FIELDS (empName, manager) RECURSIVE.

Page 7: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation7

2

Bike

Bolt Clamp Seat

Nut Bolt Clamp

Nut Bolt

Saddle

Recursive Data-Relation – Bill of Materials

3

4

1

...…

ClampSeat

BoltClamp

NutClamp

SeatBike

ttPS

ClampBike

BoltBike

compNumassyNum

Seat

Bolt

Clamp

ttPart

Bike

Nut

partNum

DATA-RELATION rel1 FOR ttPart, ttPS RELATION-FIELDS(partNum, assyNum)DATA-RELATION rel2 FOR ttPS, ttPart RELATION-FIELDS(compNum, partNum) RECURSIVE.

5

6

Page 8: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation8

MARK-ROW-STATE and MARK-NEW

Create Before-Table Records• Data From 3rd Party

– .NET™, XML MARK-ROW-STATE

• ROW-CREATED • ROW-MODIFIED • ROW-DELETED

MARK-NEW• Creates ROW-CREATED

records for table

Client:

Tracking-Changes

Get-Changes()

AppServer™:

Save-Row-Changes()

DB

PdsChanges

Standardize on SAVE-ROW-CHANGES ( )

Page 9: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation9

DEFINE TEMP-TABLE ttCust BEFORE-TABLE custBef FIELD CustNum AS INTEGER FIELD Name AS CHARACTER FIELD Balance as DECIMAL.

DEFINE TEMP-TABLE ttOrder BEFORE-TABLE ordBef FIELD OrderNum AS INTEGER FIELD CustNum AS INTEGER FIELD OrderDate AS DATE.

DEFINE DATASET dsCustOrd FOR ttCust, ttOrder DATA-RELATION CustOrdRel FOR ttCust, ttOrder RELATION-FIELDS (CustNum, CustNum).

DATASET dsCustOrd:READ-XML("FILE","dsCustOrd.xml",?,?,?).

/* mark all rows in datset as ROW-CREATED */TEMP-TABLE ttCust:DEFAULT-BUFFER-HANDLE:MARK-NEW().TEMP-TABLE ttOrder:DEFAULT-BUFFER-HANDLE:MARK-NEW().

READ-XML( ) and MARK-NEW( )

Page 10: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation10

Miscellaneous

ProDataSetTemp-Table/Buffer

BREAK-BY

FIRST-OF

LAST-OF

Query

COPY-DATASET prefixNOT-ACTIVE

RESTART-ROWTOP-NAV-QUERY

COPY-TEMP-TABLE prefixDATA-SOURCE-ROWID

DEFAULT-VALUELIKE-SEQUENTIAL

Page 11: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation11

Agenda

ProDataSet ABL Enhancements ProDataSets in OpenEdge Web Services Web Services Client Demo Futures for ProDataSets

Page 12: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation12

Completes the story• ProDataSets available to ALL AppServer client

types

Single set of back-end business logic

ProDataSets in OpenEdge Web Services

OpenEdge Clients

ABL, WebClient™, WebSpeed®

Web ServicesClients

.NET, Java, ABL, Sonic

OpenEdgeApplication

Server

Open Clients

.NET, Java™, Sonic™

Page 13: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation13

Compile your AppServer code Generate a Web Services definition (.wsm)

with ProxyGen Deploy the .wsm file

ProDataSets in the Web Services Provider

How do you incorporate ProDataSets in OpenEdge Web Services?

That’s IT!!!

Page 14: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation14

OpenEdge Web Services Provider

HT

TP

L

iste

ner

Web

Ser

vice

s A

dap

ter

Web Server

AppServers

WSDLFiles

Request

Web Service Client Response

Runtime Architecture

ABLJava.NETSonic

WSMs

SOAP over HTTP

Page 15: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation15

DEFINE TEMP-TABLE ttCust NO-UNDO FIELD CustNum AS INTEGER FIELD Name AS CHARACTER FIELD Balance as DECIMAL ...

DEFINE TEMP-TABLE ttOrder NO-UNDO FIELD OrderNum AS INTEGER FIELD CustNum AS INTEGER FIELD OrderDate AS DATE ...

DEFINE DATASET dsCustOrd FOR ttCust, ttOrder DATA-RELATION CustOrdRel FOR ttCust, ttOrder RELATION-FIELDS (CustNum, CustNum).

Sample Web Service

dsCustOrd.i

Page 16: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation16

{dsCustOrd.i}

DEFINE INPUT PARAMETER iCustNum AS INTEGER.DEFINE OUTPUT PARAMETER DATASET FOR dsCustOrd.

/* fill dataset and return to caller */

Sample Web Service

getCustOrders.p

Page 17: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation17

public string getCustOrders(int iCustNum, out dsCustOrd dsCustOrd){ object[] results = this.Invoke("getCustOrders",

iCustNum); dsCustOrd = ((dsCustOrd)(results[1]));

return ((string)(results[0]));}

.NET Client Proxy Snippet (C#)

Proxy Method Call – auto generated by toolkit

Page 18: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation18

public partial class dsCustOrd { private dsCustOrdTtCust[] ttCustField; private dsCustOrdTtOrder[] ttOrderField; ... }

.NET Client Proxy Snippet – cont’d

dsCustOrd Definition – auto generated

Page 19: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation19

public partial class dsCustOrdTtCust { private int custNumField; private string nameField; private decimal balanceField; ...}

public partial class dsCustOrdTtOrder { private int orderNumField; private int custNumField; private DateTime orderDateField; ...}

.NET Client Proxy Snippet (C#) – cont’d

dsCustOrd Member Definitions

Page 20: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation20

GetCustOrders.dsCustOrd dsCustOrd;String cResult;

GetCustOrders.getCustOrdersService mySvc = new GetCustOrders.getCustOrdersService();

try{ cResult = mySvc.getCustOrders(5, out dsCustOrd);

...}

.NET Client Code (C#)

Web Service Method Call

Page 21: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation21

dsCustOrdTtCust[] ttCust = dsCustOrd.ttCust;

dsCustOrdTtOrder[] ttOrder = dsCustOrd.ttOrder;

for (cntr = 0; cntr < ttCust.Length; ++cntr){ // process ttCust fields}

for (cntr = 0; cntr < ttOrder.Length; ++cntr){ // process ttOrder fields}

.NET Client Code – cont’d

Access the Data

Page 22: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation22

{dsCustOrd.i}

DEFINE VARIABLE hWebService AS HANDLE.DEFINE VARIABLE hgetCustOrdersObj AS HANDLE.DEFINE VARIABLE cResult AS CHARACTER.

FUNCTION getCustOrders RETURNS CHARACTER (INPUT iCustNum AS INTEGER, OUTPUT DATASET dsCustOrd)

IN hgetCustOrdersObj.

CREATE SERVER hWebService.

hWebService:CONNECT("-WSDL... ").

RUN getCustOrdersObj SET hgetCustOrdersObj ON hWebService.

cResult = getCustOrders (5, dsCustOrd).

ABL Client Code

ABLClient.p

Page 23: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation23

Demo

.NET Web Services Client

Visual Studio App C# Language

Page 24: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation24

WSDL Information• NAMESPACE-URI for DataSet

• NESTED Data-Relation

• XML-NODE-TYPE for Temp-Table Fields

Runtime Serialization• Before-Image data in SOAP Message

– Works with ABL client seamlessly

Additional ProDataSet Support for Web Services

Page 25: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation25

D I S C L A I M E R

Under Development

This talk includes information about potential future products and/or product enhancements.

What I am going to say reflects our current thinking, but the information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here.

D I S C L A I M E R

Page 26: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation26

ProDataSet Futures – WRITE-XML( )

Omit Fields with INITIAL Values

Hide Nested Foreign Key Fields

Reduce size of XML Documents

.xsd

DataSet

ttOrder

ttOline

.xml

Page 27: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation27

Advanced GUI

.NET UI working with Progress data• Progress.Data.BindingSource

• Bind .NET control to a ProDataSet

Brings data-centric binding to .NET• Automatic data synchronization

• Automatic currency

• Automatic batching

• Automatic updating

Page 28: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation28

In Summary

ProDataSet essential business object

Adding features based on YOUR feedback

Single set of back-end logic

Page 29: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation29

For More Information, go to…

Progress eLearning Community: http://wbt.progress.com

• Using ProDataSets

10.1C Documentation: http://www.psdn.com/library/kbcategory.jspa?categoryID=1916

• New and Revised Features

• ProDataSets

• ABL Reference

• Web Services

Page 30: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation30

Relevant PTW Sessions

A7: Architecting Your Application in OpenEdge 10

A18: A Deep Dive into Developing with the OpenEdge GUI for .NET

Page 31: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation31

Questions?

Page 32: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation32

Thank You

Page 33: A14: What’s New with ProDataSets in 10.1C? Noel Shannon Senior Solution Consultant

© 2008 Progress Software Corporation33