CSFLoadDiscounts
Use this component with the CacheManager object to load discounts for the Content Selection Framework.
Note
- Although the CSFLoadDiscounts component implements two pipeline component interfaces (IPipelineComponent and IPipelineComponentAdmin), it is not a pipeline component, it does not appear in the Pipeline Editor, and cannot be used or configured in the Pipeline Editor.
Configuration Values
The following table describes the CSFLoadDiscounts configuration values.
Box | Description |
---|---|
ConnectionString | The connection string for the campaigns database. |
Query | The SQL query used to populate the cache of discounts. Reading this property returns the default query unless it has been overridden with a custom query. |
RedirectUrl | If specified, Commerce Server writes this value into the Cache dictionary unchanged.
You do not need to set RedirectUrl in Commerce Server 2002, as Commerce Server 2002 takes the value for RedirectUrl from the Cache dictionary. |
Values Read
None.
Values Written
None.
Remarks
You can use the CSFLoadDiscounts component with the CacheManager object to load discounts for use later in your application.
When run by the CacheManager object, the CSFLoadDiscounts component uses two pipeline dictionaries (Order and Context) to determine how to run and how to return information to the CacheManager object.
The CSFLoadDiscounts component first opens a connection to the database and gets the list of discounts. The component uses a ContentListFactory object to populate a ContentList object with the data. The component then extracts templates, target groups, and page groups from the retrieved information.
The following table describes the columns in the ContentList object returned by the CSFLoadDiscounts component. Column names appear in alphabetical order.
Column Name | Type | Flags |
award_expr | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
award_max | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
campaign_id | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
click_required | Boolean (CLCOL_BOOL) | 1 (CLCOL_READONLY) |
condition_basis | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
condition_expr | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
condition_mny_min | Currency (CLCOL_CY) | 1 (CLCOL_READONLY) |
condition_qty_min | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
date_end | date/time (CLCOL_DATE) | 1 (CLCOL_READONLY) |
date_modified | date/time (CLCOL_DATE) | 1 (CLCOL_READONLY) |
date_start | date/time (CLCOL_DATE) | 1 (CLCOL_READONLY) |
description | String (CLCOL_STRING) | 1 (CLCOL_READONLY) |
disc_id | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
disjoint | Boolean (CLCOL_BOOL) | 1 (CLCOL_READONLY) |
exposure_limit | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
expressions_used_for_display | Boolean (CLCOL_BOOL) | 1 (CLCOL_READONLY) |
height | short (CLCOL_I2) | 1 (CLCOL_READONLY) |
item_id | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
limit | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
name | String (CLCOL_STRING) | 1 (CLCOL_READONLY) |
offer_type | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
offer_value | Currency (CLCOL_CY) | 1 (CLCOL_READONLY) |
order_level | Boolean (CLCOL_BOOL) | 1 (CLCOL_READONLY) |
pagegroups | SafeArray (CLCOL_VARIANTARRAY) | 1 (CLCOL_READONLY) |
rank | int (CLCOL_I4) | 1 (CLCOL_READONLY) |
required_exprs | SafeArray (CLCOL_VARIANTARRAY) | 1 (CLCOL_READONLY) |
score | real (CLCOL_R4) | 6 (CLCOL_PRIVATE | CLCOL_SCORE_COLUMN) |
size | String (CLCOL_STRING) | 1 (CLCOL_READONLY) |
special_offer_type | String (CLCOL_STRING) | 1 (CLCOL_READONLY) |
target_groups | SafeArray (CLCOL_VARIANTARRAY) | 1 (CLCOL_READONLY) |
template | String (CLCOL_STRING) | 1 (CLCOL_READONLY) |
width | short (CLCOL_I2) | 1 (CLCOL_READONLY) |
Abbreviations in the table are enumerated values for the ContentList object. For more information, see the Remarks section in ContentListSchema.ColumnType.
If necessary, you can add additional custom fields into the ContentListFactory cache by overriding the default query for CSFLoadDiscounts. Overriding the query is an advanced programming technique, and requires that you have detailed knowledge of SQL queries. Because the default query for CSFLoadAdvertisements is large and complex, you should use the following steps to avoid accidential changes to the query.
To modify the SQL query for CSFLoadAdvertisements
In Visual Studio .NET, query the component for the default SQL query. The following code describes how to query a component for the default SQL query:
function GetDiscountQuery set oLoad = CreateObject("Commerce.CSFLoadDiscounts") set dictConfig = oLoad.GetConfigData() GetAdQuery = dictConfig.Query end function
Save the query to a file.
Modify the saved copy of the query.
You can add columns to the query. However, you should not remove existing columns, as removing existing columns may cause the advertising selection pipeline to fail. The query also contains placeholder strings such as "?" and "##GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID", which you should not alter or remove.
Load the modified query from the file to the component at runtime. One way to load the query would be to use the Scripting.FileSystemObject object.
Use the SetConfigData method from IPipelineComponentAdmin to set the new query property.
Example
See the example in CacheManager Object.
Copyright © 2005 Microsoft Corporation.
All rights reserved.