ATG Programming Guide iii. Contents μ. Contents. 1. Introduction. 2. Nucleus: Organizing JavaBean Components. Building Applications. Welcome to the ATG Commerce Programming Guide. Refer to the documentation and information available in the CyberSource PDF file at. Personalization Programming Guide Describes programming tasks for the ATG Personalization and Scenarios modules. Includes information on setting up.
|Language:||English, Indonesian, French|
|Genre:||Business & Career|
|ePub File Size:||26.34 MB|
|PDF File Size:||11.33 MB|
|Distribution:||Free* [*Register to download]|
riamemamohelp.ml - Ebook download as PDF File .pdf), Text File .txt) or read book online. ATG Programming Guide μ Using Nucleus Component Scopes. ATG/Oracle Commerce modules are simply functional parts of an modules in the Appendix E. ATG Modules of the ATG Programming Guide. available to you, as described in the ATG Platform Programming Guide. This chapter focuses on several ATG servlet beans that are frequently.
TaxPricingCalculator Interface. CalculatorInfoProvider Interface. Pricing Calculator Classes. Price List ItemPriceCalculator. Extending Pricing Calculators. Adding a New Pricing Calculator. Extending Calculators. Qualifier Class. Qualifier Class Overview. Qualifier Properties. Overriding Qualifier Filters. Default Qualifier Service. Evaluating Qualifiers Example. QualifiedItem Class. Extending the Qualifier Class. Adding New Criteria to the Filter Methods. Accessing FilteredCommerceItems.
Understanding Promotions. Promotion Repository Item Properties. PromotionFolder Repository Items. PromotionStatus Repository Items. Gift with download Promotions. Gift with download Repository Items. Gift with download Events. Extending Promotions Functionality.
Automatic Tank Gauging
Extending the PMDL. Adding New Promotion Discount Types. Adding New Promotions Templates. Promotion Template Basics. Translating User Input Values in Templates. Working with Repository Item Properties in Templates. Using Promotion Upsell in Templates. Validating Promotions. Localizing Promotions Templates. Editing Existing Promotion Templates. Importing and Exporting Promotions. Architecture Overview. Performing a Promotions Import or Export. Mapping Promotion Properties.
Performance Issues Related to Promotion Delivery. Using Price Lists. Overview of Setting Up Price Lists.
Caching Price Lists. Description of Volume Pricing. Setting up Price List Functionality. Assigning a Price List to a User. Price List Calculators. Implementing Sale Prices using Price Lists. Calculating Prices with a Specific Price List. Price List Security Policy. Configuring the Price List Security Policy. Working With download Process Objects. The download Process Subsystems. Base Commerce Classes and Interfaces. Address Classes.
String java. Map java. ResolvingMap A map property whose values are linked to a property of another component see Linking Map Properties 28 2. Class Read as a class name. List java. Data Type Value java.
XMLFile An absolute configuration pathname—for example. Locale Complex Property Types The following table lists more complex Java data types that Nucleus can parse from properties files.
Integer java. Float java. Long java. If there is no such class. Double java. Hashtables as Property Values Hashtable property values are parsed in the same way as java.
Peter array elements Paul and Peter embed a trailing space and a leading space. Nucleus parses an array by assuming that the element values are separated by commas. The Components editor presents array type properties in a table. Properties and atg. Single-line Property Settings A property setting must use one of the following formats: Leading and trailing white spaces are included in element values. Properties File Format The properties files read by Nucleus must conform to a format that is recognized by the class java.
ServiceMap type properties. Defining Property Types You can define and register additional property types. The heights property might be set by the following properties file entry: Nucleus creates an array of three doubles.
If placed at the beginning of a line. It might also be instantiated as another component—for example.
White space is ignored in the following cases: Los Angeles white space at the beginning of lines is ignored. Multiple components in Nucleus cannot have the same absolute name. White Space White space that follows the property value is treated as part of the property value.
A component name and class name are sometimes the same—typically. You should compile the Weather Java class and create a Weather class component with a Weather. For both types of files. Specifying Components as Properties Previous examples show how Nucleus creates and initializes components from properties files.
Nucleus also allows components to point to each other through configuration file properties. The properties file might look like this: The Weather class might look like this: Nucleus resolves the name Weather by creating and initializing the Weather component before assigning it to the Person property. Then Nucleus attempts to set the weather property.
The output should look something like this: In order to set the weather property. This is a relative name. Weather weather. Its name and age properties are set from the values found in the properties file. In doing so. ServiceMap Properties It is often useful to have a property that maps Strings to other components. This causes Nucleus to construct an instance of the Weather class and initialize its currentWeather property.
Nucleus does not limit the number of components that refer to each other through properties. See Enabling Deadlock Detection for information about avoiding deadlocks. This property might be initialized in the configuration file like this: ServiceMap are assumed to perform this mapping. Nucleus can even resolve circular references without spiraling into infinite loops.
Application errors can also occur if you reference a property of a component before that component is completely configured. Nucleus can initialize the rest of the Person component. To diagnose this type of error. In Nucleus. Arrays of components can also be specified in the same way that other array values are specified: This results in the last two lines of output.
On the other hand. Dot Names In both absolute and relative names. Notation Description. The following code accesses the Weather component for a particular city: The name resolution begins at the context where the name was found. These dot names can be used anywhere in a name. Component Names in Properties Files When a name is resolved in a properties file. You can think of this as the directory containing the properties file. Because this name consists of only one element.
The name is then resolved one element at a time. The name Weather is a relative name. Person and. It continues its search up the hierarchy until the component is found. Note that the aliased component must have global scope. All other systems that utilize the original Nucleus name do not need to be reconfigured. This class. Give the GenericReference the alias name you want to use To use the GenericReference class: If Nucleus cannot find the component and must try to create it.
The pricing model is not actually a separate component. Create an instance of atg. The triple dot can also be used in more complex names.. If necessary. Set the GenericReference's componentPath property to the Nucleus address of the globally scoped component you want to reference.
Nucleus searches for everything after the triple dot by walking up the hierarchy defined by everything before the triple dot. This is useful if you want systems to have separate names. For example ComponentName A ComponentName object of class atg. ParameterName You can use a ParameterName object of class atg.
This method looks up the given string in a hashtable of component names and returns the value or creates one with the supplied string. ComponentName can represent any Nucleus component. GenericService implements the atg. The ATG page compiler uses ComponentNames wherever possible to reduce the memory cost and parsing time to resolve components.
The component names are stored in a global hashtable that is keyed by strings. Use this class to create unique parameter names when building your own 36 2. This typically speeds up name resolution for components and parameters. This technique can help limit the amount of parsing required to resolve the same component name repeatedly. To get the unique ComponentName for a given String. You can pass a component name to the resolveName method of atg.
Use this class to create unique component names that you can reference elsewhere. ComponentNameResolver interface. ParameterNames are used when you want to look up a request parameter quickly.
ParameterName to represent any request parameter name used in the ATG platform. Using this class provides better performance by pre-parsing the component name. You can use this class not only to enhance performance by pre-parsing the parameter name. File Names in Properties Files Sometimes a property refers to a file name. This method looks up the given string in the hashtable of parameter names and returns the value or creates one with the supplied string. The ATG page compiler uses ParameterNames wherever possible to reduce the memory cost and parsing time of accessing request parameters.
Properties of type java. To get the unique ParameterName for a given String. If you create your own servlet bean.
Using this class makes the parameters of a servlet bean publicly available. You can pass a ParameterName to the following methods of atg. You can use this notation with the following system properties: This technique is useful when you want to resolve the same parameter repeatedly.
The parameter names are stored in a global hashtable. This forces the ServerName component to be fully started. The server can be named explicitly by setting the serverName property directly. If no host name is available. Services that require a server name should not set a server name property directly from this services serverName property. Java tries to convert a numeric InetAddress to a host name. Just as Nucleus makes components available through a Nucleus address relative to the ATG configuration path.
For more information about ATG servers. For instance. It is unlikely that these server components refer to each other. A component that is started through the initialServices property must be globally scoped. Because it is specified in Nucleus. The following diagram shows how an ATG configuration can ensure that startup of a Nucleus-based application precipitates startup of multiple initial services: The Initial component of class atg.
You can use this technique to initialize entire sections of an application. InitialService that exists specifically for this purpose. This lets you manage each set of services separately. In order to maintain consistent property settings among these components.
Property linkage only occurs when the related components are initialized. You configure the level of logging messages for Nucleus through the configuration file Nucleus.
Nucleus is configured to display warning and error messages. Linking Map Properties The Nucleus class atg. ResolvingMap lets you link the value of a map key to another component property. After initialization. To do this. By default. All components in the application that need those values link their properties to this component. Nucleus displays messages about the configuration process. For more information about using the logging system in the ATG platform. Separate instances of the component are provided to each user.
To debug deadlock problems. Locks are named after the components involved. These settings apply only to Nucleus. Circular references can cause deadlocks. Enabling Deadlock Detection When Nucleus starts up a component. One or more of the components is incompletely initialized. Separate instances of the component are provided to each browser window. Nucleus can resolve circular references. Component Scopes An application component can be set to one of the following scopes: Component is shared among all users.
Separate instances of the component are provided to each active request. The exception indicates the lock in question. It invalidates the session and removes the components associated with that session.
In general. Session Tracking ATG provides a session-tracking mechanism that automatically matches browser requests to a server session. Global Scope If you set a component to global scope. This allows the two scopes to appear in the same namespace. In each component. Component data that was not copied to permanent storage is lost. Multiple Scopes in the Same Namespace If a component has session or request scope.
When Nucleus needs to resolve a component name. For more information about session tracking. In order to minimize memory use.
ATG platform creates a String object and sets the property to it. When a component instance is created. With this attribute. Each instance is handled independently and has no effect on the others. This is especially true for globally-scoped components. To implement this. To ensure that multiple requests do not access the same component simultaneously.
If two forms are submitted at the same time to the same component.
The property has a unique reference to the String object which other component instances cannot affect. Request scope can be especially useful for components whose properties are set by a form. When a form is submitted. This is true even when the same session sends two requests simultaneously.
As a general rule. Each configuration path attribute can set one or more directories in the following format.
Precedence of configuration path directories determines how component properties are set. Setting the Configuration Path On assembly.
Multiple configuration directories can set properties differently for various modules and their components. You can also use global properties files to set a property value to the same value in different components. These directories are set from the configuration path attributes in module manifest files.. These files are enabled when the application is assembled with the switch -layer cfgName. The specified directories are added to the configuration path when the -liveconfig switch is supplied during application assembly.
The specified directories are added to the configuration path when two conditions are true: These files are enabled when the application is on the application server platform and is assembled with the switch - layer CfgName. Precedence of Configuration Path Attributes The directories specified by the configuration path attributes of each module are appended to the configuration path in the following order left-to-right. Nucleus sets module configuration directories in the configuration path in the same order as the module list.
Because an ATG application is assembled from multiple modules. In that case. Dependencies are not always obvious. These modules include application modules that are explicitly specified in the assembly module list.
The ATG modules in the expanded module list might also have dependencies. ATG-platformConfig-Path 4. The ordering of directories from various modules in the configuration path is generally determined by two factors: Reading the Configuration Path Component properties are set according to the precedence of configuration path directories.
ATG-Config-Path 2. Settings in localconfig are preserved across product upgrades. Because each new ATG distribution overwrites the configuration files in config.
You are here
Configuration Directories As installed. Depending on application requirements. Production Environment Configuration Two configuration path attributes can be used to configure an application for production: Never place. Doing so can yield errors.
This directory contains configuration files that are used to start up components required by ATG products. ATG sets the configuration path to the following directories: The directories specified by these attributes are included in the configuration path only when the application is assembled with the -liveconfig switch see the ATG Installation and Configuration Guide.
Named Configuration Two configuration path attributes let you associate a set of properties files with a user-defined name: You can assemble a single EAR file that contains all named configuration layers that are required across various servers. Named configurations are useful for associating related configuration settings that span multiple modules. If configuration files in multiple directories set the same property. In order to set the configuration path with the configuration directories associated with cfgName.
Setting Properties from Multiple Configuration Directories Nucleus can configure a component from properties that are set in multiple configuration directories. The string platform denotes the application server—for example. Nucleus can resolve this in two ways: You also should not override it with another copy of Initial.
Because installation of any later ATG distribution always overwrites the base Initial. For example.. If the next ATG distribution changes the installed list of initial services.
This can be especially useful when you need to supplement existing settings that are supplied by the base configuration of an ATG module. Los Angeles. Los Angeles A contained component can append a single value to the same property as follows: In the following example. A component can also be set by multiple global properties files. Chicago 51 2. When Nucleus reads the configuration path. Global Properties Files A global properties file can set the same property in multiple components.
This component provides a cglib2-based proxying mechanism. If cssFile is null. If a value is found. String mStyleSheet. The component is defined with the following methods: Map component properties to the corresponding site properties.
This property specifies to return null if the designated site 52 Nucleus returns default. Nucleus uses the current site context to look up the site configuration property cssFile.
Tracing Component Property Settings When an application has multiple configuration directories. PropertyValueDecoder class defines a component that can decode the value of properties encoded with Base This service. You can use a component of this type to protect properties that should remain encoded until their value is used.
Setting Properties to Null A null value does not override a non-null value set earlier in the configuration path. Click View Service Configuration to view a hierarchical listing of the properties files for that component. It disregards any settings that are set within the properties file itself or derived from other configuration directories. The atg. Navigate to the target component. Nucleus overrides all other settings for styleSheet and returns null.
DataSource components can use a 53 2. Loading Serialized Beans In addition to specifying a class name. Nucleus uses the standard JavaBean utility method Beans. This lets your component use different implementations of the PropertyValueDecoder interface without modification. Do not make the decoded value visible to any public method or property. Nucleus loads the class x. You can rely on the decoder to pass the decoded login to the database when connections are created.
If you need more robust security. An operating system that supports case-sensitive file names can also support component names that differ only in case. These files have a. To disable checking. As installed. If you do not use any serialized JavaBeans. UNIX can differentiate Person. Create an atg. If that file does not exist. To use it. FakeXADataSource class supports this feature. XML files are combined one tag at a time. This attribute is used only in the preprocessing stage of XML file combination.
You can specify another character encoding with a declaration of this form: If you combine files with different encodings. Setting checkFileNameCase to true can slow performance. Because the xml-combine attribute is not included in the file that results from the preprocessing combination of the XML files. This allows multiple applications or modules to layer on top of each other. To avoid this. This setting prevents you from creating components whose names are different only in case.
Like properties files. At runtime. The xml-combine attribute is removed from the combined file. This file must be earliest in the configuration path of all files to combine. Controlling Tag Combination. If this attribute is omitted. Given these rules. Controlling Tag Combination You can override the default rules for tag combination by setting the xml-combine attribute in tags of the last-read configuration file.
Tag content is simply appended. Recursive Combination If a tag sets xml-combine to append or prepend. If a tag embedded in tag1 matches a tag from tag2. Given embedded tags tag1. The attributes in tag2. Tag content is simply prepended.
Before the primary tags are combined. That tag is replaced in place—that is. The embedded tags are then combined by recursively going through the entire combination process. Because these tags are a match.
The search yields the following match: The tag is then removed from tag2 so that it is not actually appended. In this example they are combined by using append. The rule for combining two XML files is to act as if each file were completely enclosed in a tag. The J2EE deployment descriptors provide the id attribute. The id tag can be used to hold the value of an embedded value that is known to be unique.
J2EE deployment descriptors do not typically use attributes.. Organizing JavaBean Components.. When you click on the property. These scripts parse a set of input files.
Your class does not need to implement all interfaces that GenericService implements. You might also wish to make a property read-only. Properties In order to enable configuration of a class variable from a properties file. This technique is often used for properties that contain runtime statistics. The easiest way to implement these interfaces is to subclass atg. Public Constructor with No Arguments Nucleus can create a component automatically from a properties file only if the component class is declared public and it implements a public constructor with no arguments.
To make a property read-only. See the Component Scopes section in this chapter. If your class fires events. If your class implements the atg. It then binds the component into the namespace of the NameContext that contains the component. Nucleus properties files can be used to configure the listeners for those events.
A typical implementation of NameContextBindingListener looks like this: The default value is global. NameContextBindingListener interface. This means that Nucleus can traverse through these components when it is resolving names.
NameContext nameContext. For the time being. NameContext are recognized by Nucleus as containers of other components. These properties also show up in the Component Browser. NameContext Components that implement atg. This is because the same methods are called if the object is registered as a listener for binding events on other NameContexts.
Although you can generally assume that these notifications happen all the time. It also means that the Component Browser allows the administrator to walk through the children of that component.
This is because the NameContext is responsible for sending the events. Training Option: If a Servlet Bean has parameters that are of the same name as the page parameter, what behavior can be expected? They are the same variable. The servlet beans parameter will overwrite the page parameter for the remainder of the page. The servlet beans parameter value temporarily overrides the page parameter within the servlet bean and is reverted.
The page parameter takes precedence. The servlet beans parameter is ignored. Causes the exception IllegalParameterName and should be avoided 2. What is the best way to display the contents of an open parameter in a Custom Droplet? Use the getParameter to get the open parameter and print it out in the droplet. Use the request. Use the response. It is illegal to have an ID column and a unique key in the same item descriptor. You want to remove items from being displayed in a slot, and choose to use "Destructive" item retrieval.
Which statement describes the expected outcome? Once retrieved, the item is removed from the repository. Items are retrieved and displayed once. They are then removed from the slot. Do not use this retrieval type. It is for testing purposes only. Once retrieved, the item can never again be populated in this slot from a targeting rule.
The targeter parameter of the TargetingForEach droplet accepts which kind of objects? It must be a targeter. It must be a slot. It can be a slot or a targeter. It must be a class that implements DynamicContent. How can this be achieved? Ask a developer to create and code a promotion for deployment on the site.
Log on as a Merchandiser, and then create and configure a promotion in the BCC. Create and configure a promotion in the CSC. Log on to the ACC as an administrator to create and configure a promotion, and then log on as the Merchandiser to approve the promotion in the BCC.
This promotion cannot be created.
At the item property level only. Each property must be compared with yours and what is current and one needs to be selected. At the item property level. You may also choose to accept all changes that are yours or all the current changes for the item. At the item level only. You must choose at an item level if you want to select your version or current version. At the project level. You must choose if you want to accept all your items in the project or all of the current version items in the project.
What is the expected behavior when a product is deleted? All child SKUs of the product are also deleted except for those that have bundle links. All child SKUs of the product are also deleted. Only the product is deleted. The SKUs are left intact.
Automatic Tank Gauging
What are Catalog folders used for? They are used to determine if certain categories can be shown to a customer. They are used only in the administrator user interface, not in the commerce site itself. They help in running catalog maintenance on specified catalog folders. They are used to define sub catalog hierarchies. They are used for multisite to define site groups. Basic Pricing and Inventory Objectives: Which three pricing engines are configured to load global promotions?
ItemPricingEngine B.The create flag determines if Nucleus should attempt to create the component if it cannot be found. Organizing JavaBean Components. If singleton is set to true. Bottom: assembly precision is the fraction of assembled amino acids that matches to a reference protein at the minimum sequence identity on the x-axis.
Preparing a Complex Order for Checkout. This is because the same methods are called if the object is registered as a listener for binding events on other NameContexts.
ShippingPricingEngine For Oracle employees and authorized partners only.