A common requirement for enterprise applications is the ability to share data and business logic with other applications. For example, suppose you have an employee portal built with the ATG platform, and also a payroll system based on some other software package. When a new employee starts, or an existing employee changes his or her marital status, you need to create or modify the employee’s profile in both systems. Ideally, you’d like the employee to be able to make the changes in one application and have those changes automatically propagate to the other application.

One way to address this issue is through Web services, a widely supported standard for packaging remote procedure calls in an XML-based structure. In the example above, you could create a Web service that automatically updates an employee’s profile in the employee portal when the information in the payroll system is modified.

The Dynamo Application Framework includes tools that allow you to create custom Web services that call methods on Nucleus components. These custom Web services can expose methods on existing ATG Nucleus components, or on Nucleus components you write yourself. You can call these Web services from an external application client, such as the payroll system mentioned above.

The ATG platform packages Web services as: J2EE applications, in accordance with the JAX-RPC (JSR 101) and Implementing Enterprise Web Services (JSR 109) specifications. Note that this manual assumes that you’re familiar with these specifications, and with Web services in general. For more information about these specifications, see the Java Community Process web site at:

http://www.jcp.org

The chapters in this section discuss how to create Web services in the ATG platform, and how to write Java and .NET clients that call these services:

In addition to any Web services you create, the ATG platform includes a number of prepackaged Web services that you can call from Java and .NET clients. These services are packaged in three separate application modules. You can include any of these services in an assembled EAR file by including the module that contains the desired services. For example, to include the prepackaged Commerce Web services, specify the DCS.WebServices module when you assemble your application.

The following table summarizes these Web services:

Application Module

Web Application

Web Services

DAS.WebServices

For more information about these Web services, see the ATG Repository Guide.

Generic Repository Services

- getRepositoryItem
- performRQLQuery
- performRQLCountQuery

DPS.WebServices

For more information about these Web services, see the ATG Personalization Programming Guide

User Session

- loginUser
- logoutUser
- getProfileId
- setLocale
- setContactInfo
- setPassword
- getProfile
- createUser
- updateUser
- getPasswordHashKey
- getPasswordHashAlgorithm
- canClientEncryptPasswords
- executeRepositoryTargeter

Messaging

- sendPageVisit
- sendClickThrough

DCS.WebServices

For more information about these Web services, see ATG Commerce Programming Guide.

Order

- createOrderFromXML
- submitOrderWithReprice
- cancelOrder
- getOrderStatus
- getOrderAsXML
- getOrdersAsXML
- getOrderStatus
- getCurrentOrderId
- addItemToOrder
- addItemToShippingGroup
- createOrder
- createOrderForUser
- removeItemFromOrder
- setItemQuantity
- addCreditCardToOrder
- addShippingAddressOrder
- removePaymentGroupFromOrder
- removeCreditCardFromOrder
- removeShippingGroupFromOrder
- moveItemBetweenShippingGroups
- removeItemQuantityFromShippingGroup
- setOrderAmountToPaymenGroup
- getDefaultPaymentGroupId
- getDefaultShippingGroupId

Pricing

- calculateOrderPrice
- calculateOrderPriceSummary
- calculateItemPriceSummary

Promotions

- grantPromotion
- revokePromotion
- claimCoupon
- getPromotionsAsXML

Inventory

- getInventory
- getInventoryStatus
- setStockLevel
- setStockLevels

Catalog

- getProductXMLById
- getProductXMLByDescription
- getProductXMLByRQL
- getProductSkusXML
- catalogItemViewed

Profile

- setDefaultShippingAddress
- setDefaultBillingAddress
- setDefaultCreditCard
- getDefaultShippingAddress
- getDefaultBillingAddress
- getDefaultCreditCard

loading table of contents...