louis maresca software development engineer microsoft corporation gp15

Post on 31-Mar-2015

217 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Understanding Web Services for Microsoft Dynamics GP

Louis MarescaSoftware Development EngineerMicrosoft Corporation

GP15

What is This Session All About?“Explore the basics of Web Services for

Microsoft Dynamics GP as we review when and how to leverage this technology. “

“We'll demonstrate how to fully utilize Web Services and you'll walk away with insight and knowledge into how this technology translates into greater opportunities for your organization. “

Have You Used It?

How many of you are coders? (implementers?)How many are you are PM’s?Who has used Web Services (in general)?Who has used GP Web Services before?

GP15: Agenda

What is GP Web Services?How to use Web Services?

Some Code… ahhh!ExamplesBest Practices

Terminology

WSDL: Web Service Description LanguageSOAP: Simple Object Access ProtocolProxy: Service Proxy ObjectASMX: Web Service PageDecoupledLoosely Typed – Strongly Typed

Dynamics GP Services Growth2005-2006

2007-2008

2009

Created – 200 Operations

100 Additional Operations

GP 11…Even more!

SOURCE: FORRESTER

What is GP Web Services?

Do you understand the GP Data Model?

Tables|Fields|Relations?WS is a way to talk to GP with out having to understand the BackEnd.Lets Hide\Encapsulate all the complex stuff and talk to something descriptive

(human readable!!)

GP Web Services

Workflow

Business Portal

BDC / Search

GP Web Services-Installs to IIS server, and to SQL server. -Consoles can be installed on any machine that can talk to IIS.-Dependency is on

- eConnect: It needs access to API through COM+, and stored procedures.

- IIS- ADAM/Azman for security

Workflow-Installs to MOSS/IIS Server -Dependency on GP Web Services and Windows Workflow

GP BDC – Search (Office 12)

-Installs to MOSS/IIS Server and to SQL server-Dependency is on

- GP Web Services

Business Portal-Installs to IIS and SQL server-Dependency is on

- GP Web Services- eConnect- MBF- MOSS- WSS

CRM Integration-Dependency is on: GP Web Services

PortalsCRM

Integration

Dynamics Mobility Server

It's an Onion! LAYERS!

Web Service Layer

SecurityBusiness Logic Layer

Data Access Layer

Web Service Layer

What can the service do?Contract

300+ OperationsStandard Naming Convention

Get’BusinessObject’ByListGet’BusinessObject’ByKeyCreate’BusinessObject’Delete’BusinessObject’Void’BusinessObject’

Strongly typedDescriptive ‘things’ that are returned (objects) rather than TEXT (xml)

Returns

Customer

Inheritance Diagram

BusinessObject

Employee Customer Item Project

GLTransaction

SalesTransaction PurchaseOrder

Inheritance Model Cont…AddressBase(BusinessObject)

Address(AddressBase)

ServiceEquipmentAddress

ServiceAddress

International

Address

ReturnMa…ReturnReturnMa…Ship

ServiceCallShipToAddress

BusinessAddress

(InternationalAdd..)

ExtendedBsinessAddressConstituentAddre

ss

CustomerAddress

How Does It Work?

IISRequest

Response

ServiceProxy Request

Service WSDL(Description)

CustomerFOO

Get Me A Customer by it’s ID

(GetCustomerByKey)

Business Logic Layer

SQL

Security Subsystem

Policy Subsystem

Exception Subsystem

Create/Update/Delete

Get / GetList

IIS Service

Dynamics GP Security

Role BasedWhat Operations belong to that Role?What Tasks Belong to those operations?(e.g., Sales Person)What do can you see?

Security Subsystem

Customized Data Based on Roles

You are a SalesPerson and you are assigned to a set of customersGetList (basedonCustomerId) returns only the customers you are assigned

Dynamics GP Policies

What is a Policy?Internal Policies

e.g., Force Credit Limit(s)External Policies

e.g., Create a customer with a default Class ID

Role BasedEach role can have a different set of policies.

Exception SubSystem

There is an error…Is it safe to send back the details?!

Not necessarily!We return a “error”, but to see all of the data, information behind the issue, you can retrieve it from the Exception ServiceExpose Exception Method

Data Access Layer

We talk to the Back Office For you…Business Logic/ Validation is done against the data, and performed automaticallyThis is the “magic” layer for you…

Using GP Web Services…

1) Create a Proxy, or use the shipped one

2) Generate a Context3) Decide, from the Proxy, What Web

Operation you are calling4) Build up your operation call using

strongly typed objects in the interface

Proxy-Up The Service…

DynamicsGP clientProxy = new DynamicsGP()That’s IT!Is this slow for you?

Why is it slow sometimes?!!!!![Best Practice]

What happens underneath?Do you really want to know?

Thinning the contract…

ASMX Can Be Customized!

How?!Create a new ASMX, point it to our assemblyThat’s it!Want a demo?

Context Type

PropertiesOrganization KeyCultureNameCurrencyRole KeyWorkOnBehalfOfa

What Operation Do You Like?

The Service Contract exposes various CRUD operations that include additional GP Specific operations

Get_ : Retrieves individual DocumentsGetList_ : Returns a Collection of objectsCreate_ : Creates new documentUpdate_ : Updates an existing documentDelete_ : Deletes an existing documentVoid_ : Voids an existing transactions

300+ Web Operations

Service Demo…Let me see this!

Quick…

Please Complete an Evaluation FormYour feedback is important!

Two ways to access online evaluation formsCommNet and evaluation stations located throughout the New Orleans Morial Convention CenterFrom any wired or wireless connection to www.msconvergence.com/home.aspx

For more information please refer to your Conference GuideNote: For every attendee who completes an evaluation, Convergence will

donate $1 to the Boys & Girls Club of Southeast Louisiana

Be eligible to win great daily prizes and the

grand prize – a $5,000 Travel Voucher!

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

top related